DBT table 别名不起作用并给出错误“dataset.table 不匹配任何节点”

DBT table alias not working and gives error `dataset.table does not match any nodes`

我有三个包含 table 同名的数据集。在 documentation 之后,我使用别名重命名每个 table。例如,对于 table 我想调用 mes_brasil DBT 模型是:

{{ config(alias='mes_brasil', schema='br_ibge_ipca') }}
SELECT *
FROM ...

即使文件名为 br_ibge_ipca__mes_brasil.sql。我认为这应该有效。但是,当我 运行 流 DBT 无法识别别名并给出消息 'br_ibge_ipca.mes_brasil' does not match any nodes.

整个项目配置可以在这里找到:https://github.com/basedosdados/queries/blob/master/models/br_ibge_ipca/br_ibge_ipca__mes_brasil.sql

我做错了什么?

很难确切知道,因为您没有分享您 运行 的命令、您正在使用的仓库或确切的错误消息。

但我猜测这是尝试执行 dbt run -s br_ibge_ipca.mes_brasil 时发出的警告。在这里,您尝试 select 一个 dbt 模型 运行 基于它的数据库标识符,这是不允许的。您必须改为使用 dbt run -s br_ibge_ipca__mes_brasil,这是 dbt 对该模型的唯一模型名称。

此外,在您的模型中,您似乎没有使用 dbt 的 {{ ref() }} 宏。使用 ref 很重要,这样 dbt 才能构建依赖图。您可能会看到与乱序构建的节点相关的数据库错误。