【发布时间】:2019-03-05 12:04:20
【问题描述】:
什么
有谁知道使用 BigQuery API 识别/区分以旧版或标准 SQL 编写的视图或查询的更好方法?
想到的唯一方法是运行 SQL 并将 dryRun 属性设置为 true(这将产生最小的处理开销)并且如果它失败并显示包含短语“尝试使用标准SQL”我可以假设它是旧版 SQL,否则它可以工作并且是标准的。例如
{
...
"code": 400,
"message":
"Invalid table name: `my-project.my_dataset.hello_world`
[Try using standard SQL (https://cloud.google.com/bigquery/docs/reference/standard-sql/enabling-standard-sql)]."
}
原因
我正在维护一个使用 BigQuery API 迁移数据的集成层(用 Cloud Functions - Node.js 8 编写)。
不幸的是,用户社区已被允许在标准或旧版 SQL 中编写视图和查询。由于在处理 Legacy SQL 时存在诸多限制,我想检测哪些查询和视图是使用它编写的,从而允许我相应地调整处理方法。
【问题讨论】:
标签: google-api google-bigquery bigquery-standard-sql legacy-sql