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

Export GCP Cloud SQL PostgreSQL to GCS in Parquet Format

我在GCP Cloud SQL PostgreSQL中有数据,我想将这些数据以Parquet格式导出到GCS中,我看直接不行,只能在SQL 和 CSV 格式,无论如何以 Parquet 格式导出数据。

我建议你通过 BigQuery 来实现这个

  1. 连接BigQuery to Cloud SQL postgres instance with Federated queries 功能
  2. 使用云在 BigQuery 中创建一个新的 table 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 with parquet 选项(处于预览阶段)
bq --location=region extract \
--destination_format parquet \
project_id:my_dataset.temp_table \
gs://bucket/filename.parquet
  1. 删除 BigQuery
  2. 中的临时 table

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

但是你可以加快这个过程,但是这个解决方案会生成更多的文件

  1. 将 BigQuery 连接到云 SQL 具有联合 table 功能的 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