【问题标题】:\\x96 is not a valid UTF-8 string in BigQuery\\x96 不是 BigQuery 中的有效 UTF-8 字符串
【发布时间】:2019-08-15 14:35:47
【问题描述】:

当“-”(破折号)字符用于以竖线分隔的 csv 文件时,我们发现 BigQuery 会产生无效的 utf-8 错误。奇怪的是,这些字符位于已有一年多的文件中,没有更改,而且 BigQuery 已经读取这些文件好几个月了,直到几天前。这是其中一个错误的示例。

Christus Trinity Clinic \\x96 Rheumatology is not a valid UTF-8 string

字符串在原始文件中的样子是这样的:

Christus Trinity Clinic – Rheumatology

是否有人知道此问题的解决方法,或者 BigQuery 是否以可能导致此问题的方式更改了它的功能?我知道我可以上传一个更正后的文件,但在这种情况下,不应出于审计目的而更改文件。

【问题讨论】:

  • 您如何将这些文件上传到 BQ?直接来自GCS?主机使用 Python 客户端? Apache Beam?
  • 这些文件存储在 Google Storage 中,并由 BigQuery 作为外部表读取。
  • 如果这看起来像一个错误,请在 bigquery 问题跟踪器上分享作业 ID 和文件位置。特别是如果这些文件没有改变,但行为已经改变。
  • 自 8 月 13 日星期二以来,我们面临着完全相同的问题。显然,bq 加载 csv 文件的行为似乎发生了变化
  • 我在这里打开了一个新的问题项目:issuetracker.google.com/issues/139511264

标签: google-bigquery


【解决方案1】:

我从 8 月 14 日开始遇到同样的问题。 我正在使用gsutil 将 csv 加载到 bigquery 中。

我在加载 csv 时使用了编码选项,它对我有用。

编码:

--encoding ISO-8859-1

命令行:

bq --location=US load --skip_leading_rows=1 --encoding ISO-8859-1 --replace --source_format=CSV gcs.dim_employee

【讨论】:

    【解决方案2】:

    从昨天开始,我们看到同样的事情突然发生了。
    对我来说,解决方案是在 loadconfig 中添加编码类型。
    (我用的是PHP客户端,但你的客户端可能也有这个选项)

    $loadConfig->encoding('ISO-8859-1');

    【讨论】:

    • 仅供参考,如果您在 google cloud slack 上,我打开了一个关于此 here 的对话。到目前为止,一位用户也提出了同样的问题。
    猜你喜欢
    • 1970-01-01
    • 2018-06-18
    • 2016-07-18
    • 2013-08-16
    • 2011-08-23
    • 2021-02-14
    • 1970-01-01
    • 2023-03-23
    • 2023-03-27
    相关资源
    最近更新 更多