1
-
2
1
## 1.格式:
3
- ```
2
+
3
+ ``` sql
4
4
CREATE TABLE tableName (
5
5
colName cloType,
6
6
...
20
20
);
21
21
```
22
22
23
- # 2.支持版本
23
+ ## 2.支持版本
24
+
24
25
2.10.0-cdh5.13.0
25
-
26
+
26
27
## 3.表结构定义
27
-
28
- | 参数名称| 含义|
29
- | ----| ---|
30
- | tableName | 注册到flink的表名称|
31
- | colName | 列名称|
32
- | colType | 列类型 [ colType支持的类型] ( docs/colType.md ) |
33
- | PERIOD FOR SYSTEM_TIME | 关键字表明该定义的表为维表信息|
34
- | PRIMARY KEY(keyInfo) | 维表主键定义;多个列之间用逗号隔开|
35
-
36
- ## 4.参数
37
-
38
- | 参数名称| 含义| 是否必填| 默认值|
39
- | ----| ---| ---| ----|
40
- | type | 表明维表的类型[ impala] | 是||
41
- | url | 连接postgresql数据库 jdbcUrl | 是||
42
- | userName | postgresql连接用户名 | 是||
43
- | password | postgresql连接密码| 是||
44
- | tableName | postgresql表名称| 是||
45
- | authMech | 身份验证机制 (0, 1, 2, 3), 暂不支持kerberos | 是| 0|
46
- | principal | kerberos用于登录的principal(authMech=1时独有) | authMech=1为必填|
47
- | keyTabFilePath | keytab文件的路径(authMech=1时独有) | authMech=1为必填 ||
48
- | krb5FilePath | krb5.conf文件路径(authMech=1时独有) | authMech=1为必填||
49
- | krbServiceName | Impala服务器的Kerberos principal名称(authMech=1时独有) | authMech=1为必填||
50
- | krbRealm | Kerberos的域名(authMech=1时独有) | 否| HADOOP.COM |
51
- | enablePartition | 是否支持分区| 否| false|
52
- | partitionfields | 分区字段名| 否,enablePartition='true'时为必填||
53
- | partitionFieldTypes | 分区字段类型 | 否,enablePartition='true'时为必填||
54
- | partitionValues | 分区值| 否,enablePartition='true'时为必填||
55
- | cache | 维表缓存策略(NONE/LRU/ALL)| 否| NONE|
56
- | partitionedJoin | 是否在維表join之前先根据 設定的key 做一次keyby操作(可以減少维表的数据缓存量)| 否| false|
57
-
58
- ----------
59
- > 缓存策略
60
- * NONE: 不做内存缓存
61
- * LRU:
62
- * cacheSize: 缓存的条目数量
63
- * cacheTTLMs:缓存的过期时间(ms)
64
-
65
-
66
- ## 5.样例
28
+
29
+ [ 维表参数信息] ( docs/plugin/sideParams.md )
30
+
31
+ impala独有的参数配置
32
+
33
+ | 参数名称 | 含义 | 是否必填 | 默认值 |
34
+ | ------------------- | ------------------------------------------------------------ | --------------------------------- | ---------- |
35
+ | type | 表明维表的类型[ impala] | 是 | |
36
+ | url | 连接postgresql数据库 jdbcUrl | 是 | |
37
+ | userName | postgresql连接用户名 | 是 | |
38
+ | password | postgresql连接密码 | 是 | |
39
+ | tableName | postgresql表名称 | 是 | |
40
+ | authMech | 身份验证机制 (0, 1, 2, 3), 暂不支持kerberos | 是 | 0 |
41
+ | principal | kerberos用于登录的principal(authMech=1时独有) | authMech=1为必填 | |
42
+ | keyTabFilePath | keytab文件的路径(authMech=1时独有) | authMech=1为必填 | |
43
+ | krb5FilePath | krb5.conf文件路径(authMech=1时独有) | authMech=1为必填 | |
44
+ | krbServiceName | Impala服务器的Kerberos principal名称(authMech=1时独有) | authMech=1为必填 | |
45
+ | krbRealm | Kerberos的域名(authMech=1时独有) | 否 | HADOOP.COM |
46
+ | enablePartition | 是否支持分区 | 否 | false |
47
+ | partitionfields | 分区字段名 | 否,enablePartition='true'时为必填 | |
48
+ | partitionFieldTypes | 分区字段类型 | 否,enablePartition='true'时为必填 | |
49
+ | partitionValues | 分区值 | 否,enablePartition='true'时为必填 | |
50
+ | cache | 维表缓存策略(NONE/LRU/ALL) | 否 | NONE |
51
+ | partitionedJoin | 是否在維表join之前先根据 設定的key 做一次keyby操作(可以減少维表的数据缓存量) | 否 | false |
52
+
53
+ ## 4.样例
54
+
55
+ ### ALL全量维表定义
56
+
57
+ ``` sql
58
+ // 定义全量维表
59
+ CREATE TABLE sideTable (
60
+ id INT ,
61
+ name VARCHAR ,
62
+ PRIMARY KEY (id) ,
63
+ PERIOD FOR SYSTEM_TIME
64
+ )WITH(
65
+ type = ' mysql' ,
66
+ url = ' jdbc:impala://localhost:21050/mqtest' ,
67
+ userName = ' dtstack' ,
68
+ password = ' 1abc123' ,
69
+ tableName = ' test_impala_all' ,
70
+ authMech= ' 3' ,
71
+ cache = ' ALL' ,
72
+ cacheTTLMs = ' 60000' ,
73
+ parallelism = ' 2' ,
74
+ partitionedJoin= ' false'
75
+ );
76
+
67
77
```
78
+
79
+ ### LRU异步维表定义
80
+
81
+ ``` sql
68
82
create table sideTable (
69
83
channel varchar ,
70
84
xccount int ,
@@ -84,14 +98,79 @@ create table sideTable(
84
98
partitionedJoin= ' false'
85
99
);
86
100
101
+ ```
102
+
103
+ ### MySQL异步维表关联
104
+
105
+ ``` sql
106
+ CREATE TABLE MyTable (
107
+ id int ,
108
+ name varchar
109
+ )WITH(
110
+ type = ' kafka11' ,
111
+ bootstrapServers = ' 172.16.8.107:9092' ,
112
+ zookeeperQuorum = ' 172.16.8.107:2181/kafka' ,
113
+ offsetReset = ' latest' ,
114
+ topic = ' cannan_yctest01' ,
115
+ timezone= ' Asia/Shanghai' ,
116
+ enableKeyPartitions = ' false' ,
117
+ topicIsPattern = ' false' ,
118
+ parallelism = ' 1'
119
+ );
120
+
121
+ CREATE TABLE MyResult (
122
+ id INT ,
123
+ name VARCHAR
124
+ )WITH(
125
+ type= ' impala' ,
126
+ url= ' jdbc:impala://localhost:21050/mytest' ,
127
+ userName= ' dtstack' ,
128
+ password= ' abc123' ,
129
+ tableName = ' test_impala_zf' ,
130
+ updateMode = ' append' ,
131
+ parallelism = ' 1' ,
132
+ batchSize = ' 100' ,
133
+ batchWaitInterval = ' 1000'
134
+ );
135
+
136
+ CREATE TABLE sideTable (
137
+ id INT ,
138
+ name VARCHAR ,
139
+ PRIMARY KEY (id) ,
140
+ PERIOD FOR SYSTEM_TIME
141
+ )WITH(
142
+ type= ' impala' ,
143
+ url= ' jdbc:impala://localhost:21050/mytest' ,
144
+ userName= ' dtstack' ,
145
+ password= ' abc123' ,
146
+ tableName = ' test_impala_10' ,
147
+ partitionedJoin = ' false' ,
148
+ cache = ' LRU' ,
149
+ cacheSize = ' 10000' ,
150
+ cacheTTLMs = ' 60000' ,
151
+ asyncPoolSize = ' 3' ,
152
+ parallelism = ' 1'
153
+ );
154
+
155
+ insert
156
+ into
157
+ MyResult
158
+ select
159
+ m .id ,
160
+ s .name
161
+ from
162
+ MyTable m
163
+ join
164
+ sideTable s
165
+ on m .id = s .id ;
87
166
88
167
```
89
168
90
- ## 6. 分区样例
169
+ ### 分区样例
91
170
92
171
注:分区字段放在最后面,如下,name是分区字段,放在channel,xccount字段的后面
93
172
94
- ```
173
+ ``` sql
95
174
create table sideTable (
96
175
channel varchar ,
97
176
xccount int ,
@@ -118,4 +197,3 @@ create table sideTable(
118
197
119
198
```
120
199
121
-
0 commit comments