【问题标题】:How to see 'full' SQL Error Messages in BigQuery?如何在 BigQuery 中查看“完整”的 SQL 错误消息?
【发布时间】:2020-08-18 07:16:35
【问题描述】:

我正在 BigQuery 中编写一个大型 MERGE 语句。

当我尝试运行此查询时,验证器给了我一个错误,其中涉及很多 ... 隐藏有用信息,如下所示:

Value has type ARRAY<STRUCT<eventName STRING, eventUUID STRING, eventDate DATE, ...>> which cannot be inserted into column Events, which has type ARRAY<STRUCT<eventName STRING, eventUUID STRING, eventDate DATE, ...>> at [535:1]

我非常有信心这两个数组对象完全匹配,但是由于我正在努力解决这个问题,我很想看到完整的错误消息。

有没有办法查看完整的错误?

我查看了 Google 日志记录工具,但看不到任何其他信息。

我也尝试过以下 Cloud Shell 命令:

bq --format=prettyjson show -j [Job Id Goes Here]

同样,这似乎没有提供额外的信息。

【问题讨论】:

  • 您能否检查您的 Loggings 并按 BigQuery 过滤(在选择资源中)以查看那里的错误消息?您也可以检查错误Reporting。虽然,错误消息只是隐藏了信息,因为它可能有几个嵌套字段。错误本身可以解释为您尝试插入的字段之一中存在不同的列或类型。您还可以仔细检查您的查询语法。您可以发布您的代码和一些虚拟数据,以便我进一步帮助您。
  • 我已经设法通过我的特定查询解决了这个问题(是数组深处的错误)。但是,我仍然对看到更大的错误消息感到好奇。 Logging 中的错误字符串具有完全相同的问题,据我所知,这些类型的错误根本不会显示在错误报告中。

标签: google-cloud-platform google-bigquery


【解决方案1】:

这种方法感觉很傻,但它可能是真正长巢类型的最后手段。

  1. 使用INFORMATION_SCHEMA.COLUMNS 获取目标类型的完整字符串,在您的情况下,列类型为Events

  2. 使用CREATE TABLE &lt;yourDataset&gt;.&lt;yourTempTable&gt; AS SELECT ...Value 的一行转储到表中。再次使用 1) 查看其完整类型字符串。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-26
    • 2020-04-02
    • 2021-07-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多