从一个表插入另一个表时,Big Query指定_PARTITIONTIME

时间:2017-12-12 14:30:08

标签: google-bigquery

我有两个大查询表t1t2,两者都包含_PARTITIONTIME列。

我的目标是将t2中的行插入t1,以便维护_PARTITIONTIME

INSERT _PARTITIONTIME作为选定变量的方法吗?

或者是否有一种方法可以在插入行后回顾性地定义_PARTITIONTIME列?

2 个答案:

答案 0 :(得分:1)

目前,您可以使用#Importing the dataset df = pd.read_excel('Test.xlsx', sheet_name='Sheet1') df = pd.concat([df, pd.DataFrame(columns=['Avg Qty'])], axis=1) df['Avg Qty'] = df.apply(df.groupby([(['Date'] <= (['Date']+pd.Timedelta(-1, unit='d')) >= (['Date']+pd.Timedelta(-180, unit='d'))), 'A', 'B']))['Qty'].mean() print(df.head)

写入分区

partition decorators

但是有一个正在进行的高请求功能,允许您选择一个列并将其用作分区日。

为了写入20个不同的分区,您需要创建至少20个不同的查询和写入here

[TABLE_NAME]$20160501

此处提供了更多解决方案: Migrating from non-partitioned to Partitioned tables

答案 1 :(得分:0)

我不知道什么时候实现,但是可以!

  

使用DML语句将行添加到摄取时   分区表,可以指定行要分区到的分区   应该添加。您使用_PARTITIONTIME引用分区   伪列。

INSERT INTO PROJECT_ID.DATASET.t2 (_PARTITIONTIME, field1, field2) 
SELECT _PARTITIONTIME, field1, field2
FROM PROJECT_ID.DATASET.t1

https://cloud.google.com/bigquery/docs/using-dml-with-partitioned-tables#inserting_data_into_ingestion-time_partitioned_tables