微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

以 Parquet 格式将 GCP Cloud SQL PostgreSQL 导出到 GCS

如何解决以 Parquet 格式将 GCP Cloud SQL PostgreSQL 导出到 GCS

我在GCP Cloud sql Postgresql中有数据,我想把这些数据以Parquet格式导出到GCS中,我看到不能直接做,只能用sql和CSV格式做,反正以Parquet格式导出数据.

解决方法

我建议您通过 BigQuery 实现这一点

  1. 连接BigQuery to Cloud SQL postgres instance with Federated queries功能
  2. 在 BigQuery 中使用 Cloud SQL postgres 数据创建一个新表
CREATE TABLE my_dataset.temp_table AS
SELECT * FROM EXTERNAL_QUERY("project_id.region.connection_name","SELECT * FROM .....;");
  1. 使用带有镶木地板选项的 BigQuery export table feature(处于预览阶段)
bq --location=region extract \
--destination_format parquet \
project_id:my_dataset.temp_table \
gs://bucket/filename.parquet
  1. 删除 BigQuery 中的临时表

这种方式保证你只有一个文件(或少量的分片文件。

但是您可以加快进程,但此解决方案会生成更多的文件

  1. 使用联合表功能将 BigQuery 连接到 Cloud SQL postgres 实例
  2. 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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。