Python BigQuery插入作业而不是流式处理

Python BigQuery插入作业而不是流式处理,python,google-bigquery,Python,Google Bigquery,我目前正在使用BigQuery的stream选项将数据加载到表中。但是,启用日期分区的表不显示任何分区。。。我知道这是流媒体的一种效果 我使用的Python代码: def stream_data(dataset_name, table_name, data): bigquery_client = bigquery.Client() dataset = bigquery_client.dataset(dataset_name) table = dataset.table(t

我目前正在使用BigQuery的stream选项将数据加载到表中。但是,启用日期分区的表不显示任何分区。。。我知道这是流媒体的一种效果

我使用的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)
日期分区表最终会显示吗?如果否,我如何创建一个插入作业来实现这一点?

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

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

SELECT
  *
FROM
  mydataset.partitioned_table
WHERE
  _PARTITIONTIME BETWEEN TIMESTAMP('2016-12-25')
  AND TIMESTAMP('2016-12-31');
正如您在本例中所看到的,分区表具有元列
\u PARTITIONTIME
,这就是您用来选择感兴趣的分区的内容


有关更多信息,请参阅下面关于查询分区表中的数据的详细说明。

“打开日期分区的表不显示任何分区”-您能对此做进一步说明吗?我们对最新的分区表进行流式处理,没有任何问题。在Web UI中,我只能看到一个表。在另一个数据集中(我没有创建),我可以看到一个表,但表名后面的括号中有大量的分区,然后我可以用“TableNameyyymmdd”查询该表。我想实现这一点。另外:为了能够使用TABLE_DATE_range,您似乎对新的分区表功能和旧的方式感到困惑,即每天手动创建一个分区表@威尔在下面对它作了完美的解释。读一读,谢谢你的回答。我想要实现的是,我可以通过以下方式查询表:从tableYYYYMMDD中选择*以简化查询。我怎样才能做到这一点呢?另外:为了能够使用TABLE_DATE_range,我认为使用分区表是不可能的。要使用
TABLE\u DATE\u RANGE
tableYYYYMMDD
可能需要为每天创建不同的表。尽管如此,您仍然可以使用分区表来执行相同的任务,唯一的区别是您可以选择如下内容:
select*from table where\u partitiontime=timestamp(date)
select*from table where\u partitiontime from date1和date2
,这相当于table\u date\u range操作。