Este documento descreve a qualidade de dados automática do Dataplex, que permite definir e medir a qualidade dos seus dados. É possível automatizar a verificação de dados, validar dados em relação a regras definidas e registrar alertas se os dados não atenderem aos requisitos de qualidade. É possível gerenciar regras de qualidade de dados e implantações como código, melhorando a integridade dos pipelines de produção de dados.
Para começar, use as recomendações de regra de criação de perfil de dados do Dataplex ou crie regras personalizadas no console do Google Cloud . O Dataplex oferece monitoramento, solução de problemas e alertas do Cloud Logging integrados à qualidade de dados automática do Dataplex.
Modelo conceitual
Uma verificação de dados é um job do Dataplex que amostra dados do
BigQuery e do Cloud Storage e infere vários tipos de
metadados. Para medir a qualidade de uma tabela usando a qualidade de dados automática, crie
um objeto DataScan
do tipo data quality
. A verificação é executada em apenas
uma tabela do BigQuery. A verificação usa recursos em um projeto de locatário do Google, para que você não precise configurar sua própria infraestrutura.
A criação e o uso de uma verificação de qualidade de dados consistem nas seguintes etapas:
- Definir regras de qualidade dos dados
- Configurar a execução da regra
- Analisar os resultados da verificação de qualidade de dados
- Configurar o monitoramento e os alertas
- Resolver falhas de qualidade de dados
Definição da regra
As regras de qualidade de dados associadas a uma verificação de qualidade de dados definem as expectativas de dados. É possível criar regras de qualidade de dados das seguintes maneiras:
- Usar as recomendações da criação de perfil de dados do Dataplex
- Usar as regras predefinidas
- Criar regras SQL personalizadas
Regras predefinidas
O Dataplex oferece suporte a duas categorias de regras predefinidas: no nível da linha ou agregadas.
- No nível da linha
Para regras de categoria no nível da linha, a expectativa é aplicada a cada linha de dados. Cada linha passa ou falha na condição de forma independente. Por exemplo,
column_A_value < 1
As verificações no nível da linha exigem que você especifique um limite de aprovação. Quando a porcentagem de linhas que atendem à regra cai abaixo do valor de limite, a regra falha.
- Agregar
Para regras agregadas, a expectativa é aplicada a um único valor agregado em todos os dados. Por exemplo,
Avg(someCol) >= 10
. Para ser bem-sucedida, a verificação precisa ser avaliada comotrue
booleano. As regras agregadas não fornecem uma contagem de aprovação ou reprovação independente para cada linha.
Para as duas categorias de regras, é possível definir os seguintes parâmetros:
- A coluna à qual a regra se aplica.
- Uma dimensão de um conjunto de dimensões predefinidas.
A tabela a seguir lista os tipos de regras agregadas e no nível da linha compatíveis:
Tipo de regra (nome no console do Google Cloud ) |
Regra de linha ou agregação | Descrição | Tipos de colunas com suporte | Parâmetros específicos da regra |
---|---|---|---|---|
RangeExpectation (Verificação de intervalo) |
No nível da linha | Verifique se o valor está entre o mínimo e o máximo. | Todas as colunas numéricas, de data e de carimbo de data/hora. | Obrigatório:
|
NonNullExpectation (Verificação de valores nulos) |
No nível da linha | Valide se os valores das colunas não são NULL. | Todos os tipos de colunas aceitos. | Obrigatório:
|
SetExpectation (Set check) |
No nível da linha | Verifica se os valores em uma coluna são um dos valores especificados em um conjunto. | Todos os tipos de coluna com suporte, exceto Record e Struct . |
Obrigatório:
|
RegexExpectation (Verificação de expressão regular) |
No nível da linha | Verifica os valores em relação a uma expressão regular especificada. | String | Obrigatório:
|
Uniqueness (Verificação de exclusividade) |
Agregar | Verifique se todos os valores em uma coluna são exclusivos. | Todos os tipos de coluna com suporte, exceto Record e Struct . |
Obrigatório:
|
StatisticRangeExpectation (Verificação de estatísticas) |
Agregar | Verifica se a medida estatística corresponde à expectativa do intervalo. | Todos os tipos de colunas numéricas com suporte. | Obrigatório:
|
Tipos de regras SQL personalizadas com suporte
As regras do SQL oferecem flexibilidade para expandir a validação com lógica personalizada. Essas regras são dos seguintes tipos.
Tipo de regra | Regra de linha ou agregada | Descrição | Tipos de colunas com suporte | Parâmetros específicos da regra | Exemplo |
---|---|---|---|---|---|
Condição da linha | No nível da linha | Especifique uma expectativa para cada linha definindo uma expressão SQL
em uma cláusula A expressão pode incluir uma referência a outra tabela, por exemplo, para criar verificações de integridade referencial. |
Todas as colunas | Obrigatório:
|
grossWeight <= netWeight |
Condição da tabela (expressão SQL agregada) |
Agregar | Essas regras são executadas uma vez por tabela. Use uma expressão SQL que
seja avaliada como booleana A expressão SQL pode incluir uma referência a outra tabela usando subconsultas de expressão. |
Todas as colunas | Obrigatório:
|
Exemplo simples de agregação: Usar uma subconsulta de expressão para comparar valores em uma tabela diferente: |
Declaração do SQL | Agregar | Uma regra de declaração usa uma consulta de qualidade de dados para encontrar linhas que não atendem a uma ou mais condições especificadas na consulta. Informe uma instrução SQL que seja avaliada para retornar linhas que correspondam ao estado inválido. Se a consulta retornar linhas, a regra falhará. Omita o ponto e vírgula final da instrução SQL. A instrução SQL pode incluir uma referência a outra tabela usando subconsultas de expressão. |
Todas as colunas | Obrigatório:
|
Exemplo simples de agregação para garantir que Usar uma subconsulta de expressão para comparar valores em uma tabela diferente: |
Para conferir exemplos de regras, consulte exemplos de regras de qualidade de dados automática.
Para saber quais funções SQL são compatíveis, consulte a Referência do GoogleSQL.
Dimensões
Com as dimensões, você pode agregar os resultados de várias regras de qualidade de dados para monitoramento e alertas. É necessário associar todas as regras de qualidade de dados a uma dimensão. O Dataplex é compatível com as seguintes dimensões:
- Atualização
- Volume
- Integridade
- Validade
- Consistência
- Precisão
- Exclusividade
Entrada digitada em regras
Todos os parâmetros de valor são transmitidos como valores de string para a API. O Dataplex exige que as entradas sigam o formato especificado pelo BigQuery.
Parâmetros do tipo binário podem ser transmitidos como uma string codificada em base64.
Tipo | Formatos compatíveis | Exemplos |
---|---|---|
Binário | Valor codificado em base64 | YXBwbGU= |
Carimbo de data/hora | YYYY-[M]M-[D]D[( |T)[H]H:[M]M:[S]S[.F]] [time_zone] OU YYYY-[M]M-[D]D[( |T)[H]H:[M]M:[S]S[.F]][time_zone_offset] |
2014-09-27 12:30:00.45-08 |
Data | YYYY-M[M]-D[D] | 2014-09-27 |
Hora | [H]H:[M]M:[S]S[.DDDDDD] | 12:30:00.45 |
DateTime | YYYY-[M]M-[D]D [[H]H:[M]M:[S]S[.DDDDDD]] | 2014-09-27 12:30:00.45 |
Parâmetro de referência de dados
Ao criar uma regra SQL personalizada, você pode se referir a uma tabela de origem de dados e a todos os filtros de pré-condição dela usando o parâmetro de referência de dados ${data()}
na regra, em vez de mencionar explicitamente a tabela de origem e os filtros.
O Dataplex interpreta o parâmetro como uma referência à tabela de origem e aos filtros dela. Exemplos de filtros de pré-condição incluem filtros de linha,
porcentagens de amostragem e filtros incrementais.
Por exemplo, digamos que você tenha uma tabela de fonte de dados chamada my_project_id.dim_dataset.dim_currency
. Você quer executar uma verificação incremental de qualidade de dados que verifique apenas os novos dados diários. Um filtro de linha que filtra as entradas de hoje, transaction_timestamp >= current_date()
, é aplicado na tabela.
Uma regra SQL personalizada para encontrar linhas com discount_pct
para hoje tem este formato:
discount_pct IN (SELECT discount_pct FROM my_project_id.dim_dataset.dim_currency WHERE transaction_timestamp >= current_date())
Se você usar o parâmetro de referência de dados, poderá simplificar a regra. Substitua a menção da tabela e dos filtros de pré-condição por ${data()}
:
discount_pct IN (SELECT discount_pct FROM ${data()})
O Dataplex interpreta o parâmetro ${data()}
como uma
referência à tabela da fonte de dados com as entradas de hoje,
my_project_id.dim_dataset.dim_currency WHERE transaction_timestamp >= current_date()
.
Neste exemplo, o parâmetro de referência de dados se refere apenas aos dados incrementais.
O parâmetro ${data()}
diferencia maiúsculas de minúsculas.
Quando você usa um alias em uma subconsulta para se referir a colunas na tabela de origem,
use o parâmetro de referência de dados para se referir à tabela de origem ou omita
a referência de tabela. Não se refira às colunas na tabela de origem usando uma referência de tabela direta na cláusula WHERE
.
Recomendação:
Use o parâmetro de referência de dados para se referir à tabela de origem:
discount_pct IN ( SELECT discount_pct FROM `my_project_id.dim_dataset.dim_currency` AS temp-table WHERE temp-table.transaction_timestamp = ${data()}.timestamp )
Omita a referência da tabela:
discount_pct IN ( SELECT discount_pct FROM `my_project_id.dim_dataset.dim_currency` AS temp-table WHERE temp-table.transaction_timestamp = timestamp )
Não recomendado:
Não use uma referência direta de tabela para se referir a colunas na tabela de origem:
discount_pct IN ( SELECT discount_pct FROM `my_project_id.dim_dataset.dim_currency` AS temp-table WHERE temp-table.transaction_timestamp = `my_project_id.dim_dataset.dim_currency`.timestamp )
Execução de regras
É possível programar verificações de qualidade de dados para serem executadas em um intervalo específico ou executar uma verificação sob demanda. Para gerenciar verificações de qualidade de dados, use a API ou o console doGoogle Cloud .
Quando você executa uma verificação de qualidade de dados, o Dataplex cria um job. Como parte da especificação de uma verificação de qualidade de dados, você pode especificar o escopo de um job para ser um dos seguintes:
- Tabela completa
- Cada job valida a tabela inteira.
- Incremental
- Cada job valida dados incrementais. Para determinar incrementos, forneça uma coluna
Date
/Timestamp
na tabela que possa ser usada como marcador. Normalmente, essa é a coluna em que a tabela está particionada.
Filtrar dados
O Dataplex pode filtrar dados para verificar a qualidade usando um filtro de linha. A criação de um filtro de linha permite se concentrar em dados em um período ou segmento específico, como uma determinada região. O uso de filtros pode reduzir o tempo e o custo de execução, por exemplo, filtrando dados com um carimbo de data/hora anterior a uma determinada data.
Dados de amostra
O Dataplex permite especificar uma porcentagem de registros dos seus dados para amostragem e execução de uma verificação de qualidade de dados. Criar verificações de qualidade de dados em uma amostra menor de dados pode reduzir o tempo de execução e o custo relativo à consulta de todo o conjunto de dados.
Resultados da verificação de qualidade de dados
Os resultados das verificações de qualidade de dados estão disponíveis no Dataplex. Você também pode analisar os resultados da verificação usando os seguintes métodos:
Exportar resultados para o BigQuery
É possível exportar os resultados da verificação para uma tabela do BigQuery para uma análise mais detalhada. Para personalizar os relatórios, conecte os dados da tabela do BigQuery a um painel do Looker. Você pode criar um relatório agregado usando a mesma tabela de resultados em várias verificações.
Publicar resultados no console do
É possível publicar os resultados da verificação de qualidade dos dados nas páginas do BigQuery e do Data Catalog da tabela de origem no console doGoogle Cloud . Os resultados mais recentes da verificação estão disponíveis na guia Qualidade de dados da tabela de origem.
Analisar as pontuações de qualidade dos dados
Cada resultado da verificação fornece pontuações de qualidade de dados que indicam a porcentagem de regras que foram atendidas. As pontuações são informadas no nível geral do job, no nível da coluna (se a regra for avaliada em relação a uma coluna) e no nível da dimensão. Use as pontuações de qualidade de dados para normalizar a qualidade dos dados em tabelas ou colunas, acompanhar tendências e identificar dados que não atendem aos requisitos de qualidade.
Para mais informações, consulte Conferir os resultados da verificação de qualidade de dados.
Monitoramento e alertas
É possível monitorar e receber alertas sobre verificações de qualidade de dados usando os seguintes métodos:
Definir alertas no Cloud Logging
É possível monitorar os jobs de qualidade de dados usando os registros
data_scan
edata_quality_scan_rule_result
no Explorador de registros.Para cada job de qualidade de dados, o registro
data_scan
com o campodata_scan_type
definido comoDATA_QUALITY
contém as seguintes informações:- Fonte de dados usada para a verificação de dados.
- Detalhes da execução do job, como horário de criação, início, término e estado.
- Resultado do job de qualidade de dados: aprovado ou reprovado.
- Aprovação ou reprovação no nível da dimensão.
Cada job concluído contém um registro
data_quality_scan_rule_result
com as seguintes informações detalhadas sobre cada regra nesse job:- Informações de configuração, como nome, tipo, avaliação e dimensão da regra.
- Informações do resultado, como aprovação ou reprovação, contagem total de linhas, contagem de linhas aprovadas, contagem de linhas nulas e contagem de linhas avaliadas.
As informações nos registros estão disponíveis na API e no console doGoogle Cloud . Você pode usar essas informações para configurar alertas. Para mais informações, consulte Definir alertas no Logging.
Enviar relatórios de notificações por e-mail
Você pode enviar relatórios de notificação por e-mail para alertar as pessoas sobre o status e os resultados de um job de qualidade de dados. Os relatórios de notificação estão disponíveis para os seguintes cenários:
- O índice de qualidade de dados é menor do que o índice desejado especificado
- O job falhou
- O trabalho foi concluído
Você configura relatórios de notificação ao criar uma verificação de qualidade de dados.
Resolver falhas de qualidade de dados
Quando uma regra falha, o Dataplex produz uma consulta para receber os registros com falha. Execute esta consulta para conferir os registros que não correspondem à sua regra. Para mais informações, consulte Resolver falhas de qualidade de dados.
Limitações
- Os resultados da verificação de qualidade de dados não são publicados no Data Catalog como tags.
- As recomendações de regras não são compatíveis com a CLI gcloud.
- A escolha das dimensões é fixada em uma das sete predefinidas.
- O número de regras por verificação de qualidade de dados é limitado a 1.000.
- As pontuações de qualidade de dados que são informadas no nível da coluna têm suporte apenas na API.
Preços
O Dataplex usa a SKU de processamento premium para cobrar pela qualidade automática de dados. Para mais informações, consulte Preços do Dataplex.
A publicação de resultados de qualidade de dados automática no catálogo ainda não está disponível. Quando ele ficar disponível, a cobrança será feita na mesma taxa do preço de armazenamento de metadados do Data Catalog. Para mais detalhes, consulte os preços.
O processamento premium do Dataplex para a qualidade de dados automática é faturado por segundo, com um mínimo de um minuto.
Não há cobranças por verificações de qualidade de dados com falha.
A cobrança depende do número de linhas, colunas, dados verificados, configuração da regra de qualidade de dados, configurações de particionamento e agrupamento na tabela e frequência da verificação.
Há várias opções para reduzir o custo das verificações automáticas de qualidade de dados:
Para separar as cobranças de qualidade de dados de outras cobranças na SKU de processamento premium do Dataplex, no relatório do Cloud Billing, use o rótulo
goog-dataplex-workload-type
com o valorDATA_QUALITY
.Para filtrar as cobranças agregadas, use os seguintes rótulos:
goog-dataplex-datascan-data-source-dataplex-entity
goog-dataplex-datascan-data-source-dataplex-lake
goog-dataplex-datascan-data-source-dataplex-zone
goog-dataplex-datascan-data-source-project
goog-dataplex-datascan-data-source-region
goog-dataplex-datascan-id
goog-dataplex-datascan-job-id
A seguir
- Saiba como usar a qualidade de dados automática.
- Saiba mais sobre a criação de perfil de dados.
- Saiba como usar a criação de perfil de dados.