![](/img/trans.png)
[英]How to Insert a partition into BigQuery's fetch time partitioned table in Python by specifying a partition
[英]BigQuery Partitioned Table (on DAY) it does not partition - python
我在 BigQuery 的分区表中创建和插入数据时遇到问题。
我的脚本每天下载最近 7 天的一些数据。 我将它们保存在 dataframe 中,然后将它们加载到 Big Query 分区表中。
昨天脚本将前 7 天的数据保存到 BigQuery 表(2022-02-14 和 2022-02-20 之间)。 今天保存了7天前的数据(2022-02-15到2022-02-21之间),但是昨天保存的前7天的数据已经没有了(比如没有更多的数据了) 2022-02-14 日)。
这是我的代码:
schema = [
bigquery.SchemaField("Date", "DATE", "REQUIRED"),
bigquery.SchemaField("Advertiser", "STRING", "REQUIRED"),
bigquery.SchemaField("AdvertiserId", "INTEGER", "REQUIRED"),
bigquery.SchemaField("Campaign", "STRING", "REQUIRED"),
bigquery.SchemaField("CampaignId", "INTEGER", "REQUIRED")
]
job_config = bigquery.LoadJobConfig(
schema=schema,
write_disposition="WRITE_TRUNCATE",
time_partitioning=bigquery.TimePartitioning(
type_=bigquery.TimePartitioningType.DAY,
field="Date", # Name of the column to use for partitioning.
),
)
job = client.load_table_from_dataframe(df, MY_PROJECT_ID.MY_DATASET.MY_TABLE_NAME), job_config=job_config) # Make an API request.
job.result() # Wait for the job to complete.
为什么分区不起作用? 谢谢!
如果我对你的理解是正确的,那么表不是没有分区,而是以前执行的数据并不像你期望的那样存在。
您的 write_disposition 当前设置为WRITE_TRUNCATE
,这意味着每次加载作业运行时表都会被清空。 因此,您将拥有的唯一数据来自最近一次运行。
你有几个选择:
WRITE_APPEND
。 这样您以后就可以在视图中区分出每个日期的最新负载。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.