Criar perfil e validar a qualidade de dados
Neste guia de início rápido, você vai aprender a usar o Knowledge Catalog (antigo Dataplex Universal Catalog) para criar um perfil de uma tabela do BigQuery, definir regras de qualidade de dados com base em insights de perfil e executar uma verificação de qualidade de dados.
Conclua as seguintes etapas:
- Crie um conjunto de dados e uma tabela do BigQuery com dados de exemplo de compartilhamento de bicicletas que contenham anomalias intencionais, como duplicatas e valores nulos, para testar os recursos de verificação.
- Crie e execute uma verificação do perfil de dados na tabela. A criação de perfil de dados calcula estatísticas no nível da coluna, como porcentagens nulas, contagens de valores exclusivos e distribuições de valores. Para mais informações, consulte Sobre a criação de perfil de dados.
- Analise os resultados da verificação de perfil de dados para encontrar padrões e possíveis anomalias.
- Defina regras de qualidade de dados com base nas descobertas do seu perfil e execute uma verificação de qualidade de dados. As verificações de qualidade de dados validam seus dados em relação a regras definidas para identificar anomalias. Para mais informações, consulte Sobre a qualidade de dados automática.
- Analise os resultados da avaliação para saber quais regras de qualidade foram aprovadas ou reprovadas.
Antes de começar
Configure o projeto:
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
If you're using an existing project for this guide, verify that you have the permissions required to complete this guide. If you created a new project, then you already have the required permissions.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Knowledge Catalog and BigQuery APIs.
Roles required to enable APIs
To enable APIs, you need the
serviceusage.services.enablepermission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.
Funções exigidas
Para receber as permissões necessárias para criar e executar verificações de perfil e qualidade de dados e gerenciar recursos do BigQuery, peça ao administrador para conceder a você os seguintes papéis do IAM no projeto:
-
Criar, executar e excluir verificações de dados:
Editor do DataScan Dataplex (
roles/dataplex.dataScanEditor) -
Criar, preencher e excluir tabelas de amostra:
Proprietário de dados do BigQuery (
roles/bigquery.dataOwner) -
Executar consultas SQL no BigQuery:
Usuário de jobs do BigQuery (
roles/bigquery.jobUser)
Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.
Também é possível conseguir as permissões necessárias usando papéis personalizados ou outros papéis predefinidos.
Se você tiver as permissões necessárias para gerenciar o acesso do IAM no seu projeto, conceda esses papéis à sua conta de usuário executando os seguintes comandos gcloud:
gcloud projects add-iam-policy-binding PROJECT_ID \
--member="user:USER_EMAIL" \
--role="roles/dataplex.dataScanEditor"
gcloud projects add-iam-policy-binding PROJECT_ID \
--member="user:USER_EMAIL" \
--role="roles/bigquery.dataOwner"
gcloud projects add-iam-policy-binding PROJECT_ID \
--member="user:USER_EMAIL" \
--role="roles/bigquery.jobUser"
Substitua:
PROJECT_ID: o ID do projeto Google Cloud .USER_EMAIL: o endereço de e-mail da sua conta de usuário (por exemplo,name@example.com).
Conceder permissões ao agente de serviço do Knowledge Catalog
Um agente de serviço é uma conta serviço gerenciado pelo Google que o Knowledge Catalog usa para executar consultas de verificação no BigQuery em seu nome.
No console do Google Cloud , clique em Ativar o Cloud Shell na barra de ferramentas. O provisionamento e a conexão do ambiente podem levar alguns instantes.
Crie o agente de serviço do Knowledge Catalog:
gcloud beta services identity create --service=dataplex.googleapis.comEsse comando cria o agente de serviço se ele ainda não tiver sido provisionado e mostra o e-mail dele. Se o projeto já tiver um agente de serviço do Knowledge Catalog, o comando vai retornar a identidade atual sem fazer mudanças.
O resultado será o seguinte:
serviceAccount:service-PROJECT_NUMBER@gcp-sa-dataplex.Anote o
PROJECT_NUMBERna saída para as próximas etapas.Conceda o papel de Usuário de jobs do BigQuery (
roles/bigquery.jobUser) para que o Catálogo de dados possa executar jobs de consulta no seu projeto:gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:service-PROJECT_NUMBER@gcp-sa-dataplex." \ --role="roles/bigquery.jobUser"
Substitua:
PROJECT_ID: o ID do projeto Google Cloud .PROJECT_NUMBER: o número do projeto do Google Cloud .
Conceda o papel de Leitor de dados do BigQuery (
roles/bigquery.dataViewer) para que o agente de serviço possa ler os dados e o esquema da sua tabela:gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:service-PROJECT_NUMBER@gcp-sa-dataplex." \ --role="roles/bigquery.dataViewer"
Substitua:
PROJECT_ID: o ID do projeto Google Cloud .PROJECT_NUMBER: o número do projeto do Google Cloud .
Criar um conjunto de dados e uma tabela de amostra
Para testar a criação de perfis e as verificações de qualidade de dados com segurança sem afetar os dados de produção, configure um conjunto de dados dedicado do BigQuery e crie uma tabela com dados de amostra diretamente no seu projeto.
Console
No console do Google Cloud , acesse a página BigQuery.
No painel Explorer, clique em Ver ações ao lado do ID do projeto e clique em Criar conjunto de dados.
No campo ID do conjunto de dados, digite
quickstart_data_profile.Na lista Local dos dados, selecione us-central1 (Iowa).
Clique em Criar conjunto de dados.
No editor de consultas, insira a seguinte consulta SQL para gerar dados de exemplo de compartilhamento de bicicletas na tabela
bikeshare_trips:CREATE OR REPLACE TABLE `PROJECT_ID.quickstart_data_profile.bikeshare_trips` AS SELECT -- Duplicate and null IDs IF(MOD(x, 100) = 0, NULL, IF(x > 9900, 1000 + (x - 9900), 1000 + x)) AS trip_id, -- Nulls and unrecognized category values CASE WHEN MOD(x, 50) = 0 THEN 'INVALID_TIER' WHEN MOD(x, 25) = 0 THEN NULL WHEN MOD(x, 4) = 0 THEN 'Local Rider' WHEN MOD(x, 4) = 1 THEN 'Walk Up' WHEN MOD(x, 4) = 2 THEN 'Student Membership' ELSE 'Weekender' END AS subscriber_type, -- Nulls and malformed bike IDs CASE WHEN MOD(x, 60) = 0 THEN 'UNKNOWN' WHEN MOD(x, 30) = 0 THEN NULL ELSE CAST(2000 + x AS STRING) END AS bike_id, -- Null dates and future timestamps CASE WHEN MOD(x, 70) = 0 THEN NULL WHEN MOD(x, 40) = 0 THEN TIMESTAMP_ADD(CURRENT_TIMESTAMP(), INTERVAL x MINUTE) ELSE TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL x MINUTE) END AS start_time, -- Nulls and placeholder station values CASE WHEN MOD(x, 20) = 0 THEN 'STATION_UNKNOWN' WHEN MOD(x, 10) = 0 THEN NULL ELSE CAST(100 + MOD(x, 50) AS STRING) END AS start_station_id, -- Negative durations, zeros, and extreme outliers CASE WHEN MOD(x, 15) = 0 THEN -10.0 WHEN MOD(x, 35) = 0 THEN 0.0 WHEN MOD(x, 200) = 0 THEN 99999.0 ELSE CAST(MOD(x, 120) + 1.5 AS FLOAT64) END AS duration_minutes FROM UNNEST(GENERATE_ARRAY(1, 10000)) AS x;
Substitua
PROJECT_IDpelo ID do projeto Google Cloud .Clique em Executar.
gcloud
No Cloud Shell, crie o conjunto de dados
quickstart_data_profilena regiãous-central1:bq --location=us-central1 mk --dataset PROJECT_ID:quickstart_data_profile
Substitua
PROJECT_IDpelo Google Cloud ID do projeto.Crie e preencha a tabela de amostra
bikeshare_trips:bq query \ --use_legacy_sql=false \ "CREATE OR REPLACE TABLE \`PROJECT_ID.quickstart_data_profile.bikeshare_trips\` AS SELECT IF(MOD(x, 100) = 0, NULL, IF(x > 9900, 1000 + (x - 9900), 1000 + x)) AS trip_id, CASE WHEN MOD(x, 50) = 0 THEN 'INVALID_TIER' WHEN MOD(x, 25) = 0 THEN NULL WHEN MOD(x, 4) = 0 THEN 'Local Rider' WHEN MOD(x, 4) = 1 THEN 'Walk Up' WHEN MOD(x, 4) = 2 THEN 'Student Membership' ELSE 'Weekender' END AS subscriber_type, CASE WHEN MOD(x, 60) = 0 THEN 'UNKNOWN' WHEN MOD(x, 30) = 0 THEN NULL ELSE CAST(2000 + x AS STRING) END AS bike_id, CASE WHEN MOD(x, 70) = 0 THEN NULL WHEN MOD(x, 40) = 0 THEN TIMESTAMP_ADD(CURRENT_TIMESTAMP(), INTERVAL x MINUTE) ELSE TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL x MINUTE) END AS start_time, CASE WHEN MOD(x, 20) = 0 THEN 'STATION_UNKNOWN' WHEN MOD(x, 10) = 0 THEN NULL ELSE CAST(100 + MOD(x, 50) AS STRING) END AS start_station_id, CASE WHEN MOD(x, 15) = 0 THEN -10.0 WHEN MOD(x, 35) = 0 THEN 0.0 WHEN MOD(x, 200) = 0 THEN 99999.0 ELSE CAST(MOD(x, 120) + 1.5 AS FLOAT64) END AS duration_minutes FROM UNNEST(GENERATE_ARRAY(1, 10000)) AS x;"
Criar e executar uma verificação do perfil de dados
Uma verificação de perfil de dados analisa as linhas da tabela para calcular insights estatísticos, incluindo contagens de valores únicos, proporções de nulos e intervalos de distribuição de dados.
Console
No console Google Cloud , acesse a página Qualidade e criação do perfil de dados.
Clique em Criar verificação do perfil de dados.
Em Escolher tipo, deixe Verificação de perfil de dados selecionado.
Em Geral, no campo Nome de exibição, insira
bikeshare-trips-profile.Em Tabela a ser verificada, no campo Tabela, clique em Procurar, selecione a tabela
quickstart_data_profile.bikeshare_tripsno seu projeto e clique em Selecionar.Em Modo, selecione Padrão.
Em Escopo, selecione Dados completos.
Em Programação, selecione Sob demanda.
Mantenha os valores padrão das outras configurações.
Clique em Executar verificação.
O job de verificação é iniciado. Normalmente, leva de 3 a 5 minutos para o Knowledge Catalog executar a verificação e calcular as estatísticas da sua tabela.
gcloud
No Cloud Shell, crie a verificação do perfil de dados:
gcloud dataplex datascans create data-profile bikeshare-trips-profile \ --location=us-central1 \ --data-source-resource="//bigquery.googleapis.com/projects/PROJECT_ID/datasets/quickstart_data_profile/tables/bikeshare_trips" \ --description="Data profile scan for sample bikeshare dataset"
Substitua
PROJECT_IDpelo Google Cloud ID do projeto.Execute a verificação do perfil de dados:
gcloud dataplex datascans run bikeshare-trips-profile \ --location=us-central1
O job de verificação é iniciado em segundo plano. A verificação normalmente leva de 3 a 5 minutos para ser concluída.
Analisar os resultados da verificação de perfil de dados
Depois que a verificação terminar, analise as estatísticas da coluna para entender as características dos dados.
No console Google Cloud , acesse a página Qualidade e criação do perfil de dados.
Na lista de verificações, clique em bikeshare-trips-profile.
Se a verificação ainda não tiver sido executada, clique em Executar agora.
Na seção Visão geral, aguarde até que o job de verificação mais recente mostre o status Concluído.
A imagem a seguir mostra o job de verificação na seção Visão geral com o status Concluído:
Inspecione os resultados da verificação para entender a distribuição de dados da tabela e identificar possíveis destinos de validação da qualidade de dados. Na guia Resultados do último job, o Knowledge Catalog mostra métricas no nível da coluna, incluindo %de nulos, Contagem e %de valores únicos, Principais valores e Estatísticas de resumo.
A tabela a seguir mostra qual métrica de perfil verificar para cada coluna da tabela, como interpretar os resultados e qual regra de qualidade de dados segmentar:
Coluna da tabela Métrica de resultado do perfil O que procurar e como interpretar Destino da validação da qualidade de dados duration_minutesEstatísticas de resumo Valores negativos detectados: o valor Mínimo é -10.0minutos. A duração decorrida da viagem não pode ser negativa, o que indica gravações inválidas do sensor ou da viagem.Use uma regra de validade (intervalo) (como duration_minutes ≥ 1.0) para exigir tempos de viagem decorridos positivos.start_station_idPorcentagem de nulos Cerca de 5% de valores nulos: a porcentagem de valores nulos é maior que 0%, mostrando que alguns registros não têm identificadores de check-out da estação (como viagens sem dock ou sem quiosque). Use uma regra de Integridade (não nula) para detectar e sinalizar registros com IDs de estação ausentes. subscriber_typePrincipais valores Categorias inesperadas: a lista de valores frequentes mostra categorias não padrão (como INVALID_TIER) ao lado de níveis de assinatura válidos, indicando problemas de ingestão ou entrada do usuário não validados.Segmente com uma regra de Validade (conjunto) para garantir que todos os valores recebidos pertençam à sua lista permitida de tipos de assinatura. trip_idContagem única e % IDs duplicados detectados: a exclusividade é inferior a 100% (cerca de 98%), o que indica registros de identificadores repetidos. As chaves primárias e os identificadores de viagem precisam ser 100% exclusivos. Use uma regra de exclusividade para sinalizar e evitar registros de viagem duplicados.
Essas descobertas de perfil oferecem uma base baseada em evidências para criar regras de qualidade de dados segmentadas.
Criar e executar uma verificação de qualidade de dados
Agora que você descobriu como são os dados, configure regras automatizadas de qualidade de dados para detectar anomalias. Nesta etapa, você configura quatro tipos de regras comuns com base nas descobertas do seu perfil.
Console
No console Google Cloud , acesse a página Qualidade e criação do perfil de dados.
Clique em Criar verificação de qualidade de dados.
Em Geral, no campo Nome de exibição, insira
bikeshare-trips-quality.Em Tabela a ser verificada, no campo Tabela, clique em Procurar, selecione a tabela
quickstart_data_profile.bikeshare_tripse clique em Selecionar.Em Escopo, selecione Dados completos.
Em Programação, selecione Sob demanda.
Não mude as outras configurações e clique em Continuar.
Na seção Regras de qualidade de dados, clique em Adicionar regras e selecione Tipos de regras integradas.
No painel Adicionar regras, selecione as colunas e os tipos de regra:
- No campo Escolher colunas, clique em Procurar e selecione
duration_minutes,start_station_id,subscriber_typeetrip_id. - Clique em Selecionar.
- Na lista Escolher tipos de regra, selecione Verificação de intervalo, Verificação de NULL, Verificação de conjunto de valores e Verificação de unicidade. Em seguida, clique em OK.
Na lista de regras gerada, marque a caixa de seleção de cada uma das seguintes regras:
duration_minutes: verificação de intervalostart_station_id: Verificação de NULLsubscriber_type: Verificação de conjunto de valorestrip_id: Verificação de exclusividade
Clique em Selecionar.
- No campo Escolher colunas, clique em Procurar e selecione
Na tabela Regras de qualidade de dados, configure os parâmetros das regras que exigem valores:
- Para
duration_minutes(Verificação de intervalo), clique em Editar, insira1.0no campo Valor mínimo e clique em Salvar. - Para
subscriber_type(Verificação de conjunto de valores), clique em Editar, Adicionar valor para adicionar cada um dos valores permitidos (Local Rider,Walk Up,Student MembershipeWeekender) e clique em Salvar.
- Para
Clique em Continuar e depois em Executar verificação.
gcloud
No Cloud Shell, crie um arquivo chamado
dq_bikeshare.yamlcom especificações de regra que segmentam as anomalias encontradas no seu perfil:cat << 'EOF' > dq_bikeshare.yaml rules: - column: trip_id dimension: UNIQUENESS uniquenessExpectation: {} - column: start_station_id dimension: COMPLETENESS nonNullExpectation: {} - column: duration_minutes dimension: VALIDITY rangeExpectation: minValue: "1.0" - column: subscriber_type dimension: VALIDITY setExpectation: values: - "Local Rider" - "Walk Up" - "Student Membership" - "Weekender" EOFCrie a verificação de qualidade de dados:
gcloud dataplex datascans create data-quality bikeshare-trips-quality \ --location=us-central1 \ --data-source-resource="//bigquery.googleapis.com/projects/PROJECT_ID/datasets/quickstart_data_profile/tables/bikeshare_trips" \ --data-quality-spec-file="dq_bikeshare.yaml" \ --description="Data quality scan for sample bikeshare dataset"
Substitua
PROJECT_IDpelo Google Cloud ID do projeto.Execute a verificação de qualidade de dados:
gcloud dataplex datascans run bikeshare-trips-quality \ --location=us-central1
Analisar avaliações de regras de qualidade de dados
Confira os resultados da qualidade de dados para saber como as regras avaliaram os dados de amostra e identificaram anomalias.
No console Google Cloud , acesse a página Qualidade e criação do perfil de dados.
Na tabela Verificações, clique na verificação bikeshare-trips-quality.
Na seção Visão geral, clique em Ver resultados para abrir os detalhes do job.
No painel Detalhes do job, revise os resultados da avaliação:
Status da qualidade de dados: como esperado, todas as três dimensões avaliadas mostram o status Falha.
- Validade: Falhou. A coluna
duration_minutescontém valores negativos, esubscriber_typecontém valores de associação inválidos (INVALID_TIER). - Integridade: Falhou. A coluna
start_station_idcontém valores nulos. - Exclusividade: Falhou. A coluna
trip_idcontém registros duplicados.
- Validade: Falhou. A coluna
Regras: na tabela Regras, todas as quatro regras avaliadas mostram o status Falha.
duration_minutes: verificação de intervalo (falhou)start_station_id: verificação de NULL (Falha)subscriber_type: verificação de conjunto de valores (Falha)trip_id: verificação de exclusividade (falhou)
Para qualquer regra com falha, copie a consulta SQL na coluna Consulta para receber registros com falha e execute-a no BigQuery para isolar e inspecionar as linhas inválidas.
Você criou um perfil de uma tabela do BigQuery para descobrir estatísticas de colunas e usou esses insights para definir e validar regras automatizadas de qualidade de dados.
Limpar
Para evitar cobranças na conta do Google Cloud pelos recursos usados nesta página, siga as etapas abaixo.
Console
No console Google Cloud , acesse a página Qualidade e criação do perfil de dados.
Na tabela Verificações, selecione bikeshare-trips-quality e bikeshare-trips-profile.
Clique em Excluir e confirme.
Acessar a página do BigQuery.
No painel Explorer, clique em Conjuntos de dados.
Selecione o conjunto de dados
quickstart_data_profilee clique em Excluir.
gcloud
No Cloud Shell, exclua a verificação de qualidade de dados, a verificação do perfil de dados e o conjunto de dados de amostra:
gcloud dataplex datascans delete bikeshare-trips-quality --location=us-central1 --quiet gcloud dataplex datascans delete bikeshare-trips-profile --location=us-central1 --quiet bq rm -r -f -d PROJECT_ID:quickstart_data_profile
Substitua PROJECT_ID pelo
Google Cloud ID do projeto.
A seguir
- Conferir e resolver problemas nos resultados da verificação de qualidade de dados
- Monitorar verificações de dados e configurar alertas
- Criar um fluxo de trabalho de qualidade de dados de política como código usando a CLI do Antigravity
- Gerenciar regras de qualidade de dados como código com o Terraform
- Reutilizar regras de qualidade de dados em várias tabelas
- Confira outros casos de uso do Knowledge Catalog