我已经成功地将GCloud SQL导出为CSV及其默认分隔符","。我想将此CSV导入Google大查询,并且我已经成功做到了。
但是,我遇到了一个小问题。在我的一些单元格/字段中有","。它导致大查询导入过程无法正常工作。例如:
"Budi", "19", "Want to be hero, and knight"
我的问题是:
- 是否可以使用自定义分隔符(例如"|"(导出Google Cloud SQL?
- 如果没有,如何使上述示例数据导入Google大查询并成为3个字段/单元格?
干杯。
是否可以使用自定义分隔符(例如"|"(导出Google Cloud SQL?
是的,请参阅BigQuery的文档页面,了解如何设置此链接中提供的加载选项
您需要向命令添加--field_delimiter = '|'
从文档中:
(可选(CSV 文件中字段的分隔符。分隔符可以是任何 ISO-8859-1 单字节字符。要使用 128-255 范围内的字符,必须将该字符编码为 UTF8。BigQuery 将字符串转换为 ISO-8859-1 编码,并使用编码字符串的第一个字节以原始二进制状态拆分数据。BigQuery 还支持转义序列"\t"来指定制表符分隔符。默认值为逗号 (
,
(。
据我所知,从 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