簡體   English   中英

Apache Beam數據流BigQuery

[英]Apache Beam Dataflow BigQuery

如何使用apache beam和DataflowRunner從Google BigQuery數據集中獲取表列表?

我找不到如何從指定的數據集獲取表。 我想使用Dataflow的並行處理編程模型將表從位於美國的數據集中遷移到位於歐盟的一個數據集中。

聲明圖書館

from google.cloud import bigquery

准備一個bigquery客戶

client = bigquery.Client(project='your_project_name')

准備對新數據集的引用

dataset_ref = client.dataset('your_data_set_name')

發出API請求

tables = list(client.list_tables(dataset_ref))
if tables:
    for table in tables:
        print('\t{}'.format(table.table_id))

參考: https : //googlecloudplatform.github.io/google-cloud-python/latest/bigquery/usage.html#datasets

您可以嘗試使用google-cloud-examples Maven存儲庫。 有一個名為BigQuerySnippets的類,該類進行API調用來獲取表元,您可以獲取模式。 請注意,限制API配額是每秒6個最大並發請求。

Dataflow的目的是創建管道,因此不包括發出某些API請求的功能。 您必須使用BigQuery Java客戶端庫來獲取數據,然后將其提供給Apache Pipeline。

DatasetId datasetId = DatasetId.of(projectId, datasetName);
Page<Table> tables = bigquery.listTables(datasetId, TableListOption.pageSize(100));
for (Table table : tables.iterateAll()) {
  // do something
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM