Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
Z
ZHHT-IRN-BD-ANALYSIS
Project
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
李凯旋
ZHHT-IRN-BD-ANALYSIS
Commits
c016f8ef
Commit
c016f8ef
authored
Dec 14, 2022
by
吴延飞
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/master'
parents
0867941d
2930fc23
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
86 additions
and
13 deletions
+86
-13
LaneNormProcessFunction.java
.../java/com/zhht/irn/functions/LaneNormProcessFunction.java
+0
-0
TravelEventAndCycleCoProcessFunction.java
...t/irn/functions/TravelEventAndCycleCoProcessFunction.java
+5
-5
LaneNormJob.java
...streaming/src/main/java/com/zhht/irn/job/LaneNormJob.java
+8
-3
DirectionEvalSecondSink.java
.../main/java/com/zhht/irn/sink/DirectionEvalSecondSink.java
+1
-0
GreenRadioSink.java
...aming/src/main/java/com/zhht/irn/sink/GreenRadioSink.java
+1
-0
LaneNormSink.java
...reaming/src/main/java/com/zhht/irn/sink/LaneNormSink.java
+11
-3
TravelMetricSink.java
...ing/src/main/java/com/zhht/irn/sink/TravelMetricSink.java
+1
-0
DruidConnectPoolUtils.java
...c/main/java/com/zhht/irn/utils/DruidConnectPoolUtils.java
+59
-2
No files found.
realtime/hologram-streaming/src/main/java/com/zhht/irn/functions/LaneNormProcessFunction.java
View file @
c016f8ef
This diff is collapsed.
Click to expand it.
realtime/hologram-streaming/src/main/java/com/zhht/irn/functions/TravelEventAndCycleCoProcessFunction.java
View file @
c016f8ef
...
@@ -87,16 +87,16 @@ public class TravelEventAndCycleCoProcessFunction extends CoProcessFunction<Trav
...
@@ -87,16 +87,16 @@ public class TravelEventAndCycleCoProcessFunction extends CoProcessFunction<Trav
carRecordState
=
getRuntimeContext
().
getMapState
(
carRecordStateDescriptor
);
carRecordState
=
getRuntimeContext
().
getMapState
(
carRecordStateDescriptor
);
dataSource
=
DruidConnectPoolUtils
.
getDataSource
connection
=
DruidConnectPoolUtils
.
getConnection
();
// ("jdbc:mysql://localhost:9030/demo?characterEncoding=utf8",
// ("jdbc:mysql://localhost:9030/demo?characterEncoding=utf8",
// ("jdbc:mysql://localhost:3307/test?characterEncoding=utf8",
// ("jdbc:mysql://localhost:3307/test?characterEncoding=utf8",
// ("jdbc:mysql://10.243.0.26:3306/test?characterEncoding=utf8",
// ("jdbc:mysql://10.243.0.26:3306/test?characterEncoding=utf8",
(
"jdbc:mysql://10.243.0.22:9030/demo?characterEncoding=utf8"
,
/*
("jdbc:mysql://10.243.0.22:9030/demo?characterEncoding=utf8",
"root",
"root",
// "root123");
// "root123");
"mima");
"mima");
*/
connection
=
dataSource
.
getConnection
();
//
dataSource.getConnection();
dim_cnt_cross_lane_position
=
getLaneDimData
(
connection
);
dim_cnt_cross_lane_position
=
getLaneDimData
(
connection
);
}
}
...
@@ -754,7 +754,7 @@ public class TravelEventAndCycleCoProcessFunction extends CoProcessFunction<Trav
...
@@ -754,7 +754,7 @@ public class TravelEventAndCycleCoProcessFunction extends CoProcessFunction<Trav
*/
*/
private
void
sinkTravelLineSinkInfoToMysql
(
List
<
TravelLineSinkInfo
>
list
)
throws
SQLException
{
private
void
sinkTravelLineSinkInfoToMysql
(
List
<
TravelLineSinkInfo
>
list
)
throws
SQLException
{
DruidPooledConnection
connection
=
dataSource
.
getConnection
();
DruidPooledConnection
connection
=
DruidConnectPoolUtils
.
getConnection
();
String
sql
=
"INSERT INTO demo.app_cross_line_travel_car_info"
+
String
sql
=
"INSERT INTO demo.app_cross_line_travel_car_info"
+
"(record_date,cross_id,statistic_time,cycle_begin_time,cycle_end_time, lane_id, cycle_order, direction,"
+
"(record_date,cross_id,statistic_time,cycle_begin_time,cycle_end_time, lane_id, cycle_order, direction,"
+
...
...
realtime/hologram-streaming/src/main/java/com/zhht/irn/job/LaneNormJob.java
View file @
c016f8ef
...
@@ -5,6 +5,7 @@ import com.zhht.irn.entity.*;
...
@@ -5,6 +5,7 @@ import com.zhht.irn.entity.*;
import
com.zhht.irn.enums.EventType
;
import
com.zhht.irn.enums.EventType
;
import
com.zhht.irn.functions.LaneNormProcessFunction
;
import
com.zhht.irn.functions.LaneNormProcessFunction
;
import
com.zhht.irn.sink.LaneNormSink
;
import
com.zhht.irn.sink.LaneNormSink
;
import
com.zhht.irn.utils.DruidConnectPoolUtils
;
import
com.zhht.irn.utils.FlinkUtils
;
import
com.zhht.irn.utils.FlinkUtils
;
import
org.apache.flink.api.common.eventtime.WatermarkStrategy
;
import
org.apache.flink.api.common.eventtime.WatermarkStrategy
;
import
org.apache.flink.api.common.functions.FilterFunction
;
import
org.apache.flink.api.common.functions.FilterFunction
;
...
@@ -26,8 +27,8 @@ public class LaneNormJob {
...
@@ -26,8 +27,8 @@ public class LaneNormJob {
public
static
void
main
(
String
[]
args
)
throws
Exception
{
public
static
void
main
(
String
[]
args
)
throws
Exception
{
try
{
StreamExecutionEnvironment
env
=
StreamExecutionEnvironment
.
getExecutionEnvironment
();
StreamExecutionEnvironment
env
=
StreamExecutionEnvironment
.
getExecutionEnvironment
();
env
.
setRestartStrategy
(
RestartStrategies
.
noRestart
());
env
.
setRestartStrategy
(
RestartStrategies
.
noRestart
());
DataStream
<
String
>
cycleStringStream
=
FlinkUtils
.
createKafkaStream
(
args
,
env
,
"signal_cycle_data"
,
"laneNormJob"
);
DataStream
<
String
>
cycleStringStream
=
FlinkUtils
.
createKafkaStream
(
args
,
env
,
"signal_cycle_data"
,
"laneNormJob"
);
DataStream
<
String
>
carStringStream
=
FlinkUtils
.
createKafkaStream
(
args
,
env
,
"trips_event_info"
,
"laneNormJob"
);
DataStream
<
String
>
carStringStream
=
FlinkUtils
.
createKafkaStream
(
args
,
env
,
"trips_event_info"
,
"laneNormJob"
);
...
@@ -77,9 +78,13 @@ public class LaneNormJob {
...
@@ -77,9 +78,13 @@ public class LaneNormJob {
DataStream
<
TravelEvent
>
carStream
=
carStringStream
.
map
(
getTravelEventFunction
).
assignTimestampsAndWatermarks
(
travelEventWatermarkStrategy
).
keyBy
(
carKeySelector
).
filter
(
filterFunction
);
DataStream
<
TravelEvent
>
carStream
=
carStringStream
.
map
(
getTravelEventFunction
).
assignTimestampsAndWatermarks
(
travelEventWatermarkStrategy
).
keyBy
(
carKeySelector
).
filter
(
filterFunction
);
ConnectedStreams
<
Cycle
,
TravelEvent
>
cycleTravelEventConnectedStreams
=
cycleDataStreamSource
.
connect
(
carStream
).
keyBy
(
cycle
->
cycle
.
getCrossCode
(),
travelEvent
->
travelEvent
.
getCrossId
());
ConnectedStreams
<
Cycle
,
TravelEvent
>
cycleTravelEventConnectedStreams
=
cycleDataStreamSource
.
connect
(
carStream
).
keyBy
(
cycle
->
cycle
.
getCrossCode
(),
travelEvent
->
travelEvent
.
getCrossId
());
SingleOutputStreamOperator
<
LaneNorm
>
process
=
cycleTravelEventConnectedStreams
.
process
(
new
LaneNormProcessFunction
()
);
SingleOutputStreamOperator
<
List
<
LaneNorm
>>
process
=
cycleTravelEventConnectedStreams
.
process
(
new
LaneNormProcessFunction
()).
setParallelism
(
4
);
process
.
addSink
(
new
LaneNormSink
()
);
process
.
addSink
(
new
LaneNormSink
()).
name
(
"laneNormJobSink"
);
env
.
execute
(
"laneNormJob"
);
env
.
execute
(
"laneNormJob"
);
}
catch
(
Exception
e
){
System
.
out
.
println
(
"程序异常关闭->"
+
e
);
}
}
}
/*获取信控指标 并计算相关属性*/
/*获取信控指标 并计算相关属性*/
...
...
realtime/hologram-streaming/src/main/java/com/zhht/irn/sink/DirectionEvalSecondSink.java
View file @
c016f8ef
...
@@ -3,6 +3,7 @@ package com.zhht.irn.sink;
...
@@ -3,6 +3,7 @@ package com.zhht.irn.sink;
import
com.zhht.irn.entity.metric.DirectionEvalSecondMetric
;
import
com.zhht.irn.entity.metric.DirectionEvalSecondMetric
;
import
com.zhht.irn.utils.DateUtils
;
import
com.zhht.irn.utils.DateUtils
;
import
com.zhht.irn.utils.DorisUtils
;
import
com.zhht.irn.utils.DorisUtils
;
import
com.zhht.irn.utils.DruidConnectPoolUtils
;
import
com.zhht.irn.utils.MySQLUtils
;
import
com.zhht.irn.utils.MySQLUtils
;
import
org.apache.flink.configuration.Configuration
;
import
org.apache.flink.configuration.Configuration
;
import
org.apache.flink.streaming.api.functions.sink.RichSinkFunction
;
import
org.apache.flink.streaming.api.functions.sink.RichSinkFunction
;
...
...
realtime/hologram-streaming/src/main/java/com/zhht/irn/sink/GreenRadioSink.java
View file @
c016f8ef
...
@@ -4,6 +4,7 @@ import com.zhht.irn.entity.Cycle;
...
@@ -4,6 +4,7 @@ import com.zhht.irn.entity.Cycle;
import
com.zhht.irn.entity.Stage
;
import
com.zhht.irn.entity.Stage
;
import
com.zhht.irn.utils.DateUtils
;
import
com.zhht.irn.utils.DateUtils
;
import
com.zhht.irn.utils.DorisUtils
;
import
com.zhht.irn.utils.DorisUtils
;
import
com.zhht.irn.utils.DruidConnectPoolUtils
;
import
com.zhht.irn.utils.MySQLUtils
;
import
com.zhht.irn.utils.MySQLUtils
;
import
org.apache.flink.configuration.Configuration
;
import
org.apache.flink.configuration.Configuration
;
import
org.apache.flink.streaming.api.functions.sink.RichSinkFunction
;
import
org.apache.flink.streaming.api.functions.sink.RichSinkFunction
;
...
...
realtime/hologram-streaming/src/main/java/com/zhht/irn/sink/LaneNormSink.java
View file @
c016f8ef
...
@@ -3,6 +3,7 @@ package com.zhht.irn.sink;
...
@@ -3,6 +3,7 @@ package com.zhht.irn.sink;
import
com.zhht.irn.entity.LaneNorm
;
import
com.zhht.irn.entity.LaneNorm
;
import
com.zhht.irn.utils.DateUtils
;
import
com.zhht.irn.utils.DateUtils
;
import
com.zhht.irn.utils.DorisUtils
;
import
com.zhht.irn.utils.DorisUtils
;
import
com.zhht.irn.utils.DruidConnectPoolUtils
;
import
com.zhht.irn.utils.MySQLUtils
;
import
com.zhht.irn.utils.MySQLUtils
;
import
org.apache.flink.api.java.tuple.Tuple2
;
import
org.apache.flink.api.java.tuple.Tuple2
;
import
org.apache.flink.configuration.Configuration
;
import
org.apache.flink.configuration.Configuration
;
...
@@ -11,6 +12,7 @@ import org.apache.flink.streaming.api.functions.sink.SinkFunction;
...
@@ -11,6 +12,7 @@ import org.apache.flink.streaming.api.functions.sink.SinkFunction;
import
java.sql.Connection
;
import
java.sql.Connection
;
import
java.sql.PreparedStatement
;
import
java.sql.PreparedStatement
;
import
java.util.List
;
/**
/**
* @Description:
* @Description:
...
@@ -19,7 +21,7 @@ import java.sql.PreparedStatement;
...
@@ -19,7 +21,7 @@ import java.sql.PreparedStatement;
* @retrun:
* @retrun:
* @Creat :2022-10-31-14:11
* @Creat :2022-10-31-14:11
**/
**/
public
class
LaneNormSink
extends
RichSinkFunction
<
L
aneNorm
>
{
public
class
LaneNormSink
extends
RichSinkFunction
<
L
ist
<
LaneNorm
>
>
{
Connection
connection
;
Connection
connection
;
PreparedStatement
insertPstmt
;
PreparedStatement
insertPstmt
;
...
@@ -49,7 +51,11 @@ public class LaneNormSink extends RichSinkFunction<LaneNorm> {
...
@@ -49,7 +51,11 @@ public class LaneNormSink extends RichSinkFunction<LaneNorm> {
* 1000w的数据 1000w次
* 1000w的数据 1000w次
*/
*/
@Override
@Override
public
void
invoke
(
LaneNorm
value
,
SinkFunction
.
Context
context
)
throws
Exception
{
public
void
invoke
(
List
<
LaneNorm
>
laneNorms
,
SinkFunction
.
Context
context
)
throws
Exception
{
if
(
laneNorms
.
size
()==
0
){
return
;
}
for
(
LaneNorm
value:
laneNorms
){
insertPstmt
.
setString
(
1
,
value
.
getCorssId
());
insertPstmt
.
setString
(
1
,
value
.
getCorssId
());
insertPstmt
.
setString
(
2
,
value
.
getLaneId
());
insertPstmt
.
setString
(
2
,
value
.
getLaneId
());
insertPstmt
.
setString
(
3
,
value
.
getDirection
());
insertPstmt
.
setString
(
3
,
value
.
getDirection
());
...
@@ -69,6 +75,8 @@ public class LaneNormSink extends RichSinkFunction<LaneNorm> {
...
@@ -69,6 +75,8 @@ public class LaneNormSink extends RichSinkFunction<LaneNorm> {
insertPstmt
.
setString
(
17
,
value
.
getCycleStartTime
());
insertPstmt
.
setString
(
17
,
value
.
getCycleStartTime
());
insertPstmt
.
setString
(
18
,
value
.
getCycleEndTime
());
insertPstmt
.
setString
(
18
,
value
.
getCycleEndTime
());
insertPstmt
.
setString
(
19
,
DateUtils
.
getTodayTime
());
insertPstmt
.
setString
(
19
,
DateUtils
.
getTodayTime
());
insertPstmt
.
execute
();
insertPstmt
.
addBatch
();
}
insertPstmt
.
executeBatch
();
}
}
}
}
realtime/hologram-streaming/src/main/java/com/zhht/irn/sink/TravelMetricSink.java
View file @
c016f8ef
...
@@ -2,6 +2,7 @@ package com.zhht.irn.sink;
...
@@ -2,6 +2,7 @@ package com.zhht.irn.sink;
import
com.zhht.irn.entity.Travel
;
import
com.zhht.irn.entity.Travel
;
import
com.zhht.irn.utils.DorisUtils
;
import
com.zhht.irn.utils.DorisUtils
;
import
com.zhht.irn.utils.DruidConnectPoolUtils
;
import
org.apache.flink.configuration.Configuration
;
import
org.apache.flink.configuration.Configuration
;
import
org.apache.flink.streaming.api.functions.sink.RichSinkFunction
;
import
org.apache.flink.streaming.api.functions.sink.RichSinkFunction
;
...
...
realtime/hologram-streaming/src/main/java/com/zhht/irn/utils/DruidConnectPoolUtils.java
View file @
c016f8ef
package
com
.
zhht
.
irn
.
utils
;
package
com
.
zhht
.
irn
.
utils
;
import
com.alibaba.druid.pool.DruidDataSource
;
import
com.alibaba.druid.pool.DruidDataSource
;
import
com.alibaba.druid.pool.DruidPooledConnection
;
import
org.apache.flink.api.java.utils.ParameterTool
;
import
java.io.InputStream
;
import
java.sql.Connection
;
import
java.sql.Connection
;
import
java.sql.PreparedStatement
;
import
java.sql.PreparedStatement
;
import
java.sql.SQLException
;
import
java.sql.SQLException
;
...
@@ -12,6 +15,9 @@ import java.sql.SQLException;
...
@@ -12,6 +15,9 @@ import java.sql.SQLException;
* @date 2022-09-05 15:11:00
* @date 2022-09-05 15:11:00
*/
*/
public
class
DruidConnectPoolUtils
{
public
class
DruidConnectPoolUtils
{
private
static
DruidDataSource
pool
=
null
;
/**
/**
* 初始化连接池
* 初始化连接池
* @param dbHosts
* @param dbHosts
...
@@ -25,15 +31,66 @@ public class DruidConnectPoolUtils {
...
@@ -25,15 +31,66 @@ public class DruidConnectPoolUtils {
dataSource
.
setUrl
(
dbHosts
);
dataSource
.
setUrl
(
dbHosts
);
dataSource
.
setUsername
(
username
);
dataSource
.
setUsername
(
username
);
dataSource
.
setPassword
(
password
);
dataSource
.
setPassword
(
password
);
dataSource
.
setInitialSize
(
3
);
//初始连接数,默认0
dataSource
.
setMaxActive
(
10
);
//最大连接数,默认8
dataSource
.
setMinIdle
(
5
);
//最小闲置数
dataSource
.
setMaxWait
(
3000
);
//获取连接的最大等待时间,单位毫秒
dataSource
.
setTestWhileIdle
(
true
);
//指明连接是否被空闲连接回收器(如果有)进行检验.如果检测失败,则连接将被从池中去除
dataSource
.
setTestOnBorrow
(
false
);
// 借出连接时不要测试,否则很影响性能
return
dataSource
;
}
public
static
void
initDataSource
(
String
dbHosts
,
String
username
,
String
password
)
{
DruidDataSource
dataSource
=
new
DruidDataSource
();
dataSource
.
setDriverClassName
(
"com.mysql.jdbc.Driver"
);
dataSource
.
setUrl
(
dbHosts
);
dataSource
.
setUsername
(
username
);
dataSource
.
setPassword
(
password
);
dataSource
.
setInitialSize
(
3
);
//初始连接数,默认0
dataSource
.
setInitialSize
(
3
);
//初始连接数,默认0
dataSource
.
setMaxActive
(
3
0
);
//最大连接数,默认8
dataSource
.
setMaxActive
(
1
0
);
//最大连接数,默认8
dataSource
.
setMinIdle
(
5
);
//最小闲置数
dataSource
.
setMinIdle
(
5
);
//最小闲置数
dataSource
.
setMaxWait
(
3000
);
//获取连接的最大等待时间,单位毫秒
dataSource
.
setMaxWait
(
3000
);
//获取连接的最大等待时间,单位毫秒
dataSource
.
setTestWhileIdle
(
true
);
//指明连接是否被空闲连接回收器(如果有)进行检验.如果检测失败,则连接将被从池中去除
dataSource
.
setTestWhileIdle
(
true
);
//指明连接是否被空闲连接回收器(如果有)进行检验.如果检测失败,则连接将被从池中去除
dataSource
.
setTestOnBorrow
(
false
);
// 借出连接时不要测试,否则很影响性能
dataSource
.
setTestOnBorrow
(
false
);
// 借出连接时不要测试,否则很影响性能
pool
=
dataSource
;
}
return
dataSource
;
public
static
DruidPooledConnection
getConnection
(){
try
{
if
(
pool
==
null
){
InputStream
inputStream
=
DruidConnectPoolUtils
.
class
.
getClassLoader
().
getResourceAsStream
(
"doris.properties"
);
ParameterTool
tool
=
ParameterTool
.
fromPropertiesFile
(
inputStream
);
// 根据路径的配置文件获取MySQL链接参数
String
driver
=
tool
.
getRequired
(
"driver"
);
String
username
=
tool
.
getRequired
(
"username"
);
String
password
=
tool
.
getRequired
(
"password"
);
String
host
=
tool
.
getRequired
(
"host"
);
String
port
=
tool
.
getRequired
(
"port"
);
String
database
=
tool
.
get
(
"database"
,
"default"
);
String
jdbcUrl
=
String
.
format
(
"jdbc:mysql://%s:%s/%s"
,
host
,
port
,
database
);
initDataSource
(
jdbcUrl
,
username
,
password
);
}
}
catch
(
Exception
e
){
e
.
printStackTrace
();
}
try
{
return
pool
.
getConnection
();
}
catch
(
SQLException
e
)
{
e
.
printStackTrace
();
}
return
null
;
}
public
static
void
colseDataSource
()
{
try
{
if
(
pool
!=
null
){
pool
.
close
();
}
pool
.
close
();
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
}
}
/**
/**
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment