![](/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.