Analyser des données multimodales dans BigQuery

Ce document décrit les fonctionnalités BigQuery que vous pouvez utiliser pour analyser les données multimodales. Certaines fonctionnalités sont disponibles dans la consoleTrusted Cloud et l'outil de ligne de commande bq, tandis que d'autres le sont à l'aide de BigQuery DataFrames dans Python. Vous pouvez utiliser plusieurs de ces fonctionnalités ensemble pour faciliter les workflows d'analyse et de transformation des données multimodales.

Les fonctionnalités de données multimodales de BigQuery vous permettent d'effectuer les tâches suivantes :

Pour obtenir un tutoriel pas à pas qui utilise la console Trusted Cloud , 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 tableau standard en utilisant des valeurs ObjectRef. Par exemple, vous pouvez stocker les images d'un produit sur la même ligne que le reste des informations le concernant. Vous pouvez utiliser des fonctions SQL standard pour créer et mettre à jour des colonnes contenant des valeurs ObjectRef. Vous pouvez également créer des valeurs ObjectRef comme résultat d'une action de transformation sur un objet.
  • Utiliser des données d'objet dans les requêtes d'IA générative : utiliser les valeurs ObjectRefRuntime comme 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 provenant 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 un prompt qui demande au modèle de comparer deux images d'animaux, puis de renvoyer un texte indiquant s'il s'agit du même type d'animal.
  • Conservation de l'ordre des blocs : vous pouvez regrouper des objets en blocs, puis les stocker sous forme de tableau de valeurs ObjectRef dans 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 valeurs ObjectRef, afin que les images restent dans le même ordre que dans la vidéo d'origine.

ObjectRef valeurs

Une valeur ObjectRef est une valeur STRUCT qui utilise le format ObjectRef. Vous pouvez stocker les métadonnées d'un objet Cloud Storage et un autorisateur associé dans une table BigQuery standard en créant une colonne STRUCT ou ARRAY<STRUCT> qui utilise ce format. La valeur de l'autorisation identifie la connexion de ressources 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 sur la même ligne que le reste des informations sur les produits 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 valeur ObjectRef contenant les métadonnées d'un objet Cloud Storage.
  • OBJ.FETCH_METADATA : récupère les métadonnées Cloud Storage pour une valeur ObjectRef partiellement renseignée avec les valeurs uri et authorizer.

Pour en savoir plus, consultez Spécifier des colonnes ObjectRef dans des schémas de table.

ObjectRefRuntime valeurs

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 le 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 les valeurs ObjectRefRuntime pour travailler avec les données d'objet dans les workflows d'analyse et de transformation. Les URL d'accès dans les valeurs ObjectRefRuntime expirent au bout de six heures maximum, mais vous pouvez configurer un délai d'expiration plus court. Si vous conservez des valeurs ObjectRefRuntime dans votre workflow, vous devez actualiser ces données régulièrement. Pour conserver les métadonnées d'objet, stockez plutôt les valeurs ObjectRef, puis utilisez-les pour générer des valeurs ObjectRefRuntime 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 fonction OBJ.GET_ACCESS_URL.

Fonctions d'IA générative

Générez du texte, des embeddings et des valeurs scalaires basés sur l'entrée ObjectRefRuntime à l'aide des fonctions d'IA générative suivantes avec les modèles Gemini :

Pour toutes les fonctions, à l'exception de ML.GENERATE_EMBEDDING, vous pouvez fournir des valeurs ObjectRefRuntime sous forme de valeurs uniques ou dans des tableaux. ML.GENERATE_EMBEDDING n'accepte que les valeurs uniques.

Travailler avec des données multimodales en Python

Vous pouvez analyser des données multimodales en 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 méthodes Session suivantes :

Méthodes de transformation d'objets

Transformez les données d'objet à l'aide des méthodes Series.BlobAccessor suivantes :

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 :

Tables d'objets

Si vous êtes 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 concerné. La connexion utilisée pour créer la table d'objets sert à remplir les valeurs authorizer dans la colonne ref. Vous pouvez utiliser la colonne ref pour remplir et actualiser les valeurs ObjectRef dans les tables standards.

Limites

Les limites suivantes s'appliquent aux fonctionnalités de données multimodales BigQuery :

  • Vous devez exécuter toute requête qui fait référence à des valeurs ObjectRef dans le même projet que la table qui contient 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 ObjectRef ou ObjectRefRuntime. Par exemple, si vous exécutez les requêtes dans asia-east1 dans myproject, vous ne pouvez pas avoir plus de 20 connexions dans asia-east1 dans myproject.

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 ObjectRef dans les tables standards contribue au coût de stockage BigQuery de la table.
  • Les requêtes exécutées sur des valeurs ObjectRef entraî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 frais de stockage BigQuery.
  • L'utilisation des fonctions d'IA générative entraîne des coûts Vertex AI.
  • L'utilisation des UDF Python BigQuery, ainsi que des méthodes de transformation d'objets et de DataFrames multimodaux dans BigQuery DataFrames, entraîne des coûts liés aux UDF Python.

Pour en savoir plus, consultez les pages suivantes sur les tarifs :

Étapes suivantes