Google bigquery 如何在将文件加载到表时添加时间戳列

Google bigquery 如何在将文件加载到表时添加时间戳列,google-bigquery,Google Bigquery,我正在将批处理文件加载到表中 我想在表中添加一个timestamp列,以便知道插入时间 记录在案。我正在以追加模式加载,因此并非所有记录都同时插入 不幸的是,在大查询中我没有找到一种方法。在将文件加载到表中时,我找不到使用附加列填充插入内容的选项。我只想计算代码中的时间戳,并将其作为所有插入过程的常量字段 我现在正在做的解决方案是加载到temp表,然后查询table+newtimestamp字段到目标表中。它可以工作,但这是另一个步骤,我有多个加载,由于另一个步骤的延迟,整个过程花费了太多时间

我正在将批处理文件加载到表中

我想在表中添加一个timestamp列,以便知道插入时间 记录在案。我正在以追加模式加载,因此并非所有记录都同时插入

不幸的是,在大查询中我没有找到一种方法。在将文件加载到表中时,我找不到使用附加列填充插入内容的选项。我只想计算代码中的时间戳,并将其作为所有插入过程的常量字段

我现在正在做的解决方案是加载到temp表,然后查询table+newtimestamp字段到目标表中。它可以工作,但这是另一个步骤,我有多个加载,由于另一个步骤的延迟,整个过程花费了太多时间


有人知道另一个只需一个步骤的解决方案吗?

这是一个很好的功能要求。不幸的是,目前还没有自动化的方法。不过,我喜欢您这样做:)

如果您愿意创建一个新表来容纳此信息,我建议您使用以下设置创建一个新表:


如果您使用默认的_partitionTimepartitioning字段创建一个表,它会根据插入时间完全执行您的要求

您可以使用数据帧添加时间戳列/值:

from datetime import datetime
import pandas as pd
from google.cloud import bigquery

insertDate = datetime.utcnow()

bigqueryClient = bigquery.Client()
tableRef = bigqueryClient.dataset("dataset-name").table("table-name")

dataFrame = pd.read_json("file.json")
dataFrame['insert_date'] = insertDate

bigqueryJob = bigqueryClient.load_table_from_dataframe(dataFrame, tableRef)
bigqueryJob.result()

但分区值将仅为日期级别,而不是时间戳。您只能知道摄取行的日期,但不能知道时间戳或纪元时间。这不是我想要的:)但谢谢你的帮助!嗨,你找到这个问题的答案了吗?如果是,你能分享一下吗?谢谢,斯里。