[alibaba/druid]Druid解析SQL后丢失Hana计算视图的输入参数

2025-11-17 689 views
5

Hana计算视图场景,计算视图包含输入参数,查询的SQL如下:

SELECT
         "DESC1",
         "UDATE",
         "VALUE1",
         "VALUE2",
         "VALUE3" 
FROM "_SYS_BIC"."test/TEST_SCRIPT"('PLACEHOLDER' = ('$$SEL_DATE$$',
         '2020-10-11'))

WHERE DESC1 NOT IN ('上月同期累计','去年同期累计','月度目标','年度目标')

经过Druid解析后,会变成

SELECT
         "DESC1",
         "UDATE",
         "VALUE1",
         "VALUE2",
         "VALUE3" 
FROM "_SYS_BIC"."test/TEST_SCRIPT"
WHERE DESC1 NOT IN ('上月同期累计','去年同期累计','月度目标','年度目标')

这在Hana中会出现错误,因为某些输入参数是必填项

我们暂时通过新建一个HanaSelectParser 类继承自 SQLSelectParser,重写 parseTableSourceQueryTableExpr 方法来解决,不知到官方啥时候支持上Hana计算视图的输入参数。

回答

4

请问是用在什么场景?

0

请问是用在什么场景?

计算视图(Calculation View)是Hana 的 Analytics Catalog 提供了一种视图功能,视图是在普通数据库表的基础上做一些JION和聚合运算。(https://www.sap.cn/products/hana.html。)

Hana的计算视图支持在SQL中为内建参数赋值,赋值的方式就是在表名后面增加特殊的字符串。('PLACEHOLDER' = ('$$SEL_DATE$$','20201010')),SEL_DATE是内建参数,20201010是我们查询时给的值。

SELECT
     "DESC1",
     "UDATE",
     sum("VALUE1") AS "VALUE1",
     sum("VALUE2") AS "VALUE2",
     sum("VALUE3") AS "VALUE3" 
FROM "_SYS_BIC"."yonghong/TEST_SCRIPT"**('PLACEHOLDER' = ('$$SEL_DATE$$',
     '20201010'))** 
GROUP BY "DESC1",
     "UDATE"

我们提供了查询计算视图 数据 和 元数据 的功能,可以通过编写SQL查询一个计算视图,我们在查询之前会解析这个SQL,做一些统计和优化。我们的解析时基于Druid提供的SQLParserUtils。

9

比如是用在什么场景?比如用在什么场景?

计算视图(Calculation View)是 Hana 的 Analytics Catalog 提供了一种视图功能,视图是在普通数据库表的基础上做一些 JION 和聚合计算。(https://www.sap.cn/products/hana.html 。)

计算视图是 Hana 分析目录的一个视图功能,它在普通数据库表的顶部执行一些 JION 和聚合计算。(https://www.sap.cn/products/hana.html .)

Hana 的计算视图支持在 SQL 中为内建参数,启动的方式就是在表名增加特定的字符串。('PLACEHOLDER' = ('$$SEL_DATE$$','20201010')),SEL_DATE是内建参数,20201010是我们查询时给的值。

Hana 的计算视图通过向表名添加特定字符串来支持 SQL 中的内置参数。('PLACEHOLDER'= ('$SEL','20201010') ,SEL是内置参数,20201010是我们查询时给出的值。

SELECT
   "DESC1",
   "UDATE",
   sum("VALUE1") AS "VALUE1",
   sum("VALUE2") AS "VALUE2",
   sum("VALUE3") AS "VALUE3" 
FROM "_SYS_BIC"."yonghong/TEST_SCRIPT"**('PLACEHOLDER' = ('$$SEL_DATE$$',
   '20201010'))** 
GROUP BY "DESC1",
   "UDATE"

我们提供了计算视图数据和元数据的功能,可以通过扫描SQL查询一个计算视图,我们在查询之前会解析这个SQL,做一些统计和优化。我们的解析时基于Druid提供的SQLParserUtils。

我们提供计算视图数据和元数据的能力,通过扫描 SQL 来查询计算视图,并且我们在查询之前解析 SQL 以进行一些统计和优化。我们的解析基于 Druid 提供的 SQL parserutils。

老哥请问你是怎么用druid连接HANA的

2

比如是用在什么场景?比如用在什么场景?

计算视图(Calculation View)是 Hana 的 Analytics Catalog 提供了一种视图功能,视图是在普通数据库表的基础上做一些 JION 和聚合计算。(https://www.sap.cn/products/hana.html 。) 计算视图是 Hana 分析目录的一个视图功能,它在普通数据库表的顶部执行一些 JION 和聚合计算。(https://www.sap.cn/products/hana.html .) Hana 的计算视图支持在 SQL 中为内建参数,启动的方式就是在表名增加特定的字符串。('PLACEHOLDER' = ('$$SEL_DATE$$','20201010')),SEL_DATE是内建参数,20201010是我们查询时给的值。 Hana 的计算视图通过向表名添加特定字符串来支持 SQL 中的内置参数。('PLACEHOLDER'= ('$SEL','20201010') ,SEL是内置参数,20201010是我们查询时给出的值。

SELECT
     "DESC1",
     "UDATE",
     sum("VALUE1") AS "VALUE1",
     sum("VALUE2") AS "VALUE2",
     sum("VALUE3") AS "VALUE3" 
FROM "_SYS_BIC"."yonghong/TEST_SCRIPT"**('PLACEHOLDER' = ('$$SEL_DATE$$',
     '20201010'))** 
GROUP BY "DESC1",
     "UDATE"

我们提供了计算视图数据和元数据的功能,可以通过扫描SQL查询一个计算视图,我们在查询之前会解析这个SQL,做一些统计和优化。我们的解析时基于Druid提供的SQLParserUtils。 我们提供计算视图数据和元数据的能力,通过扫描 SQL 来查询计算视图,并且我们在查询之前解析 SQL 以进行一些统计和优化。我们的解析基于 Druid 提供的 SQL parserutils。

老哥请问你是怎么用druid连接HANA的

比如是用在什么场景?比如用在什么场景?

计算视图(Calculation View)是 Hana 的 Analytics Catalog 提供了一种视图功能,视图是在普通数据库表的基础上做一些 JION 和聚合计算。(https://www.sap.cn/products/hana.html 。) 计算视图是 Hana 分析目录的一个视图功能,它在普通数据库表的顶部执行一些 JION 和聚合计算。(https://www.sap.cn/products/hana.html .) Hana 的计算视图支持在 SQL 中为内建参数,启动的方式就是在表名增加特定的字符串。('PLACEHOLDER' = ('$$SEL_DATE$$','20201010')),SEL_DATE是内建参数,20201010是我们查询时给的值。 Hana 的计算视图通过向表名添加特定字符串来支持 SQL 中的内置参数。('PLACEHOLDER'= ('$SEL','20201010') ,SEL是内置参数,20201010是我们查询时给出的值。

SELECT
     "DESC1",
     "UDATE",
     sum("VALUE1") AS "VALUE1",
     sum("VALUE2") AS "VALUE2",
     sum("VALUE3") AS "VALUE3" 
FROM "_SYS_BIC"."yonghong/TEST_SCRIPT"**('PLACEHOLDER' = ('$$SEL_DATE$$',
     '20201010'))** 
GROUP BY "DESC1",
     "UDATE"

我们提供了计算视图数据和元数据的功能,可以通过扫描SQL查询一个计算视图,我们在查询之前会解析这个SQL,做一些统计和优化。我们的解析时基于Druid提供的SQLParserUtils。 我们提供计算视图数据和元数据的能力,通过扫描 SQL 来查询计算视图,并且我们在查询之前解析 SQL 以进行一些统计和优化。我们的解析基于 Druid 提供的 SQL parserutils。

老哥请问你是怎么用druid连接HANA的

没有用druid连hana,使用了druid的sqlparser组件解析sql,Hana提供的有jdbc驱动