用途:回答 dbt v2 项目自身的元数据问题,例如项目里有哪些模型、源、测试、列、配置、标签、包或血缘关系,无需翻查 YAML 或加载庞大的 manifest.json。
主要能力:Information Schema 是一组覆盖模型、源、测试、列、DAG 边、配置和运行结果的 SQL 视图,用 DuckDB SQL 在本地查询,不触碰数据仓库。可用 dbt show 或直接查询 parquet 文件两种方式访问。
使用方式:Route A(默认)用 dbt show,如 dbt show --quiet --info models --limit -1 --output json,或使用内联 SQL dbt show --inline "select ... from {{ info_schema('models') }}"。Route B 需先运行 dbt parse --generate-info-schema 生成 parquet 文件,再用 DuckDB 读取,例如 cd target/info_schema/v1 && duckdb -c ".read views.sql" -c "select count(*) from dbt.models"。
前提与限制:仅支持 dbt v2,需先运行 dbt --version 确认;项目元数据需已由 dbt build/run/check 生成(parse 和 compile 需加 --generate-info-schema)。只有本地运行会写入元数据,dbt platform 作业或其他机器的运行不在其中。查询时须在 --inline 中放置字面量 {{ info_schema('view') }},否则会路由到数据仓库并报错。整理版:需查某视图列结构可运行 describe。具体列行为(如 tags 为 DuckDB VARCHAR[]、meta 为 JSON 字符串、config 为双重编码 JSON)需谨慎处理。