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