【问题标题】:How to parse standard SQL (BigQuery) to get input columns and output columns如何解析标准 SQL (BigQuery) 以获取输入列和输出列
【发布时间】:2020-01-08 08:48:37
【问题描述】:

我们正在 BigQuery 中构建一个数据仓库,我们在其中使用标准 sql 语句生成大量数据集市。这些可能非常大和复杂。为了跨依赖链跟踪数据沿袭,我们希望自动解析 SQL 语句并获取与输入 table.column 匹配的所有输出列。

简单示例:

SELECT t1.a, t2.b, t1.a + t2.b AS c FROM table1 t1 JOIN table2 t2 ON t1.a = t2.a

应该最终给我们:

Input Output table1.a a table2.b b table1.a c table1.b c

我们尝试过使用这个:https://www.npmjs.com/package/node-sql-parser,但在我们的一些复杂场景中它会出现不足。

是否有任何语言的库支持解析 SQL 语句并返回 AST 以获得完整的标准 SQL 语法?

【问题讨论】:

    标签: google-bigquery abstract-syntax-tree sql-parser


    【解决方案1】:

    您可以使用 google/zetasql,这是 BigQuery 用于解析 StandardSQL 的工具。

    【讨论】:

    • 是的,我应该提到我正在调查。但是,它不是处于非常用户友好的状态。我目前正在从非常有帮助的贡献者那里获得帮助以启动和运行它。
    • 很遗憾听到它不处于用户友好状态。就其第一方性质而言,它仍然是您最好的选择。
    • 实际上,让我重新表述一下。它处于非常好的状态,但它需要一些开发才能到达我想要的位置,并且此时文档有些缺乏。
    • @Bjoern 我有同样的用例,你能指导我一个正确的方向吗?用一些粗略的步骤来让它工作?
    猜你喜欢
    • 1970-01-01
    • 2014-07-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-20
    • 2016-08-09
    • 2019-07-18
    相关资源
    最近更新 更多