44> > * 自定义create view 语法
55> > * 自定义create function 语法
66> > * 实现了流与维表的join
7+ > > * 支持原生FLinkSQL所有的语法
78
89# 已支持
910 * 源表:kafka 0.9,1.x版本
1415 * 增加oracle维表,结果表功能
1516 * 增加SQlServer维表,结果表功能
1617 * 增加kafka结果表功能
18+ * 增加SQL支持CEP
19+ * 维表快照
1720
1821## 1 快速起步
1922### 1.1 运行模式
2629### 1.2 执行环境
2730
2831* Java: JDK8及以上
29- * Flink集群: 1.4(单机模式不需要安装Flink集群)
32+ * Flink集群: 1.4,1.5 (单机模式不需要安装Flink集群)
3033* 操作系统:理论上不限
3134
3235### 1.3 打包
@@ -44,16 +47,17 @@ mvn clean package -Dmaven.test.skip
4447#### 1.4.1 启动命令
4548
4649```
47- sh submit.sh -sql D:\sideSql.txt -name xctest -remoteSqlPluginPath /opt/dtstack/150_flinkplugin/sqlplugin -localSqlPluginPath D:\gitspace\flinkStreamSQL\plugins -mode yarn -flinkconf D:\flink_home\kudu150etc -yarnconf D:\hadoop\etc\hadoopkudu -confProp {\"time.characteristic\":\"EventTime\",\"sql.checkpoint.interval\":10000}
50+ sh submit.sh -sql D:\sideSql.txt -name xctest -remoteSqlPluginPath /opt/dtstack/150_flinkplugin/sqlplugin -localSqlPluginPath D:\gitspace\flinkStreamSQL\plugins -addjar \["udf.jar\"\] - mode yarn -flinkconf D:\flink_home\kudu150etc -yarnconf D:\hadoop\etc\hadoopkudu -confProp \ {\"time.characteristic\":\"EventTime\",\"sql.checkpoint.interval\":10000\ }
4851```
4952
5053#### 1.4.2 命令行参数选项
5154
52- * ** model **
55+ * ** mode **
5356 * 描述:执行模式,也就是flink集群的工作模式
5457 * local: 本地模式
55- * standalone: 独立部署模式的flink集群
56- * yarn: yarn模式的flink集群
58+ * standalone: 提交到独立部署模式的flink集群
59+ * yarn: 提交到yarn模式的flink集群(即提交到已有flink集群)
60+ * yarnPer: yarn per_job模式提交(即创建新flink application)
5761 * 必选:否
5862 * 默认值:local
5963
@@ -79,6 +83,7 @@ sh submit.sh -sql D:\sideSql.txt -name xctest -remoteSqlPluginPath /opt/dtstack
7983
8084* ** addjar**
8185 * 描述:扩展jar路径,当前主要是UDF定义的jar;
86+ * 格式:json
8287 * 必选:否
8388 * 默认值:无
8489
@@ -97,6 +102,11 @@ sh submit.sh -sql D:\sideSql.txt -name xctest -remoteSqlPluginPath /opt/dtstack
97102 * sql.max.concurrent.checkpoints: 最大并发生成checkpoint数
98103 * sql.checkpoint.cleanup.mode: 默认是不会将checkpoint存储到外部存储,[ true(任务cancel之后会删除外部存储)|false(外部存储需要手动删除)]
99104 * flinkCheckpointDataURI: 设置checkpoint的外部存储路径,根据实际的需求设定文件路径,hdfs://, file://
105+ * jobmanager.memory.mb: per_job模式下指定jobmanager的内存大小(单位MB, 默认值:768)
106+ * taskmanager.memory.mb: per_job模式下指定taskmanager的内存大小(单位MB, 默认值:768)
107+ * taskmanager.num: per_job模式下指定taskmanager的实例数(默认1)
108+ * taskmanager.slots:per_job模式下指定每个taskmanager对应的slot数量(默认1)
109+ * [ prometheus 相关参数] ( docs/prometheus.md ) per_job可指定metric写入到外部监控组件,以prometheus pushgateway举例
100110
101111
102112* ** flinkconf**
@@ -118,6 +128,16 @@ sh submit.sh -sql D:\sideSql.txt -name xctest -remoteSqlPluginPath /opt/dtstack
118128 * 描述:指示保存点是否允许非还原状态的标志
119129 * 必选:否
120130 * 默认值:false
131+
132+ * ** flinkJarPath**
133+ * 描述:per_job 模式提交需要指定本地的flink jar存放路径
134+ * 必选:否
135+ * 默认值:false
136+
137+ * ** queue**
138+ * 描述:per_job 模式下指定的yarn queue
139+ * 必选:否
140+ * 默认值:false
121141
122142## 2 结构
123143### 2.1 源表插件
@@ -135,16 +155,45 @@ sh submit.sh -sql D:\sideSql.txt -name xctest -remoteSqlPluginPath /opt/dtstack
135155* [ mysql 维表插件] ( docs/mysqlSide.md )
136156* [ mongo 维表插件] ( docs/mongoSide.md )
137157* [ redis 维表插件] ( docs/redisSide.md )
158+
159+ ## 3 性能指标(新增)
160+
161+ ### kafka插件
162+ * 业务延迟: flink_taskmanager_job_task_operator_dtEventDelay(单位s)
163+ 数据本身的时间和进入flink的当前时间的差值.
164+
165+ * 各个输入源的脏数据:flink_taskmanager_job_task_operator_dtDirtyData
166+ 从kafka获取的数据解析失败的视为脏数据
167+
168+ * 各Source的数据输入TPS: flink_taskmanager_job_task_operator_dtNumRecordsInRate
169+ kafka接受的记录数(未解析前)/s
170+
171+ * 各Source的数据输入RPS: flink_taskmanager_job_task_operator_dtNumRecordsInResolveRate
172+ kafka接受的记录数(解析后)/s
173+
174+ * 各Source的数据输入BPS: flink_taskmanager_job_task_operator_dtNumBytesInRate
175+ kafka接受的字节数/s
176+
177+ * Kafka作为输入源的各个分区的延迟数: flink_taskmanager_job_task_operator_topic_partition_dtTopicPartitionLag
178+ 当前kafka10,kafka11有采集该指标
179+
180+ * 各个输出源RPS: flink_taskmanager_job_task_operator_dtNumRecordsOutRate
181+ 写入的外部记录数/s
182+
138183
139- ## 3 样例
184+ ## 4 样例
140185
141186```
187+
188+ CREATE (scala|table) FUNCTION CHARACTER_LENGTH WITH com.dtstack.Kun
189+
190+
142191CREATE TABLE MyTable(
143192 name varchar,
144193 channel varchar,
145194 pv int,
146195 xctime bigint,
147- CHARACTER_LENGTH(channel) AS timeLeng
196+ CHARACTER_LENGTH(channel) AS timeLeng //自定义的函数
148197 )WITH(
149198 type ='kafka09',
150199 bootstrapServers ='172.16.8.198:9092',
@@ -182,7 +231,7 @@ CREATE TABLE sideTable(
182231 cf:name varchar as name,
183232 cf:info varchar as info,
184233 PRIMARY KEY(name),
185- PERIOD FOR SYSTEM_TIME
234+ PERIOD FOR SYSTEM_TIME //维表标识
186235 )WITH(
187236 type ='hbase',
188237 zookeeperQuorum ='rdos1:2181',
0 commit comments