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
37d862da
Commit
37d862da
authored
Dec 09, 2022
by
黄准
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[代码修改] 获取数据库连接修改为从druid获取
parent
2ba9cd24
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
62 additions
and
55 deletions
+62
-55
LaneNormProcessFunction.java
.../java/com/zhht/irn/functions/LaneNormProcessFunction.java
+20
-16
TravelEventAndCycleCoProcessFunction.java
...t/irn/functions/TravelEventAndCycleCoProcessFunction.java
+5
-5
LaneNormJob.java
...streaming/src/main/java/com/zhht/irn/job/LaneNormJob.java
+1
-1
DirectionEvalSecondSink.java
.../main/java/com/zhht/irn/sink/DirectionEvalSecondSink.java
+2
-1
GreenRadioSink.java
...aming/src/main/java/com/zhht/irn/sink/GreenRadioSink.java
+1
-1
LaneNormSink.java
...reaming/src/main/java/com/zhht/irn/sink/LaneNormSink.java
+29
-29
TravelMetricSink.java
...ing/src/main/java/com/zhht/irn/sink/TravelMetricSink.java
+2
-1
DruidConnectPoolUtils.java
...c/main/java/com/zhht/irn/utils/DruidConnectPoolUtils.java
+2
-1
No files found.
realtime/hologram-streaming/src/main/java/com/zhht/irn/functions/LaneNormProcessFunction.java
View file @
37d862da
package
com
.
zhht
.
irn
.
functions
;
package
com
.
zhht
.
irn
.
functions
;
import
com.alibaba.druid.pool.DruidPooledConnection
;
import
com.zhht.irn.entity.*
;
import
com.zhht.irn.entity.*
;
import
com.zhht.irn.enums.EventType
;
import
com.zhht.irn.enums.EventType
;
import
com.zhht.irn.utils.*
;
import
com.zhht.irn.utils.*
;
...
@@ -28,7 +29,7 @@ import java.util.stream.Stream;
...
@@ -28,7 +29,7 @@ import java.util.stream.Stream;
* @retrun:
* @retrun:
* @Creat :2022-11-04-9:53
* @Creat :2022-11-04-9:53
**/
**/
public
class
LaneNormProcessFunction
extends
KeyedCoProcessFunction
<
String
,
Cycle
,
TravelEvent
,
L
aneNorm
>
{
public
class
LaneNormProcessFunction
extends
KeyedCoProcessFunction
<
String
,
Cycle
,
TravelEvent
,
L
ist
<
LaneNorm
>
>
{
// state 管理当前周期中存储的旅行事件
// state 管理当前周期中存储的旅行事件
private
MapState
<
String
,
List
<
TravelEvent
>>
cycleTravel
;
private
MapState
<
String
,
List
<
TravelEvent
>>
cycleTravel
;
// 临时
// 临时
...
@@ -48,9 +49,9 @@ public class LaneNormProcessFunction extends KeyedCoProcessFunction<String, Cycl
...
@@ -48,9 +49,9 @@ public class LaneNormProcessFunction extends KeyedCoProcessFunction<String, Cycl
}
}
@Override
@Override
public
void
processElement1
(
Cycle
cycle
,
KeyedCoProcessFunction
<
String
,
Cycle
,
TravelEvent
,
L
aneNorm
>.
Context
ctx
,
Collector
<
LaneNorm
>
out
)
throws
Exception
{
public
void
processElement1
(
Cycle
cycle
,
KeyedCoProcessFunction
<
String
,
Cycle
,
TravelEvent
,
L
ist
<
LaneNorm
>>.
Context
ctx
,
Collector
<
List
<
LaneNorm
>
>
out
)
throws
Exception
{
processCycle
.
update
(
true
);
processCycle
.
update
(
true
);
List
<
LaneNorm
>
laneNorms
=
new
ArrayList
<>();
//初始化字典数据
//初始化字典数据
if
(
dict
.
get
(
"phaseDirection"
)
==
null
||
dict
.
get
(
"laneList"
)
==
null
||
dict
.
get
(
"dictResult"
)
==
null
||
dict
.
get
(
"positionList"
)
==
null
||
dict
.
get
(
"positionNameList"
)
==
null
)
{
if
(
dict
.
get
(
"phaseDirection"
)
==
null
||
dict
.
get
(
"laneList"
)
==
null
||
dict
.
get
(
"dictResult"
)
==
null
||
dict
.
get
(
"positionList"
)
==
null
||
dict
.
get
(
"positionNameList"
)
==
null
)
{
...
@@ -119,13 +120,16 @@ public class LaneNormProcessFunction extends KeyedCoProcessFunction<String, Cycl
...
@@ -119,13 +120,16 @@ public class LaneNormProcessFunction extends KeyedCoProcessFunction<String, Cycl
list
.
add
(
laneNorm
);
list
.
add
(
laneNorm
);
//交通流量为0得不参与计算
//交通流量为0得不参与计算
if
(
laneNorm
!=
null
&&
laneNorm
.
getTrafficCapacity
()
!=
0
d
)
{
if
(
laneNorm
!=
null
&&
laneNorm
.
getTrafficCapacity
()
!=
0
d
)
{
out
.
collect
(
laneNorm
);
laneNorms
.
add
(
laneNorm
);
}
}
}
}
//获取所有方向的指标
//获取所有方向的指标
getPositionNorm
(
list
,
positionList
,
cycle
,
out
);
getPositionNorm
(
list
,
positionList
,
cycle
,
laneNorms
);
//获取所有流向的指标
//获取所有流向的指标
getPositionNameNorm
(
list
,
positionNameList
,
cycle
,
out
);
getPositionNameNorm
(
list
,
positionNameList
,
cycle
,
laneNorms
);
if
(
laneNorms
.
size
()>
0
){
out
.
collect
(
laneNorms
);
}
List
<
TravelEvent
>
collect
=
car
.
stream
().
filter
(
recode
->
StringUtils
.
isEmpty
(
recode
.
getInCorssTime
())).
collect
(
Collectors
.
toList
());
List
<
TravelEvent
>
collect
=
car
.
stream
().
filter
(
recode
->
StringUtils
.
isEmpty
(
recode
.
getInCorssTime
())).
collect
(
Collectors
.
toList
());
List
<
TravelEvent
>
travelEvents1
=
cycleTravelTemp
.
get
(
cycle
.
getCrossCode
())==
null
?
new
ArrayList
<>():
cycleTravelTemp
.
get
(
cycle
.
getCrossCode
());
List
<
TravelEvent
>
travelEvents1
=
cycleTravelTemp
.
get
(
cycle
.
getCrossCode
())==
null
?
new
ArrayList
<>():
cycleTravelTemp
.
get
(
cycle
.
getCrossCode
());
//插入计算过程中缓存的数据
//插入计算过程中缓存的数据
...
@@ -138,7 +142,7 @@ public class LaneNormProcessFunction extends KeyedCoProcessFunction<String, Cycl
...
@@ -138,7 +142,7 @@ public class LaneNormProcessFunction extends KeyedCoProcessFunction<String, Cycl
}
}
@Override
@Override
public
void
processElement2
(
TravelEvent
event
,
KeyedCoProcessFunction
<
String
,
Cycle
,
TravelEvent
,
L
aneNorm
>.
Context
ctx
,
Collector
<
LaneNorm
>
out
)
throws
Exception
{
public
void
processElement2
(
TravelEvent
event
,
KeyedCoProcessFunction
<
String
,
Cycle
,
TravelEvent
,
L
ist
<
LaneNorm
>>.
Context
ctx
,
Collector
<
List
<
LaneNorm
>
>
out
)
throws
Exception
{
if
(
processCycle
.
value
()==
null
){
if
(
processCycle
.
value
()==
null
){
processCycle
.
update
(
false
);
processCycle
.
update
(
false
);
}
}
...
@@ -159,7 +163,7 @@ public class LaneNormProcessFunction extends KeyedCoProcessFunction<String, Cycl
...
@@ -159,7 +163,7 @@ public class LaneNormProcessFunction extends KeyedCoProcessFunction<String, Cycl
@Override
@Override
public
void
onTimer
(
long
timestamp
,
OnTimerContext
ctx
,
Collector
<
L
aneNorm
>
out
)
throws
Exception
{
public
void
onTimer
(
long
timestamp
,
OnTimerContext
ctx
,
Collector
<
L
ist
<
LaneNorm
>
>
out
)
throws
Exception
{
super
.
onTimer
(
timestamp
,
ctx
,
out
);
super
.
onTimer
(
timestamp
,
ctx
,
out
);
System
.
out
.
println
(
"触发定时器了。。。。"
);
System
.
out
.
println
(
"触发定时器了。。。。"
);
//通过定时器清空字典表
//通过定时器清空字典表
...
@@ -213,9 +217,9 @@ public class LaneNormProcessFunction extends KeyedCoProcessFunction<String, Cycl
...
@@ -213,9 +217,9 @@ public class LaneNormProcessFunction extends KeyedCoProcessFunction<String, Cycl
* @param list
* @param list
* @param positionNameList
* @param positionNameList
* @param cycle
* @param cycle
* @param
ou
t
* @param
collectLis
t
*/
*/
private
static
void
getPositionNameNorm
(
List
<
LaneNorm
>
list
,
List
<
Map
>
positionNameList
,
Cycle
cycle
,
Collector
<
LaneNorm
>
ou
t
)
{
private
static
void
getPositionNameNorm
(
List
<
LaneNorm
>
list
,
List
<
Map
>
positionNameList
,
Cycle
cycle
,
List
<
LaneNorm
>
collectLis
t
)
{
if
(
list
.
size
()
>
0
)
{
if
(
list
.
size
()
>
0
)
{
for
(
Map
map
:
positionNameList
)
{
for
(
Map
map
:
positionNameList
)
{
String
position
=
String
.
valueOf
(
map
.
get
(
"position"
));
String
position
=
String
.
valueOf
(
map
.
get
(
"position"
));
...
@@ -255,7 +259,7 @@ public class LaneNormProcessFunction extends KeyedCoProcessFunction<String, Cycl
...
@@ -255,7 +259,7 @@ public class LaneNormProcessFunction extends KeyedCoProcessFunction<String, Cycl
laneNorm
.
setSpotSpaceShare
(
d
>
1
d
?
1
d
:
d
);
laneNorm
.
setSpotSpaceShare
(
d
>
1
d
?
1
d
:
d
);
laneNorm
.
setSpotSpaceLength
(
sum1
);
laneNorm
.
setSpotSpaceLength
(
sum1
);
//发送方向整体信息
//发送方向整体信息
out
.
collect
(
laneNorm
);
collectList
.
add
(
laneNorm
);
}
}
}
}
}
}
...
@@ -266,9 +270,9 @@ public class LaneNormProcessFunction extends KeyedCoProcessFunction<String, Cycl
...
@@ -266,9 +270,9 @@ public class LaneNormProcessFunction extends KeyedCoProcessFunction<String, Cycl
* @param list
* @param list
* @param positionList
* @param positionList
* @param cycle
* @param cycle
* @param
ou
t
* @param
collectLis
t
*/
*/
private
static
void
getPositionNorm
(
List
<
LaneNorm
>
list
,
List
<
Map
>
positionList
,
Cycle
cycle
,
Collector
<
LaneNorm
>
ou
t
)
{
private
static
void
getPositionNorm
(
List
<
LaneNorm
>
list
,
List
<
Map
>
positionList
,
Cycle
cycle
,
List
<
LaneNorm
>
collectLis
t
)
{
if
(
list
.
size
()
>
0
)
{
if
(
list
.
size
()
>
0
)
{
for
(
Map
map
:
positionList
)
{
for
(
Map
map
:
positionList
)
{
String
position
=
String
.
valueOf
(
map
.
get
(
"position"
));
String
position
=
String
.
valueOf
(
map
.
get
(
"position"
));
...
@@ -306,7 +310,7 @@ public class LaneNormProcessFunction extends KeyedCoProcessFunction<String, Cycl
...
@@ -306,7 +310,7 @@ public class LaneNormProcessFunction extends KeyedCoProcessFunction<String, Cycl
laneNorm
.
setSpotSpaceShare
(
d
>
1
d
?
1
d
:
d
);
laneNorm
.
setSpotSpaceShare
(
d
>
1
d
?
1
d
:
d
);
laneNorm
.
setSpotSpaceLength
(
sum1
);
laneNorm
.
setSpotSpaceLength
(
sum1
);
//发送方向整体信息
//发送方向整体信息
out
.
collect
(
laneNorm
);
collectList
.
add
(
laneNorm
);
}
}
}
}
}
}
...
@@ -494,9 +498,9 @@ public class LaneNormProcessFunction extends KeyedCoProcessFunction<String, Cycl
...
@@ -494,9 +498,9 @@ public class LaneNormProcessFunction extends KeyedCoProcessFunction<String, Cycl
return
(
maxQueneLength
*
6
);
return
(
maxQueneLength
*
6
);
}
}
private
static
Connection
getConnection
()
throws
Exception
{
private
static
DruidPooled
Connection
getConnection
()
throws
Exception
{
//修改为从连接池中取连接
//修改为从连接池中取连接
Connection
connection
=
DruidConnectPoolUtils
.
getConncent
();
DruidPooledConnection
connection
=
DruidConnectPoolUtils
.
getConnection
();
//Connection connection = DorisUtils.getConnection();
//Connection connection = DorisUtils.getConnection();
return
connection
;
return
connection
;
}
}
...
...
realtime/hologram-streaming/src/main/java/com/zhht/irn/functions/TravelEventAndCycleCoProcessFunction.java
View file @
37d862da
...
@@ -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 @
37d862da
...
@@ -77,7 +77,7 @@ public class LaneNormJob {
...
@@ -77,7 +77,7 @@ 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
<
L
aneNorm
>
process
=
cycleTravelEventConnectedStreams
.
process
(
new
LaneNormProcessFunction
()).
setParallelism
(
4
);
SingleOutputStreamOperator
<
L
ist
<
LaneNorm
>
>
process
=
cycleTravelEventConnectedStreams
.
process
(
new
LaneNormProcessFunction
()).
setParallelism
(
4
);
process
.
addSink
(
new
LaneNormSink
()).
name
(
"laneNormJobSink"
);
process
.
addSink
(
new
LaneNormSink
()).
name
(
"laneNormJobSink"
);
env
.
execute
(
"laneNormJob"
);
env
.
execute
(
"laneNormJob"
);
}
}
...
...
realtime/hologram-streaming/src/main/java/com/zhht/irn/sink/DirectionEvalSecondSink.java
View file @
37d862da
...
@@ -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
;
...
@@ -28,7 +29,7 @@ public class DirectionEvalSecondSink extends RichSinkFunction<DirectionEvalSecon
...
@@ -28,7 +29,7 @@ public class DirectionEvalSecondSink extends RichSinkFunction<DirectionEvalSecon
@Override
@Override
public
void
open
(
Configuration
parameters
)
throws
Exception
{
public
void
open
(
Configuration
parameters
)
throws
Exception
{
super
.
open
(
parameters
);
super
.
open
(
parameters
);
connection
=
D
oris
Utils
.
getConnection
();
connection
=
D
ruidConnectPool
Utils
.
getConnection
();
String
insertSql
=
"insert into app_direction_eval_second_metric"
+
String
insertSql
=
"insert into app_direction_eval_second_metric"
+
"(cross_id, lane_id, cycle_order, current_second, acc_arrived_flow, acc_queue_length, acc_stop_count,"
+
"(cross_id, lane_id, cycle_order, current_second, acc_arrived_flow, acc_queue_length, acc_stop_count,"
+
" stop_flag_count, statistic_time, cycle_start_time, cycle_end_time, record_date) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)"
;
" stop_flag_count, statistic_time, cycle_start_time, cycle_end_time, record_date) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)"
;
...
...
realtime/hologram-streaming/src/main/java/com/zhht/irn/sink/GreenRadioSink.java
View file @
37d862da
...
@@ -31,7 +31,7 @@ public class GreenRadioSink extends RichSinkFunction<Cycle> {
...
@@ -31,7 +31,7 @@ public class GreenRadioSink extends RichSinkFunction<Cycle> {
super
.
open
(
parameters
);
super
.
open
(
parameters
);
// path暂定为固定值
// path暂定为固定值
//String path = ".\\realtime\\hologram-streaming\\src\\main\\resources\\doris.properties";
//String path = ".\\realtime\\hologram-streaming\\src\\main\\resources\\doris.properties";
connection
=
DruidConnectPoolUtils
.
getConn
cent
();
connection
=
DruidConnectPoolUtils
.
getConn
ection
();
String
cycleSql
=
"insert into app_cycle_green_ratio"
+
String
cycleSql
=
"insert into app_cycle_green_ratio"
+
"(id,cycle_order,cross_id,signal_code,begin_time,end_time,duration,green_ratio,loss_time,statistic_time,record_date) "
+
"(id,cycle_order,cross_id,signal_code,begin_time,end_time,duration,green_ratio,loss_time,statistic_time,record_date) "
+
"values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)"
;
"values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)"
;
...
...
realtime/hologram-streaming/src/main/java/com/zhht/irn/sink/LaneNormSink.java
View file @
37d862da
...
@@ -12,6 +12,7 @@ import org.apache.flink.streaming.api.functions.sink.SinkFunction;
...
@@ -12,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:
...
@@ -20,7 +21,7 @@ import java.sql.PreparedStatement;
...
@@ -20,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
;
...
@@ -31,7 +32,7 @@ public class LaneNormSink extends RichSinkFunction<LaneNorm> {
...
@@ -31,7 +32,7 @@ public class LaneNormSink extends RichSinkFunction<LaneNorm> {
public
void
open
(
Configuration
parameters
)
throws
Exception
{
public
void
open
(
Configuration
parameters
)
throws
Exception
{
super
.
open
(
parameters
);
super
.
open
(
parameters
);
// path暂定为固定值
// path暂定为固定值
connection
=
DruidConnectPoolUtils
.
getConn
cent
();
connection
=
DruidConnectPoolUtils
.
getConn
ection
();
insertPstmt
=
connection
.
prepareStatement
(
"insert into "
+
insertPstmt
=
connection
.
prepareStatement
(
"insert into "
+
"app_cross_dimension_norm(cross_id,lane_id,direction,cycle_order,max_queue_length,effect_green_time,pass_capacity,traffic_capacity,saturation,residual_capacity,"
+
"app_cross_dimension_norm(cross_id,lane_id,direction,cycle_order,max_queue_length,effect_green_time,pass_capacity,traffic_capacity,saturation,residual_capacity,"
+
"spot_space_share,dimension_name,`order`,statistic_time,`type`,spot_space_length,cycle_start_time,cycle_end_time,record_date) values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)"
);
"spot_space_share,dimension_name,`order`,statistic_time,`type`,spot_space_length,cycle_start_time,cycle_end_time,record_date) values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)"
);
...
@@ -50,33 +51,32 @@ public class LaneNormSink extends RichSinkFunction<LaneNorm> {
...
@@ -50,33 +51,32 @@ 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
{
insertPstmt
.
setString
(
1
,
value
.
getCorssId
());
if
(
laneNorms
.
size
()==
0
){
insertPstmt
.
setString
(
2
,
value
.
getLaneId
());
return
;
insertPstmt
.
setString
(
3
,
value
.
getDirection
());
}
insertPstmt
.
setLong
(
4
,
value
.
getCycleOrder
());
for
(
LaneNorm
value:
laneNorms
){
insertPstmt
.
setDouble
(
5
,
value
.
getMaxQueueLength
());
insertPstmt
.
setString
(
1
,
value
.
getCorssId
());
insertPstmt
.
setString
(
6
,
value
.
getEffectGreenTime
());
insertPstmt
.
setString
(
2
,
value
.
getLaneId
());
insertPstmt
.
setDouble
(
7
,
value
.
getPassCapacity
());
insertPstmt
.
setString
(
3
,
value
.
getDirection
());
insertPstmt
.
setDouble
(
8
,
value
.
getTrafficCapacity
());
insertPstmt
.
setLong
(
4
,
value
.
getCycleOrder
());
insertPstmt
.
setDouble
(
9
,
value
.
getSaturation
());
insertPstmt
.
setDouble
(
5
,
value
.
getMaxQueueLength
());
insertPstmt
.
setDouble
(
10
,
value
.
getResidualCapacity
());
insertPstmt
.
setString
(
6
,
value
.
getEffectGreenTime
());
insertPstmt
.
setDouble
(
11
,
value
.
getSpotSpaceShare
());
insertPstmt
.
setDouble
(
7
,
value
.
getPassCapacity
());
insertPstmt
.
setString
(
12
,
value
.
getLaneName
());
insertPstmt
.
setDouble
(
8
,
value
.
getTrafficCapacity
());
insertPstmt
.
setInt
(
13
,
value
.
getOrder
());
insertPstmt
.
setDouble
(
9
,
value
.
getSaturation
());
insertPstmt
.
setString
(
14
,
DateUtils
.
getTodayTime
());
insertPstmt
.
setDouble
(
10
,
value
.
getResidualCapacity
());
insertPstmt
.
setString
(
15
,
value
.
getType
());
insertPstmt
.
setDouble
(
11
,
value
.
getSpotSpaceShare
());
insertPstmt
.
setInt
(
16
,
value
.
getSpotSpaceLength
());
insertPstmt
.
setString
(
12
,
value
.
getLaneName
());
insertPstmt
.
setString
(
17
,
value
.
getCycleStartTime
());
insertPstmt
.
setInt
(
13
,
value
.
getOrder
());
insertPstmt
.
setString
(
18
,
value
.
getCycleEndTime
());
insertPstmt
.
setString
(
14
,
DateUtils
.
getTodayTime
());
insertPstmt
.
setString
(
19
,
DateUtils
.
getTodayTime
());
insertPstmt
.
setString
(
15
,
value
.
getType
());
insertPstmt
.
execute
();
insertPstmt
.
setInt
(
16
,
value
.
getSpotSpaceLength
());
/*if(counter < 10) {
insertPstmt
.
setString
(
17
,
value
.
getCycleStartTime
());
counter ++;
insertPstmt
.
setString
(
18
,
value
.
getCycleEndTime
());
insertPstmt
.
setString
(
19
,
DateUtils
.
getTodayTime
());
insertPstmt
.
addBatch
();
insertPstmt
.
addBatch
();
} else {
}
insertPstmt.executeBatch();
insertPstmt
.
executeBatch
();
counter = 0;
}*/
}
}
}
}
realtime/hologram-streaming/src/main/java/com/zhht/irn/sink/TravelMetricSink.java
View file @
37d862da
...
@@ -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
;
...
@@ -23,7 +24,7 @@ public class TravelMetricSink extends RichSinkFunction<Travel> {
...
@@ -23,7 +24,7 @@ public class TravelMetricSink extends RichSinkFunction<Travel> {
@Override
@Override
public
void
open
(
Configuration
parameters
)
throws
Exception
{
public
void
open
(
Configuration
parameters
)
throws
Exception
{
super
.
open
(
parameters
);
super
.
open
(
parameters
);
connection
=
D
oris
Utils
.
getConnection
();
connection
=
D
ruidConnectPool
Utils
.
getConnection
();
//目前值考虑插入,不考虑更新
//目前值考虑插入,不考虑更新
String
insertSql
=
""
+
String
insertSql
=
""
+
...
...
realtime/hologram-streaming/src/main/java/com/zhht/irn/utils/DruidConnectPoolUtils.java
View file @
37d862da
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
org.apache.flink.api.java.utils.ParameterTool
;
import
java.io.InputStream
;
import
java.io.InputStream
;
...
@@ -55,7 +56,7 @@ public class DruidConnectPoolUtils {
...
@@ -55,7 +56,7 @@ public class DruidConnectPoolUtils {
pool
=
dataSource
;
pool
=
dataSource
;
}
}
public
static
Connection
getConncent
(){
public
static
DruidPooledConnection
getConnection
(){
try
{
try
{
if
(
pool
==
null
){
if
(
pool
==
null
){
InputStream
inputStream
=
DorisUtils
.
class
.
getClassLoader
().
getResourceAsStream
(
"doris.properties"
);
InputStream
inputStream
=
DorisUtils
.
class
.
getClassLoader
().
getResourceAsStream
(
"doris.properties"
);
...
...
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