Este documento descreve a qualidade automática dos dados do Dataplex, que permite definir e medir a qualidade deles. É possível automatizar a verificação de dados, validar dados em relação às regras definidas e registrar alertas se os dados não atenderem aos requisitos de qualidade. É possível gerenciar implantações e regras de qualidade de dados 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 automática de dados do Dataplex.
Modelo conceitual
Uma verificação de dados é um job do Dataplex que faz amostras de 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:
- Definição da regra
- Execução de regras
- Monitoramento e alertas
- Solução de problemas
Definição da regra
As regras de qualidade 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 recomendações da criação de perfil de dados do Dataplex
- Usar as regras predefinidas
- Criar regras SQL personalizadas
Regras predefinidas
O Dataplex é compatível com duas categorias de regras predefinidas: no nível da linha ou agregadas.
- Nível da linha
Para regras de categoria em nível de linha, a expectativa é aplicada a cada linha de dados. Cada linha passa ou falha a condição independentemente. 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 passam a regra fica abaixo do valor 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 aprovada, a verificação precisa ser avaliada como o booleanotrue
. As regras agregadas não fornecem uma contagem independente de aprovações ou falhas para cada linha.
Para ambas as 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 regra agregada e de linha compatíveis:
Tipo de regra (nome no console do Google Cloud) |
Regra no nível da linha ou agregada | Descrição | Tipos de colunas compatíveis | Parâmetros específicos de regras |
---|---|---|---|---|
RangeExpectation (Verificação de intervalo) |
Nível da linha | Verifique se o valor está entre mínimo e máximo. | Todas as colunas numéricas, de data e de tipo de carimbo de data/hora. | Obrigatório:
|
NonNullExpectation (Verificação de nulo) |
Nível da linha | Valide se os valores da coluna não são NULL. | Todos os tipos de coluna compatíveis. | Obrigatório:
|
SetExpectation (Verificar) |
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 compatíveis, exceto Record e Struct . |
Obrigatório:
|
RegexExpectation (Verificação de expressão regular) |
Nível da linha | Compare os valores com uma expressão regular especificada. | String | Obrigatório:
|
Uniqueness (Verificação de exclusividade) |
Agregar | Verificar se todos os valores em uma coluna são exclusivos. | Todos os tipos de coluna compatíveis, exceto Record e Struct . |
Obrigatório:
|
StatisticRangeExpectation (Verificação estatística) |
Agregar | Verifique se a medida estatística fornecida corresponde à expectativa do intervalo. | Todos os tipos de coluna numérica compatíveis. | Obrigatório:
|
Tipos de regras SQL personalizadas com suporte
As regras SQL oferecem flexibilidade para expandir a validação com lógica personalizada. Essas regras vêm nos tipos abaixo.
Tipo de regra | Regra no nível da linha ou agregada | Descrição | Tipos de colunas compatíveis | Parâmetros específicos de regras | Exemplo |
---|---|---|---|---|---|
Condição da linha | 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 referenciais. |
Todas as colunas | Obrigatório:
|
grossWeight <= netWeight |
Expressão SQL agregada | Agregar | Essas regras são executadas uma vez por tabela. Forneça uma expressão SQL 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 de agregação simples: Uso de uma subconsulta de expressão para comparar valores em uma tabela diferente: |
Declaração SQL | Agregar | Uma regra de declaração usa uma consulta de qualidade de dados para encontrar linhas que falham em uma ou mais condições especificadas na consulta. Forneça uma instrução SQL que seja avaliada para retornar linhas que correspondam ao estado inválido. Se a consulta retornar alguma linha, a regra falhará. Omita o ponto e vírgula à direita 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 de agregação simples para garantir que Uso de uma subconsulta de expressão para comparar valores em uma tabela diferente: |
Para conferir exemplos de regras, consulte as regras de amostra de qualidade de dados automática.
Para funções SQL compatíveis, consulte a Referência do GoogleSQL.
Dimensões
As dimensões permitem agregar os resultados de várias regras de qualidade de dados para monitoramento e alerta. Você precisa associar cada regra 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 nas regras
Todos os parâmetros de valor são transmitidos como valores de string para a API. O Dataplex requer entradas que sigam o formato especificado do BigQuery.
Parâmetros binários podem ser passados como uma string codificada em base64.
Tipo | Formatos compatíveis | Examples |
---|---|---|
Binário | Valor codificado em Base64 | YXBwbGU= |
Carimbo de data/hora | AAAA-[M]M-[D]D[( |T)[H]H:[M]M:[S]S[.F]] [time_zone] OU AAAA-[M]M-[D]D[( |T)[H]H:[M]M:[S]S[.F]][time_zone_offset] |
27-09-2014 12:30:00.45-08 |
Data | AAAA-M[M]-D[D] | 2014-09-27 |
Hora | [H]H:[M]M:[S]S[.DDDDDD] | 12:30:00.45 |
DateTime | AAAA-[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, é possível referenciar uma tabela de fonte de dados e todos
os filtros de condição prévia usando o parâmetro de referência de dados ${data()}
na
regra, em vez de mencionar explicitamente a tabela de origem e os filtros dela.
Exemplos de filtros de condição prévia incluem filtros de linha, porcentagens de amostragem e filtros incrementais. O parâmetro ${data()}
diferencia maiúsculas de minúsculas.
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 verifica apenas dados diários novos. Um filtro de linha que filtra as entradas de hoje, transaction_timestamp >= current_date()
, é aplicado à tabela.
Uma regra SQL personalizada para encontrar linhas com discount_pct
para hoje tem esta aparência:
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:
discount_pct IN (SELECT discount_pct FROM ${data()})
O parâmetro ${data()}
neste exemplo se refere à tabela de 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.
Ao usar 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:
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:
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 realizar uma verificação sob demanda. Para gerenciar as verificações de qualidade de dados, use a API ou o Console do Google 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, é possível definir o escopo de um job como 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, é nessa coluna que a tabela está particionada.
Filtrar dados
O Dataplex pode filtrar os dados que precisam ser verificados quanto à qualidade usando um filtro de linha. Criar um filtro de linha permite se concentrar nos dados de 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 antes de uma determinada data.
Dados de amostra
Com o Dataplex, é possível especificar uma porcentagem de registros dos seus dados para amostragem para executar uma verificação de qualidade de dados. A criação de verificações de qualidade de dados em uma amostra menor pode reduzir o tempo de execução e o custo da consulta de todo o conjunto de dados.
Monitoramento e alertas
É possível exportar os resultados da verificação para uma tabela do BigQuery se quiser uma análise mais detalhada. Para personalizar relatórios, conecte os dados da tabela do BigQuery a um painel do Looker. É possível criar um relatório agregado usando a mesma tabela de resultados em várias verificações.
É possível monitorar os jobs de qualidade de dados usando os registros data_scan
e
data_quality_scan_rule_result
na Análise de registros.
Para cada job de qualidade de dados, o registro data_scan
com o campo data_scan_type
definido como DATA_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, horário de início, horário de término e estado do job.
- Resultado do job de qualidade de dados: aprovado ou reprovado.
- O usuário foi aprovado ou reprovado no nível da dimensão.
Todo job bem-sucedido 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 de regra, tipo de avaliação e dimensão.
- Informações do resultado, como aprovação ou falha, contagem total de linhas, contagem de linhas passadas, contagem de linhas nulas e contagem de linhas avaliadas.
As informações nos registros estão disponíveis por meio da API e do console do Google Cloud. Use essas informações para configurar alertas. Para mais informações, consulte Definir alertas no Cloud Logging.
Resolver falhas
Quando uma regra falha, o Dataplex produz uma consulta que retorna todas as colunas da tabela, e não apenas a coluna com falha.
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 só têm suporte no console do Google Cloud.
- A escolha de dimensões é fixada em uma das sete dimensões predefinidas.
- O número de regras por verificação de qualidade de dados é limitado a 1.000.
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 automáticos de qualidade de dados no catálogo ainda não está disponível. Quando estiver disponível, será cobrada a mesma taxa dos preços de armazenamento de metadados do catálogo. Para mais detalhes, consulte os preços.
O processamento premium do Dataplex para qualidade de dados automática é cobrado 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, de colunas, da quantidade de dados verificados, da configuração da regra de qualidade de dados, das configurações de particionamento e clustering na tabela e da frequência da gscan.
Existem várias opções para reduzir o custo das verificações automáticas de qualidade de dados:
Separe as cobranças de qualidade de dados de outras cobranças na SKU de processamento premium do Dataplex, use o rótulo
goog-dataplex-workload-type
com o valorDATA_QUALITY
.Filtrar 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.