Com o Dataplex Universal Catalog, é possível definir e medir a qualidade dos dados nas tabelas do BigQuery. É possível automatizar a verificação de dados, validar os dados em relação às regras definidas e registrar alertas se eles não atenderem aos requisitos de qualidade. Com a qualidade de dados automática, é possível gerenciar regras e implantações de qualidade de dados como código, melhorando a integridade dos pipelines de produção de dados.
Para verificar dados em busca de anomalias, consulte Verificação do perfil de dados do Dataplex Universal Catalog. A verificação pode gerar regras de qualidade de dados. Você também pode usar regras de qualidade predefinidas ou criar regras personalizadas.
O Dataplex Universal Catalog oferece monitoramento, solução de problemas e alertas do Cloud Logging integrados à qualidade de dados automática.
Modelo conceitual
 
 
Uma verificação de dados é um job do Dataplex Universal Catalog que coleta 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, então você não precisa 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 de dados
- Configurar a execução de regras
- Analisar resultados da verificação de qualidade de dados
- Configurar o monitoramento e os alertas
- Resolver problemas de falhas na qualidade de dados
Definição da regra
As regras de qualidade de dados associadas a uma verificação definem 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 Universal Catalog
- Usar as regras predefinidas
- Criar regras SQL personalizadas
Regras predefinidas
O Dataplex Universal Catalog é compatível com as seguintes categorias de regras predefinidas:
- 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 passam na 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 booleano- true. As regras de agregação não fornecem uma contagem independente de aprovação ou reprovação para cada linha.
Para as duas categorias de regras, é possível definir os seguintes parâmetros:
- A coluna a que a regra se aplica
- Uma dimensão
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 no nível da linha ou agregada | Descrição | Tipos de colunas compatíveis | 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 da coluna não são NULL. | Todos os tipos de coluna compatíveis. | Obrigatório: 
 | 
| SetExpectation(Definir verificação) | 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 colunas compatíveis, exceto RecordeStruct. | Obrigatório: 
 
 | 
| RegexExpectation(Verificação de expressão regular) | No nível da linha | Verifique os valores em relação a uma expressão regular especificada. | String | Obrigatório: 
 
 | 
| Uniqueness(Verificação de exclusividade) | Agregar | Verifica se todos os valores em uma coluna são exclusivos. | Todos os tipos de colunas compatíveis, exceto RecordeStruct. | Obrigatório: 
 
 | 
| StatisticRangeExpectation(Verificação de estatísticas) | Agregar | Verifique se a medida estatística fornecida corresponde à expectativa de intervalo. | Todos os tipos de colunas numéricas compatíveis. | Obrigatório: 
 
 | 
Tipos de regras SQL personalizadas compatíveis
As regras de SQL oferecem flexibilidade para expandir a validação com lógica personalizada. Essas regras são dos seguintes tipos.
| Tipo de regra | Regra no nível da linha ou agregada | Descrição | Tipos de colunas compatíveis | 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 de tabela (expressão SQL de agregação) | 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 de agregação simples: Usar 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 não atendem a uma ou mais condições especificadas na consulta. Informe uma instrução SQL que seja avaliada para retornar as linhas que correspondem ao estado inválido. Se a consulta retornar linhas, a regra vai 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 de agregação simples para garantir que  Usar uma subconsulta de expressão para comparar valores em uma tabela diferente: | 
Para exemplos de regras, consulte regras de exemplo de qualidade de dados automática.
Para ver as funções SQL compatíveis, consulte a referência do GoogleSQL.
Dimensões
Com as dimensões, é possível agregar os resultados de várias regras de qualidade de dados para monitoramento e alertas. É necessário associar cada regra de qualidade de dados a uma dimensão. O Dataplex Universal Catalog oferece as seguintes dimensões:
- Atualização
- A atualização mede quando os dados foram atualizados pela última vez. Com essas informações, você pode determinar se os dados são recentes o suficiente para serem úteis.
- Volume
- O volume mede se todos os dados esperados estão presentes.
- Integridade
- A integridade avalia se os dados contêm todas as informações necessárias para a finalidade pretendida.
- Validade
- A validade avalia se os dados estão em conformidade com os padrões predefinidos de formato, intervalos aceitáveis ou outros critérios. Por exemplo, se uma data válida precisar
ter o formato YYYY/mm/dd, então 08-12-2019 é um dado inválido. Como outro exemplo, se um preço promocional válido para um item estiver entre R $10 e R $20, um preço promocional de R $100 será um dado inválido.
- Consistência
- A consistência se refere a ter os mesmos valores para dados em várias instâncias, como tabelas e colunas. A inconsistência nos dados surge quando, por exemplo, a receita de um produto é diferente quando lida em um banco de dados de vendas ou de uso.
- Precisão
- A acurácia reflete a exatidão dos dados. Dados válidos não são necessariamente precisos. Por exemplo, uma cor de cabelo válida pode ser castanho, mas se uma pessoa não tem cabelo castanho, isso é um dado impreciso.
- Exclusividade
- A exclusividade mede se os dados são distintos e não têm duplicidades.
Entrada por digitação em regras
Todos os parâmetros de valor são transmitidos como valores de string para a API. O Dataplex Universal Catalog exige que as entradas sigam o formato especificado do BigQuery.
Parâmetros de 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 | 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] | 2014-09-27 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 | 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, é possível se referir a uma tabela de fonte 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 dela.
O Dataplex Universal Catalog 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 da qualidade dos dados que verifica apenas os novos dados diários. 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 é assim:
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 os filtros de pré-condição pelo parâmetro ${data()}:
discount_pct IN (SELECT discount_pct FROM ${data()})
O Dataplex Universal Catalog interpreta o parâmetro ${data()} como uma referência à tabela de origem 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.
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 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 )
- Omitir 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 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.
Quando você executa uma verificação de qualidade de dados, o Dataplex Universal Catalog cria um job. Como parte da especificação de uma verificação de qualidade de dados, você pode 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 os incrementos, forneça uma coluna Date/Timestampna tabela que possa ser usada como marcador. Normalmente, essa é a coluna em que a tabela é particionada.
Filtrar dados
É possível filtrar os dados que serão verificados para garantir a qualidade usando um filtro de linha. Com um filtro de linha, você pode se concentrar em dados de um período ou segmento específico, como uma determinada região. O uso de filtros pode reduzir o tempo de execução e o custo. Por exemplo, é possível filtrar dados com um carimbo de data/hora anterior a uma determinada data.
Dados de amostra
É possível 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 pode reduzir o tempo de execução e o custo em relação à consulta do conjunto de dados inteiro.
Resultados da verificação de qualidade de dados
Os resultados das suas verificações de qualidade de dados estão disponíveis no Dataplex Universal Catalog e no BigQuery. 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 e fazer uma análise mais detalhada. Para personalizar os 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. 
- Publicar resultados como metadados do Dataplex Universal Catalog - É possível publicar os resultados da verificação de qualidade de dados como metadados do Dataplex Universal Catalog. Os resultados mais recentes são salvos na entrada do Dataplex Universal Catalog que representa a tabela de origem, no tipo de aspecto do sistema - data-quality-scorecard. É possível conferir os resultados nas páginas do BigQuery e do Dataplex Universal Catalog da tabela de origem no console Google Cloud , na guia Qualidade de dados. Também é possível recuperar os resultados usando a API.- Para mais informações sobre os metadados do Dataplex Universal Catalog, consulte Sobre o gerenciamento de metadados no Dataplex Universal Catalog. 
- Analisar os índices de qualidade de dados - Cada resultado de verificação fornece pontuações de qualidade de dados que indicam a porcentagem de regras aprovadas. As pontuações são informadas no nível geral do job, da coluna (se a regra for avaliada em relação a uma coluna) e 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 Ver 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_scane- data_quality_scan_rule_resultna Análise de registros.- Para cada job de qualidade de dados, o registro - data_scancom o campo- data_scan_typedefinido como- DATA_QUALITYconté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 e término, além do estado do job.
- Resultado do job de qualidade de dados: aprovado ou reprovado.
- Aprovação ou reprovação no nível da dimensão.
 - Todo job concluído contém um registro - data_quality_scan_rule_resultcom as seguintes informações detalhadas sobre cada regra nesse job:- Informações de configuração, como nome, tipo e avaliação da regra e dimensão.
- Informações sobre o 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 pela API e pelo consoleGoogle Cloud . Você pode usar essas informações para configurar alertas. Para mais informações, consulte Definir alertas no Logging. 
- Enviar relatórios de notificação por e-mail - É possível 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ções estão disponíveis para os seguintes cenários: - O índice de qualidade de dados é menor do que um índice de meta 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 problemas de falhas na qualidade de dados
Quando uma regra falha, o Dataplex Universal Catalog gera uma consulta para receber os registros com falha. Execute esta consulta para conferir os registros que não corresponderam à sua regra. Para mais informações, consulte Resolver um problema de qualidade de dados.
Limitações
- As recomendações de regras não são compatíveis com a CLI gcloud.
- A escolha de dimensões é fixa em uma das sete dimensões predefinidas.
- O número de regras por verificação de qualidade de dados é limitado a 1.000.
- As pontuações de qualidade dos dados informadas no nível da coluna são compatíveis apenas na API.
Preços
Para mais informações sobre preços, consulte Preços do Dataplex Universal Catalog.
A seguir
- Saiba como usar a qualidade de dados automática.
- Saiba mais sobre a criação do perfil dos dados.
- Saiba como usar a criação de perfil de dados.