Crear perfiles y garantizar la calidad de los datos

Crea un flujo de trabajo de calidad de los datos basado en políticas como código. En este instructivo, se explica cómo ir más allá de los procesos manuales basados en la IU mediante la definición de expectativas de calidad de los datos en archivos declarativos con control de versiones.

Con un enfoque de Human-in-the-Loop , en el que la IA redacta las reglas iniciales y tú las revisas, las perfeccionas y las validas, puedes traducir rápidamente las estadísticas del perfil en un framework de calidad de los datos.

Objetivos

  • Aplanar los datos anidados de BigQuery con vistas materializadas para habilitar la creación de perfiles de Knowledge Catalog
  • Ejecutar análisis de perfiles de Knowledge Catalog con la biblioteca cliente de Python
  • Usar Gemini CLI para generar reglas de calidad de los datos basadas en estadísticas de perfiles
  • Validar e implementar reglas generadas por IA como análisis de calidad de Knowledge Catalog con un proceso de revisión de interacción humana

Antes de comenzar

Antes de comenzar, asegúrate de tener un Google Cloud proyecto con la facturación habilitada.

Prepara el entorno

En los siguientes pasos, se usa Cloud Shell, un entorno de línea de comandos que se ejecuta en la nube.

  1. En la Google Cloud consola, haz clic en Activar Cloud Shell en la barra de herramientas superior derecha. El entorno tarda unos minutos en aprovisionarse y conectarse.

  2. En Cloud Shell, configura el ID del proyecto y las variables de entorno:

    export PROJECT_ID=$(gcloud config get-value project)
    gcloud config set project $PROJECT_ID
    export LOCATION="us-central1"
    export BQ_LOCATION="us"
    export DATASET_ID="dataplex_dq_codelab"
    export TABLE_ID="ga4_transactions"
    

    Usa us (multirregión) como la ubicación, ya que los datos de muestra públicos también se encuentran en us (multirregión). Para las consultas de BigQuery, los datos de origen y la tabla de destino deben estar en la misma ubicación.

  3. Habilita los servicios obligatorios:

    gcloud services enable dataplex.googleapis.com \
                           bigquery.googleapis.com \
                           serviceusage.googleapis.com
    
  4. Crea un conjunto de datos de BigQuery para almacenar datos de muestra y resultados:

    bq --location=us mk --dataset $PROJECT_ID:$DATASET_ID
    
  5. Prepara los datos de muestra, que provienen de un conjunto de datos de comercio electrónico público de Google Merchandise Store.

    El siguiente comando bq crea una tabla nueva, ga4_transactions, en tu conjunto de datos dataplex_dq_codelab. Para garantizar que los análisis se ejecuten rápidamente, solo copia datos de un día (2021-01-31).

    bq query \
    --use_legacy_sql=false \
    --destination_table=$PROJECT_ID:$DATASET_ID.$TABLE_ID \
    --replace=true \
    'SELECT * FROM `bigquery-public-data.ga4_obfuscated_sample_ecommerce.events_20210131`'
    
  6. Clona el repositorio de GitHub que contiene la estructura de carpetas y los archivos de asistencia para este instructivo:

    # Perform a shallow clone to get only the latest repository structure without the full history
    git clone --depth 1 --filter=blob:none --sparse https://github.com/GoogleCloudPlatform/devrel-demos.git
    cd devrel-demos
    
    # Specify and download only the folder we need for this lab
    git sparse-checkout set data-analytics/programmatic-dq
    cd data-analytics/programmatic-dq
    

    Este directorio es tu área de trabajo activa.

Crea perfiles de datos anidados

Con la creación de perfiles de datos, Knowledge Catalog encuentra estadísticas para las columnas de nivel superior, como porcentajes de valores nulos, singularidad y distribuciones de valores en tus datos para ayudarte a comprenderlos.

Para obtener estadísticas de los campos anidados, puedes aplanar los datos con un conjunto de vistas materializadas. Esto convierte cada campo anidado en una columna de nivel superior que Knowledge Catalog puede perfilar.

Obtén el esquema anidado

Obtén el esquema completo de tu tabla de origen, incluidas todas las estructuras anidadas, y guarda el resultado como un archivo JSON:

bq show --schema --format=json $PROJECT_ID:$DATASET_ID.$TABLE_ID > bq_schema.json

Visualiza el esquema:

jq < bq_schema.json

El archivo bq_schema.json revela estructuras complejas.

Aplanar datos con una vista materializada

Cuando aplanas datos anidados, es importante no desagrupar varios arrays independientes en la misma vista. Si lo haces, se realiza una unión cruzada implícita (producto cartesiano) entre los arrays, lo que multiplica las filas de forma incorrecta y daña tus datos.

Es mejor crear varias vistas, cada una diseñada para un propósito específico. Cada vista debe mantener un solo nivel de detalle claro. En este paso, crearás las siguientes vistas materializadas:

  • Vista plana de la sesión (mv_ga4_user_session_flat.sql): Una fila por evento
  • Vista de transacciones (mv_ga4_ecommerce_transactions.sql): Una fila por transacción
  • Vista de elementos (mv_ga4_ecommerce_items.sql): Una fila por elemento

El repositorio del proyecto proporciona tres archivos SQL en el directorio devrel-demos/data-analytics/programmatic-dq que definen estas vistas.

Ejecuta estos archivos desde Cloud Shell con los siguientes comandos de BigQuery.

envsubst < mv_ga4_user_session_flat.sql | bq query --use_legacy_sql=false
envsubst < mv_ga4_ecommerce_transactions.sql | bq query --use_legacy_sql=false
envsubst < mv_ga4_ecommerce_items.sql | bq query --use_legacy_sql=false

Ejecuta análisis de perfiles con el cliente de Python

Ahora puedes crear y ejecutar análisis de perfiles de datos de Knowledge Catalog para cada vista materializada. La siguiente secuencia de comandos de Python usa la biblioteca cliente google-cloud-dataplex para automatizar este proceso.

Antes de ejecutar la secuencia de comandos, crea un entorno virtual de Python aislado en el directorio de tu proyecto.

# Create the virtual environment
python3 -m venv dq_venv

# Activate the environment
source dq_venv/bin/activate

Instala la biblioteca cliente de Knowledge Catalog dentro del entorno virtual.

# Install the Dataplex client library
pip install google-cloud-dataplex

Ahora que configuraste el entorno y instalaste la biblioteca, puedes usar la secuencia de comandos 1_run_dataplex_scans.py. Esta secuencia de comandos crea perfiles de tus tres vistas materializadas mediante la creación y ejecución de un análisis para cada una. Cuando finaliza, genera un resumen estadístico enriquecido que usas en el siguiente paso para generar reglas de calidad de los datos basadas en IA.

.

Ejecuta la secuencia de comandos desde la terminal de Cloud Shell.

python3 1_run_dataplex_scans.py

Verifica tus análisis de perfiles

Puedes consultar los nuevos análisis de perfiles en la Google Cloud consola de.

  1. En el menú de navegación, ve a Knowledge Catalog y selecciona Calidad y creación de perfiles de datos en la sección Administrar.
  2. Busca los tres análisis de perfiles que aparecen en la lista, junto con el estado más reciente del trabajo. Haz clic en un análisis para explorar sus resultados detallados.

Exporta los resultados del perfil a JSON

Para que Gemini lea tus análisis de perfiles, debes extraer su contenido en un archivo local.

Usa la secuencia de comandos 2_dq_profile_save.py para encontrar el último análisis exitoso de la vista mv_ga4_user_session_flat, descargar los datos del perfil y guardarlos en un archivo llamado dq_profile_results.json.

python3 2_dq_profile_save.py

Cuando finaliza la secuencia de comandos, se crea un archivo dq_profile_results.json en el directorio. Este archivo contiene los metadatos estadísticos detallados que necesitas para generar reglas de calidad de los datos. Para ver su contenido, ejecuta el siguiente comando:

cat dq_profile_results.json

Genera reglas de calidad de los datos con Gemini CLI

Ahora puedes usar Gemini CLI para leer los resultados del análisis de perfiles local.

Escribir manualmente reglas de calidad de los datos para conjuntos de datos complejos lleva mucho tiempo y es propenso a errores. La IA generativa acelera este flujo de trabajo generando una configuración inicial integral de calidad de los datos en segundos. Esto te ayuda a pasar de la ejecución manual de tareas a la supervisión de alto nivel.

Para iniciar Gemini CLI, usa el siguiente comando:

gemini

Ya puedes generar reglas de calidad. Como la CLI puede leer archivos en tu directorio actual, puede usar directamente los datos del nuevo análisis de perfiles.

Pídele a Gemini que cree un plan

Pídele a Gemini que actúe como un analista experto y proponga un plan para crear tus reglas de calidad de los datos. Dile a Gemini que aún no escriba el archivo YAML para que se enfoque en el análisis. Gemini analiza el archivo JSON y muestra un plan estructurado.

You are an expert Google Cloud Dataplex engineer.
Your first task is to create a plan. I have a file in the current directory named ./dq_profile_results.json.
Based on the statistical data within that file, propose a step-by-step plan to create a Dataplex data quality rules file.
Your plan should identify which specific columns are good candidates for rules like nonNullExpectation, setExpectation, or rangeExpectation, and explain why based on the metrics (for example, "Plan to create a nonNullExpectation for column X because its null percentage is 0%").
Do not write the YAML file yet. Just provide the plan.

Genera reglas de calidad de los datos

El plan de Gemini se basa por completo en patrones estadísticos y carece de tu conocimiento empresarial específico.

Revisa el plan y hazte las siguientes preguntas:

  • ¿Se alinea con tus objetivos y contexto comerciales?
  • ¿Alguna regla estadísticamente sólida es poco práctica (como un rowCount estricto para una tabla en crecimiento)?

Perfecciona el plan con Gemini o aprueba el plan tal como está con la siguiente instrucción de ejemplo. La instrucción comienza con algunos comentarios y, luego, le indica a Gemini que genere el archivo dq_rules.yaml en tu directorio de trabajo y que cumpla con la especificación DataQualityRule, ya que Knowledge Catalog requiere una estructura YAML precisa. Esto ayuda a evitar errores de sintaxis o el uso de versiones de esquema obsoletas.


- "The plan looks good. Please proceed."
- "The rowCount rule is not necessary, as the table size changes daily. The rest of the plan is approved. Please proceed."
- "For the setExpectation on the geo_continent column, please also include 'Antarctica'."

Once you have incorporated my feedback, please generate the `dq_rules.yaml` file.

You must adhere to the following strict requirements:

- Schema Compliance: The YAML structure must strictly conform to the DataQualityRule specification. For a definitive source of truth, you must refer to the sample_rule.yaml file in the current directory and the DataQualityRule class definition. Search for the `data_quality.py` file inside the `./dq_venv/lib/` directory to read this class definition.

- Data-Driven Values: All rule parameters, such as thresholds or expected values, must be derived directly from the statistical metrics in dq_profile_results.json.

- Rule Justification: For each rule, add a comment (#) on the line above explaining the justification, as you outlined in your plan.

- Output Purity: The final output must only be the raw YAML code block, perfectly formatted and ready for immediate deployment.

Crea y ejecuta un análisis de calidad de los datos

Ahora tienes un conjunto de reglas de calidad de los datos generadas por el agente que puedes registrar e implementar como un análisis.

  1. Para salir de Gemini CLI, ingresa /quit o presiona Ctrl+C dos veces.

  2. Luego, crea un análisis de datos en Knowledge Catalog:

    export DQ_SCAN="dq-scan"
    gcloud dataplex datascans create data-quality $DQ_SCAN \
        --project=$PROJECT_ID \
        --location=$LOCATION \
        --data-quality-spec-file=dq_rules.yaml \
        --data-source-resource="//bigquery.googleapis.com/projects/$PROJECT_ID/datasets/$DATASET_ID/tables/mv_ga4_user_session_flat"
    
  3. Finalmente, ejecuta el análisis:

    gcloud dataplex datascans run $DQ_SCAN --location=$LOCATION --project=$PROJECT_ID
    

    Este comando crea un análisis de calidad de los datos llamado dq-scan.

  4. Verifica el progreso del análisis en la sección Knowledge Catalog de la Google Cloud consola de.

    1. En el menú de navegación, ve a Knowledge Catalog y selecciona Calidad y creación de perfiles de datos en la sección Administrar.
    2. Busca el dq-scan. Cuando se complete el análisis, haz clic en él para ver los resultados.

Limpia

Para evitar cargos de facturación recurrentes por los recursos que creaste en este instructivo, bórralos.

Borra los análisis de Knowledge Catalog

Borra tus análisis de perfiles y calidad con los nombres de análisis específicos de este codelab:

# Delete the Data Quality Scan
gcloud dataplex datascans delete dq-scan \
    --location=us-central1 \
    --project=$PROJECT_ID --quiet

# Delete the Data Profile Scans
gcloud dataplex datascans delete profile-scan-mv-ga4-user-session-flat \
    --location=us-central1 \
    --project=$PROJECT_ID --quiet

gcloud dataplex datascans delete profile-scan-mv-ga4-ecommerce-transactions \
    --location=us-central1 \
    --project=$PROJECT_ID --quiet

gcloud dataplex datascans delete profile-scan-mv-ga4-ecommerce-items \
    --location=us-central1 \
    --project=$PROJECT_ID --quiet

Borra el conjunto de datos de muestra

Borra tu conjunto de datos temporal de BigQuery y sus tablas.

bq rm -r -f --dataset $PROJECT_ID:dataplex_dq_codelab

Borra los archivos locales

Desactiva el entorno virtual de Python y quita el repositorio clonado y su contenido:

deactivate
cd ../../..
rm -rf devrel-demos

Conclusión

Felicitaciones, acabas de crear un flujo de trabajo de administración de datos programático de extremo a extremo.

Al combinar Gemini con Knowledge Catalog, creaste una base para la administración asistida por IA. Este enfoque no reemplaza el bucle de administración, pero acelera el proceso de creación de reglas para que puedas enfocarte en validar y perfeccionar las reglas según tu lógica empresarial.

¿Qué sigue?