Criar perfis e validar a qualidade dos dados
O Knowledge Catalog (antigo Dataplex Universal Catalog) permite criar perfis de tabelas do BigQuery para calcular estatísticas no nível da coluna, como porcentagens de nulos, contagens de valores exclusivos e distribuições de valores. Em seguida, use esses insights para definir regras de qualidade de dados e validar seus registros em busca de anomalias.
Neste guia de início rápido, você vai preencher uma tabela do BigQuery de amostra com anomalias intencionais, executar uma verificação do perfil de dados e avaliar os resultados com uma verificação de qualidade de dados. Para mais informações, consulte Sobre a criação de perfil de dados e Sobre a qualidade de dados automática.
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, if any are not already enabled.
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
projeto, poderá conceder esses papéis à sua própria 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 demorar um pouco.
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 gera 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 Knowledge Catalog 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 Visualizador de dados do BigQuery (
roles/bigquery.dataViewer) para que o agente de serviço possa ler os dados e o esquema da 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 as verificações de criação de perfil e qualidade de dados com segurança sem tocar nos dados de produção, configure um conjunto de dados dedicado do BigQuery e crie uma tabela com dados de amostra de compartilhamento de bicicletas com anomalias intencionais, como duplicatas e valores nulos.
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 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 amostra 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 do 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 ID do projeto doGoogle Cloud .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 do perfil de dados analisa as linhas da tabela para calcular insights estatísticos, incluindo contagens de valores exclusivos, 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 a opção Verificação do perfil de dados selecionada.
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 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, o Knowledge Catalog leva de 3 a 5 minutos para executar a verificação e calcular as estatísticas da 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 ID do projeto doGoogle Cloud .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 geralmente leva de 3 a 5 minutos para ser concluída.
Analisar os resultados da verificação do perfil de dados
Depois que a verificação for concluída, 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 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 metas de validação de qualidade de dados. Na guia Resultados do job mais recente, o Knowledge Catalog exibe métricas no nível da coluna, incluindo %nulo, Contagem e %exclusivos, Valores principais 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 de validação da qualidade de dados duration_minutesEstatísticas de resumo Valores negativos detectados: o valor mínimo é de -10.0minutos. A duração da viagem não pode ser negativa, o que indica gravações inválidas do sensor ou da viagem.Segmentar com 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 nula é maior que 0%, mostrando que alguns registros não têm identificadores de check-out da estação (como viagens sem estação ou quiosque). Destino com uma regra de Integridade (não nula) para capturar 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 associação válidos, indicando entrada de usuário não validada ou problemas de ingestão.Segmentar com uma regra de Validade (conjunto) para garantir que todos os valores recebidos pertençam à lista de tipos de assinatura permitidos. trip_idContagem única e % IDs duplicados detectados: a exclusividade é menor que 100% (cerca de 98%), indicando registros de identificadores repetidos. As chaves primárias e os identificadores de viagem precisam ser 100% exclusivos. Segmentar com uma regra de exclusividade para sinalizar e evitar registros de viagem duplicados.
Essas descobertas de perfil fornecem uma referência baseada em evidências para criar regras de qualidade de dados direcionadas.
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ê vai configurar quatro tipos de regras comuns com base nas descobertas do 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 altere as configurações restantes 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 exclusividade e, 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 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 para as regras que exigem valores:
- Em
duration_minutes(Verificação de intervalo), clique em Editar, insira1.0no campo Valor mínimo e clique em Salvar. - Em
subscriber_type(Verificação do conjunto de valores), clique em Editar, clique em Adicionar valor para adicionar cada um dos valores permitidos (Local Rider,Walk Up,Student MembershipeWeekender) e clique em Salvar.
- Em
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 segmentem 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 ID do projeto doGoogle Cloud .Execute a verificação de qualidade de dados:
gcloud dataplex datascans run bikeshare-trips-quality \ --location=us-central1
Analisar as avaliações de regras de qualidade de dados
Verifique os resultados da qualidade de dados para ver 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, 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: falha. A coluna
start_station_idcontém valores nulos. - Exclusividade: falha. A coluna
trip_idcontém registros duplicados.
- Validade: Falhou. A coluna
Regras: na tabela Regras, todas as quatro regras avaliadas mostram o status Com falha.
duration_minutes: verificação de intervalo (falha)start_station_id: verificação NULL (com falha)subscriber_type: verificação do conjunto de valores (falha)trip_id: verificação de exclusividade (com falha)
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 o 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 Explorador, 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 ID do projeto doGoogle Cloud .
A seguir
- Ver e resolver problemas nos resultados da verificação de qualidade de dados
- Monitorar as métricas do Knowledge Catalog
- 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 tabelas
- Conheça outros casos de uso do Knowledge Catalog