一、背景
因为dolphinscheduler工具sql组件不支持impala数据源,只能折衷方法通过shell来执行impala sql。
二、方法
1.impala shell -f 文件名
操作步骤:
1).【资源中心】-【创建文件】
2).【工作流定义】-【创建工作流】-【shell组件】(编辑内容&资源里选择要执行的文件)-【保存】-【上线】-【执行】
shell内容:
代码语言:javascript复制impala-shell -f source/filename.sql
示例图片:
2.impala shell -q 'sql'
操作步骤:
【工作流定义】-【创建工作流】-【shell组件】(编辑内容)-【保存】-【上线】-【执行】
shell内容:
代码语言:javascript复制impala-shell -q 'select count(*) from db_name.table_name'
or
impala-shell -q "select count(*) from db_name.table_name"
示例图片:
踩坑点:
1.因为impala shell -q 执行sql用""或''都可以,但是中间踩了一次坑,双引号的时候如果字段中有用到``的会报错,排查下来发现单引号可以,双引号的时候会报错。
正确使用姿势如下:
代码语言:javascript复制错误案例:
impala-shell -q “select room_id,`timestamp` from db_name.table_name”
正确案例:
impala-shell -q 'select room_id,`timestamp` from db_name.table_name'
2.特殊字符转义
例如:使用双引号时`` 要转义成``,执行才不会报错