使用 SQL 向 BigQuery 中的字段添加说明
Posted
技术标签:
【中文标题】使用 SQL 向 BigQuery 中的字段添加说明【英文标题】:add descriptions to fields in BigQuery using SQL 【发布时间】:2020-07-08 16:09:29 【问题描述】:我想为表格中的每个字段添加说明。我的问题是我们正在使用 dbt,并且每次运行作业时此工具都会重新创建表,从而导致描述在存在时被删除。我能够控制在最后一个 SELECT 语句中转换字段的数据类型,但我不确定是否可以使用 SQL 添加描述。
我已经在谷歌上搜索了一段时间,但无法查看是否可以通过这种方式使用 SQL 添加描述。
我想到了一种解决方法,即创建表然后插入,但这在理论上使用 dbt 是不好的做法。
谢谢!
【问题讨论】:
刚刚看到他们上个月发布了这个功能,我错过了。 github.com/fishtown-analytics/dbt/releases/tag/v0.17.0我要检查它是否有效,我会更新问题。谢谢! 【参考方案1】:只是想发布解决方案,以防有人遇到同样的问题。 dbt 没有更新 BQ 本身的描述。然而,他们上个月发布了这个新功能:https://github.com/fishtown-analytics/dbt/releases/tag/v0.17.0
Docs可以像往常一样生成,BQ会显示表和列的描述。您只需将以下内容添加到您的 dbt_project.yml 文件中:
+persist_docs:
relation: true
columns: true
【讨论】:
【参考方案2】:您可以通过两种方式插入说明。
使用 schema.yml 文件
version: 2
models:
- name: events
description: This table contains clickstream events from the marketing website
columns:
- name: event_id
description: This is a unique identifier for the event
tests:
- unique
- not_null
- name: user-id
quote: true
description: The user who performed the event
tests:
- not_null
您还可以在 SQL 中使用 jinga 模板。
% docs table_events %
This table contains clickstream events from the marketing website.
The events in this table are recorded by [Snowplow](http://github.com/snowplow/snowplow) and piped into the warehouse on an hourly basis. The following pages of the marketing site are tracked:
- /
- /about
- /team
- /contact-us
% enddocs %
【讨论】:
嗨,luther,是的,这就是文档的生成方式,但它们不会在 BQ 中持续存在。但是,正如我之前在评论中分享的那样,他们在上个月发布了一个修复程序。我已经回答了我的问题。感谢您的帮助!以上是关于使用 SQL 向 BigQuery 中的字段添加说明的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 SQL 查询 BigQuery 中的 BYTES 字段?