[英]Creating a Data Pipeline to BigQuery Using Cloud Functions and Cloud Scheduler
[英]Data Transfer between two BigQuery Projects using Google Cloud Functions
我在 Google Cloud Platform 上創建了兩個項目,分別是 project1 和 project2。 Project1 有一個名為 dataset1 的 bigquery 數據集,其中包含一個名為 table1 的表,其中包含一些內容。 Project2 有一個名為 dataset2 的 bigquery 數據集,其中包含一個名為 table2 的表,該表為空。 我需要一個 python 代碼,它將使用 Google Cloud Functions 工具復制/導入 table1 並將其導出/復制到最初為空的 table2。
了解如何按照文檔使用 Python 向 BigQuery 發送查詢。
您需要的“復制/導入 table1 並將其導出/復制到 table2”的查詢是(假設 table2 與 table1 具有完全相同的架構):
INSERT INTO project2.dataset2.table2
SELECT * FROM project1.dataset1.table1;
在此處找到 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 TABLE
或INSERT INTO
因為它們更方便)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.