使用Google云函数在两个BigQuery项目之间进行数据传输

2024-09-27 20:17:59 发布

您现在位置:Python中文网/ 问答频道 /正文

我在Google云平台上创建了两个项目project1和project2。Project1有一个名为dataset1的bigquery数据集,其中包含一个名为table1的表,该表包含一些内容。Project2有一个名为dataset2的bigquery数据集,其中包含一个名为table2的表,该表为空。我需要一个python代码,将复制/导入table1和导出/复制到table2,这是最初使用googlecloudfunctions工具空的。你知道吗


Tags: 数据项目代码内容google平台bigqueryproject1
2条回答

在此处查找复制表的Python代码:

代码是:

# from google.cloud import bigquery
# client = bigquery.Client()

source_dataset = client.dataset("samples", project="bigquery-public-data")
source_table_ref = source_dataset.table("shakespeare")

# dataset_id = 'my_dataset'
dest_table_ref = client.dataset(dataset_id).table("destination_table")

job = client.copy_table(
    source_table_ref,
    dest_table_ref,
    # Location must match that of the source and destination tables.
    location="US",
)  # API request

job.result()  # Waits for job to complete.

assert job.state == "DONE"
dest_table = client.get_table(dest_table_ref)  # API request
assert dest_table.num_rows > 0

这个问题的另一个答案是可以用INSERT INTO *来完成,但是这个操作需要花费一个完整的表扫描,而这个操作是免费的。你知道吗

(我通常使用CREATE TABLEINSERT INTO,因为它们更方便)

  1. 了解如何使用Python在documentation之后向BigQuery发送查询。

  2. 您需要的“复制/导入表1并将其导出/复制到表2”查询是(假设表2与表1具有完全相同的架构):

INSERT INTO project2.dataset2.table2 
SELECT * FROM project1.dataset1.table1;

相关问题 更多 >

    热门问题