【问题标题】:Load compressed data into BigQuery from AWS S3 using bq command使用 bq 命令将压缩数据从 AWS S3 加载到 BigQuery
【发布时间】:2022-02-23 10:34:27
【问题描述】:

在以下示例中,我似乎可以将数据从 S3 加载到 BigQuery: 这一次,我想在 S3 中加载压缩文件。不是 CSV 文件。 如果是这样,我如何将数据从 S3 加载到 BigQuery?

样本

bq mk \
  --transfer_config  \
  --data_source=amazon_s3 \
  --display_name=load_from_s3 \
  --target_dataset=test_dataset_s3 \
  --params='{
"data_path":"s3://xxx-test01",
"destination_table_name_template":"test_table",
"access_key_id":"xxxxxxxxxxxxx",
"secret_access_key":"xxxxxxxxxxxxxx",
"file_format":"CSV",
"max_bad_records":"0",
"ignore_unknown_values":"true",
"field_delimiter":",",
"skip_leading_rows":"0",
"allow_quoted_newlines":"true"
}'

【问题讨论】:

  • 压缩类型是什么?对于 CSV,gzip 是唯一支持的文件压缩类型。
  • 文件是*.gz。是gzip压缩。
  • 你好。如果我的回答解决了您的问题,请考虑支持并接受它。如果没有,请告诉我,以便改进答案。接受答案也将有助于社区成员的研究。

标签: amazon-s3 google-bigquery


【解决方案1】:

可以使用相同的bq CLI 命令,无需进行太多更改。假设您已经压缩了CSV 文件,我使用自己的示例压缩文件测试了传输,并且传输成功。下面是我测试的bq 命令。

bq mk \
  --transfer_config  \
  --data_source=amazon_s3 \
  --display_name=load_from_s3 \
  --target_dataset=test_dataset \
  --params='{
"data_path":"s3://awsbucket-name/sample.csv.gz",
"destination_table_name_template":"table-name",
"access_key_id":"xxxxxxxxxxxxxxx",
"secret_access_key":"xxxxxxxxxxxxxxxx",
"file_format":"CSV",
"max_bad_records":"0",
"ignore_unknown_values":"true",
"field_delimiter":",",
"skip_leading_rows":"1",
"allow_quoted_newlines":"true"
}'

文件传输日志:

不过,还需要注意的是,对于 CSVJSON 等格式,BigQuery 加载未压缩文件的速度明显快于压缩文件,因为可以并行读取未压缩文件。如需更多信息,请参阅此documentation

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-23
    • 1970-01-01
    相关资源
    最近更新 更多