问题描述
我在GCP Cloud sql Postgresql中有数据,我想把这些数据以Parquet格式导出到GCS中,我看到不能直接做,只能用sql和CSV格式做,反正以Parquet格式导出数据.
解决方法
我建议您通过 BigQuery 实现这一点
- 连接BigQuery to Cloud SQL postgres instance with Federated queries功能
- 在 BigQuery 中使用 Cloud SQL postgres 数据创建一个新表
CREATE TABLE my_dataset.temp_table AS
SELECT * FROM EXTERNAL_QUERY("project_id.region.connection_name","SELECT * FROM .....;");
- 使用带有镶木地板选项的 BigQuery export table feature(处于预览阶段)
bq --location=region extract \
--destination_format parquet \
project_id:my_dataset.temp_table \
gs://bucket/filename.parquet
- 删除 BigQuery 中的临时表
这种方式保证你只有一个文件(或少量的分片文件。
但是您可以加快进程,但此解决方案会生成更多的文件
- 使用联合表功能将 BigQuery 连接到 Cloud SQL postgres 实例
- Export the data to GCS 仅用于一个查询
EXPORT DATA OPTIONS(
uri='gs://bucket/filename.parquet*',format='PARQUET') AS
SELECT * FROM EXTERNAL_QUERY("project_id.region.connection_name","SELECT * FROM .....;");
https://cloud.google.com/bigquery/docs/reference/standard-sql/other-statements#export_data_statement