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

标签 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)

日期分区表最终会显示吗?如果没有,我如何创建插入作业来实现这一点?

最佳答案

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

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

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

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

有关更多信息,请访问 docs详细解释一下如何查询分区表中的数据。

关于python - BigQuery 插入作业而不是流式处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41398093/

相关文章:

Python3 BeautifulSoup 在字典中插入每个标签(也嵌套)

google-bigquery - BigQuery 嵌套字段 : column units of type ARRAY cannot be used in SELECT DISTINCT

google-bigquery - 从多个重复字段中获取数据时,自联接是继续 BigQuery 的方式吗?

python - 用户模型的 Django 自定义管理器

google-app-engine - 在 Google App Engine 环境中托管的 Golang 网络应用程序出错;应用程序前端 BigQuery

unicode - 如何在标准 SQL 中使用 Unicode 规范化删除变音符号(例如重音符号)?

google-bigquery - 使用窗口函数将 Google Data Studio 连接到 BigQuery 时出现问题

python - pandas 将字符串评估为数字

python - 如何在Python中使用强制符号将 float 格式化为固定宽度

python - 在 SLES 11 上安装 Python 2.7