| 1 | pip install dbt-core | Instala o motor principal do dbt | pip install dbt-core |
| 2 | pip install dbt-postgres | Instala o conector para PostgreSQL | pip install dbt-postgres |
| 3 | pip install dbt-snowflake | Instala o conector para Snowflake | pip install dbt-snowflake |
| 4 | pip install dbt-bigquery | Instala o conector para BigQuery | pip install dbt-bigquery |
| 5 | pip install dbt-redshift | Instala o conector para Redshift | pip install dbt-redshift |
| 6 | dbt init | Cria a estrutura de pastas de um novo projeto | dbt init analytics_v1 |
| 7 | dbt debug | Testa a conexão e valida o arquivo profiles.yml | dbt debug |
| 8 | dbt deps | Baixa pacotes externos (como dbt_utils) | dbt deps |
| 9 | dbt clean | Apaga as pastas dbt_packages e logs | dbt clean |
| 10 | dbt --version | Verifica as versões instaladas | dbt --version |
| 11 | dbt run | Compila e executa modelos no banco | dbt run |
| 12 | dbt test | Roda testes de integridade e dados | dbt test |
| 13 | dbt seed | Carrega CSVs da pasta /seeds para o banco | dbt seed |
| 14 | dbt build | Executa run, test, seed e snapshot em ordem | dbt build |
| 15 | dbt snapshot | Roda capturas de histórico (SCD Type 2) | dbt snapshot |
| 16 | dbt docs generate | Gera o catálogo de documentação JSON | dbt docs generate |
| 17 | dbt docs serve | Inicia site local com o grafo de linhagem | dbt docs serve |
| 18 | dbt compile | Converte Jinja para SQL puro sem rodar | dbt compile |
| 19 | dbt list | Lista todos os recursos do projeto | dbt ls |
| 20 | dbt parse | Analisa o projeto apenas para ver erros de sintaxe | dbt parse |
| 21 | dbt source freshness | Verifica o atraso das tabelas de origem | dbt source freshness |
| 22 | dbt run-operation | Executa uma macro específica manualmente | dbt run-operation my_macro |
| 23 | dbt show | Mostra prévia do resultado de um modelo | dbt show --select stg_users |
| 24 | dbt retry | Executa apenas o que falhou na rodada anterior | dbt retry |
| 25 | dbt run --full-refresh | Recria tabelas incrementais do zero | dbt run --full-refresh |
| 26 | --select model_name | Filtra por um modelo específico | dbt run -s orders |
| 27 | --select path.to.models | Roda todos os modelos de uma pasta | dbt run -s models/marts |
| 28 | --select model+ | Roda o modelo e todos os filhos dele | dbt run -s users+ |
| 29 | --select +model | Roda o modelo e todos os pais dele | dbt run -s +orders |
| 30 | --select @model | Roda o modelo, pais, filhos e dependentes indiretos | dbt run -s @orders |
| 31 | --exclude model | Roda tudo exceto o modelo citado | dbt run --exclude heavy_model |
| 32 | --select tag:finance | Roda modelos marcados com uma tag | dbt run -s tag:finance |
| 33 | --select config.materialized:table | Filtra por tipo de materialização | dbt run -s config.materialized:table |
| 34 | --select source:my_src+ | Roda tudo que depende de uma fonte específica | dbt run -s source:erp+ |
| 35 | --select state:modified | Roda apenas o que foi alterado (Git) | dbt run -s state:modified |
| 36 | --target prod | Muda o ambiente de execução | dbt run -t prod |
| 37 | --vars '{"key": "val"}' | Passa variáveis para o código via CLI | dbt run --vars '{"date": "2023-01-01"}' |
| 38 | --threads 8 | Define o número de consultas paralelas | dbt run --threads 8 |
| 39 | --fail-fast | Para tudo no primeiro erro encontrado | dbt run --fail-fast |
| 40 | --quiet | Reduz a saída de log no terminal | dbt run --quiet |
| 41 | {{ ref('') }} | Referencia outro modelo dbt | from {{ ref('stg_sales') }} |
| 42 | {{ source('', '') }} | Referencia uma tabela bruta (Source) | from {{ source('raw', 'logs') }} |
| 43 | {{ config() }} | Define propriedades do modelo | {{ config(materialized='view') }} |
| 44 | {{ var('') }} | Usa variável definida no dbt_project.yml | where dt > '{{ var("start_date") }}' |
| 45 | {{ env_var('') }} | Busca valor do sistema operacional | {{ env_var('DB_PASSWORD') }} |
| 46 | {% set var = ... %} | Cria variável local no arquivo | {% set total = 100 %} |
| 47 | {% if ... %}{% endif %} | Bloco condicional Jinja | {% if target.name == 'dev' %} |
| 48 | {% for i in ... %} | Loop para repetir código SQL | {% for col in ['id', 'name'] %} |
| 49 | {{ target.name }} | Retorna o nome do perfil ativo | {{ target.name }} |
| 50 | {{ target.schema }} | Retorna o schema padrão atual | {{ target.schema }} |
| 51 | {{ this }} | Refere-se ao nome da própria tabela atual | insert into {{ this }} |
| 52 | is_incremental() | Checa se é uma rodada incremental | {% if is_incremental() %} |
| 53 | {{ log("msg") }} | Escreve no console durante a compilação | {{ log("Rodando...", info=True) }} |
| 54 | {{ return() }} | Retorna um valor em uma macro | {{ return(my_val) }} |
| 55 | {% macro name() %} | Inicia definição de uma função reutilizável | {% macro grant_select() %} |
| 56 | adapter.dispatch() | Escolhe macro baseada no tipo de banco | {{ adapter.dispatch('macro_name')() }} |
| 57 | run_query() | Executa SQL e traz os dados para o Jinja | {% set res = run_query(sql) %} |
| 58 | execute | Flag que indica se o dbt está em execução | {% if execute %} |
| 59 | exceptions.raise_compiler_error | Gera erro e para o processo | {{ exceptions.raise_compiler_error("Erro!") }} |
| 60 | {{ doc('') }} | Importa descrição de um arquivo markdown | description: '{{ doc("orders_doc") }}' |
| 61 | materialized='table' | Cria uma tabela física | config(materialized='table') |
| 62 | materialized='view' | Cria uma visão lógica | config(materialized='view') |
| 63 | materialized='incremental' | Apenas anexa novos dados | config(materialized='incremental') |
| 64 | materialized='ephemeral' | Vira uma CTE em outros modelos | config(materialized='ephemeral') |
| 65 | unique_key | Define chave para update incremental | unique_key='id' |
| 66 | incremental_strategy | Estratégia: merge, delete+insert ou append | incremental_strategy='merge' |
| 67 | on_schema_change | Como lidar com colunas novas no incremental | on_schema_change='fail' |
| 68 | pre_hook | SQL que roda ANTES do modelo | pre_hook="sql_aqui" |
| 69 | post_hook | SQL que roda DEPOIS do modelo | post_hook="grant select..." |
| 70 | alias | Muda o nome da tabela no banco final | config(alias='vendas_final') |
| 71 | schema | Define um schema específico para o modelo | config(schema='marketing') |
| 72 | database | Define o banco de dados/database final | config(database='raw_zone') |
| 73 | tags: [] | Agrupa modelos para seleção facilitada | tags: ['daily', 'pii'] |
| 74 | not_null | Teste de valor não nulo (YAML) | - tests: [not_null] |
| 75 | unique | Teste de valores únicos (YAML) | - tests: [unique] |
| 76 | accepted_values | Teste de lista de valores permitidos | values: ['shipped', 'placed'] |
| 77 | relationships | Teste de chave estrangeira | to: ref('users'), field: id |
| 78 | severity: warn | Faz o teste não falhar o pipeline | severity: warn |
| 79 | persist_docs | Leva descrições para os comentários do banco | persist_docs: {"columns": true} |
| 80 | quote: true | Força aspas em nomes de colunas | quote: true |
| 81 | dbt_utils.surrogate_key | Cria hash MD5 de colunas | {{ dbt_utils.surrogate_key(['id', 'dt']) }} |
| 82 | dbt_utils.star | Seleciona tudo exceto colunas X, Y | {{ dbt_utils.star(ref('tbl'), except=['pass']) }} |
| 83 | dbt_utils.pivot | Transforma linhas em colunas | {{ dbt_utils.pivot('status', ['a', 'b']) }} |
| 84 | dbt_utils.unpivot | Transforma colunas em linhas | {{ dbt_utils.unpivot(ref('tabela'), cast_to='str') }} |
| 85 | dbt_utils.date_spine | Gera uma série temporal de datas | {{ dbt_utils.date_spine("day", "2020-01-01") }} |
| 86 | check_cols | Snapshot: verifica colunas para mudanças | check_cols: ['email', 'status'] |
| 87 | strategy: 'timestamp' | Snapshot: usa coluna de data para mudar | updated_at: 'updated_at' |
| 88 | dbt run --select state:failed | Tenta rodar apenas o que falhou no CI | dbt run -s state:failed |
| 89 | graph.nodes | Acessa metadados do projeto via Jinja | {{ graph.nodes.values() }} |
| 90 | modules.datetime | Usa biblioteca datetime do Python no Jinja | {{ modules.datetime.datetime.now() }} |
| 91 | dbt clone | Clona tabelas entre ambientes (Snowflake/BQ) | dbt clone --select tag:heavy |
| 92 | dbt run --defer | Usa tabelas de prod se as de dev não existem | dbt run --defer --state path/ |
| 93 | adapter.get_columns_in_relation | Lista colunas de uma tabela no banco | adapter.get_columns_in_relation(this) |
| 94 | dbt build --dry-run | Simula a execução sem aplicar | dbt build --dry-run |
| 95 | quote_columns: false | Desativa aspas automáticas em seeds | quote_columns: false |
| 96 | dispatch: macro_namespace | Configura prioridade de pacotes | dispatch: [{'macro_namespace': 'util'}] |
| 97 | store_failures: true | Salva registros que falharam no teste em tabela | store_failures: true |
| 98 | limit 100 | Usado com target.name para economizar em dev | {% if target.name == 'dev' %} limit 100 {% endif %} |
| 99 | dbt run-operation grant_access | Macro comum para permissões pós-run | dbt run-operation grant_access --args '{"role": "bi"}' |
| 100 | generate_schema_name | Macro especial para customizar nomes de schema | {% macro generate_schema_name(...) %} |