dolphinscheduler使用impala shell执行sql

2023-10-17 08:56:39 浏览数 (2)

一、背景

因为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.特殊字符转义

例如:使用双引号时`` 要转义成``,执行才不会报错

0 人点赞