Planilha 4: plano de ondas da migração
Distribua dez objetos de táxis de NYC em ondas de migração e classifique a complexidade de cada um, com feedback imediato para cada resposta.
Tempo estimado: 15–20 minutos Referência: Módulo 03 — Provisionamento e migração → Módulo 04 — Reconstrução do pipeline dbt → Módulo 05 — Benchmark e virada para consultar a ordem de execução
Conceito
Objetos de banco de dados têm dependências. Uma view que consulta fact_trips não pode ser criada
antes que fact_trips exista. Uma view materializada que lê trips_raw não pode ser preenchida antes
que trips_raw contenha dados. Migrar na ordem errada causa falhas na criação de tabelas, resultados
vazios ou dados incompletos difíceis de diagnosticar.
A solução é planejar ondas. Organize cada objeto em uma onda numerada que contenha somente objetos cujas dependências já tenham sido satisfeitas pelas ondas anteriores.
A classificação de complexidade ajuda a priorizar o esforço da migração. A linha entre B e C depende de ser preciso reestruturar uma instrução ou apenas alterar seus tipos:
- Grau A — trivial: tabela padrão ou view de passagem, nenhuma lógica especial, mapeamento de tipos direto
- Grau B — médio: uma construção específica do ClickHouse a aprender e testar, mas cuja tradução é uma
substituição — um mecanismo do ClickHouse mais uma configuração incremental, um
CREATE DICTIONARY, oREFRESH EVERYde uma MV atualizável ou um caminhoJSONExtract*no lugar de uma leitura deVARIANT - Grau C — complexo: a instrução precisa ser reconstruída, não apenas receber novos tipos (
QUALIFYenvolvido em uma subconsulta,MERGE INTOsubstituído por uma estratégia incremental), e essa reescrita deve permanecer coerente com a escolha do mecanismo e com a posição deFINALem tudo o que vem depois; teste com cuidado - Grau D — exige novo projeto: recurso específico do Snowflake sem equivalente direto (Streams → virada do produtor para o ClickHouse, Tasks → MVs atualizáveis ou execuções agendadas do dbt)
O exercício 3 abaixo pede uma classificação compacta de três níveis em vez das quatro letras acima: baixa (grau A), média (grau B) e alta (grau C ou D). A distinção mais importante para sequenciar o esforço é trivial / precisa de testes / precisa de novo projeto, e não a divisão em quatro. A explicação de cada resposta indica qual grau de A a D se aplica, para que você ainda possa voltar à letra.
Exercício 1: DAG de dependências
Para cada objeto abaixo, escolha suas dependências. Três dos dez são dados de referência estáticos, sem nenhuma dependência; isso é uma resposta real, não uma lacuna a preencher depois.
Exercício 2: atribuição das ondas de migração
As ondas 0 e 1 já estão preenchidas como contexto. Para as ondas 2 a 4, escolha quais objetos pertencem a cada uma e depois responda ao que realmente acontece nela.
Exercício 3: classificação de complexidade
Classifique cada objeto e responda abaixo da tabela à pergunta sobre seu principal desafio.
Questões de reflexão
As duas últimas perguntas abrangem as três entradas do registro de riscos no gabarito: verificar
fact_trips (grau C) e agg_hourly_zone_trips depois que chegam ao destino, além de verificar a virada
do produtor que substitui TRIPS_CDC_STREAM e CDC_CONSUME_TASK (grau D). O registro não corresponde
simplesmente ao conjunto de graus C e D: agg_hourly_zone_trips recebe classificação média, mas sua
janela móvel de recálculo é o elemento deste pipeline mais propenso a erros sutis.
Loading worksheet...
Transferência para migration-plan.md
Copie seu plano de ondas e as classificações de complexidade para a seção 6 de migration-plan.md e marque:
- [ ] Migration wave plan: completedPlanilha 3: tradução do esquema
Mapeie cada coluna de TRIPS_RAW e FACT_TRIPS para seu tipo ClickHouse e traduza sete expressões do Snowflake, com feedback imediato para cada resposta.
Planilha 5: projeto dos modelos dbt
Configure materialização, mecanismo e estratégia incremental para cada modelo dbt, com feedback imediato para cada resposta.