google-bigquery - 使用 BQ API 使用 Write_Truncate 将数据加载到 “Partitioned Tables”

标签 google-bigquery

可以使用 write_truncate 将数据加载到特定分区吗? 我的用例是覆盖特定分区的批加载过程,同时保持表的其余部分不变。 此引用仅提及命令行工具: https://cloud.google.com/bigquery/docs/creating-partitioned-tables#restating_data_in_a_partition

最佳答案

如果您想使用 BQ API 写入特定分区,请像写入表一样继续操作,但在表 ID 中包含分区装饰器。

如果你有一个 date partitionedtransactions 并且您想将数据加载到对应于 2021-10-11 的分区,将 transactions$20211011 传递给 API。

如果你有一个 ingestion-time partitioned具有小时分区的表 transactions 并且您想将数据加载到对应于 2021-05-07 17:00:00 的分区,传递 transactions$2021050717 到 API。

示例:如果您正在使用 python 的 API 将 DataFrame 加载到 BQ 中并且您想要覆盖分区,您可以这样做:

from google.cloud import bigquery
client = bigquery.Client(project='your_project')

job_config = bigquery.LoadJobConfig(
    write_disposition="WRITE_TRUNCATE", 
)

# Include target partition in the table id:
table_id = "your_project.your_dataset.your_table$20211021" 
job = client.load_table_from_dataframe(df, table_id, job_config=job_config) # Make an API request
job.result() # Wait for job to finish

关于google-bigquery - 使用 BQ API 使用 Write_Truncate 将数据加载到 “Partitioned Tables”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37655688/

相关文章:

google-bigquery - BigQuery 表提取的行可以随机化吗

python - 从 Dataflow python 作业写入 bigquery 中的分区表

google-bigquery - 如何在BigQuery中使用EXISTS获取匹配过去日志的内容

google-bigquery - BigQuery - 修改预定查询

sql - SQL 数据库中非规范化的实际示例?

sql - 如何在不扫描整个表的情况下选择 DBT 中 bigquery 表的最新分区?

sql - 如何尝试让 BigQuery 将 CAST BYTES 转换为 STRING?

google-bigquery - 基于 TIMESTAMP 列的分区的 BigQuery 分区过期

java - 使用架构自动检测写入 BigQuery 的数据流作业

spring-boot - 如何将 BigQuery 数据提取到 springboot 应用程序中?