【发布时间】:2018-03-22 16:19:09
【问题描述】:
我有以下配置,可以很好地将一堆文件加载到 BigQuery:
config= {
'configuration'=> {
'load'=> {
'sourceUris'=> 'gs://my_bucket/my_files_*',
'schema'=> {
'fields'=> fields_array
},
'schemaUpdateOptions' => [{ 'ALLOW_FIELD_ADDITION'=> true}],
'destinationTable'=> {
'projectId'=> 'my_project',
'datasetId'=> 'my_dataset',
'tableId'=> 'my_table'
},
'sourceFormat' => 'NEWLINE_DELIMITED_JSON',
'createDisposition' => 'CREATE_IF_NEEDED',
'writeDisposition' => 'WRITE_TRUNCATE',
'maxBadRecords'=> 0,
}
},
}
然后在 client 预初始化的地方执行以下操作:
result = client.execute(
api_method: big_query.jobs.insert,
parameters: { projectId: 'my_project', datasetId: 'my_dataset' },
body_object: config
)
我现在正在尝试编写等效的代码来创建external / federated data source,而不是加载数据。我需要这样做以有效地为 ETL 目的创建临时表。我已经使用 BigQuery UI 成功完成了这项工作,但需要在代码中运行,因为它最终将成为一个日常自动化过程。我在使用 API 文档时遇到了一些麻烦,找不到任何好的示例可供参考。任何人都可以帮忙吗?提前致谢!
【问题讨论】:
标签: ruby-on-rails ruby google-cloud-platform google-bigquery google-cloud-storage