【问题标题】:Weird error in BigQueryBigQuery 中的奇怪错误
【发布时间】:2016-04-15 07:31:12
【问题描述】:

我尝试直接从 Web 控制台 https://bigquery.cloud.google.com 执行查询

执行了一次查询,而另一次我在同一个查询中得到了错误结果:

错误:TABLE_QUERY 表达式无法查询 BigQuery 表。

我还尝试了不同的查询选项“使用缓存结果”、“交互式”和“批处理”行为相同。

为什么会发生?

【问题讨论】:

    标签: google-app-engine google-bigquery


    【解决方案1】:

    TABLE_QUERY 过滤器旨在查询元数据。在短时间内,可以在 TABLE_QUERY 过滤器中查询表数据;我们最近堵住了这个漏洞。

    我们正在为受此负面影响的客户添加白名单;白名单将允许他们在 TABLE_QUERY 表达式中查询同一数据集中的数据,直到他们可以更新他们的查询。

    请注意,例如,如果您想查找最大表 ID,您仍然可以在 TABLE_QUERY 表达式中使用 __TABLE_SUMMARY__。例如:

    SELECT foo 
    FROM  TABLE_QUERY(my_dataset, 
      'table_id IN (SELECT MAX(table_id) 
       FROM my_dataset.__TABLES_SUMMARY__ 
       WHERE table_id CONTAINS "my_prefix")')
    LIMIT 1
    

    如果这对您不起作用,或者您希望将您的项目列入白名单,请联系 tigani@google.com。

    【讨论】:

    • 您能否分享一些关于 table_query 中允许和不允许的参考。我使用在 table_query 函数中引用其他表数据的子查询。这是否允许?
    • 我打开了一个后续问题,询问如何在没有这个有用功能的情况下工作:stackoverflow.com/questions/36673468/…
    • 问题是 a) 功能非常有用,b) 我不知道任何有效的解决方法或可以使用的替代功能。为什么你认为这是一个错误而不是有用的 hack?
    • 这种无意的黑客攻击能够绕过计费和访问控制限制。我们检查了我们的日志并确保没有人不当使用它,但这就是我们如此渴望修复它的原因。
    猜你喜欢
    • 2018-05-11
    • 2011-02-06
    • 2015-10-08
    • 2018-01-22
    • 2015-02-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-17
    相关资源
    最近更新 更多