先看看示例
作者提供的示例,实际效果取决于你的输入和使用工具。
输入
编辑构造材料(未运行):
原片段:SELECT payload:user_id::NUMBER AS user_id FROM {{ source('raw', 'events') }}。已确认 user_id 是整型 ID,目标采用 INT64。
输出
编辑示例 · 未运行
SELECT
CAST(JSON_EXTRACT_SCALAR(payload, '$.user_id') AS INT64) AS user_id
FROM {{ source('raw', 'events') }}这里只展示表达式迁移片段,尚未编译或通过 BigQuery 验证。
方法说明
处理 dbt SQL 编译、Jinja 占位、类型和 JSON 差异,转换为 BigQuery SQL。
具体任务
转换一个 dbt 模型的 JSON 字段表达式:处理 dbt SQL 编译、Jinja 占位、类型和 JSON 差异,转换为 BigQuery SQL。
必需材料
Snowflake dbt SQL 与项目中的 ref/source 定义
目标 BigQuery 项目、区域与输出目录
可选材料
数据库元数据导出
迁移项目名和获准 GCS 暂存桶
使用门槛
能够辨认 dbt Jinja 与 SQL 方言,具备隔离输出目录。
这个 Skill 额外提供的方法
用占位符保护 Jinja,经翻译后恢复宏,并检查显式类型、JSON 提取和去重逻辑。
编辑示例(未运行)
转换一个 dbt 模型的 JSON 字段表达式
任务:转换一个 dbt 模型的 JSON 字段表达式
输入:
编辑构造材料(未运行):
原片段:SELECT payload:user_id::NUMBER AS user_id FROM {{ source('raw', 'events') }}。已确认 user_id 是整型 ID,目标采用 INT64。
结果片段:
```sql
SELECT
CAST(JSON_EXTRACT_SCALAR(payload, '$.user_id') AS INT64) AS user_id
FROM {{ source('raw', 'events') }}
```
这里只展示表达式迁移片段,尚未编译或通过 BigQuery 验证。
这是依据固定入口方法撰写的编辑示例,没有运行上游 Skill 或访问真实账号。用占位符保护 Jinja,经翻译后恢复宏,并检查显式类型、JSON 提取和去重逻辑。
首次任务
请使用已安装的 dbt-sf-to-bq-translator Skill。
任务:转换一个 dbt 模型的 JSON 字段表达式。
我的必需材料:
- Snowflake dbt SQL 与项目中的 ref/source 定义:[粘贴我的实际材料或路径;缺少时写明]
- 目标 BigQuery 项目、区域与输出目录:[粘贴我的实际材料或路径;缺少时写明]
可选补充:
- 数据库元数据导出:[可选,未提供时不要假定存在]
- 迁移项目名和获准 GCS 暂存桶:[可选,未提供时不要假定存在]
请先确认材料是否足够,只处理我提供的范围。只转换给定模型,不新增历史数据 union 或业务宏;云翻译会上传 SQL 和元数据,需批准暂存范围。交付可直接审阅的代码或查询片段,明确尚未执行或验证的部分。不要代入页面例子的虚构数据。
验收:
1. ref/source 和增量分支保留,未新增业务逻辑。
2. ID、布尔值与日期转换依据真实类型核对。
3. 编译与少量数据对账通过后再迁移完整模型。
验收方法
ref/source 和增量分支保留,未新增业务逻辑。
ID、布尔值与日期转换依据真实类型核对。
编译与少量数据对账通过后再迁移完整模型。
依赖与准备
需要完整 Skill 目录,保留 scripts/bulk_translate_via_gcloud.py、scripts/dbt_translator.py、references/dbt_migration_patterns.md 等引用。完整目录含 bulk_translate_via_gcloud.py 与 dbt_translator.py;在线流程需 gcloud、ADC、BigQuery Migration/Storage API、计费和暂存桶权限。
使用边界
只转换给定模型,不新增历史数据 union 或业务宏;云翻译会上传 SQL 和元数据,需批准暂存范围。
需要原 dbt 项目、Google 认证、启用的迁移 API 与计费;转换结果必须验证。
页面中的例子为编辑撰写,未运行上游 Skill;不代表平台兼容认证或生产实测。
排错
Jinja 被改成普通表名:检查占位恢复和命名解析,不直接把编译后路径写死。
自定义宏仍含 Snowflake 语法:按宏审计结果逐项处理并保留警告,不把批量脚本完成当作全部兼容。
固定来源
https://github.com/google/skills/blob/2964a69c4d4a27632a43d60dab5f4f645f2a82df/skills/cloud/dbt-sf-to-bq-translator/SKILL.md
许可
Apache-2.0。许可原文:https://github.com/google/skills/blob/2964a69c4d4a27632a43d60dab5f4f645f2a82df/LICENSE
仓库热度
google/skills 仓库 20,504 Stars(2026-09-30 核验);这是父仓库指标,不是单个 Skill 的评分。