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.
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.
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 enus(multirregión). Para las consultas de BigQuery, los datos de origen y la tabla de destino deben estar en la misma ubicación.Habilita los servicios obligatorios:
gcloud services enable dataplex.googleapis.com \ bigquery.googleapis.com \ serviceusage.googleapis.comCrea un conjunto de datos de BigQuery para almacenar datos de muestra y resultados:
bq --location=us mk --dataset $PROJECT_ID:$DATASET_IDPrepara los datos de muestra, que provienen de un conjunto de datos de comercio electrónico público de Google Merchandise Store.
El siguiente comando
bqcrea una tabla nueva,ga4_transactions, en tu conjunto de datosdataplex_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`'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-dqEste 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.
- 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.
- 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.
Para salir de Gemini CLI, ingresa
/quito presionaCtrl+Cdos veces.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"Finalmente, ejecuta el análisis:
gcloud dataplex datascans run $DQ_SCAN --location=$LOCATION --project=$PROJECT_IDEste comando crea un análisis de calidad de los datos llamado
dq-scan.Verifica el progreso del análisis en la sección Knowledge Catalog de la Google Cloud consola de.
- 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.
- 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?
- Obtén más información sobre la filosofía detrás de esta arquitectura en Administración asistida por IA: Acelera la calidad de los datos con supervisión humana.
- Administra la calidad de los datos como código mediante la creación de una canalización de CI/CD.
- Explora el uso de reglas de SQL personalizadas para aplicar la lógica específica de la empresa.
- Optimiza tus análisis con filtros y muestreo para reducir los costos.
- Automatiza tu infraestructura aprovisionando recursos de Knowledge Catalog con Terraform para administrar tu administración de datos a gran escala.
- Obtén más información sobre el agente de IA de código abierto de Gemini CLI.
- Prueba otros casos de uso de Knowledge Catalog .