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:
- Integra datos no estructurados en tablas estándar mediante valores
ObjectRef
. - Trabaja con datos no estructurados en flujos de trabajo de análisis y transformación usando valores
ObjectRefRuntime
. - Genera texto, embeddings y valores escalares a partir de datos multimodales mediante las funciones de IA generativa de BigQuery ML con modelos de Gemini.
- Crea DataFrames multimodales en BigQuery DataFrames.
- Transforma imágenes y divide archivos PDF en fragmentos mediante
métodos de BigQuery DataFrames
Series.BlobAccessor
. - Genera texto e incrustaciones a partir de datos multimodales mediante los métodos de IA generativa de BigQuery DataFrames.
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 valoresObjectRef
, así como crear valoresObjectRef
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 valoresObjectRef
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 valorObjectRef
que contenga metadatos de un objeto de Cloud Storage.OBJ.FETCH_METADATA
: obtiene los metadatos de Cloud Storage de un valor deObjectRef
que se ha rellenado parcialmente con los valoresuri
yauthorizer
.
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:
ML.GENERATE_TEXT
AI.GENERATE_TABLE
AI.GENERATE
AI.GENERATE_BOOL
AI.GENERATE_DOUBLE
AI.GENERATE_INT
ML.GENERATE_EMBEDDING
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étodo
pdf_chunk
: divide en fragmentos los objetos PDF de un DataFrame multimodal. Los siguientes métodos para transformar objetos de imagen de un DataFrame multimodal:
Métodos de IA generativa
Usa los siguientes métodos para realizar tareas de IA generativa con datos multimodales:
- Método
predict
de la claseGeminiTextGenerator
: genera texto a partir de datos multimodales. - Método
predict
de la claseMultimodalEmbeddingGenerator
: genera incrustaciones basadas en 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 deObjectRef
. - 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
oObjectRefRuntime
. Por ejemplo, si ejecutas las consultas enasia-east1
enmyproject
, no puedes tener más de 20 conexiones enasia-east1
enmyproject
.
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:
- Precios de BigQuery
- Precios de las UDFs de Python de BigQuery
- Precios de Vertex AI
- Precios de Cloud Storage
Siguientes pasos
- Especifica las columnas
ObjectRef
en los esquemas de tabla. - Analiza datos multimodales con SQL.
- Analiza datos multimodales en Python con BigQuery DataFrames.
- Consulta más información sobre la IA generativa en BigQuery ML.
- Más información sobre BigQuery DataFrames