Descripción general del Agente de ingeniería de datos

El agente de ingeniería de datos te permite compilar, modificar y solucionar problemas de canalizaciones de datos en BigQuery con instrucciones en lenguaje natural. El agente de ingeniería de datos ofrece las siguientes capacidades para optimizar tus flujos de trabajo de ingeniería de datos para transferir datos a BigQuery:

  • Integración de Dataform: El agente genera y organiza el código de la canalización de datos directamente en los repositorios y espacios de trabajo de Dataform.
  • Generación de planes: El agente puede resumir su razonamiento y generar un plan que te permita revisar y verificar el plan del agente antes de continuar.
  • Validación de código: El agente valida y corrige automáticamente los errores de compilación de cualquier código generado para garantizar que la canalización de datos sea funcional.
  • Tratamiento automático de datos: El agente realiza el tratamiento de datos y transforma los datos sin procesar en tablas estructuradas sin intervención manual.
  • Instrucciones personalizadas: El agente admite instrucciones personalizadas que te permiten definir reglas específicas y lineamientos reutilizables en lenguaje natural.
  • Contexto externo: El agente está integrado con Knowledge Catalog para obtener contexto adicional.
  • Control de canalizaciones: Puedes revisar y personalizar los planes de agentes generados antes de que se ejecute cualquier acción.
  • Optimización: El agente puede optimizar el rendimiento de tu canalización de datos.
  • Solución de problemas y reparación: El agente puede solucionar problemas de fallas en la canalización y corregir su código.

Dónde puedes usar el agente de ingeniería de datos

Puedes usar el agente de ingeniería de datos con los siguientes métodos:

Cómo usa tus datos el agente de ingeniería de datos

Para producir respuestas de agentes de mayor calidad, el agente de ingeniería de datos puede recuperar datos y metadatos adicionales de BigQuery y Knowledge Catalog, incluidas filas de muestra de tablas de BigQuery y perfiles de análisis de datos generados en Knowledge Catalog. El agente no usa estos datos para el entrenamiento; solo los usa como contexto adicional durante las conversaciones del agente para fundamentar sus respuestas.

Dónde procesa tus datos el agente de ingeniería de datos

Para obtener más información sobre las ubicaciones en las que el agente de ingeniería de datos procesa tus datos, consulta Dónde procesa tus datos Gemini en BigQuery.

Limitaciones

El agente de ingeniería de datos tiene las siguientes limitaciones:

  • El agente de ingeniería de datos no admite comandos en lenguaje natural para los siguientes tipos de archivos:
    • Notebooks
    • Preparación de datos
  • El agente de ingeniería de datos no puede ejecutar canalizaciones. Debes revisar y ejecutar o programar canalizaciones.
  • El agente de ingeniería de datos no puede buscar ningún vínculo web ni URL proporcionados a través de instrucciones o instrucciones directas.
  • Cuando se importan archivos en un archivo de instrucciones del agente, la sintaxis de importación @ solo admite rutas que comienzan con ./, /, o una letra.
  • La función de vista previa de datos solo se admite para tablas, declaraciones o consultas con la marca hasOutput establecida en true.
  • El agente de ingeniería de datos está sujeto a las limitaciones generales de la tecnología de IA.

Funciones y personalizaciones del agente

En las siguientes secciones, se describen las capacidades adicionales del agente y otros métodos para personalizar el agente de ingeniería de datos.

Instrucciones del agente

Las instrucciones del agente son instrucciones en lenguaje natural para el agente de ingeniería de datos que te permiten almacenar instrucciones persistentes para que el agente siga un conjunto de reglas personalizadas y predefinidas. Usa las instrucciones del agente si deseas que los resultados del agente sean coherentes en toda tu organización, por ejemplo, con convenciones de nombres o para aplicar una guía de estilo.

Para crear instrucciones del agente para el agente de ingeniería de datos, crea un GEMINI.MD archivo de contexto como archivo de instrucciones del agente.

Prácticas recomendadas con archivos de instrucciones del agente

Cuando uses instrucciones del agente, te recomendamos lo siguiente:

  • Todas las rutas de acceso a archivos en Dataform son relativas a la raíz del repositorio. Usa rutas de acceso relativas para cualquier sintaxis @file.md para importar correctamente las instrucciones a GEMINI.md.
  • Los archivos importados en GEMINI.md pueden contener importaciones, lo que puede crear una estructura anidada. Para evitar la recursión infinita, GEMINI.md tiene una profundidad máxima de importación de cinco niveles.
  • Para compartir instrucciones en las canalizaciones de datos, almacena las instrucciones en un repositorio central de Dataform y vincúlalas al repositorio de Dataform en funcionamiento. Puedes usar instrucciones locales para anular las reglas centrales del comportamiento específico de la canalización.
  • Para garantizar la coherencia en tu proyecto, puedes vincular archivos de convenciones de nombres o guías de estilo y dar instrucciones al agente para que siga estos lineamientos cuando trabaje con tus canalizaciones de datos.
  • Puedes sugerir capas de datos en el archivo de instrucciones para agrupar diferentes tipos de datos.
  • Usar encabezados y listas en el archivo de instrucciones del agente puede ayudar a organizar y aclarar las instrucciones para el agente de ingeniería de datos.
  • Proporciona nombres de archivos significativos y agrupa instrucciones similares en un archivo. Organiza las reglas de forma lógica por categoría, función o funcionalidad con encabezados de Markdown.
  • Para evitar instrucciones en conflicto, define claramente las condiciones específicas en las que se aplica cada instrucción.
  • Itera y define mejor tus instrucciones y flujo de trabajo. El comportamiento del agente cambia con el tiempo con los lanzamientos de agentes y las actualizaciones de modelos, por lo que te recomendamos que iteres en tus reglas con diferentes instrucciones para identificar las áreas que podrían necesitar mejoras. Mantén tu archivo de reglas sincronizado con cualquier cambio en tu canalización de datos.

En el siguiente ejemplo, se muestra un archivo de instrucciones del agente llamado GEMINI.md que utiliza nuestras prácticas recomendadas para el uso eficaz del agente de ingeniería de datos:

  ### Naming Conventions

  * Datasets: [business_domain]_[use_case] (e.g., ecommerce_sales)

  * Tables:
      - Raw/External: raw_[source_name]
      - Staging: stg_[business_entity]
      - Dimension: dim_[dimension_name]
      - Fact: fct_[fact_name]

  * Dataform Folders:
      - sources
      - staging
      - marts
      - dataProducts

  * Views: vw_[view_name]

  * Columns: snake_case (e.g., order_id, customer_name)

  ## Cloud Storage data load
  * When ingesting data from Cloud Storage, create external tables.

  ## Null handling
  * Filter out null id values

  ## String normalization
  * Standardize string columns by converting to lower case

  ## Data Cleaning Guidelines
  @./generic_cleaning.md

Importa archivos locales adicionales como instrucciones del agente

También puedes importar otros archivos de instrucciones para el agente de ingeniería de datos en el archivo GEMINI.md con la sintaxis @file.md. Para obtener más información, consulta Procesador de importación de memoria.

Organización automática de datos

Puedes usar el agente de ingeniería de datos para transformar datos sin procesar en tablas estructuradas adecuadas para el análisis de datos. Cuando se solicita, el agente primero toma muestras de hasta 1,000,000 de registros de cada tabla estándar o externa. Luego, el agente realiza un análisis de datos detallado ejecutando consultas de generación de perfiles en esta muestra. Después de generar transformaciones de datos, el agente repite este proceso de muestreo y generación de perfiles para evaluar la calidad de las transformaciones. Estas transformaciones de tratamiento de datos pueden incluir la corrección de incoherencias, valores atípicos o desajustes de tipo de datos. Luego, el agente de ingeniería de datos crea un plan que describe los pasos de organización propuestos para que los revises y definas mejor antes de que se realice cualquier acción.

El agente de ingeniería de datos también inicia el análisis de tratamiento de datos cada vez que agregas una tabla sin procesar, como una tabla externa basada en CSV. Puedes revisar el plan de organización de datos y ajustarlo con comandos conversacionales.

El muestreo de datos y la generación de perfiles usan recursos de BigQuery y están sujetos a los precios de BigQuery.

El agente de ingeniería de datos admite las siguientes transformaciones de tratamiento de datos:

  • Limpieza de datos. El agente puede analizar datos sin procesar y sugerir oportunidades de limpieza, como quitar valores atípicos, completar valores faltantes o incoherentes (imputación de datos), corregir datos duplicados o estandarizar formatos de datos, por ejemplo, números de teléfono o direcciones.
  • Transformaciones estructurales. Cuando se proporciona un esquema de destino, el agente puede desanidar o extraer valores de tipos JSON, ARRAY o STRUCT; combinar varias columnas en una; o dividir una columna en varias columnas.
  • Detección y conversión de tipos de datos. El agente puede analizar los datos para determinar los tipos de campos adecuados. Luego, el agente puede realizar una conversión de tipo segura para resolver cualquier incoherencia de formato en los campos de fecha, hora, fecha y hora o marca de tiempo.
  • Conversión de unidades. El agente puede convertir automáticamente varias unidades dentro de un campo en una unidad coherente para estandarizar tus datos.

Para garantizar la precisión, el agente usa muestras representativas de tus datos para detectar problemas y validar su lógica de transformación.

Genera y revisa planes de agentes

El agente de ingeniería de datos puede generar planes de agentes que proporcionan un resumen y una descripción general de los objetivos y los pasos que se deben seguir para completar una solicitud. Cuando le das instrucciones al agente con solicitudes complejas que requieren muchos cambios, te recomendamos que le pidas al agente que te proporcione un plan de agente para que puedas revisar las intenciones del agente antes de que realice cualquier acción. Por lo general, un plan del agente de ingeniería de datos consta de lo siguiente:

  • El objetivo del agente para una solicitud en particular
  • Una descripción general de alto nivel de los pasos que el agente planea seguir
  • Las suposiciones que hace el agente
  • Los archivos que el agente planea modificar
  • Los pasos de optimización o limpieza que planea realizar
  • Un plan de ejecución por etapas

En tu instrucción, puedes incluir la necesidad de revisar y aprobar el plan para que el agente no realice ninguna acción sin tu aprobación explícita. Por ejemplo:

Create a plan for a pipeline that finds the
top N pick up and drop off locations in NYC. I want to review the plan and
approve it before you create the pipeline.

El agente también puede generar un plan de agente automáticamente y solicitar tu aprobación. Este resultado puede ocurrir cuando una instrucción es demasiado ambigua o si el agente necesita más claridad para cumplir con tu solicitud.

Para conocer las prácticas recomendadas sobre el uso de planes de agentes, consulta Prácticas recomendadas.

Agrega contexto de Knowledge Catalog

El agente de ingeniería de datos usa Knowledge Catalog adjuntando términos de glosario a tablas y columnas de BigQuery, y generando análisis de perfiles de datos. Los términos de glosario pueden etiquetar columnas que requieren contexto adicional, como columnas que contienen información de identificación personal (PII) que requieren instrucciones de manejo especial, o para identificar columnas coincidentes con nombres diferentes en las tablas.

Knowledge Catalog también utiliza la generación de perfiles de datos, lo que le proporciona al agente una mejor comprensión de la distribución de datos dentro de las columnas de la tabla y lo ayuda a crear aserciones de calidad de los datos más específicas.

Agrega verificaciones de calidad de los datos a una tabla existente

Cuando le das instrucciones al agente para que agregue verificaciones de calidad, el agente infiere verificaciones razonables para la tabla según el esquema y las muestras. También puedes agregar aserciones subjetivas como parte de la instrucción. Por ejemplo:

  Add data quality checks for bigquery-public-data.thelook_ecommerce.users.

Optimiza las canalizaciones de datos

Puedes darle instrucciones al agente para que optimice tus canalizaciones de datos. Cuando genera DDL para tablas nuevas, el agente de ingeniería de datos recomienda la partición y el agrupamiento en clústeres según los patrones de uso de datos analizados. Además, el agente puede aplicar automáticamente otras optimizaciones de canalización. Algunos ejemplos de optimizaciones posibles son los siguientes:

  • Eliminación de columnas para reducir la lectura de datos del almacenamiento y actuar como un factor principal de costo y rendimiento.
  • Envío de predicados para filtrar datos al principio del plan de ejecución y reducir significativamente el volumen procesado por las operaciones posteriores.
  • Eliminación de subexpresiones comunes para mejorar la eficiencia mediante la identificación y el cálculo de la lógica de transformación compartida solo una vez, lo que evita prácticas ineficientes, como analizar y unir tablas grandes varias veces.
  • Modelos incrementales para procesar solo datos nuevos o modificados desde la última ejecución en lugar de volver a compilar tablas completas con cada ejecución.

Prácticas recomendadas

Para mejorar los resultados cuando trabajes con el agente de ingeniería de datos y Dataform, te recomendamos que hagas lo siguiente:

Usa instrucciones del agente para solicitudes comunes. Si sueles aplicar ciertas técnicas o si realizas las mismas correcciones al agente con frecuencia, usa las instrucciones del agente como una ubicación centralizada para almacenar instrucciones y solicitudes comunes.

Utiliza planes de agentes. Los planes de agentes pueden ser útiles para desglosar tareas complejas de canalización. Los planes de agentes también pueden mostrarte las suposiciones e intenciones del agente, por lo que te recomendamos que revises esos planes para asegurarte de que el agente reciba el contexto correcto.

Después de revisar un plan, puedes editarlo dándole instrucciones al agente de ingeniería de datos con comentarios y cambios. Por ejemplo:

In the plan, ensure that all of the intermediate tables are views.

En algunos casos, puede ser útil pedirle al agente que genere un plan que no necesite tu aprobación explícita. El acto de crear el plan del agente obliga al agente de ingeniería de datos a desglosar sus acciones, lo que suele generar mejores resultados. Puedes obligar al agente a generar un plan y ejecutarlo automáticamente. Por ejemplo:

Create a plan for a pipeline that finds the
top N pick up and drop off locations in NYC. You have my explicit pre-approval
to go ahead and execute this plan.

Escribe con claridad. Expresa tu solicitud con claridad y evita ser ambiguo. Cuando sea posible, proporciona fuentes de datos de origen y destino cuando le des instrucciones, como se muestra en el siguiente ejemplo:

  Extract data from the sales.customers table in the us_west_1 region, and load
  it into the reporting.dim_customers table in BigQuery. Match the schema of the
  destination table.

Proporciona solicitudes directas y con alcance. Haz una pregunta a la vez y mantén las instrucciones concisas. Para las instrucciones con más de una pregunta, enumera cada parte distinta de la pregunta para mejorar la claridad, como se muestra en el siguiente ejemplo:

  1. Create a new table named staging.events_cleaned. Use raw.events as the
     source. This new table should filter out any records where the user_agent
     matches the pattern '%bot%'. All original columns should be included.

  2. Next, create a table named analytics.user_sessions. Use
     staging.events_cleaned as the source. This table should calculate the
     duration for each session by grouping by session_id and finding the
     difference between the MAX(event_timestamp) and MIN(event_timestamp).

Proporciona instrucciones explícitas y enfatiza los términos clave. Puedes agregar énfasis a los términos o conceptos clave en tus instrucciones y etiquetar ciertos requisitos como importantes, como se muestra en el siguiente ejemplo:

  When creating the staging.customers table, it is *VERY IMPORTANT* that you
  transform the email column from the source table bronze.raw_customers.
  Coalesce any NULL values in the email column to an empty string ''.

Especifica el orden de las operaciones. Para las tareas ordenadas, estructura tu instrucción en listas, en las que los elementos enumerados se dividen en pasos pequeños y enfocados, como se muestra en el siguiente ejemplo:

  Create a pipeline with the following steps:
  1. Extract data from the ecomm.orders table.
  2. Join the extracted data with the marts.customers table on customer_id.
  3. Load the final result into the reporting.customer_orders table.

Define mejor e itera. Sigue probando diferentes frases y enfoques para ver cuál genera los mejores resultados. Si el agente genera SQL no válido o comete otros errores, guíalo con ejemplos o documentación pública.

  The previous query was incorrect because it removed the timestamp. Please
  correct the SQL. Use the TIMESTAMP_TRUNC function to truncate the
  event_timestamp to the nearest hour, instead of casting it as a DATE. For
  example: TIMESTAMP_TRUNC(event_timestamp, HOUR).