首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >记帐-复制老桌子到新桌子的具有历史意义的烧烤日志。谷歌云平台

记帐-复制老桌子到新桌子的具有历史意义的烧烤日志。谷歌云平台
EN

Stack Overflow用户
提问于 2020-01-07 15:02:13
回答 3查看 314关注 0票数 0

谷歌云大查询问题。

情况:

  • GCP BQ记录路由到we2区域上的“计费”项目。
  • 新的项目"BillingNew“(欧盟地区)已经创建,并被要求为该项目提供烧烤日志。另外,移动历史数据。

问题:如何将旧的计费数据插入到新的计费项目和不同项目之间的嵌套表中。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2020-01-23 08:14:04

以防其他人来同一辆巴士:

  • GCP,BQ记录路由到we2区域上的“计费”项目。
  • 新的项目"BillingNew“(欧盟地区)已经创建,并被要求为该项目提供烧烤日志。另外,移动历史数据。

解决方案:

  1. 在"BillingNew“上创建一个新的数据集。重新安排所有项目的路线。检查一下,确保现场日志在那里。
  2. 使用“传输作业”将数据集从旧的“计费”复制到新的"BillingNew“项目(下面的脚本作为示例):
代码语言:javascript
复制
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"}'
  1. 现在,您具有相同项目的相同日志表模式的两个数据集,以及在同一区域(EU)中最重要的数据集。
  2. 使用SQL语法‘插入到新的...select *从旧的.’
  3. 完成后,您可以在同一个表中保存活动日志和旧日志,包括分区等。

其他方式:

  1. 将数据集从旧项目复制到新项目。
  2. 路线烧烤日志在那里。当重新路由项目时,您将丢失一些记录,它们将被记录在旧表中。因此,最终需要复制差距数据。

感谢使用“传输作业”和复制数据集的建议,因为那些GCP生成的结构化、分区表是一种难以使用的方法。

票数 0
EN

Stack Overflow用户

发布于 2020-01-08 08:52:58

如果使用的是分区表,BigQuery不允许您同时复制多个分区表。如果只迁移一次表,我建议您在SHELL脚本中这样做:

代码语言:javascript
复制
tables=("20200107"  "20200106"  "20200105"  "20200104")

for val in ${tables[*]}; do
     bq cp project1:dataset1.table1_$val project2:dataset2.table2_$val
done

应该将所有日期分区作为字符串放在列表中,然后运行循环。我希望它能帮上忙

编辑1:

由于您在区域间复制表时遇到问题,我建议如下:

考虑到只迁移一次表,您可以在区域之间使用dataset副本:

代码语言:javascript
复制
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"}'

如果将旧数据集设置为目标数据集,则可以检查完整的引用这里,所有表都将在那里创建。

希望它能帮上忙

票数 0
EN

Stack Overflow用户

发布于 2020-01-09 21:11:11

为了将账单数据移动到新项目,首先需要将数据移动到与新数据集相同的区域。您可以按照本指南来完成这一任务。请注意,计费表有嵌套数据;因此,您应该使用支持这种数据的文件格式,比如JSON或Avro格式。此外,请考虑位置考虑,因为您不能在不同区域之间直接复制数据集。

一旦您在Google中获得了您的数据,您可以按照"将数据加载到分区表中“文档将其加载到新的计费表中,请在此步骤中小心,因为有两个选项:截断“。加载类型将取决于分区是新的还是已经有数据。

另一种选择是使用"复制数据集“Beta特性;但是,目前并非所有区域都支持数据集复制。可以在BigQuery数据传输服务当前为支持的区域中创建数据集副本。通过使用“复制数据集”功能,我建议您将单独数据集中的数据加载到新项目中(与目标数据集位于同一位置),然后使用查询作业将数据添加到目标数据集中。

在这两个选项中,如果在单独的数据集中加载历史数据,则可以使用查询作业在新表中加载记帐数据。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59630960

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档