BigQuery插入作业而不是流式传输

时间:2016-12-30 14:46:38

标签: python google-bigquery

我目前正在使用BigQuery的流选项将数据加载到表中。但是,具有日期分区的表不显示任何分区...我知道这是流式传输的影响。

我使用的Python代码:

def stream_data(dataset_name, table_name, data):
    bigquery_client = bigquery.Client()
    dataset = bigquery_client.dataset(dataset_name)
    table = dataset.table(table_name)

    # Reload the table to get the schema.
    table.reload()
    rows = data
    errors = table.insert_data(rows)
    if not errors:
        print('Loaded 1 row into {}:{}'.format(dataset_name, table_name))
    else:
        print('Errors:')
        print(errors)

日期分区表最终会显示,如果没有,我怎样才能创建插入作业来实现这个目标?

1 个答案:

答案 0 :(得分:2)

不确定“分区未显示”是什么意思,但是当您创建分区表时,您只能看到一个表。

这里唯一的区别是你可以在这个表中查询日期分区,如下所示:

SELECT
  *
FROM
  mydataset.partitioned_table
WHERE
  _PARTITIONTIME BETWEEN TIMESTAMP('2016-12-25')
  AND TIMESTAMP('2016-12-31');

正如您在此示例中所看到的,分区表具有元列_PARTITIONTIME,您可以使用它来选择您感兴趣的分区。

有关详细信息,请参阅docs解释有关查询分区表中数据的更多信息。