Python BigQuery插入作业而不是流式处理
我目前正在使用BigQuery的stream选项将数据加载到表中。但是,启用日期分区的表不显示任何分区。。。我知道这是流媒体的一种效果 我使用的Python代码: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
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操作。