假设您有每个客户端的Google-BigQuery项目。现在一个新的客户正在上船。克隆项目,数据集或对象(例如新项目的视图)的最佳过程是什么?
我有一个数据集,其中包含一组包含分析逻辑的视图。如果我可以将这些视图复制到新项目中,那就太棒了。
由于
答案 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)