谷歌云大查询问题。
情况:
问题:如何将旧的计费数据插入到新的计费项目和不同项目之间的嵌套表中。
发布于 2020-01-23 08:14:04
以防其他人来同一辆巴士:
解决方案:
bq mk --transfer_config --project_id=TARGET_PROJECT_ID --data_source=cross_region_copy --target_dataset=TARGET_DATASET_NAME --display_name='Transfer job name, type any' --params='{"source_dataset_id":"SOURCE_DATASET_NAME(ID)","source_project_id":"SOURCE_PROJECT_NAME(ID)","overwrite_destination_table":"true"}'其他方式:
感谢使用“传输作业”和复制数据集的建议,因为那些GCP生成的结构化、分区表是一种难以使用的方法。
发布于 2020-01-08 08:52:58
如果使用的是分区表,BigQuery不允许您同时复制多个分区表。如果只迁移一次表,我建议您在SHELL脚本中这样做:
tables=("20200107" "20200106" "20200105" "20200104")
for val in ${tables[*]}; do
bq cp project1:dataset1.table1_$val project2:dataset2.table2_$val
done应该将所有日期分区作为字符串放在列表中,然后运行循环。我希望它能帮上忙
编辑1:
由于您在区域间复制表时遇到问题,我建议如下:
考虑到只迁移一次表,您可以在区域之间使用dataset副本:
bq mk --transfer_config --project_id=myproject --data_source=cross_region_copy --target_dataset=123_demo_tokyo --display_name='My Dataset Copy' --params='{"source_dataset_id":"123_demo_eu","source_project_id":"mysourceproject","overwrite_destination_table":"true"}'如果将旧数据集设置为目标数据集,则可以检查完整的引用这里,所有表都将在那里创建。
希望它能帮上忙
发布于 2020-01-09 21:11:11
为了将账单数据移动到新项目,首先需要将数据移动到与新数据集相同的区域。您可以按照本指南来完成这一任务。请注意,计费表有嵌套数据;因此,您应该使用支持这种数据的文件格式,比如JSON或Avro格式。此外,请考虑位置考虑,因为您不能在不同区域之间直接复制数据集。
一旦您在Google中获得了您的数据,您可以按照"将数据加载到分区表中“文档将其加载到新的计费表中,请在此步骤中小心,因为有两个选项:截断“。加载类型将取决于分区是新的还是已经有数据。
另一种选择是使用"复制数据集“Beta特性;但是,目前并非所有区域都支持数据集复制。可以在BigQuery数据传输服务当前为支持的区域中创建数据集副本。通过使用“复制数据集”功能,我建议您将单独数据集中的数据加载到新项目中(与目标数据集位于同一位置),然后使用查询作业将数据添加到目标数据集中。
在这两个选项中,如果在单独的数据集中加载历史数据,则可以使用查询作业在新表中加载记帐数据。
https://stackoverflow.com/questions/59630960
复制相似问题