将.gz文件从 S3 导入到 BigQuery



我在 S3 存储桶中得到了一堆压缩的 CSV 文件,我想将它们导入到 BigQuery 中。从文档中看,BQ 可以从不同的来源导入 gzip 数据。但是,当我配置数据传输作业时,它只允许 CSV、JSON、AVRO、PARQUET、ORC 文件格式。

将传输作业配置为 CSV 文件格式并运行后,它会记录以下内容:

Moving data from Amazon S3 to Google Cloud complete: Moved 64 object(s).    
Summary: succeeded 0 jobs, failed 0 jobs.

所以无论如何,它似乎都没有调查.gz档案。

有没有一种方便的方法可以将 Gzip 压缩的 CSV 文件从 S3 导入 BQ 表?

除了从 UI 提供的 bigquery s3 数据传输之外,如果您正在寻找通过 CLI 的替代方法。您可以使用带有 aws 凭证的gsutil -o将文件复制到 google cloud storage,bq cli 将文件传输到 bigquery 以及 json 中的架构文件

 echo "source s3 bucket:"$source_bucket""
 echo "target gcs bucket:"$dest_bucket""
 SCHEMA="/path/to/schema/file"
 dir_data=$(gsutil -o "Credentials:aws_access_key_id=${aws_access_key_id}" 
     -o "Credentials:aws_secret_access_key=${aws_secret_access_key}" 
     ls "$source_bucket")
 echo "files to transfer "$dir_data""
 echo "transfering data into google storage $dest_bucket"
 tr_data=$(gsutil -m -o "Credentials:aws_access_key_id=${aws_access_key_id}" 
     -o "Credentials:aws_secret_access_key=${aws_secret_access_key}" 
     cp "$source_bucket"* "$dest_bucket")
 echo "bq transfer - $target_dataset"
 bq --debug_mode=true load --source_format=CSV 
     --encoding=UTF-8 --allow_jagged_rows --allow_quoted_newlines 
     --skip_leading_rows=1 "$target_table" "$dest_bucket"part-*.gz "$SCHEMA"
 echo "transfer to bq complete"

最新更新