当前位置:   article > 正文

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

flink sql checkpoint

前序: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;
  • 1

2、开启checkpoint

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

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

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

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

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

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'
  • 1

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
  • 1

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
  • 1

7、查看表信息

查看表信息三步曲。

FlinkSQL> show catalog;
FlinkSQL> show tables;
FlinkSQL> desc tableName;
  • 1
  • 2
  • 3

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

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

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

insert_statement:
   <insert_from_select>|<insert_from_values>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

应用示例:

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
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小蓝xlanll/article/detail/481248
推荐阅读
相关标签
  

闽ICP备14008679号