24
24
import org .apache .inlong .manager .common .enums .SinkType ;
25
25
import org .apache .inlong .manager .common .pojo .sink .SinkFieldResponse ;
26
26
import org .apache .inlong .manager .common .pojo .sink .SinkResponse ;
27
+ import org .apache .inlong .manager .common .pojo .sink .ck .ClickHouseSinkResponse ;
27
28
import org .apache .inlong .manager .common .pojo .sink .hbase .HbaseSinkResponse ;
28
29
import org .apache .inlong .manager .common .pojo .sink .hive .HiveSinkResponse ;
29
30
import org .apache .inlong .manager .common .pojo .sink .kafka .KafkaSinkResponse ;
36
37
import org .apache .inlong .sort .protocol .node .format .DebeziumJsonFormat ;
37
38
import org .apache .inlong .sort .protocol .node .format .Format ;
38
39
import org .apache .inlong .sort .protocol .node .format .JsonFormat ;
40
+ import org .apache .inlong .sort .protocol .node .load .ClickHouseLoadNode ;
39
41
import org .apache .inlong .sort .protocol .node .load .HbaseLoadNode ;
40
42
import org .apache .inlong .sort .protocol .node .load .HiveLoadNode ;
41
43
import org .apache .inlong .sort .protocol .node .load .KafkaLoadNode ;
@@ -76,6 +78,8 @@ public static LoadNode createLoadNode(SinkResponse sinkResponse) {
76
78
return createLoadNode ((HbaseSinkResponse ) sinkResponse );
77
79
case POSTGRES :
78
80
return createLoadNode ((PostgresSinkResponse ) sinkResponse );
81
+ case CLICKHOUSE :
82
+ return createLoadNode ((ClickHouseSinkResponse ) sinkResponse );
79
83
default :
80
84
throw new IllegalArgumentException (
81
85
String .format ("Unsupported sinkType=%s to create loadNode" , sinkType ));
@@ -227,6 +231,7 @@ public static HbaseLoadNode createLoadNode(HbaseSinkResponse hbaseSinkResponse)
227
231
228
232
/**
229
233
* create postgres load node
234
+ *
230
235
* @param postgresSinkResponse postgresSinkResponse
231
236
* @return postgres load node
232
237
*/
@@ -247,8 +252,31 @@ public static PostgresLoadNode createLoadNode(PostgresSinkResponse postgresSinkR
247
252
postgresSinkResponse .getDbName () + "." + postgresSinkResponse .getTableName (),
248
253
postgresSinkResponse .getPrimaryKey ());
249
254
}
250
-
251
- /**f
255
+
256
+ /**
257
+ * create clickHouse load node
258
+ *
259
+ * @param clickHouseSinkResponse clickHouseSinkResponse
260
+ * @return
261
+ */
262
+ public static ClickHouseLoadNode createLoadNode (ClickHouseSinkResponse clickHouseSinkResponse ) {
263
+ List <SinkFieldResponse > sinkFieldResponses = clickHouseSinkResponse .getFieldList ();
264
+ String name = clickHouseSinkResponse .getSinkName ();
265
+ List <FieldInfo > fields = sinkFieldResponses .stream ()
266
+ .map (sinkFieldResponse -> FieldInfoUtils .parseSinkFieldInfo (sinkFieldResponse ,
267
+ name ))
268
+ .collect (Collectors .toList ());
269
+ List <FieldRelationShip > fieldRelationShips = parseSinkFields (sinkFieldResponses , name );
270
+ return new ClickHouseLoadNode (clickHouseSinkResponse .getSinkName (),
271
+ clickHouseSinkResponse .getSinkName (),
272
+ fields , fieldRelationShips , null , null , 1 ,
273
+ null , clickHouseSinkResponse .getTableName (),
274
+ clickHouseSinkResponse .getJdbcUrl (),
275
+ clickHouseSinkResponse .getUsername (),
276
+ clickHouseSinkResponse .getPassword ());
277
+ }
278
+
279
+ /**
252
280
* Parse information field of data sink.
253
281
*/
254
282
public static List <FieldRelationShip > parseSinkFields (List <SinkFieldResponse > sinkFieldResponses , String sinkName ) {
0 commit comments