druid 对hive 建视图的语法解析 不是很支持

vh0rcniy  于 22天前  发布在  Druid
关注(0)|答案(2)|浏览(17)

建视图sql:
CREATE VIEW IF NOT EXISTS test_dm.dxtest_view
(
order_id COMMENT '注释'
, data_source COMMENT '注释'
, dt COMMENT '注释'
, group_id COMMENT '注释'
) COMMENT '测试视图'
PARTITIONED ON (dt, group_id)
/--------------------------建表语句块-----------------------/
AS
/--------------------------ETL语句块-----------------------/
SELECT CAST(order_id AS STRING) AS order_id
, 1 AS data_source
, dt AS dt
, group_id AS group_id
FROM dwd_dm.dwd_table1
UNION ALL
SELECT CAST(order_id AS STRING) AS order_id
, 2 AS data_source
, dt AS dt
, group_id AS group_id
FROM dwd_dm.dwd_table2

使用SQLUtils.parseStatements解析会报错

icnyk63a

icnyk63a1#

请问你解决了么, 我也遇到了同样的问题.
使用方法:
SQLParserUtils.createSQLStatementParser(sql, DbType.hive).parseStatement();

gstyhher

gstyhher2#

这块我已经解决了, druid 对于 hive createView 的解析沿用了 mysql 的词法, 导致 hive 有 PARTITIONED ON 关键字的时候报错了, 这块要特殊处理下

相关问题