我在位于美国的 Google Cloud Platform(和 Bigquery)上创建了一些项目。现在我只想在欧盟创建数据集。有没有办法将这些表从美国数据集复制到欧盟数据集,而无需在本地下载数据?
我从拥有导入管道的子团队成员那里得到了以下建议:
恐怕目前我们没有比这更精简的了
可以选择使用跨区域复制。命令示例:
bq mk --transfer_config --project_id=your-project-id --data_source=cross_region_copy --target_dataset=your-target-dataset --display_name='description' --params='{"source_dataset_id":"your-source-dataset","source_project_id":"your-project-id","overwrite_destination_table":"true"}'
此命令在区域之间复制数据集并替换目标数据集中的所有现有表。我没有找到如何仅复制特定表格的方法。
复制要求源表和目标表位于同一位置
因此,您的选择是将数据从源表提取到云存储,然后从云存储加载到目标
到2024年,这种跨区域复制可以通过一种称为数据集复制的数据传输服务方法来实现。 我们能够在欧盟获取 BQ 数据集,并克隆位于美国的 BigQuery Google 项目中的表。 您可以安排它并将所有权设置为服务帐户。我确信甚至有一个 Teraform 模块可以将作业部署到您的项目中。
根据this有关复制BQ表的文档,提到
“复制表时,目标数据集必须与要复制的表位于同一位置。例如,您无法将表从基于欧盟的数据集复制到基于美国的数据集。”
截至目前,我们还无法直接在不同区域之间复制表。
我相信您可以使用复制表功能来实现此目的。单击 UI 中表名称旁边的下拉列表,然后选择复制表。