Analiza datos multimodales en BigQuery

En este documento se describen las funciones de BigQuery que puedes usar para analizar datos multimodales. Algunas funciones están disponibles en laGoogle Cloud consola y en la herramienta de línea de comandos bq, mientras que otras se pueden usar con BigQuery DataFrames en Python. Puedes usar muchas de estas funciones juntas para facilitar los flujos de trabajo de análisis y transformación de datos multimodales.

Las funciones de datos multimodales de BigQuery te permiten hacer lo siguiente:

Para ver un tutorial paso a paso que utiliza la Google Cloud consola, consulta Analizar datos multimodales con SQL. Para ver un tutorial paso a paso en el que se usan BigQuery DataFrames en Python, consulta Analizar datos multimodales en Python con BigQuery DataFrames.

Ventajas

Las funciones de datos multimodales de BigQuery ofrecen las siguientes ventajas:

  • Componibilidad: puedes almacenar y gestionar datos estructurados y sin estructurar en la misma fila de tabla estándar usando valores ObjectRef. Por ejemplo, puedes almacenar imágenes de un producto en la misma fila que el resto de la información del producto. Puedes usar funciones de SQL estándar para crear y actualizar columnas que contengan valores ObjectRef, así como crear valores ObjectRef como resultado de una acción de transformación en un objeto.
  • Usar datos de objetos en peticiones de IA generativa: usa valores ObjectRefRuntime como entrada para funciones de IA generativa. Por ejemplo, puedes generar embeddings en datos de imagen y texto de la misma tabla. Para generar texto y valores escalares, también puedes hacer referencia a varios objetos en la petición que envíes a un modelo. Por ejemplo, puedes crear una petición que le pida al modelo que compare dos imágenes de animales y, a continuación, devuelva texto que indique si muestran el mismo tipo de animal.
  • Conservar el orden de los fragmentos: puedes fragmentar objetos y, a continuación, almacenar los fragmentos como una matriz de valores ObjectRef en una columna de tabla estándar para conservar su orden. Por ejemplo, puede analizar imágenes de un vídeo y, a continuación, almacenarlas como una matriz de valores ObjectRef para que las imágenes se mantengan en el mismo orden en el que aparecen en el vídeo original.

ObjectRef valores

Un valor ObjectRef es un valor STRUCT que usa el formato ObjectRef. Puedes almacenar metadatos de objetos de Cloud Storage y un autorizador asociado en una tabla estándar de BigQuery creando una columna STRUCT o ARRAY<STRUCT> que use este formato. El valor del autorizador identifica la conexión de recursos de Cloud que usa BigQuery para acceder al objeto de Cloud Storage.

Usa valores ObjectRef cuando necesites integrar datos no estructurados en una tabla estándar. Por ejemplo, en una tabla de productos, puede almacenar imágenes de productos en la misma fila que el resto de la información del producto añadiendo una columna que contenga un valor ObjectRef.

Crea y actualiza valores de ObjectRef con las siguientes funciones de GoogleSQL:

  • OBJ.MAKE_REF: crea un valor ObjectRef que contenga metadatos de un objeto de Cloud Storage.
  • OBJ.FETCH_METADATA: obtiene los metadatos de Cloud Storage de un valor de ObjectRef que se ha rellenado parcialmente con los valores uri y authorizer.

Para obtener más información, consulta Especificar columnas ObjectRef en esquemas de tabla.

ObjectRefRuntime valores

Un valor ObjectRefRuntime es un valor JSON que usa el esquema ObjectRefRuntime. Un valor ObjectRefRuntime contiene los metadatos del objeto de Cloud Storage del valor ObjectRef que se ha usado para crearlo, un autorizador asociado y URLs de acceso. Puede usar las URLs de acceso para leer o modificar el objeto en Cloud Storage.

Usa los valores de ObjectRefRuntime para trabajar con datos de objetos en flujos de trabajo de análisis y transformación. Las URLs de acceso de los valores de ObjectRefRuntime caducan en un plazo máximo de 6 horas, aunque puedes configurar un tiempo de vencimiento más corto. Si almacena valores de ObjectRefRuntime en cualquier lugar como parte de su flujo de trabajo, debe actualizar estos datos con regularidad. Para conservar los metadatos de los objetos, almacena los valores de ObjectRef y, después, úsalos para generar valores de ObjectRefRuntime cuando los necesites. No es necesario actualizar los valores de ObjectRef a menos que se modifiquen los objetos subyacentes en Cloud Storage.

Crea valores ObjectRefRuntime con la función OBJ.GET_ACCESS_URL.

Funciones de IA generativa

Genera texto, inserciones y valores escalares basados en la entrada de ObjectRefRuntime usando las siguientes funciones de IA generativa con modelos de Gemini:

En todas las funciones, excepto en ML.GENERATE_EMBEDDING, puede proporcionar valores ObjectRefRuntime como valores únicos o en matrices. ML.GENERATE_EMBEDDING solo acepta valores únicos.

Trabajar con datos multimodales en Python

Puedes analizar datos multimodales en Python usando clases y métodos de DataFrames de BigQuery.

DataFrames multimodales

Crea un DataFrame multimodal que integre datos estructurados y sin estructurar con los siguientes métodos de Session:

  • Método from_glob_path: crea un DataFrame multimodal a partir de un segmento de Cloud Storage.
  • Método read_gbq_object_table: crea un DataFrame multimodal a partir de una tabla de objetos.

Métodos de transformación de objetos

Transforma los datos de los objetos mediante los siguientes métodos de Series.BlobAccessor:

Métodos de IA generativa

Usa los siguientes métodos para realizar tareas de IA generativa con datos multimodales:

Tablas de objetos

Si está en la lista de permitidos para la vista previa de datos multimodales, las tablas de objetos que cree tendrán una columna ref que contenga un valor ObjectRef para el objeto en cuestión. La conexión que se usa para crear la tabla de objetos se utiliza para rellenar los valores de authorizer en la columna ref. Puede usar la columna ref para rellenar y actualizar los valores de ObjectRef en las tablas estándar.

Limitaciones

Se aplican las siguientes limitaciones a las funciones de datos multimodales de BigQuery:

  • Debes ejecutar cualquier consulta que haga referencia a valores de ObjectRef en el mismo proyecto que la tabla que contiene los valores de ObjectRef.
  • No puedes tener más de 20 conexiones en el proyecto y la región en los que ejecutas consultas que hacen referencia a valores de ObjectRef o ObjectRefRuntime. Por ejemplo, si ejecutas las consultas en asia-east1 en myproject, no puedes tener más de 20 conexiones en asia-east1 en myproject.

Costes

Se aplican los siguientes costes al usar datos multimodales:

  • El almacenamiento de metadatos de objetos como valores ObjectRef en tablas estándar contribuye al coste de almacenamiento de BigQuery de la tabla.
  • Las consultas que se ejecutan en valores de ObjectRef generan costes de computación de BigQuery.
  • Los objetos nuevos que crees a partir de transformaciones de objetos generarán costes de Cloud Storage.
  • Los datos que crees y conserves en BigQuery generarán costes de almacenamiento de BigQuery.
  • El uso de funciones de IA generativa conlleva costes de Vertex AI.
  • El uso de UDFs de Python de BigQuery, así como de DataFrames multimodales y métodos de transformación de objetos en BigQuery DataFrames, implica costes de UDFs de Python.

Para obtener más información, consulta las siguientes páginas de precios:

Siguientes pasos