Use regras de Schema Check para detectar alterações no schema da tabela, como exclusão, adição, mudança na ordem ou alteração no tipo das colunas. O sistema aciona um alerta sempre que identifica uma dessas modificações.
Exemplo de configuração
O exemplo a seguir aciona warn (alerta laranja) para qualquer alteração no schema da tabela e fail (alerta vermelho) especificamente quando uma coluna é excluída.
datasets:
- type: Table
tables:
- tb_d_spec_demo
dataSource:
name: odps_first
envType: Dev
rules:
- assertion: change for schema
warn:
- when any changes
fail:
- when column delete
Definir uma regra de Schema Check
Durante a execução de uma regra de Schema Check, o sistema coleta o schema da tabela em tempo real e o compara com o schema de linha de base para identificar diferenças. Em seguida, verifica essas alterações em relação às condições warn e fail definidas na regra para gerar o resultado da verificação. Uma regra possui as seguintes propriedades:
assertion: fixado comochange for schema, indicando que se trata de uma regra de Schema Check.warn: lista de condições para alerta laranja. O sistema aciona esse alerta quando qualquer uma dessas condições é atendida.fail: lista de condições para alerta vermelho. Esse alerta é disparado ao atender qualquer uma das condições listadas.
As condições seguem o formato when <change type>. As opções suportadas são:
|
Condição |
Descrição |
|
|
Qualquer modificação no schema da tabela, incluindo exclusão, adição, alteração de ordem ou mudança de tipo de coluna. |
|
|
Exclusão de uma coluna. |
|
|
Adição de uma nova coluna. |
|
|
Alteração na ordem relativa das colunas presentes em ambas as coleções. |
|
|
Modificação no tipo de dados de uma coluna. |
A prioridade abaixo determina o resultado da verificação:
Correspondência com alguma condição
fail: o resultado éfaile o sistema dispara um alerta vermelho.Nenhuma condição
failatendida, mas correspondência com alguma condiçãowarn: o resultado éwarne o sistema dispara um alerta laranja.Nenhuma condição atendida: a verificação é aprovada.
Uma regra de Schema Check define seu resultado com base nas condições warn e fail. Não é necessário configurar limites numéricos nem especificar quais colunas monitorar.
Usar um modelo de regra do sistema
O Data Quality oferece cinco modelos de regras do sistema para detecção de alterações de schema, cobrindo cada um dos cenários de mudança. Todas as regras criadas a partir desses modelos utilizam internamente assertion: change for schema. A sintaxe equivalente de cada modelo está descrita a seguir. Para mais informações sobre outros modelos, consulte Modelos de regras.
ID do modelo | Nome do modelo | Sintaxe equivalente |
| Alteração de schema - Qualquer alteração | |
| Alteração de schema - Exclusão de coluna | |
| Alteração de schema - Adição de coluna | |
| Alteração de schema - Mudança na ordem das colunas | |
| Alteração de schema - Mudança no tipo da coluna | |
Por exemplo, ao utilizar o modelo SYSTEM:table:schema:column_delete, o sistema dispara um alerta vermelho caso uma coluna seja excluída. Como esse modelo já inclui a condição fail correspondente, basta especificar o templateId:
datasets:
- type: Table
tables:
- tb_d_spec_demo
dataSource:
name: odps_first
envType: Dev
rules:
- templateId: "SYSTEM:table:schema:column_delete"
Os modelos servem como atalhos para cenários predefinidos. Caso precise combinar vários tipos de alteração ou definir simultaneamente condições warn e fail, utilize a sintaxe assertion: change for schema e defina as condições manualmente.
Exemplos de condições combinadas
Os exemplos abaixo mostram apenas a seção rules.
Exemplo 1: Um alerta laranja é acionado para qualquer alteração no schema da tabela, enquanto um alerta vermelho ocorre especificamente na exclusão de colunas.
rules:
- assertion: change for schema
warn:
- when any changes
fail:
- when column delete
|
Alteração no schema da tabela |
Resultado da verificação |
|
Sem alterações |
Aprovado |
|
Coluna adicionada |
Alerta laranja (corresponde à condição |
|
Coluna excluída |
Alerta vermelho (corresponde à condição |
|
Colunas excluídas e adicionadas simultaneamente |
Alerta vermelho (condições |
Exemplo 2: Monitoramento restrito a exclusão de colunas e alteração de tipos.
rules:
- assertion: change for schema
fail:
- when column delete
- when column type change
|
Alteração no schema da tabela |
Resultado da verificação |
|
Coluna adicionada |
Aprovado (nenhuma condição atendida) |
|
Coluna excluída |
Alerta vermelho |
|
Alteração no tipo da coluna |
Alerta vermelho |
|
Alteração na ordem das colunas |
Aprovado (nenhuma condição atendida) |
Exemplo 3: Apenas a condição warn está configurada, sem definição de fail. Nesse caso, mudanças no tipo ou na ordem das colunas geram somente alerta laranja, nunca vermelho.
rules:
- assertion: change for schema
warn:
- when column type change
- when column index change
Como funciona a detecção
Em cada verificação, o sistema compara o schema da tabela coletado em tempo real (valor da amostra) com o schema de linha de base (valor de referência):
Valor de referência: o schema de tabela válido mais recente coletado pela mesma regra.
Valor da amostra: o schema da tabela obtido em tempo real durante a verificação atual.
Primeira verificação: na ausência de valores históricos, o sistema adota o schema coletado no momento como valor de referência e aprova a verificação automaticamente.
A identificação de cada tipo de alteração segue os critérios abaixo.
|
Tipo de alteração |
Critério de identificação |
|
Exclusão de coluna |
A coluna existe no valor de referência, mas não aparece no valor da amostra. |
|
Adição de coluna |
A coluna está presente no valor da amostra, mas não consta no valor de referência. |
|
Alteração na ordem das colunas |
A comparação considera apenas as colunas existentes tanto no valor de referência quanto na amostra. Identifica-se a mudança quando há variação na ordem relativa dessas colunas. Deslocamentos causados por adição ou remoção de outras colunas não caracterizam alteração de ordem. |
|
Alteração no tipo da coluna |
A mesma coluna apresenta tipos de dados diferentes entre o valor de referência e o valor da amostra. |
Independentemente das condições configuradas na regra, o sistema registra todas as alterações detectadas na verificação. Tipos de mudança não especificados nas condições não influenciam o resultado final.
Visualize resultados da verificação
Ao consultar os detalhes de verificação de uma regra de Schema Check, o sistema exibe as seguintes informações na seção Quality collection and comparison status results:
Check item: exibido como Table Schema.
Actual result: quantidade de colunas no valor da amostra, somada aos totais de colunas excluídas, adicionadas, com tipo alterado e com ordem modificada.
Reference: número de colunas no valor de referência, rotulado como Schema Snapshot.
Difference: total de alterações identificadas. Na primeira execução, este campo aparece como First Check.
Clique em View Full Table Schema Comparison para comparar lado a lado as listas de colunas do valor de referência e do valor da amostra. As colunas modificadas aparecem destacadas em cores diferentes. Durante a primeira verificação, como não existe valor de referência, o sistema exibe apenas o schema atual da tabela.
Fontes de dados suportadas
As regras de Schema Check oferecem suporte às seguintes fontes de dados: MaxCompute, Hologres, EMR Hive, CDH Hive, Lindorm, MySQL, StarRocks, SQL Server e SelectDB.