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:

  1. 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.
  2. 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.
  3. Analise os resultados da verificação de perfil de dados para encontrar padrões e possíveis anomalias.
  4. 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.
  5. Analise os resultados da avaliação para saber quais regras de qualidade foram aprovadas ou reprovadas.

Antes de começar

Configure o projeto:

  1. Faça login na sua conta do Google Cloud . Se você começou a usar o Google Cloud, crie uma conta para avaliar o desempenho de nossos produtos em situações reais. Clientes novos também recebem US$ 300 em créditos para executar, testar e implantar cargas de trabalho.
  2. 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 the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. 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.

  4. Verify that billing is enabled for your Google Cloud project.

  5. Enable the Knowledge Catalog and BigQuery APIs.

    Roles required to enable APIs

    To enable APIs, you need the serviceusage.services.enable permission. 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.

    Enable the APIs

  6. 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 the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  7. 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.

  8. Verify that billing is enabled for your Google Cloud project.

  9. Enable the Knowledge Catalog and BigQuery APIs.

    Roles required to enable APIs

    To enable APIs, you need the serviceusage.services.enable permission. 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.

    Enable the APIs

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:

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.

  1. 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.

  2. Crie o agente de serviço do Knowledge Catalog:

    gcloud beta services identity create --service=dataplex.googleapis.com
    

    Esse 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.iam.gserviceaccount.com
    

    Anote o PROJECT_NUMBER na saída para as próximas etapas.

  3. 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.iam.gserviceaccount.com" \
       --role="roles/bigquery.jobUser"
    

    Substitua:

    • PROJECT_ID: o ID do projeto Google Cloud .
    • PROJECT_NUMBER: o número do projeto do Google Cloud .
  4. 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.iam.gserviceaccount.com" \
       --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

  1. No console do Google Cloud , acesse a página BigQuery.

    Acessar o BigQuery

  2. No painel Explorer, clique em Ver ações ao lado do ID do projeto e clique em Criar conjunto de dados.

  3. No campo ID do conjunto de dados, digite quickstart_data_profile.

  4. Na lista Local dos dados, selecione us-central1 (Iowa).

  5. Clique em Criar conjunto de dados.

  6. 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_ID pelo ID do projeto Google Cloud .

  7. Clique em Executar.

gcloud

  1. No Cloud Shell, crie o conjunto de dados quickstart_data_profile na região us-central1:

    bq --location=us-central1 mk --dataset PROJECT_ID:quickstart_data_profile
    

    Substitua PROJECT_ID pelo Google Cloud ID do projeto.

  2. 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

  1. No console Google Cloud , acesse a página Qualidade e criação do perfil de dados.

    Acessar "Qualidade e perfilamento de dados"

  2. Clique em Criar verificação do perfil de dados.

  3. Em Escolher tipo, deixe Verificação de perfil de dados selecionado.

  4. Em Geral, no campo Nome de exibição, insira bikeshare-trips-profile.

  5. Em Tabela a ser verificada, no campo Tabela, clique em Procurar, selecione a tabela quickstart_data_profile.bikeshare_trips no seu projeto e clique em Selecionar.

  6. Em Modo, selecione Padrão.

  7. Em Escopo, selecione Dados completos.

  8. Em Programação, selecione Sob demanda.

  9. Mantenha os valores padrão das outras configurações.

  10. 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

  1. 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_ID pelo Google Cloud ID do projeto.

  2. 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.

  1. No console Google Cloud , acesse a página Qualidade e criação do perfil de dados.

    Acessar "Qualidade e perfilamento de dados"

  2. Na lista de verificações, clique em bikeshare-trips-profile.

  3. Se a verificação ainda não tiver sido executada, clique em Executar agora.

  4. 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:

    Seção "Visão geral" da verificação de perfil de viagens de compartilhamento de bicicletas mostrando o status do job como "Concluído" e o link "Ver resultados".

  5. 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_minutes Estatísticas de resumo Valores negativos detectados: o valor Mínimo é -10.0 minutos. 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_id Porcentagem 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_type Principais 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_id Contagem ú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

  1. No console Google Cloud , acesse a página Qualidade e criação do perfil de dados.

    Acessar "Qualidade e perfilamento de dados"

  2. Clique em Criar verificação de qualidade de dados.

  3. Em Geral, no campo Nome de exibição, insira bikeshare-trips-quality.

  4. Em Tabela a ser verificada, no campo Tabela, clique em Procurar, selecione a tabela quickstart_data_profile.bikeshare_trips e clique em Selecionar.

  5. Em Escopo, selecione Dados completos.

  6. Em Programação, selecione Sob demanda.

  7. Não mude as outras configurações e clique em Continuar.

  8. Na seção Regras de qualidade de dados, clique em Adicionar regras e selecione Tipos de regras integradas.

  9. 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_type e trip_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 intervalo
      • start_station_id: Verificação de NULL
      • subscriber_type: Verificação de conjunto de valores
      • trip_id: Verificação de exclusividade
    • Clique em Selecionar.

  10. 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, insira 1.0 no 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 Membership e Weekender) e clique em Salvar.
  11. Clique em Continuar e depois em Executar verificação.

gcloud

  1. No Cloud Shell, crie um arquivo chamado dq_bikeshare.yaml com 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"
    EOF
    
  2. Crie 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_ID pelo Google Cloud ID do projeto.

  3. 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.

  1. No console Google Cloud , acesse a página Qualidade e criação do perfil de dados.

    Acessar "Qualidade e perfilamento de dados"

  2. Na tabela Verificações, clique na verificação bikeshare-trips-quality.

  3. Na seção Visão geral, clique em Ver resultados para abrir os detalhes do job.

  4. 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_minutes contém valores negativos, e subscriber_type contém valores de associação inválidos (INVALID_TIER).
      • Integridade: Falhou. A coluna start_station_id contém valores nulos.
      • Exclusividade: Falhou. A coluna trip_id contém registros duplicados.
    • 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

  1. No console Google Cloud , acesse a página Qualidade e criação do perfil de dados.

    Acessar "Qualidade e perfilamento de dados"

  2. Na tabela Verificações, selecione bikeshare-trips-quality e bikeshare-trips-profile.

  3. Clique em Excluir e confirme.

  4. Acessar a página do BigQuery.

    Acessar o BigQuery

  5. No painel Explorer, clique em Conjuntos de dados.

  6. Selecione o conjunto de dados quickstart_data_profile e 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