【问题标题】:Custom delimiter while exporting Google Cloud SQL to CSV将 Google Cloud SQL 导出为 CSV 时的自定义分隔符
【发布时间】:2019-04-16 10:32:43
【问题描述】:

我已经成功地将 GCloud SQL 导出为带有默认分隔符“,”的 CSV。我想将此 CSV 导入 Google Big Query,并且我已经成功地做到了。

但是,我遇到了一个小问题。在我的某些单元格/字段中有“,”。它会导致 Big Query 导入过程无法正常工作。例如:

"Budi", "19", "Want to be hero, and knight"

我的问题是:

  • 是否可以使用自定义分隔符导出 Google Cloud SQL,例如“|”?
  • 如果没有,如何将上述示例数据导入到 Google Big Query 中并变成 3 个字段/单元格?

干杯。

【问题讨论】:

    标签: google-bigquery google-cloud-sql


    【解决方案1】:

    是否可以使用自定义分隔符导出 Google Cloud SQL,例如“|”?

    是的,请参阅 BigQuery 的文档页面如何设置此 link 中提供的加载选项

    您需要将--field_delimiter = '|' 添加到您的命令中

    来自文档:

    (可选)CSV 文件中字段的分隔符。分隔符可以是任何 ISO-8859-1 单字节字符。要使用 128-255 范围内的字符,您必须将该字符编码为 UTF8。 BigQuery 将字符串转换为 ISO-8859-1 编码,并使用编码字符串的第一个字节将数据拆分为原始二进制状态。 BigQuery 还支持转义序列“\t”来指定制表符分隔符。默认值为逗号 (,)。

    【讨论】:

    • 您好 Tamir,我使用 field_delimiter 将自定义 CSV 导入 Google Big Query。我的问题是如何使用客户分隔符从 Google Cloud SQL 导出 CSV?
    【解决方案2】:

    据我所知,从 CloudSQL 导出到 CSV 时无法设置自定义分隔符。我试图通过像这样制定我的选择查询来引入我自己的分隔符:

    select column_1||'|'||column_2 from foo
    

    但这只会导致 CloudSQL 将整个结果转义为带有双引号的生成 CSV。这也符合以下说明的文档:

    以CSV格式导出相当于运行如下SQL语句:

      SELECT <query> INTO OUTFILE ... CHARACTER SET 'utf8mb4'
        FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '\"'
        ESCAPED BY '\\' LINES TERMINATED BY '\n'
    

    https://cloud.google.com/sql/docs/mysql/import-export/exporting

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-03-09
      • 2021-08-08
      • 2015-05-15
      • 2016-03-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多