BigQuery是Google Cloud提供的一种全托管的企业级数据仓库解决方案,支持处理PB级数据。嵌套数据是BigQuery中一种特殊的数据结构,允许在表中存储复杂的分层数据,类似于JSON格式。
bq extract --destination_format=NEWLINE_DELIMITED_JSON \
'mydataset.mytable' 'gs://mybucket/mydata.json'
from google.cloud import bigquery
client = bigquery.Client()
table_ref = client.dataset('mydataset').table('mytable')
job_config = bigquery.job.ExtractJobConfig()
job_config.destination_format = bigquery.DestinationFormat.NEWLINE_DELIMITED_JSON
destination_uri = 'gs://mybucket/mydata.json'
extract_job = client.extract_table(
table_ref,
destination_uri,
job_config=job_config
)
extract_job.result() # 等待作业完成
POST https://bigquery.googleapis.com/bigquery/v2/projects/myproject/jobs
{
"configuration": {
"extract": {
"sourceTable": {
"projectId": "myproject",
"datasetId": "mydataset",
"tableId": "mytable"
},
"destinationUris": ["gs://mybucket/mydata.json"],
"destinationFormat": "NEWLINE_DELIMITED_JSON"
}
}
}
原因:使用了CSV格式导出嵌套数据
解决方案:改用JSON、Avro或Parquet格式
原因:可能由于权限不足或存储桶不存在
解决方案:
原因:单文件超过1GB限制
解决方案:使用通配符URI分割输出文件
bq extract --destination_format=NEWLINE_DELIMITED_JSON \
'mydataset.mytable' 'gs://mybucket/mydata_*.json'
解决方案:
通过以上方法和注意事项,您可以高效地将BigQuery中的嵌套数据导出到云存储,同时保持数据的完整性和可用性。
没有搜到相关的文章