目录
source
hive
1.支持的引擎
Spark 不支持 Flink
2.选项
名字 | 类型 | 必须 | 默认值 |
pre_sql | string | 是 | - |
common-options | string | 是 | - |
3.配置
3.1 必须配置
env {
...
spark.sql.catalogImplementation="hive"
...
}
3.2 例子
env {
...
spark.sql.catalogImplementation="hive"
...
}
source {
hive {
pre_sql="select * from mydb.mytb"
result_table_name="myTable"
}
}
...
注意:必须确保 hive matastore正在使用中。启动命令hive --service metastore服务 default port 9083 cluster,client,local模式,hive-site.xml必须放在$HADOOP_CONF任务提交节点的目录下(或放到$SPARK_HOME/conf),IDE本地Debug放在resources目录下
Druid
Elasticsearch
File
HBase
Http
Hudi
Iceberg
InfluxDb
Jdbc
Kafka
Kudu
MongoDb
Phoenix
Redis
Socket
Tidb
Neo4j
sink
clickhouse sink
1.支持引擎
Spark
Flink
2.选项
名字 | 类型 | 是否需要 | 默认值 |
bulk_size | number | no | 20000 |
clickhouse.* | string | no | |
database | string | yes | - |
fields | array | no | - |
host | string | yes | - |
password | string | no | - |
retry | number | no | 1 |
retry_codes | array | no | [] |
table | string | yes | - |
username | string | no | - |
split_mode | boolean | no | false |
sharding_key | string | no | - |
common-options | string | no | - |
bulk_size [number] :
每次通过Clickhouse-jdbc 写入的行数默认20000行
database [string]
数据库名称
fields [array]
需要输出到clcikhouse的字段,如果不配置,会根据数据自动配置schema
host [string]
clickhouse cluster 地址,格式为host:port,允许hosts指定多个。比如“host1:8123,host2:8123”
password [string]
仅当clickhouse中启动权限时才需要此字段
retry [number]
重试次数,默认为1
retry_codes [array]
发生异常时,会重试该操作的ClickHouse异常错误码。详细的错误码请参考clickhouse-jdbc/ClickHouseErrorCode.java at master · ClickHouse/clickhouse-jdbc · GitHub
如果多次重试失败,这批数据将被弃用,慎用!!
table [string]
表名
username [string]
clickhouse启动权限时才需要
clickhouse [string]
除了上述clickhouse-jdbc的强制参数外,用户还可以指定多个可选参数,覆盖了提供的所有(clickhouse-jdbc)参数
指定参数的方法是clickhouse. 在原始参数名称前添加前缀。例如指定方式socket_timeout为
clickhouse.socket_timeout = 5000.如果未指定这些非必要参数,则他们将使用给出的默认值clickhouse-jdbc
split_mode [boolean]
此模式仅支持引擎未“分布式”的clickhouse表。 internal_replication选项应为true。
他们将在seaTunnel中拆分分布式表数据,并直接在每个分片上执行刺蛾如。分片权重定义为默认值由clickhouse-jdbc提供
sharding_key [string]
使用split_mode时,向那个节点发送数据是个问题,默认是随机选择,但可以使用’sharding_key‘参数指定分片算法的字段。 该选项仅在’split_mode‘为true时有效
common options [string]
名字 | 类型 | 是否需要 | 默认值 |
source_table_name | string | no | - |
3.clickhouse类型对照表
Clickhouse 字段类型 | 转换插件转化目标类型 | SQL 转换表达式 | 描述 |
Date | string | string() | yyyy-MM-dd 格式化字符串 |
DateTime | string | string() | yyyy-MM-dd HH:mm:ss 格式化字符串 |
String | string | string() | |
Int8 | integer | int() | |
Uint8 | integer | int() | |
Int16 | integer | int() | |
Uint16 | integer | int() | |
Int32 | integer | int() | |
Uint32 | long | bigint() | |
Int64 | long | bigint() | |
Uint64 | long | bigint() | |
Float32 | float | float() | |
Float64 | double | double() | |
Decimal(P,S) | - | CAST(source AS DECIMAL(P,S)) | Decimal32(S),Decimal64(S),Decimal128(S) Can be used |
Array(T) | - | - | |
Nullable(T) | Depends on T | Depends on T | |
LowCardinality(T) | Depends on T | Depends on T |
4.配置
clickhouse {
host = "localhost:8123"
clickhouse.socket_timeout = 50000
database = "nginx"
table = "access_msg"
fields = ["date", "datetime", "hostname", "http_code", "data_size", "ua", "request_time"]
username = "username"
password = "password"
bulk_size = 20000
}
ClickHouse {
host = "localhost:8123"
database = "nginx"
table = "access_msg"
fields = ["date", "datetime", "hostname", "http_code", "data_size", "ua", "request_time"]
username = "username"
password = "password"
bulk_size = 20000
retry_codes = [209, 210]
retry = 3
}