首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在Bigquery中添加列时间戳

在Bigquery中添加列时间戳
EN

Stack Overflow用户
提问于 2021-12-21 18:50:19
回答 2查看 412关注 0票数 0

我正在找哪些新列都被添加到表中了。有什么办法能找到吗?在创建或修改带有时间戳的表时,我正在考虑获取所有列,以便我能够筛选那些是新列。

使用INFORMATION_SCHEMA.SCHEMATA,我只获得表创建和修改日期,而不是列。

使用INFORMATION_SCHEMA.COLUMNS,我能够获得所有的列名和它的信息,但没有关于修改或创建时间戳的详细信息。

我的表没有快照,因此无法将其与以前的版本进行比较以获得更改。

有什么办法能抓住这个吗?

EN

回答 2

Stack Overflow用户

发布于 2021-12-21 21:48:11

根据BigQuery列文档,这不是BigQuery当前捕获的元数据。

一个可能的解决方案是进入BigQuery日志,查看何时以及如何更新表。对创建这些表的架构和脚本的源代码控制还可以让您深入了解如何以及何时添加列。

票数 0
EN

Stack Overflow用户

发布于 2021-12-22 04:03:56

正如@RileyRunnoe所提到的那样,这样的元数据不会被BQ捕获,一个可能的解决方案是深入审计日志。在这样做之前,您应该已经创建了指向数据集的BQ接收器。有关更多详细信息,请参阅创建一个水槽

创建接收器时,要执行的所有操作都将将数据使用日志存储在表cloudaudit_googleapis_com_data_access_YYYYMMDD中,并将活动日志存储在您在接收器中选择的BigQuery数据集中的表cloudaudit_googleapis_com_activity_YYYYMMDD中。请记住,您只能从设置日志导出表的日期开始跟踪使用情况。

下面的查询具有一个从cloudaudit_googleapis_com_data_access_*查询的CTE,因为它记录了数据的更改,并且只得到完成的作业,因此对jobservice.jobcompleted进行了过滤。查询CTE以获得包含"COLUMN"的查询,而不包含没有像我们将要运行的查询那样的目标表的查询。

代码语言:javascript
运行
复制
WITH CTE AS (
    SELECT 
        protopayload_auditlog.methodName,
        protopayload_auditlog.servicedata_v1_bigquery.jobCompletedEvent.job.jobConfiguration.query.query as query,
        protopayload_auditlog.servicedata_v1_bigquery.jobCompletedEvent.job.jobStatus.state as status,
        protopayload_auditlog.servicedata_v1_bigquery.jobCompletedEvent.job.jobConfiguration.query.destinationTable.datasetId as dataset,
        protopayload_auditlog.servicedata_v1_bigquery.jobCompletedEvent.job.jobConfiguration.query.destinationTable.tableId as table,
        timestamp
    FROM `my-project.dataset_name.cloudaudit_googleapis_com_data_access_*` 
        WHERE protopayload_auditlog.methodName = 'jobservice.jobcompleted'
)

SELECT query,
    REGEXP_EXTRACT(query,r'ADD COLUMN (\w+) \w+') as column,
    table,
    timestamp,
    status
FROM CTE
    WHERE query like '%COLUMN%' 
    AND NOT REGEXP_CONTAINS(dataset, r'^_')
    ORDER BY timestamp DESC

结果:

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70440285

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档