Vista geral da qualidade de dados de automóveis

A qualidade de dados automática do catálogo universal do Dataplex permite-lhe definir e medir a qualidade dos dados nas suas tabelas do BigQuery. Pode automatizar a análise de dados, validar dados com base em regras definidas e registar alertas se os seus dados não cumprirem os requisitos de qualidade. Pode gerir regras de qualidade de dados e implementações como código, melhorando a integridade dos pipelines de produção de dados.

Pode começar a usar recomendações de regras baseadas nos resultados de uma análise do perfil de dados do catálogo universal do Dataplex ou criar regras personalizadas.

O Dataplex Universal Catalog oferece monitorização, resolução de problemas e alertas do Cloud Logging integrados com a qualidade dos dados automática do Dataplex Universal Catalog.

Modelo conceptual

Uma análise de qualidade de dados aplica regras de qualidade aos dados de tabelas para comunicar os resultados.

Uma análise de dados é uma tarefa do catálogo universal do Dataplex que recolhe amostras de dados do BigQuery e do Cloud Storage e infere vários tipos de metadados. Para medir a qualidade de uma tabela através da qualidade de dados automática, cria um objeto DataScan do tipo data quality. A análise é executada apenas numa tabela do BigQuery. A análise usa recursos num projeto de inquilino da Google, pelo que não precisa de configurar a sua própria infraestrutura.

A criação e a utilização de uma análise da qualidade dos dados consistem nos seguintes passos:

  1. Defina regras de qualidade de dados
  2. Configure a execução de regras
  3. Analise os resultados da análise da qualidade de dados
  4. Configure a monitorização e os alertas
  5. Resolva problemas de falhas na qualidade de dados

Definição de regra

As regras de qualidade de dados associadas a uma análise de qualidade de dados definem as expetativas de dados. Pode criar regras de qualidade de dados das seguintes formas:

Regras predefinidas

O Dataplex Universal Catalog suporta as seguintes categorias de regras predefinidas:

Ao nível da linha

Para regras de categorias ao nível da linha, a expetativa é 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 ao nível da linha requerem que especifique um limite de aprovação. Quando a percentagem de linhas que passam na regra fica abaixo do valor limite, a regra falha.

Agregar

Para regras de agregação, a expetativa é aplicada a um único valor agregado em todos os dados. Por exemplo, Avg(someCol) >= 10. Para ser aprovada, a verificação tem de ser avaliada como o valor booleano true. As regras agregadas não fornecem uma contagem de aprovações ou reprovações independente para cada linha.

Para ambas as categorias de regras, pode definir os seguintes parâmetros:

  • A coluna à qual a regra se aplica
  • Uma dimensão

A tabela seguinte lista os tipos de regras agregadas e ao nível da linha suportados:

Tipo de regra
(nome na Google Cloud consola)
Regra ao nível da linha ou agregada Descrição Tipos de colunas suportados Parâmetros específicos da regra
RangeExpectation
(Verificação de intervalo)
Ao nível da linha Verifique se o valor está entre o mínimo e o máximo. Todas as colunas do tipo numérico, de data e de data/hora. Obrigatório:
  • Percentagem do limiar de aprovação
  • Valores min ou max: especifique, pelo menos, um valor.
Opcional:
  • Ative strict min: se estiver ativada, a verificação de regras usa ">" em vez de ">=".
  • Ative a opção strict max: se estiver ativada, a verificação de regras usa "<" em vez de "<=".
  • Ativar ignore null: se estiver ativada, os valores nulos são ignorados na verificação de regras.
NonNullExpectation
(Verificação de nulo)
Ao nível da linha Valide se os valores das colunas não são NULL. Todos os tipos de colunas suportados. Obrigatório:
  • Percentagem do limite de aprovação.
SetExpectation
(Definir verificação)
Ao nível da linha Verificar se os valores numa coluna são um dos valores especificados num conjunto. Todos os tipos de colunas suportados, exceto Record e Struct. Obrigatório:
  • Conjunto de valores de string a comparar.
  • Percentagem do limite de aprovação.
Opcional:
  • Ativar ignore null: se estiver ativada, os valores nulos são ignorados na verificação da regra.
RegexExpectation
(Verificação de expressão regular)
Ao nível da linha Verifica os valores com uma expressão regular especificada. String Obrigatório:
  • Padrão de expressão regular usado para verificar.
  • Percentagem do limite de aprovação.
  • Nota: o GoogleSQL oferece suporte para expressões regulares através da biblioteca re2. Consulte essa documentação para ver a respetiva sintaxe de expressão regular.
Opcional:
  • Ativar ignore null: se estiver ativada, os valores nulos são ignorados na verificação da regra.
Uniqueness
(Verificação de unicidade)
Agregar Verifique se todos os valores numa coluna são únicos. Todos os tipos de colunas suportados, exceto Record e Struct. Obrigatório:
  • Coluna e dimensão dos parâmetros suportados.
Opcional:
  • Ativar ignore null: se estiver ativada, os valores nulos são ignorados na verificação da regra.
StatisticRangeExpectation
(Verificação de estatísticas)
Agregar Verifica se a medida estatística fornecida corresponde à expectativa do intervalo. Todos os tipos de colunas numéricas suportados. Obrigatório:
  • mean, min ou valores max: especifique, pelo menos, um valor.
Opcional:
  • Ative strict min: se estiver ativada, a verificação de regras usa ">" em vez de ">=".
  • Ative a opção strict max: se estiver ativada, a verificação de regras usa "<" em vez de "<=".

Tipos de regras de SQL personalizado suportados

As regras SQL oferecem flexibilidade para expandir a validação com lógica personalizada. Estas regras são dos seguintes tipos.

Tipo de regra Regra ao nível da linha ou agregada Descrição Tipos de colunas suportados Parâmetros específicos da regra Exemplo
Condição da linha Ao nível da linha

Especifique uma expetativa para cada linha definindo uma expressão SQL numa cláusula WHERE. A expressão SQL deve ser avaliada como true (aprovado) ou false (reprovado) por linha. O catálogo universal do Dataplex calcula a percentagem de linhas que cumprem esta expetativa e compara este valor com a percentagem do limite de aprovação para determinar o êxito ou a falha da regra.

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:
  • Condição SQL a usar
  • Percentagem do limiar de aprovação
  • Dimensão
Opcional:
  • Coluna à qual associar esta regra.
grossWeight <= netWeight
Condição da tabela
(expressão SQL agregada)
Agregar

Estas regras são executadas uma vez por tabela. Forneça uma expressão SQL que seja avaliada como booleana true (aprovado) ou false (reprovado).

A expressão SQL pode incluir uma referência a outra tabela através de subconsultas de expressões.

Todas as colunas Obrigatório:
  • Condição SQL a usar
  • Dimensão
Opcional:
  • Coluna à qual associar esta regra

Exemplo de agregação simples:
avg(price) > 100

Usar uma subconsulta de expressão para comparar valores numa tabela diferente:
(SELECT COUNT(*) FROM `example_project.example_dataset.different-table`) < COUNT(*)

Afirmação SQL Agregar

Uma regra de validação usa uma consulta de qualidade de dados para encontrar linhas que não cumprem uma ou mais condições especificadas na consulta. Forneça uma declaração SQL que seja avaliada para devolver linhas que correspondam ao estado inválido. Se a consulta devolver linhas, a regra falha.

Omita o ponto e vírgula final da declaração SQL.

A declaração SQL pode incluir uma referência a outra tabela através de subconsultas de expressões.

Todas as colunas Obrigatório:
  • Declaração SQL para verificar o estado inválido
  • Dimensão
Opcional:
  • Coluna à qual associar esta regra.

Exemplo de agregação simples para garantir que discount_pct não é superior a 100:
SELECT * FROM example_project.example_dataset.table WHERE discount_pct > 100

Usar uma subconsulta de expressão para comparar valores numa tabela diferente:
SELECT * FROM `example_project.example_dataset.different-table` WHERE gross_weight > (SELECT avg(gross_weight) FROM `example_project.example_dataset.different-table`)

Para ver exemplos de regras, consulte as regras de exemplo de qualidade dos dados automáticos.

Para ver as funções SQL suportadas, consulte a referência do GoogleSQL.

Dimensões

As dimensões permitem-lhe agregar os resultados de várias regras de qualidade dos dados para monitorização e alertas. Tem de associar cada regra de qualidade de dados a uma dimensão. O Dataplex Universal Catalog fornece as seguintes dimensões:

Atualidade
A atualidade mede quando os dados foram atualizados pela última vez. Ter estas informações pode ajudar a determinar se os dados são suficientemente recentes 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 sua finalidade.
Validade
A validade avalia se os dados estão em conformidade com as normas predefinidas para o formato, os intervalos aceitáveis ou outros critérios. Por exemplo, se uma data válida tiver de ter o formato YYYY/mm/dd, 08-12-2019 são dados inválidos. Por exemplo, se um preço de venda válido para um artigo estiver entre 10 € e 20 €, um preço de venda de 100 € são dados inválidos.
Consistência
A consistência refere-se a ter os mesmos valores para os dados em várias instâncias, como tabelas e colunas. A inconsistência nos dados surge quando, por exemplo, a receita de um produto difere quando é lida a partir de uma base de dados de vendas ou de uma base de dados de utilização.
Precisão
A precisão reflete a correção dos dados. Tenha em atenção que os 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 tiver cabelo castanho, trata-se de dados incorretos.
Originalidade
A unicidade mede se os dados são distintos sem duplicados.

Introdução de texto nas regras

Todos os parâmetros value são transmitidos como valores de string para a API. O catálogo universal do Dataplex requer que as entradas sigam o formato especificado do BigQuery.

Os parâmetros do tipo binário podem ser transmitidos como uma string codificada em base64.

Tipo Formatos suportados Exemplos
Binário Valor codificado em Base64 YXBwbGU=
Indicação de tempo 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 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

Quando cria uma regra SQL personalizada, pode consultar uma tabela de origem de dados e todos os respetivos filtros de pré-condição através do parâmetro de referência de dados ${data()} na regra, em vez de mencionar explicitamente a tabela de origem e os respetivos filtros. O Dataplex Universal Catalog interpreta o parâmetro como uma referência à tabela de origem e aos respetivos filtros. Alguns exemplos de filtros de pré-condição incluem filtros de linhas, percentagens de amostragem e filtros incrementais.

Por exemplo, suponhamos que tem uma tabela de origem de dados denominada my_project_id.dim_dataset.dim_currency. Quer executar uma análise de qualidade de dados incremental que analise apenas os novos dados diários. É aplicado um filtro de linhas que filtra as entradas de hoje, transaction_timestamp >= current_date(), na tabela.

Uma regra SQL personalizada para encontrar linhas com discount_pct para hoje tem o seguinte aspeto:

discount_pct IN (SELECT discount_pct FROM my_project_id.dim_dataset.dim_currency WHERE transaction_timestamp >= current_date())

Se usar o parâmetro de referência de dados, pode simplificar a regra. Substitua a menção da tabela e dos respetivos 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 refere-se apenas aos dados incrementais.

O parâmetro ${data()} é sensível a maiúsculas e minúsculas.

Quando usa um alias numa subconsulta para fazer referência a colunas na tabela de origem, use o parâmetro de referência de dados para fazer referência à tabela de origem ou omita a referência de tabela. Não faça referência às colunas na tabela de origem usando uma referência direta à tabela na cláusula WHERE.

Recomendado:

  • Use o parâmetro de referência de dados para fazer referência à 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 de 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 fazer referência 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

Pode agendar análises de qualidade de dados para serem executadas a um intervalo específico ou pode executar uma análise a pedido.

Quando executa uma análise de qualidade de dados, o Dataplex Universal Catalog cria uma tarefa. Como parte da especificação de uma análise de qualidade de dados, pode especificar o âmbito de uma tarefa como um dos seguintes:

Tabela completa
Cada tarefa valida a tabela completa.
Incremental
Cada tarefa valida os dados incrementais. Para determinar os incrementos, indique uma coluna Date / Timestamp na tabela que possa ser usada como marcador. Normalmente, esta é a coluna na qual a tabela está particionada.

Filtre dados

Pode filtrar os dados a serem analisados quanto à qualidade dos dados através de um filtro de linhas. A criação de um filtro de linhas permite-lhe focar-se nos dados num período específico ou num segmento específico, como uma determinada região. A utilização de filtros pode reduzir o tempo de execução e o custo. Por exemplo, pode filtrar dados com uma data/hora anterior a uma determinada data.

Dados de exemplo

Pode especificar uma percentagem de registos dos seus dados para amostragem para executar uma análise de qualidade de dados. A criação de análises de qualidade dos dados numa amostra de dados mais pequena pode reduzir o tempo de execução e o custo em relação à consulta do conjunto de dados completo.

Resultados da análise de qualidade de dados

Os resultados das análises de qualidade dos dados estão disponíveis no catálogo universal do Dataplex e no BigQuery. Também pode rever e analisar os resultados da análise através dos seguintes métodos:

  • Exporte resultados para o BigQuery

    Pode exportar os resultados da análise para uma tabela do BigQuery para análise adicional. Para personalizar os relatórios, pode associar os dados da tabela do BigQuery a um painel de controlo do Looker. Pode criar um relatório agregado usando a mesma tabela de resultados em várias análises.

  • Publique os resultados como metadados do Dataplex Universal Catalog

    Pode publicar os resultados da análise da qualidade de dados como metadados do Dataplex Universal Catalog. Os resultados mais recentes são guardados na entrada do catálogo universal do Dataplex que representa a tabela de origem, no tipo de aspeto do sistema data-quality-scorecard. Pode ver os resultados nas páginas do BigQuery e do catálogo universal do Dataplex da tabela de origem na Google Cloud consola, no separador Qualidade dos dados. Também pode obter os resultados através da API.

    Para mais informações sobre os metadados do Dataplex Universal Catalog, consulte o artigo Acerca da gestão de metadados no Dataplex Universal Catalog.

  • Reveja as classificações da qualidade de dados

    Cada resultado da análise fornece pontuações de qualidade dos dados que indicam a percentagem de regras aprovadas. As pontuações são comunicadas ao nível geral da tarefa, ao nível da coluna (se a regra for avaliada em relação a uma coluna) e ao nível da dimensão. Use as classificações de qualidade de dados para normalizar a qualidade de dados em tabelas ou colunas, monitorizar tendências e identificar dados que não cumprem os requisitos de qualidade.

Para mais informações, consulte o artigo Veja os resultados da análise da qualidade dos dados.

Monitorização e alertas

Pode monitorizar e receber alertas sobre as análises de qualidade de dados através dos seguintes métodos:

  • Defina alertas no Cloud Logging

    Pode monitorizar as tarefas de qualidade de dados através dos registos data_scan e data_quality_scan_rule_result no Logs Explorer.

    Para cada tarefa de qualidade de dados, o registo data_scan com o campo data_scan_type definido como DATA_QUALITY contém as seguintes informações:

    • Origem de dados usada para a análise de dados.
    • Detalhes de execução da tarefa, como a hora de criação, a hora de início, a hora de fim e o estado da tarefa.
    • Resultado da tarefa de qualidade de dados: aprovado ou reprovado.
    • Aprovação ou reprovação ao nível da dimensão.

    Todas as tarefas bem-sucedidas contêm um registo data_quality_scan_rule_result com as seguintes informações detalhadas sobre cada regra nessa tarefa:

    • Informações de configuração, como o nome da regra, o tipo de regra, o tipo de avaliação e a dimensão.
    • Informações dos resultados, como aprovação ou falha, número total de linhas, número de linhas aprovadas, número de linhas nulas e número de linhas avaliadas.

    As informações nos registos estão disponíveis através da API e da Google Cloud consola. Pode usar estas informações para configurar alertas. Para mais informações, consulte o artigo Defina alertas no registo.

  • Enviar relatórios de notificações por email

    Pode enviar relatórios de notificação por email para alertar as pessoas sobre o estado e os resultados de uma tarefa de qualidade de dados. Os relatórios de notificações estão disponíveis para os seguintes cenários:

    • O índice de qualidade dos dados é inferior a um índice alvo especificado
    • A tarefa falhou
    • O trabalho foi concluído

    Configura relatórios de notificações quando cria uma análise de qualidade de dados.

Resolva problemas de falhas na qualidade de dados

Quando uma regra falha, o Dataplex Universal Catalog produz uma consulta para obter os registos com falhas. Execute esta consulta para ver os registos que não corresponderam à sua regra. Para mais informações, consulte o artigo Resolva uma falha de qualidade de dados.

Limitações

  • As recomendações de regras não são suportadas na CLI gcloud.
  • A escolha das dimensões está limitada a uma das sete dimensões predefinidas.
  • O número de regras por análise de qualidade dos dados está limitado a 1000.
  • As classificações de qualidade de dados comunicadas ao nível da coluna só são suportadas na API.

Preços

Para mais informações sobre os preços, consulte os preços do Dataplex Universal Catalog.

O que se segue?