Tratar a Evolução de DDL e Esquema
Sequência esperada
Quando uma definição de tabela é alterada e a captura de DDL é ativada, o fluxo pode entregar o registro DDL e, em seguida, atualizar os metadados do objeto e o esquema DML específico da tabela antes dos registros subsequentes que usam a nova definição. A ordem e o batch exatos nas mensagens WebSocket são detalhes da implementação; os consumidores devem tratar um esquema ou registro de metadados sempre que ele for exibido.
-
Armazene em cache os esquemas pela respectiva
id, não apenas pelo nome da tabela. -
Armazene em cache os metadados do objeto por
qual_tablee substitua-os quando um registro mais recente chegar. -
Não suponha que o esquema recebido no momento da conexão permaneça válido durante a vida útil da conexão.
-
Pausar ou inutilizar um registro DML se o esquema necessário for desconhecido e o sistema downstream não puder aceitar dados sem esquema.
-
Aplique alterações compatíveis automaticamente quando a política permitir; encaminhe alterações incompatíveis para um fluxo de trabalho de migração controlado.
Alterações compatíveis e incompatíveis
| Alterar | Ação típica do consumidor |
|---|---|
| Adicionar coluna anulável | Aceite o novo campo e atualize o esquema downstream de forma assíncrona ou dinâmica. |
| Adicionar coluna não nula | Confirme o comportamento padrão/de backfill antes de aplicar registros. |
| Eliminar Coluna | Pare de escrever o campo; preserve os dados históricos downstream de acordo com a política de retenção. |
| Renomear coluna | Tratar como eliminação mais adição, a menos que um mapeamento controlado informe o contrário. |
| Alterar o tipo primitivo JSON ou a precisão da origem | Valide a conversão, a precisão e a compatibilidade downstream antes de continuar. |
| Alterar colunas-chave | Recrie a lógica de idempotência, mesclagem e exclusão antes de consumir registros na nova chave. |
Política de tratamento de DDL
-
Registre a DDL
pos, a identidade do objeto, a instrução e o timestamp da operação em um log de auditoria. -
Não execute DDL de origem não revisada diretamente em um sistema downstream, a menos que esse comportamento seja explicitamente aprovado e protegido.
-
Use
maxDDLTextSizegrande o suficiente para a DDL da organização e alerte quando o truncamento for detectado ou houver suspeita. -
Espere várias versões de esquema para a mesma tabela ao longo do tempo. Mantenha o identificador do esquema com eventos arquivados.
Integração de registro de esquema
Um consumidor pode publicar registros de Esquema JSON em banda em um registro de esquema empresarial. Preserve o id original, associe-o ao Fluxo de Dados e à implantação e às alterações de versão em vez de substituir definições de esquema histórico. O registro complementa o esquema de runtime; ele não substitui o checkpoint ou a recuperação da trilha de origem.