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
0d8d24f4
Commit
0d8d24f4
authored
Dec 09, 2022
by
黄准
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
公共doris连接池
parent
8e5edfaf
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
59 additions
and
6 deletions
+59
-6
LaneNormProcessFunction.java
.../java/com/zhht/irn/functions/LaneNormProcessFunction.java
+0
-0
LaneNormJob.java
...streaming/src/main/java/com/zhht/irn/job/LaneNormJob.java
+2
-2
LaneNormSink.java
...reaming/src/main/java/com/zhht/irn/sink/LaneNormSink.java
+9
-1
DruidConnectPoolUtils.java
...c/main/java/com/zhht/irn/utils/DruidConnectPoolUtils.java
+48
-3
No files found.
realtime/hologram-streaming/src/main/java/com/zhht/irn/functions/LaneNormProcessFunction.java
View file @
0d8d24f4
This diff is collapsed.
Click to expand it.
realtime/hologram-streaming/src/main/java/com/zhht/irn/job/LaneNormJob.java
View file @
0d8d24f4
...
@@ -77,8 +77,8 @@ public class LaneNormJob {
...
@@ -77,8 +77,8 @@ 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
<
LaneNorm
>
process
=
cycleTravelEventConnectedStreams
.
process
(
new
LaneNormProcessFunction
())
.
setParallelism
(
4
)
;
process
.
addSink
(
new
LaneNormSink
());
process
.
addSink
(
new
LaneNormSink
())
.
name
(
"laneNormJobSink"
)
;
env
.
execute
(
"laneNormJob"
);
env
.
execute
(
"laneNormJob"
);
}
}
...
...
realtime/hologram-streaming/src/main/java/com/zhht/irn/sink/LaneNormSink.java
View file @
0d8d24f4
...
@@ -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
;
...
@@ -30,7 +31,7 @@ public class LaneNormSink extends RichSinkFunction<LaneNorm> {
...
@@ -30,7 +31,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
=
D
orisUtils
.
getConnection
();
connection
=
D
ruidConnectPoolUtils
.
getConncent
();
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 (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)"
);
...
@@ -70,5 +71,12 @@ public class LaneNormSink extends RichSinkFunction<LaneNorm> {
...
@@ -70,5 +71,12 @@ public class LaneNormSink extends RichSinkFunction<LaneNorm> {
insertPstmt
.
setString
(
18
,
value
.
getCycleEndTime
());
insertPstmt
.
setString
(
18
,
value
.
getCycleEndTime
());
insertPstmt
.
setString
(
19
,
DateUtils
.
getTodayTime
());
insertPstmt
.
setString
(
19
,
DateUtils
.
getTodayTime
());
insertPstmt
.
execute
();
insertPstmt
.
execute
();
/*if(counter < 10) {
counter ++;
insertPstmt.addBatch();
} else {
insertPstmt.executeBatch();
counter = 0;
}*/
}
}
}
}
realtime/hologram-streaming/src/main/java/com/zhht/irn/utils/DruidConnectPoolUtils.java
View file @
0d8d24f4
package
com
.
zhht
.
irn
.
utils
;
package
com
.
zhht
.
irn
.
utils
;
import
com.alibaba.druid.pool.DruidDataSource
;
import
com.alibaba.druid.pool.DruidDataSource
;
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 +14,9 @@ import java.sql.SQLException;
...
@@ -12,6 +14,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,17 +30,57 @@ public class DruidConnectPoolUtils {
...
@@ -25,17 +30,57 @@ 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
.
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
);
// 借出连接时不要测试,否则很影响性能
return
dataSource
;
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
(
10
);
//初始连接数,默认0
dataSource
.
setMaxActive
(
100
);
//最大连接数,默认8
dataSource
.
setMinIdle
(
5
);
//最小闲置数
dataSource
.
setMaxWait
(
3000
);
//获取连接的最大等待时间,单位毫秒
dataSource
.
setTestWhileIdle
(
true
);
//指明连接是否被空闲连接回收器(如果有)进行检验.如果检测失败,则连接将被从池中去除
dataSource
.
setTestOnBorrow
(
false
);
// 借出连接时不要测试,否则很影响性能
pool
=
dataSource
;
}
public
static
Connection
getConncent
(){
try
{
if
(
pool
==
null
){
InputStream
inputStream
=
DorisUtils
.
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
;
}
/**
/**
* CK close
* CK close
* @param connection
* @param connection
...
...
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