SET 语句
更新时间:2021-08-10
SET 语句
语法
SET key = 'value';
- 同一个作业中,支持多个 SET 语句,使用分号隔开
- 每一个 SET 语句完成一个参数设置
- 一般把 SET 语句放在 SQL 的开头
示例
SET job.timeType = 'PROCESSTIME';
SET job.coalesce.partitions = '10';
CREATE TABLE source {
`field` STRING
} WITH (
'connector.type' = 'BOS',
'format.encode' = 'JSON',
'connector.path' = 'bos://asc-sandbox-su/bos-source/json/'
)
SET 参数设置
作业参数
名称 | 用例 | SPARK | FLINK | 说明 |
---|---|---|---|---|
job.timeZone | Asia/Shanghai |
Y | Y | SQL作业运行时区 |
job.output.mode | spark: append / update / complete flink: append / retract / upsert |
Y | Y | SQL作业输出模式 |
job.process.mode | cp / ss |
Y | SPARK微批处理模式 | |
job.trigger.intervalMs | 60000 |
Y | SPARK微批执行每批次的触发间隔 | |
job.aggregate.state | true / false , 默认 true |
Y | spark append mode 下是否允许进行无状态流式聚合。为 true 时append mode 无法执行无状态聚合 | |
job.shuffle.partitions | 默认 200 |
Y | join 或 aggregate 时指定的 shuffle 分区数目 | |
job.coalesce.partitions | 10 |
Y | 允许用户为sink 重新设置 partition 数目,分区减少时为窄依赖,不会发生 shuffle | |
job.repartition.partitions | 10 |
Y | 允许用户为sink 重新设置 partition 数目,一定会发生 shuffle | |
job.join.preferSortMergeJoin | true / false ,默认 true |
Y | join 时选择 sort merge join 还是 shuffle hash join | |
job.parallelism | 1 |
Y | 算子并行度,小于等于 CU 数目才会生效,暂未开放 | |
job.timeType | PROCESSTIME |
Y | 为作业设置使用 process time | |
job.update.mode | append / retract / upsert |
Y | Flink作业输出模式 | |
job.checkpoint.mode | EXACTLY_ONCE / AT_LEAST_ONCE , 默认 EXACTLY_ONCE |
Y | 设置checkooint的语义 | |
job.checkpoint.intervalMs | 10000 |
Y | checkpoint 的触发周期 | |
job.checkpoint.timeoutMs | 10000 , 默认600000 |
Y | checkpoint 的超时时间 | |
job.restart.attempts | 3 |
Y | 作业挂掉后重启次数 | |
job.restart.intervalMs | 10000 |
Y | 作业挂掉后重启间隔 |
函数参数
名称 | 用例 | SPARK | FLINK | 说明 |
---|---|---|---|---|
job.function.jsonParameter | {"info": {"name": "Tom", "salary": 123}, "region": "china"} |
Y | Y | 用于 jjps、jjpl、jjpd 三个函数的入参 |