【问题标题】:How to save a view in BigQuery - Standard SQL Dialect如何在 BigQuery 中保存视图 - 标准 SQL 方言
【发布时间】:2017-08-22 01:58:49
【问题描述】:

我正在尝试使用 BigQuery 的 WebUI 保存视图,该 WebUI 是在标准 SQL 方言中创建的,但我收到此错误:

未能保存视图。坏表引用“myDataset.myTable”;标准 SQL 视图中的表引用需要明确的项目 ID

为什么会出现这个错误?我该如何解决? “保存视图”对话框的“表 ID”字段是否应包含项目 ID?还是因为查询本身而出现此错误?以防万一,查询运行没有任何问题。

感谢您的帮助。

【问题讨论】:

    标签: google-bigquery


    【解决方案1】:

    您的视图引用了myDataset.myTable - 当您将它作为查询运行时(例如在 Web UI 中),这没问题。

    但要将其保存为视图,您必须完全限定该引用,如下所示

    myProject.myDataset.myTable   
    

    所以,只需将项目添加到该引用中

    【讨论】:

    • 感谢您的回复 Mikhail,我不确定应该在哪里添加此参考。我尝试在 SQL 查询中添加它:“来自 adept-storm-142922.summarytables.pendingClasses20172”,但是出现了一个新错误“语法错误:[10:14] 的意外“-””似乎您无法使用里面有“-”符号。
    • @Milton - 完全正确!你需要使用反引号。比如“来自‘adept-storm-142922.summarytables.pendingClasses20172’”。看起来现在你只有“来自 summarytables.pendingClasses20172”
    • 米哈伊尔,它现在工作正常。谢谢你的帮助!! @米哈伊尔
    • @Milton - 当然 - 如果还没有 - 请考虑投票并接受它。在 SO 上做很重要
    • 我不知道这是否是新的,但是当我尝试在表 ID 字段中输入任何带点的内容时,我得到了这个:Table IDs may contain letters, numbers, and underscores
    【解决方案2】:

    同样的回复,换句话说

    问题出在这部分查询中:FROM com.table

    运行查询时,可以不完全指定表名,如下所示:

    com_company_app_beta_IOS.app_events_20180619
    

    但是要将查询保存为视图,FROM 必须是这样的:

    `company-prod`.com_company_app_beta_IOS.app_events_20180619
    

    您需要在 `company-prod` 周围加上反引号,因为对象名称中不支持 - 破折号。

    BigQuery 中的结构如下所示: bigquery ui

    【讨论】:

      【解决方案3】:

      我遇到了同样的问题。 您需要在 create 和 select 语句中对整个字符串 project.dataset.view/table 使用反引号:

      创建视图company-prod.com_company_app_beta_IOS.YOUR_VIEW 为 从company-prod.com_company_app_beta_IOS.app_events_20180619中选择*

      Use backticks around string project.dataset.view

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-07-18
        • 2016-11-23
        • 2018-09-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多