如何将数据集克隆到另一个BigQuery项目

时间:2016-07-20 20:21:50

标签: dataset views google-bigquery

假设您有每个客户端的Google-BigQuery项目。现在一个新的客户正在上船。克隆项目,数据集或对象(例如新项目的视图)的最佳过程是什么?

我有一个数据集,其中包含一组包含分析逻辑的视图。如果我可以将这些视图复制到新项目中,那就太棒了。

由于

3 个答案:

答案 0 :(得分:1)

作为选项 - 您可以使用

脚本

应该很简单

答案 1 :(得分:0)

我们有类似的要求,以便将每个数据集级别的所有或选择性视图和表定义从一个Big Query项目转移到另一个,因此已经在内部进行了编码,以使用Biq查询API转移所有/选择性表的Schemas和Views定义。它是到目标Big Query项目的浅层克隆(不传输任何表数据)。

如果仍然需要代码示例,请随时询问。我很乐意分享我的Java代码。

答案 2 :(得分:0)

这是基于 Mikhail Berlyant 回答的解决方案。创建新数据集后:

from google.cloud import bigquery
from google.cloud.bigquery.table import Table


ORIGINAL_PROJECT_ID = "original-project-id"
NEW_PROJECT_ID = "new-project-id"
ORIGINAL_DATASET_ID = "original-dataset-id"
NEW_DATASET_ID = "new-dataset-id"

client = bigquery.Client(project=ORIGINAL_PROJECT_ID)

tables_list = [
    table
    for table in client.list_tables(dataset=ORIGINAL_DATASET_ID)
    if table.table_type == "VIEW"
]

tables = [client.get_table(table) for table in tables_list]

for table in tables:
    new_table = Table(f"{NEW_PROJECT_ID}.{NEW_DATASET_ID}.{table.table_id}")
    new_table.view_query = table.view_query
    client.create_table(new_table)