关于如何将临时 BigQuery 函数编写为 DBT 宏的基本问题

问题描述 投票:0回答:1

我有一些在 BigQuery 编辑器中编写和使用 UDF 的经验,但是我对它们在 DBT 中作为宏的实现知之甚少。

具体来说,我想到的是以下 BQ UDF:

CREATE TEMP FUNCTION dtform(s STRING)
RETURNS DATE AS (DATE(TIMESTAMP(REPLACE(s, "Z", ""), "time_zone")));

需要重新调整本地时区日期,这些日期由我用来从原始数据源传输到 BQ 仓库的传输工具自动设置为 UTC。

我的问题是如何将其渲染为 DBT 宏?如果有人有耐心详细解答,将不胜感激!

google-bigquery macros user-defined-functions dbt
1个回答
0
投票

您可以创建一个持久性 UDF 函数并使用它。例如,以下持久函数可以工作

CREATE FUNCTION public.dtform(s STRING)
RETURNS DATE AS (DATE(TIMESTAMP(REPLACE(s, "Z", ""), "time_zone")));

与其重新发明 UDF,不如检查它是否已在

中可用

https://github.com/GoogleCloudPlatform/bigquery-utils/tree/master/udfs

这是一个公共项目,可以直接使用其下的UDF

如果您觉得这个答案有用,请点赞或标记为已回答

© www.soinside.com 2019 - 2024. All rights reserved.