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 marco de trabajo 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
- Ejecuta análisis de perfil de Knowledge Catalog con la biblioteca cliente de Python.
- Usa Gemini CLI para generar reglas de calidad de los datos basadas en estadísticas de perfil.
- Validar y, luego, implementar reglas generadas por IA como análisis de calidad de Knowledge Catalog a través de un proceso de revisión con interacción humana
Antes de comenzar
Antes de comenzar, asegúrate de tener un proyecto de Google Cloud 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 de la esquina superior derecha. El aprovisionamiento y la conexión al entorno demorarán unos minutos.
En Cloud Shell, configura tu 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). En el caso de 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 los datos de muestra y los 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.
Datos anidados del perfil
Con la creación de perfiles de datos, Knowledge Catalog encuentra estadísticas para las columnas de nivel superior, como los porcentajes de valores nulos, la unicidad y las 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 la 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.
Cómo 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 realizará una unión cruzada implícita (producto cartesiano) entre los arrays, lo que multiplicará las filas de forma incorrecta y dañará tus datos.
En su lugar, es mejor crear varias vistas, cada una diseñada para un propósito específico. Cada vista debe mantener un nivel de detalle único y 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 perfil con el cliente de Python
Ahora puedes crear y ejecutar análisis de perfil de datos de Knowledge Catalog para cada vista materializada. La siguiente secuencia de comandos de Python usa la biblioteca cliente de 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 la biblioteca, puedes usar la secuencia de comandos 1_run_dataplex_scans.py. Este script crea perfiles de tus tres vistas materializadas creando y ejecutando un análisis para cada una. Cuando finaliza, genera un resumen estadístico detallado que usarás en el siguiente paso para generar reglas de calidad de los datos potenciadas por IA.
Ejecuta la secuencia de comandos desde la terminal de Cloud Shell.
python3 1_run_dataplex_scans.py
Cómo revisar los análisis de perfiles
Puedes consultar los nuevos análisis de perfil en la consola de Google Cloud .
- 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.
- Verás los tres análisis de perfil junto con el estado de trabajo más reciente. Haz clic en un análisis para explorar sus resultados detallados.
Exporta los resultados del perfil a JSON
Para que Gemini lea los análisis de tu perfil, debes extraer su contenido en un archivo local.
Usa la secuencia de comandos 2_dq_profile_save.py para encontrar el análisis correcto más reciente 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 finalice la secuencia de comandos, se creará 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 la Gemini CLI
Ahora puedes usar la CLI de Gemini para leer los resultados del análisis del perfil 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, ya que genera una configuración inicial integral de la 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
Ahora puedes generar reglas de calidad. Dado que la CLI puede leer archivos en tu directorio actual, puede usar directamente los datos de análisis de tu perfil nuevo.
Dale instrucciones a Gemini para 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 concentre en el análisis. Gemini analiza el archivo JSON y devuelve 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 completamente en patrones estadísticos y no tiene conocimiento específico de tu empresa.
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 recuento de filas estricto para una tabla en crecimiento)?
Refina el plan con Gemini o aprueba el plan tal como está con el siguiente ejemplo de instrucción. 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 de DataQualityRule, ya que Knowledge Catalog requiere una estructura YAML precisa. Esto ayuda a evitar errores de sintaxis o el uso de versiones de esquema desactualizadas.
- "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 y, luego, 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"Por último, 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.Comprueba el progreso del análisis en la sección Knowledge Catalog de la consola de Google Cloud .
- 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 elemento
dq-scan. Cuando se complete el análisis, haz clic en él para ver los resultados.
Realiza una limpieza
Para evitar cargos recurrentes de facturación por los recursos que creaste en este instructivo, bórralos.
Borra los análisis de Knowledge Catalog
Borra tu perfil y los análisis de calidad con los nombres específicos de los análisis 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 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 vincular Gemini con Knowledge Catalog, creaste una base para la administración asistida por IA. Este enfoque no reemplaza el circuito de gobernanza, pero acelera el proceso de creación de reglas para que puedas concentrarte 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 Gobernanza asistida por IA: Aceleración de la calidad de los datos con supervisión humana.
- Administra la calidad de los datos como código creando 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 muestreos 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