FlinkCDC-Hudi:Mysql数据实时入湖全攻略七:FlinkSQL常用命令

12 篇文章 4 订阅

前序:FlinkCDC-Hudi系列文章:

FlinkCDC-Hudi:Mysql数据实时入湖全攻略一:初试风云
FlinkCDC-Hudi:Mysql数据实时入湖全攻略二:Hudi与Spark整合时所遇异常与解决方案
FlinkCDC-Hudi:Mysql数据实时入湖全攻略三:探索实现FlinkCDC mysql 主从库同步高可用
FlinkCDC-Hudi:Mysql数据实时入湖全攻略四:两种FlinkSql kafka connector的特征与应用
FlinkCDC-Hudi:Mysql数据实时入湖全攻略五:FlinkSQL同时输出到kafka与hudi的几种实现
FlinkCDC-Hudi:Mysql数据实时入湖全攻略六:极限压测下炸出来的FlinkCDC-Hudi坑,真多

1、设置作业名

FlinkSQL> set pipeline.name = job_name;

2、开启checkpoint

设置execution.checkpointing.interval后,会周期性地进行checkpoint,checkpoint生成

FlinkSQL> set execution.checkpointing.interval=30sec;

3、取消作业时保留最新的checkpoint

flink作业取消作业时会默认删除checkpoint文件,为了方便作业回滚、重启,可以设置取消时保留checkpoint文件。

Flink SQL> set execution.checkpointing.externalized-checkpoint-retention= RETAIN_ON_CANCELLATION;

4、FlinkSQL client设置savepoint/checkpoint

通过execution.savepoint.path指定savepoint/checkpoint路径,然后触发作业,该作业就会从savepoint/checkpoint重启。需要注意的是所设置的参数在flink sql client session生命周期内有效,无法unset。只能重启client来清楚设置。

Flink SQL> set 'execution.savepoint.path'='hdfs:///tmp/flink/checkpoints/88541fd8a08e1cee71aac55d2f39951f/chk-3'

5、Flink sql client初始化环境

Flink sql client暂不支持多条语句粘贴执行,粘贴多条语句时会报错。如果在一个启动一次session后,总是要做一些初始化工作,如建表、设置checkpoint变量等,不断地复制粘贴这些语句无疑是很麻烦的事情。这时可以将这些sql写到一个文件中,在启动sql client时加入 -i 参数来初始化运行环境。-i 初始化只支持 set语句和ddl操作哦,不要在 -i 文件中加入CRUD语句。

FLINK_HOME/bin/sql-client.sh embedded -s yarn-session -j ./lib/hudi-flink-bundle_2.11-0.10.0.jar -i init.sql shell

6、不启动Flink sql client 直接触发作业执行

如果不想启动client进入交互查询,可以将sql语句写入一个文件中,可以直接通过-f 启动flink sql 作业。

FLINK_HOME/bin/sql-client.sh embedded -s yarn-session -j ./lib/hudi-flink-bundle_2.11-0.10.0.jar -i init.sql -f execute.sql

7、查看表信息

查看表信息三步曲。

FlinkSQL> show catalog;
FlinkSQL> show tables;
FlinkSQL> desc tableName;

8、一个作业实现多个输出

一般而言,在flink sql中,一个insert语句对应一个作业。为了使一个作业可以执行多个insert语句,可以使用STATEMENT SET语法。语法定义如下:

EXECUTE STATEMENT SET
BEGIN
insert_statement;
...
insert_statement;
END;

insert_statement:
   <insert_from_select>|<insert_from_values>

应用示例:

CREATE TABLE students (name STRING, age INT, gpa DECIMAL(3, 2)) WITH (...);

EXECUTE STATEMENT SET
BEGIN
INSERT INTO students
  VALUES ('fred flintstone', 35, 1.28), ('barney rubble', 32, 2.32);
INSERT INTO students
  VALUES ('fred flintstone', 35, 1.28), ('barney rubble', 32, 2.32);
END;
  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值