Monitorar a qualidade dos dados de um esquema¶
Quando uma função de métrica de dados (Data Metric Function, DMF) está associada a uma tabela ou exibição, a DMF é executada em intervalos regulares e retorna um valor que fornece insights sobre a qualidade dos dados.
Agora você pode usar um única instrução SQL para configurar um esquema, assim todos os objetos no esquema são associados à mesma DMF. Você pode associar as seguintes DMFs do sistema no nível do esquema:
ROW_COUNT: use para retornar informações sobre o volume de dados em objetos no esquema.
FRESHNESS: use para retornar informações sobre a frequência com que os objetos no esquema são atualizados.
Quando você associa uma dessas DMFs no nível do esquema, pode especificar que deseja que o Snowflake determine se há anomalias no volume ou o nível de atualização de uma tabela ou exibição ao longo do tempo.
O exemplo a seguir mostra como habilitar a detecção de anomalias para associação entre a DMF ROW_COUNT e cada objeto no esquema my_schema:
O Snowflake treina o algoritmo de detecção de anomalias e começa automaticamente a identificar anomalias no volume de tabelas e exibições no esquema my_schema.
Adicionar uma DMF a um esquema¶
Quando você associa uma DMF a um esquema, todos os objetos no esquema são associados à DMF.
Sintaxe¶
Use a seguinte sintaxe para adicionar uma DMF a um esquema.
Argumentos¶
{ SNOWFLAKE.CORE.ROW_COUNT | SNOWFLAKE.CORE.FRESHNESS } ON ()Associa a DMF do sistema aos objetos no esquema.
Os valores possíveis são SNOWFLAKE.CORE.ROW_COUNT e SNOWFLAKE.CORE.FRESHNESS.
ANOMALY_DETECTION = { TRUE | FALSE }Se TRUE, o Snowflake usa um algoritmo para detectar anomalias nos valores retornados pela DMF. O Snowflake detecta anomalias em cada objeto, não no esquema inteiro.
Padrão: FALSE
EXCLUDE_TABLE_TYPES = ( 'object_type', 'object_type' ... )Exclui todos os objetos do tipo especificado. O Snowflake não cria associações entre a DMF e esses objetos. Veja a seguir os valores possíveis:
'DYNAMIC_TABLE''EVENT_TABLE''EXTERNAL_TABLE''ICEBERG_TABLE''MATERIALIZED_VIEW''TABLE''VIEW'
Para excluir um objeto específico, e não todos os objetos de um determinado tipo, você pode substituir a associação da DMF no nível do objeto.
Exemplos¶
Associar a DMF FRESHNESS a todos os objetos em um esquema:
Associar a DMF ROW_COUNT a todos os objetos em um esquema e permitir a detecção de anomalias para as associações:
Associar a DMF ROW_COUNT às tabelas em um esquema, mas não a associar a exibições e exibições materializadas:
Substituindo as configurações no nível do objeto¶
Quando você adiciona uma DMF no nível do esquema, o Snowflake cria uma associação no nível do objeto entre cada objeto no esquema e a DMF. Você pode substituir essa associação no nível do objeto se quiser mudar a forma como a DMF é executada no objeto.
Suponha que você habilitou a detecção de anomalias quando adicionou a DMF ROW_COUNT a my_schema. Se você não quiser que o Snowflake detecte anomalias na tabela my_schema.employees, execute o seguinte comando:
Você também pode remover a associação de um objeto específico se quiser parar de executar a DMF. Por exemplo, se você quiser parar a execução da DMF ROW_COUNT na tabela my_schema.employees, execute o seguinte comando:
Você também pode substituir o cronograma no nível do esquema para alterar a frequência com que uma DMF é executada para um determinado objeto. Para obter informações sobre como definir o cronograma no nível do objeto, consulte Ajustar o cronograma das DMFs.
Ajustando o cronograma de execução¶
Por padrão, o cronograma das métricas de dados para um esquema é de 60 minutos. A DMF é executada em cada objeto no esquema a cada hora. É possível alterar esse padrão no nível do esquema ou substituí-lo no nível do objeto.
Use o seguinte comando para controlar a frequência de execução das DMFs nos objetos de um esquema:
Os valores possíveis para schedule são os mesmos no nível do esquema e no nível do objeto. Para visualizar os valores possíveis, consulte ALTER TABLE …SET DATA_METRIC_SCHEDULE.
O cronograma que você define no nível do esquema controla a frequência com que a DMF é executada em cada objeto, a menos que você o substitua para tabelas ou exibições específicas. Para obter informações sobre como definir o cronograma no nível do objeto, consulte Ajustar o cronograma das DMFs.
Suspendendo as DMFs¶
A sintaxe para suspender e retomar uma DMF associada ao nível do esquema é a mesma usada para associações no nível da tabela. Por exemplo, para suspender a DMF ROW_COUNT associada ao esquema my_schema, execute o seguinte comando:
Determinando quais associações foram definidas no nível do esquema¶
É possível usar a exibição e a função a seguir para determinar quais objetos são associados a uma DMF:
Exibição DATA_QUALITY_MONITORING_RESULTS no esquema ACCOUNT_USAGE.
Função de tabela DATA_QUALITY_MONITORING_RESULTS.
A exibição e a saída da função contêm uma coluna level, que tem os seguintes valores possíveis:
TABLE: alguém associou a DMF diretamente ao objeto.SCHEMA: alguém adicionou a DMF ao esquema, que criou a associação entre o objeto e a DMF.
Rastreando associações no nível do esquema¶
Você pode chamar a função DATA_METRIC_FUNCTION_REFERENCES para determinar quais DMFs foram adicionadas a um esquema. Por exemplo, para ver quais DMFs foram adicionadas ao esquema db1.my_schema, execute o seguinte comando:
Requisitos de controle de acesso¶
Para adicionar uma DMF a um esquema, você deve ter os seguintes privilégios e funções de controle de acesso:
OWNERSHIP no esquema.
MANAGE DATA QUALITY na conta.
EXECUTE DATA METRIC FUNCTION na conta.
Função de banco de dados SNOWFLAKE.DATA_METRIC_USER.
O Snowflake não executará a DMF, a menos que o proprietário do esquema continue a ter o privilégio MANAGE DATA QUALITY na conta.
Para executar a DMF em um objeto no esquema com sucesso, o proprietário do objeto deve ter os mesmos privilégios que são necessários para associar a DMF ao objeto. Para ver a lista desses privilégios, consulte Requisitos de controle de acesso.
Considerações e limitações¶
A DMF FRESHNESS requer um argumento de coluna para exibições e tabelas externas. Como resultado, se você adicionar a DMF FRESHNESS a um esquema, o Snowflake ignora as exibições e tabelas externas ao associar a DMF aos objetos no esquema.
Não é possível definir um cronograma baseado em acionador no nível do esquema.