Remediação de problemas de qualidade de dados¶
As métricas de qualidade de dados (DMFs) permitem identificar quantos registros em uma tabela podem conter problemas de qualidade. Por exemplo, o SNOWFLAKE.CORE.NULL_COUNT pode identificar quantos registros contêm um valor NULL em uma coluna específica.
Para ajudar a correção desses possíveis problemas de qualidade, você pode chamar a função do sistema SYSTEM$DATA_METRIC_SCAN para retornar os registros individuais identificados pela DMF como contendo dados que falharam na verificação de qualidade dos dados. Por exemplo, se você passar a NULL_COUNT DMF para a função SYSTEM$DATA_METRIC_SCAN como um argumento, poderá obter os registros reais que contêm um valor NULL, não apenas o número de registros que contêm um valor NULL.
DMFs com suporte¶
A função SYSTEM$DATA_METRIC_SCAN aceita uma DMF como argumento para retornar os registros identificados pela DMF como contendo dados problemáticos. As seguintes DMFs de sistema podem ser usadas como argumentos:
SNOWFLAKE.CORE.NULL_COUNT
SNOWFLAKE.CORE.NULL_PERCENT
SNOWFLAKE.CORE.BLANK_COUNT
SNOWFLAKE.CORE.BLANK_PERCENT
SNOWFLAKE.CORE.DUPLICATE_COUNT
Limitações e considerações¶
Você não pode usar DMFs personalizadas como argumento da função SYSTEM$DATA_METRIC_SCAN.
Se uma tabela for protegida por uma política, como uma política de mascaramento ou uma política de acesso a linhas, a função SYSTEM$DATA_METRIC_SCAN poderá retornar dados inesperados ou incompletos porque os resultados dependem da função do usuário ao executar a função.
Chamada da função SYSTEM$DATA_METRIC_SCAN¶
Quando você chama a função SYSTEM$DATA_METRIC_SCAN, ela analisa uma tabela com uma DMF para identificar possíveis problemas de qualidade de dados. Você deve passar os seguintes argumentos para a função SYSTEM$DATA_METRIC_SCAN: o nome da tabela, a DMF e quaisquer argumentos que estejam sendo passados para a DMF para ajudar a identificar registros problemáticos. Por exemplo, dado que a função métrica do sistema SNOWFLAKE.CORE.NULL_COUNT retorna o número total de valores NULL em uma coluna específica, o seguinte retorna as linhas da tabela employeesTable
que têm valores NULL na coluna SSN
na versão da tabela que existia em um momento específico no passado.
SELECT *
FROM TABLE(SYSTEM$DATA_METRIC_SCAN(
REF_ENTITY_NAME => '<governance.sch.employeesTable>'
,METRIC_NAME => '<snowflake.core.null_count>'
,ARGUMENT_NAME => '<SSN>'
,AT_TIMESTAMP => '<2024-08-28 02:00:00 -0700>'
));
Para verificar os resultados de uma avaliação de DMF na tabela ou exibição no passado, você pode passar o argumento AT_TIMESTAMP. O argumento AT_TIMESTAMP permite que você use o Time Travel para converter a cadeia de caracteres de carimbo de data/hora para retornar apenas os registros que existiam na tabela no carimbo de data/hora “2024-08-28 02:00:00 -0700”.
Uso de SYSTEM$DATA_METRIC_SCAN para correção de dados¶
A função SYSTEM$DATA_METRIC_SCAN é uma função de tabela que retorna um conjunto de linhas. A saída da função pode ser usada dentro de uma instrução DML para executar uma ação nos registros que foram identificados como contendo dados que falharam em uma verificação de qualidade de dados.
Suponha que você queira substituir valores em branco na coluna email
da tabela t
por valores NULL. Como a função de métrica de dados BLANK_COUNT identifica valores em branco, você pode executar a seguinte instrução:
UPDATE T
SET email = null
WHERE T.ID IN (SELECT ID FROM TABLE(SYSTEM$DATA_METRIC_SCAN(
REF_ENTITY_NAME => '<t>'
,METRIC_NAME => '<snowflake.core.blank_count>'
,ARGUMENT_NAME => '<email>'
)));