Analyser des données multimodales dans BigQuery
Ce document décrit les fonctionnalités BigQuery que vous pouvez utiliser pour analyser des données multimodales. Certaines fonctionnalités sont disponibles dans la Google Cloud console et l'outil de ligne de commande bq, tandis que d'autres sont disponibles à l'aide de BigQuery DataFrames dans Python. Vous pouvez utiliser plusieurs de ces fonctionnalités ensemble pour faciliter l'analyse et les flux de travail de transformation des données multimodales.
Les fonctionnalités de données multimodales de BigQuery vous permettent d'effectuer les tâches suivantes :
- Intégrer des données non structurées dans des tables standards à l'aide de
ObjectRefvaleurs. - Utiliser des données non structurées dans des flux de travail d'analyse et de transformation à l'aide de
ObjectRefRuntimevaleurs. - Générer du texte, des embeddings et des valeurs scalaires à partir de données multimodales à l'aide de BigQuery ML fonctions d'IA générative avec les modèles Gemini.
- Créer des DataFrames multimodaux dans BigQuery DataFrames.
- Transformer des images et des fichiers PDF en blocs à
l'aide des méthodes
Series.BlobAccessorde BigQuery DataFrames. - Générer du texte et des embeddings à partir de données multimodales à l'aide de BigQuery DataFrames méthodes d'IA générative.
Pour suivre un tutoriel pas à pas qui utilise la Google Cloud console, consultez Analyser des données multimodales avec SQL. Pour suivre un tutoriel pas à pas qui utilise BigQuery DataFrames dans Python, consultez Analyser des données multimodales dans Python avec BigQuery DataFrames.
Avantages
Les fonctionnalités de données multimodales de BigQuery offrent les avantages suivants :
- Composabilité : vous pouvez stocker et gérer des données structurées et non structurées
dans la même ligne de table standard à l'aide de valeurs
ObjectRef. Par exemple, vous pouvez stocker des images d'un produit dans la même ligne que le reste des informations sur le produit. Vous pouvez utiliser des fonctions SQL standard pour créer et mettre à jour des colonnes contenant des valeursObjectRef, et vous pouvez créer des valeursObjectRefcomme résultat d'une action de transformation sur un objet. - Utiliser des données d'objet dans des requêtes d'IA générative : utilisez des valeurs
ObjectRefRuntimecomme entrée pour les fonctions d'IA générative. Par exemple, vous pouvez générer des embeddings sur des données d'image et de texte à partir de la même table. Pour la génération de texte et de valeurs scalaires, vous pouvez également faire référence à plusieurs objets dans la requête que vous envoyez à un modèle. Par exemple, vous pouvez créer une requête qui demande au modèle de comparer deux images d'animaux, puis de renvoyer du texte indiquant s'il s'agit du même type d'animal. - Conserver l'ordre des blocs : vous pouvez diviser des objets en blocs, puis stocker ces blocs
sous forme de tableau de valeurs
ObjectRefdans une colonne de table standard afin de conserver leur ordre. Par exemple, vous pouvez analyser des images à partir d'une vidéo, puis les stocker sous forme de tableau de valeursObjectRef, afin qu'elles restent dans le même ordre que dans la vidéo d'origine.
Valeurs ObjectRef
Une valeur ObjectRef est une valeur STRUCT qui utilise le
ObjectRef format.
Vous pouvez stocker les métadonnées d'un objet Cloud Storage et un
autorisateur associé dans une
table standard BigQuery
en créant une colonne STRUCT ou ARRAY<STRUCT> qui utilise ce format.
La valeur de l'autorisateur identifie la
connexion à la ressource Cloud
que BigQuery utilise pour accéder à l'objet Cloud Storage.
Utilisez des valeurs ObjectRef lorsque vous devez intégrer des données non structurées dans une table standard. Par exemple, dans une table de produits, vous pouvez stocker des images de produits dans la même ligne que le reste des informations sur le produit en ajoutant une colonne contenant une valeur ObjectRef.
Créez et mettez à jour des valeurs ObjectRef à l'aide des fonctions GoogleSQL suivantes :
OBJ.MAKE_REF: créez une valeurObjectRefcontenant les métadonnées d'un objet Cloud Storage.OBJ.FETCH_METADATA: récupérez les métadonnées Cloud Storage pour une valeurObjectRefpartiellement renseignée avec les valeursurietauthorizer.
Pour en savoir plus, consultez
Spécifier des colonnes ObjectRef dans des schémas de table.
Valeurs ObjectRefRuntime
Une valeur ObjectRefRuntime est une valeur JSON qui utilise le
schéma ObjectRefRuntime.
Une valeur ObjectRefRuntime contient les métadonnées de l'objet Cloud Storage
à partir de la valeur ObjectRef utilisée pour la créer, un autorisateur associé,
et des URL d'accès. Vous pouvez utiliser les URL d'accès pour lire ou modifier l'objet dans
Cloud Storage.
Utilisez des valeurs ObjectRefRuntime pour travailler avec des données d'objet dans des flux de travail d'analyse et de transformation. Les URL d'accès dans les valeurs ObjectRefRuntime expirent au bout de six heures au maximum, mais vous pouvez configurer un délai d'expiration plus court. Si vous conservez des valeurs ObjectRefRuntime n'importe où dans votre flux de travail, vous devez actualiser ces données régulièrement. Pour conserver les métadonnées d'objet, stockez
ObjectRef valeurs plutôt, puis utilisez-les pour générer ObjectRefRuntime
valeurs lorsque vous en avez besoin. Les valeurs ObjectRef n'ont pas besoin d'être actualisées, sauf si les objets sous-jacents dans Cloud Storage sont modifiés.
Créez des valeurs ObjectRefRuntime à l'aide de la
OBJ.GET_ACCESS_URL fonction.
Fonctions d'IA générative
Générez du texte, des embeddings et des valeurs scalaires en fonction de l'entrée ObjectRefRuntime à l'aide des fonctions d'IA générative suivantes avec les modèles Gemini :
AI.GENERATEAI.GENERATE_TEXTAI.GENERATE_TABLEAI.GENERATE_BOOLAI.GENERATE_DOUBLEAI.GENERATE_INTAI.GENERATE_EMBEDDINGAI.EMBEDAI.SIMILARITY
Utiliser des données multimodales dans Python
Vous pouvez analyser des données multimodales dans Python à l'aide des classes et des méthodes BigQuery DataFrames.
DataFrames multimodaux
Créez un DataFrame multimodal qui intègre des données structurées et non structurées
à l'aide des
Session
méthodes suivantes :
from_glob_pathméthode : créez un DataFrame multimodal à partir d'un bucket Cloud Storage.read_gbq_object_tableméthode: créez un DataFrame multimodal à partir d'une table d'objets.
Méthodes de transformation d'objets
Transformez les données d'objet à l'aide des
Series.BlobAccessor
méthodes suivantes :
pdf_chunkméthode : divisez les objets PDF d'un DataFrame multimodal en blocs.Les méthodes suivantes permettent de transformer des objets image à partir d'un DataFrame multimodal :
Méthodes d'IA générative
Utilisez les méthodes suivantes pour effectuer des tâches d'IA générative sur des données multimodales :
predictméthode de laGeminiTextGeneratorclasse: générez du texte basé sur des données multimodales.predictméthode de laMultimodalEmbeddingGeneratorclasse: générez des embeddings basés sur des données multimodales.
Tables d'objets
Si vous figurez sur la liste d'autorisation pour l'aperçu des données multimodales, toutes les nouvelles
tables d'objets que
vous créez comportent une colonne ref contenant une valeur ObjectRef pour l'objet
donné. La connexion utilisée pour créer la table d'objets permet de renseigner les valeurs authorizer dans la colonne ref. Vous pouvez utiliser la colonne ref pour renseigner et actualiser les valeurs ObjectRef dans les tables standards.
Limites
Les limites suivantes s'appliquent aux fonctionnalités de données multimodales de BigQuery :
- Vous devez exécuter toutes les requêtes qui font référence à des valeurs
ObjectRefdans le même projet que la table contenant ces valeurs.ObjectRef - Vous ne pouvez pas avoir plus de 20 connexions dans le projet et la région où vous
exécutez des requêtes qui font référence à des valeurs
ObjectRefouObjectRefRuntime. Par exemple, si vous exécutez les requêtes dansasia-east1dansmyproject, vous ne pouvez pas avoir plus de 20 connexions dansasia-east1dansmyproject.
Coûts
Les coûts suivants s'appliquent lorsque vous utilisez des données multimodales :
- Le stockage des métadonnées d'objet sous forme de valeurs
ObjectRefdans des tables standards contribue au coût de stockage BigQuery pour la table. - Les requêtes exécutées sur des valeurs
ObjectRefentraînent des coûts de calcul BigQuery. - Les nouveaux objets que vous créez à partir de transformations d'objets entraînent des coûts Cloud Storage.
- Les nouvelles données que vous créez et conservez dans BigQuery entraînent des coûts de stockage BigQuery.
- L'utilisation des fonctions d'IA générative entraîne des coûts Vertex AI.
- L'utilisation des fonctions Python définies par l'utilisateur BigQuery, ainsi que des DataFrames multimodaux et des méthodes de transformation d'objets dans BigQuery DataFrames, entraîne des coûts de fonctions Python définies par l'utilisateur.
Pour en savoir plus, consultez les pages de tarification suivantes :
- Tarifs de BigQuery
- Tarifs des fonctions Python définies par l'utilisateur BigQuery
- Tarification de Vertex AI
- Tarifs de Cloud Storage
Étape suivante
- Spécifier des colonnes dans des schémas de table.
ObjectRef - Analyser des données multimodales avec SQL.
- Analyser des données multimodales dans Python avec BigQuery DataFrames.
- En savoir plus sur l'IA générative dans BigQuery ML.
- En savoir plus sur BigQuery DataFrames.