04 Reconstrução do pipeline dbt
Guia de facilitação para reconstruir o pipeline dbt no ClickHouse — por que a tabela de agregados vazia não é um bug.
Material de apoio ao instrutor para a aula do participante 04 Reconstrução do pipeline dbt.
Duração
Cerca de 30 minutos. O único trecho realmente ocioso é o segundo dbt run da etapa 1
(aproximadamente 8 a 12 minutos para processar 50 milhões de linhas nos modelos incrementais):
curto demais para normalmente justificar um intervalo próprio, mas longo o bastante para ser
explicado em vez de observado em silêncio. A etapa 2 (o dicionário de zonas) e as consultas de
verificação são rápidas e interativas.
Roteiro
- Apresente este módulo como uma prova do pipeline, não dos dados: o módulo 03 demonstrou que o ClickHouse comporta 50 milhões de linhas; este demonstra que o mesmo formato de pipeline Medallion do módulo 01 — views de preparação, tabela de fatos incremental, recargas de dimensões e testes — funciona no ClickHouse sem mudar de formato.
- Vale a pena fazer uma pausa em um mecanismo do dbt:
delete_insertsubstituiMERGE INTO(o ClickHouse não tem instruçãoMERGE), eReplacingMergeTreeé a rede de segurança por baixo dele, não seu substituto. Sedelete_insertterminar normalmente, não há nada para o RMT limpar; ele só importa quando uma execução é interrompida no meio. - Destaque
mv_live_trip_feedpelo nome: não há equivalente algum no Snowflake. Uma view materializada padrão só vê as linhas do lote que a acionou; uma view materializada REFRESHABLE executa novamente toda a consulta em um agendamento, podendo manter um agregado de toda a vida útil. Esta é uma nova capacidade acrescentada pela migração, não uma simples transposição. - Diga isto antes que alguém pergunte:
agg_hourly_zone_tripsestará vazia após odbt runda etapa 1, e isso está correto, não é um bug. Seu filtro incremental éWHERE pickup_at >= now() - INTERVAL 2 HOUR, que só corresponde a linhas gravadas por um produtor em tempo real; todas as linhas recém-migradas são históricas. Ela permanece vazia até que o módulo 05 inicie o produtor do ClickHouse na virada. Os parceiros costumam concluir que o pipeline está quebrado; antecipe-se à pergunta.
Falhas comuns
agg_hourly_zone_tripsretorna 0 linhas após a etapa 1 e um parceiro relata um bug. Não é um bug; consulte o roteiro acima. Confirme quedim_taxi_zones(265 linhas) efact_trips(aproximadamente 50 milhões de linhas) foram preenchidas conforme o esperado antes de investir tempo emagg_hourly_zone_trips. Se as duas estiverem corretas, a tabela de agregados vazia está funcionando exatamente como projetado. Esta é a principal “falha” do módulo; espere ouvir a pergunta em todas as turmas.- O
dbt runda etapa 1 falha ou não consegue se conectar. Este módulo depende do perfil dbt do ClickHouse que o módulo 03 já deveria ter criado (~/.dbt/profiles.yml,nyc_taxi_ch). Se o perfil estiver ausente — consulte “Configure o perfil dbt”, na etapa 2 de 03 Provisionamento e migração —, a etapa 1 falhará aqui, um módulo depois da causa raiz. - PENDENTE: a seção
## dbt no ClickHouseda página de Solução de problemas do site não contém uma entrada específica para uma falha que só aparece nesta etapa. Registre aqui qualquer particularidade encontrada no ensaio.
Etapas de redefinição
- Execute
dbt runnovamente sem receio: ele é incremental e seguro para repetição; nada aqui exige desmontagem. - Depois de alterar um modelo ou esquema dbt, force uma reconstrução completa dos modelos
incrementais:
dbt run --full-refresh(emworkshop_public/snowflake_migration_lab/03-migrate-to-clickhouse/dbt/nyc_taxi_dbt_ch). - Se o dicionário de zonas parecer incorreto ou desatualizado, basta executar novamente
scripts/04_create_dictionary.sql: trata-se deCREATE OR REPLACE DICTIONARY, que pode ser repetido com segurança sem remover nada antes. - Nenhuma redefinição no nível do ambiente se aplica aqui. A desmontagem deste módulo é o mesmo
workshop_public/snowflake_migration_lab/03-migrate-to-clickhouse/teardown.shabordado no módulo 03; não o execute no meio do módulo.
03 Provisionamento e migração
Guia de facilitação para o módulo de provisionamento e migração do ClickHouse — a transferência autônoma de 40 a 50 minutos e o perfil dbt ausente.
05 Benchmark e virada
Guia de facilitação para benchmark e virada — o fechamento da lacuna em duas passagens, as armadilhas da importação de dashboards e a ordem de desmontagem.