首页 文章

Apache Beam Dataflow BigQuery

提问于
浏览
0

如何使用带有DataflowRunner的apache beam从Google BigQuery数据集中获取表格列表?

我找不到如何从指定的数据集中获取表 . 我想使用Dataflow的并行处理编程模型将表格从位于美国的数据集迁移到EU中的表格 .

3 回答

  • 0

    您可以尝试使用google-cloud-examples maven repo . 有一个名为 BigQuerySnippets 的类,它进行API调用以获取表元,您可以获取模式 . 请注意,限制API配额是每秒6个最大并发请求数 .

  • 0

    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
    }
    
  • 0

    声明库

    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

相关问题