You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Soda Core中如何在Checks.yml内指定表的Schema

在Soda Core中跨Schema校验时正确指定目标表的方法

当你的Snowflake数据源配置了默认Schema(schema: schema_1),直接使用schema_2.table_2会导致Soda自动追加默认Schema,生成错误的表路径schema_1.schema_2.table_2。解决这个问题的核心是使用完全限定的表名,明确指定数据库、Schema和表名,避免默认Schema的自动拼接。

正确的校验规则写法

直接在目标表前加上数据源配置中指定的数据库名(DBNAME),使用数据库名.Schema名.表名的完整格式:

checks for table_1:
  - values in "Year" must exist in DBNAME.schema_2.table_2 YEAR 

原理说明

数据源配置中的schema: schema_1仅对未指定完整限定名的表生效。当你使用包含数据库、Schema、表名的完整路径时,Soda会直接解析这个完整路径,不再自动追加默认Schema,从而正确定位到schema_2下的table_2。

可选方案(调整数据源配置)

如果你不想在校验规则中重复写数据库名,也可以移除数据源配置中的默认Schema(删除schema: schema_1这一行),然后在所有校验规则中明确指定每个表的Schema:

# 修改后的configuration.yml
data_source  my_dataset:
 type: snowflake
 connection:
   username: USERNAME
   password: PWD
   account: ACCOUNT
   database: DBNAME
   warehouse: WAREHOUSE
   connection_timeout: 300
   role: ROLE
   client_session_keep_alive: false
   session_parameters:
# 移除默认schema配置

对应的checks.yml写法:

checks for schema_1.table_1:
  - values in "Year" must exist in schema_2.table_2 YEAR 

内容的提问来源于stack exchange,提问作者Sam777

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.20 07:37:17