Importer des données depuis BigQuery

Vous pouvez créer des data stores à partir de tables BigQuery de deux manières :

  • Ingestion ponctuelle : vous importez des données d'une table BigQuery dans un data store. Les données du data store ne changent pas, sauf si vous les actualisez manuellement.

  • Ingestion périodique : vous importez des données à partir d'une ou de plusieurs tables BigQuery, et vous définissez une fréquence de synchronisation qui détermine la fréquence à laquelle les data stores sont mis à jour avec les données les plus récentes de l'ensemble de données BigQuery.

Le tableau suivant compare les deux méthodes d'importation de données BigQuery dans les data stores Gemini Enterprise.

Ingestion unique Ingestion périodique
Disponibilité générale Version Preview publique
Les données doivent être actualisées manuellement. Les données sont automatiquement mises à jour tous les jours, tous les trois jours ou tous les cinq jours. Les données ne peuvent pas être actualisées manuellement.
Gemini Enterprise crée un seul data store à partir d'une table dans BigQuery. Gemini Enterprise crée un connecteur de données pour un ensemble de données BigQuery et un data store (appelé datastore data store;entités) pour chaque table spécifiée. Pour chaque connecteur de données, les tables doivent avoir le même type de données (structurées, par exemple) et se trouver dans le même ensemble de données BigQuery.
Vous pouvez combiner les données de plusieurs tables dans un seul data store en ingérant d'abord les données d'une table, puis d'autres données provenant d'une autre source ou table BigQuery. Étant donné que l'importation manuelle de données n'est pas prise en charge, les données d'un data store d'entités ne peuvent provenir que d'une seule table BigQuery.
Le contrôle des accès aux sources de données est disponible. Le contrôle des accès aux sources de données n'est pas disponible. Les données importées peuvent contenir des contrôles d'accès, mais ceux-ci ne seront pas respectés.
Vous pouvez créer un data store à l'aide de la consoleGoogle Cloud ou de l'API. Vous devez utiliser la console pour créer des connecteurs de données et leurs data stores d'entités.
compatible avec les CMEK. compatible avec les CMEK.

Importer des données depuis BigQuery une seule fois

Pour ingérer des données à partir d'une table BigQuery, procédez comme suit pour créer un data store et ingérer des données à l'aide de la console Google Cloud ou de l'API.

Avant d'importer vos données, consultez Préparer les données pour l'ingestion.

Console

Pour ingérer des données depuis BigQuery à l'aide de la console Google Cloud , procédez comme suit :

  1. Dans la console Google Cloud , accédez à la page Gemini Enterprise.

    Gemini Enterprise

  2. Accédez à la page Datastores.

  3. Cliquez sur Créer un datastore.

  4. Sur la page Sélectionner une source de données, choisissez BigQuery.

  5. Sélectionnez le type de données que vous importez.

  6. Cliquez sur Une seule fois.

  7. Dans le champ Chemin d'accès dans BigQuery, cliquez sur Parcourir, sélectionnez une table que vous avez préparée pour l'ingestion, puis cliquez sur Sélectionner. Vous pouvez également saisir l'emplacement de la table directement dans le champ Chemin d'accès BigQuery.

  8. Cliquez sur Continuer.

  9. Si vous effectuez un import ponctuel de données structurées :

    1. Mappez les champs sur les propriétés clés.

    2. Si des champs importants manquent dans le schéma, utilisez Ajouter un champ pour les ajouter.

      Pour en savoir plus, consultez À propos de la détection et de la modification automatiques.

    3. Cliquez sur Continuer.

  10. Choisissez une région pour votre datastore.

  11. Attribuez un nom à votre datastore

  12. Cliquez sur Créer.

  13. Pour vérifier l'état de l'ingestion, accédez à la page Datastores, puis cliquez sur le nom de votre datastore pour afficher des informations détaillées sur la page Données. Lorsque la colonne "État" de l'onglet Activité passe de En cours à Importation terminée, l'ingestion est terminée.

    Selon la taille de vos données, l'ingestion peut prendre de quelques minutes à plusieurs heures.

REST

Pour créer un data store et importer des données depuis BigQuery à l'aide de la ligne de commande, procédez comme suit.

  1. Créer un datastore

    curl -X POST \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    -H "X-Goog-User-Project: PROJECT_ID" \
    "https://discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/global/collections/default_collection/dataStores?dataStoreId=DATA_STORE_ID" \
    -d '{
      "displayName": "DATA_STORE_DISPLAY_NAME",
      "industryVertical": "GENERIC",
      "solutionTypes": ["SOLUTION_TYPE_SEARCH"]
    }'
    

    Remplacez les éléments suivants :

    • PROJECT_ID : par l'ID du projet.
    • DATA_STORE_ID : ID du data store que vous souhaitez créer. Cet ID ne peut contenir que des lettres minuscules, des chiffres, des traits de soulignement et des traits d'union.
    • DATA_STORE_DISPLAY_NAME : nom à afficher du data store que vous souhaitez créer.

    Facultatif : Si vous importez des données non structurées et que vous souhaitez configurer l'analyse des documents ou activer le découpage des documents pour la RAG, spécifiez l'objet documentProcessingConfig et incluez-le dans votre demande de création de data store. Nous vous recommandons de configurer un analyseur OCR pour les PDF si vous ingérez des PDF numérisés. Pour savoir comment configurer les options d'analyse ou de segmentation, consultez Analyser et segmenter des documents.

  2. Importez des données depuis BigQuery.

    Si vous avez défini un schéma, assurez-vous que les données le respectent.

    curl -X POST \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    "https://discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/global/collections/default_collection/dataStores/DATA_STORE_ID/branches/0/documents:import" \
    -d '{
      "bigquerySource": {
        "projectId": "PROJECT_ID",
        "datasetId":"DATASET_ID",
        "tableId": "TABLE_ID",
        "dataSchema": "DATA_SCHEMA",
        "aclEnabled": "BOOLEAN"
      },
      "reconciliationMode": "RECONCILIATION_MODE",
      "autoGenerateIds": "AUTO_GENERATE_IDS",
      "idField": "ID_FIELD",
      "errorConfig": {
        "gcsPrefix": "ERROR_DIRECTORY"
      }
    }'
    

    Remplacez les éléments suivants :

    • PROJECT_ID : par l'ID du projet.
    • DATA_STORE_ID : ID du data store.
    • DATASET_ID : ID de l'ensemble de données BigQuery.
    • TABLE_ID : ID de la table BigQuery.
      • Si la table BigQuery ne se trouve pas sous PROJECT_ID, vous devez accorder au compte de service service-<project number>@gcp-sa-discoveryengine.iam.gserviceaccount.com l'autorisation "Lecteur de données BigQuery" pour la table BigQuery. Par exemple, si vous importez une table BigQuery du projet source "123" vers le projet de destination "456", accordez les autorisations service-456@gcp-sa-discoveryengine.iam.gserviceaccount.com pour la table BigQuery sous le projet "123".
    • DATA_SCHEMA (facultatif) : Les valeurs sont document et custom. La valeur par défaut est document.
      • document : la table BigQuery que vous utilisez doit être conforme au schéma BigQuery par défaut fourni dans Préparer les données à ingérer. Vous pouvez définir l'ID de chaque document vous-même, tout en encapsulant toutes les données dans la chaîne jsonData.
      • custom : tout schéma de table BigQuery est accepté, et Gemini Enterprise génère automatiquement les ID de chaque document importé.
    • ERROR_DIRECTORY (facultatif) : Un répertoire Cloud Storage contenant des informations sur les erreurs d'importation (par exemple, gs://<your-gcs-bucket>/directory/import_errors). Google recommande de laisser ce champ vide pour permettre à Gemini Enterprise de créer automatiquement un répertoire temporaire.
    • RECONCILIATION_MODE (facultatif) : Les valeurs sont FULL et INCREMENTAL. La valeur par défaut est INCREMENTAL. Si vous spécifiez INCREMENTAL, les données de BigQuery sont actualisées de manière incrémentielle dans votre data store. Cette opération d'upsert ajoute de nouveaux documents et remplace les documents existants par des documents mis à jour portant le même ID. Si vous spécifiez FULL, cela entraîne un rebasage complet des documents de votre data store. En d'autres termes, les documents nouveaux et modifiés sont ajoutés à votre data store, et les documents qui ne sont pas dans BigQuery en sont supprimés. Le mode FULL est utile si vous souhaitez supprimer automatiquement les documents dont vous n'avez plus besoin.
    • AUTO_GENERATE_IDS (facultatif) : Spécifie si les ID de document doivent être générés automatiquement. Si la valeur est définie sur true, les ID de document sont générés en fonction d'un hachage de la charge utile. Notez que les ID de document générés peuvent ne pas rester cohérents lors de plusieurs importations. Si vous générez automatiquement des ID lors de plusieurs importations, Google vous recommande vivement de définir reconciliationMode sur FULL pour conserver des ID de document cohérents.

      Spécifiez autoGenerateIds uniquement lorsque bigquerySource.dataSchema est défini sur custom. Dans le cas contraire, une erreur INVALID_ARGUMENT est renvoyée. Si vous ne spécifiez pas autoGenerateIds ou si vous le définissez sur false, vous devez spécifier idField. Sinon, l'importation des documents échouera.

    • ID_FIELD (facultatif) : Spécifie les champs qui sont les ID de document. Pour les fichiers sources BigQuery, idField indique le nom de la colonne de la table BigQuery qui contient les ID de document.

      Spécifiez idField uniquement lorsque (1) bigquerySource.dataSchema est défini sur custom et (2) auto_generate_ids est défini sur false ou n'est pas spécifié. Dans le cas contraire, une erreur INVALID_ARGUMENT est renvoyée.

      La valeur du nom de colonne BigQuery doit être de type chaîne, comporter entre 1 et 63 caractères, et être conforme à la norme RFC-1034. Sinon, l'importation des documents échouera.

Se connecter à BigQuery avec une synchronisation périodique

Avant d'importer vos données, consultez Préparer les données pour l'ingestion.

La procédure suivante décrit comment créer un datastores BigQuery qui synchronise régulièrement les données d'un ensemble de données BigQuery. Si votre ensemble de données comporte plusieurs tables, vous pouvez les ajouter au data store BigQuery que vous créez. Chaque table que vous ajoutez est appelée "entité". Gemini Enterprise crée un data store distinct pour chaque entité. Par conséquent, lorsque vous créez le data store à l'aide de la console Google Cloud , vous obtenez une collection de datastores représentant ces entités de données ingérées.

Les données de l'ensemble de données sont synchronisées périodiquement avec les data stores d'entités. Vous pouvez spécifier une synchronisation quotidienne, tous les trois jours ou tous les cinq jours.

Console

Pour créer un data store qui synchronise régulièrement les données d'un ensemble de données BigQuery avec Gemini Enterprise, procédez comme suit :

  1. Dans la console Google Cloud , accédez à la page Gemini Enterprise.

    Gemini Enterprise

  2. Dans le menu de navigation, cliquez sur Datastores.

  3. Cliquez sur Créer un datastore.

  4. Sur la page Source, sélectionnez BigQuery.

  5. Sélectionnez le type de données que vous importez.

  6. Cliquez sur Périodique.

  7. Sélectionnez la fréquence de synchronisation, c'est-à-dire la fréquence à laquelle le connecteur Gemini Enterprise doit se synchroniser avec l'ensemble de données BigQuery. Vous pourrez modifier la fréquence ultérieurement.

  8. Dans le champ Chemin d'accès à l'ensemble de données BigQuery, cliquez sur Parcourir, puis sélectionnez l'ensemble de données contenant les tables que vous avez préparées pour l'ingestion. Vous pouvez également saisir directement l'emplacement de la table dans le champ Chemin d'accès BigQuery. Le format du chemin d'accès est projectname.datasetname.

  9. Dans le champ Tables à synchroniser, cliquez sur Parcourir, puis sélectionnez une table contenant les données que vous souhaitez utiliser pour votre data store.

  10. Si l'ensemble de données contient d'autres tables que vous souhaitez utiliser pour les data stores, cliquez sur Ajouter une table et spécifiez également ces tables.

  11. Cliquez sur Continuer.

  12. Choisissez une région pour votre data store, saisissez un nom pour votre connecteur de données, puis cliquez sur Créer.

    Vous avez créé un connecteur de données qui synchronisera régulièrement les données avec l'ensemble de données BigQuery. Vous avez créé un ou plusieurs datastores d'entités. Les magasins de données portent le même nom que les tables BigQuery.

  13. Pour vérifier l'état de l'ingestion, accédez à la page Datastores, puis cliquez sur le nom de votre connecteur de données pour afficher des informations détaillées sur la page Données > onglet Activité d'ingestion de données. Lorsque la colonne "État" de l'onglet Activité passe de En cours à Réussie, la première ingestion est terminée.

    Selon la taille de vos données, l'ingestion peut prendre de quelques minutes à plusieurs heures.

Une fois que vous avez configuré votre source de données et importé des données pour la première fois, le datastore synchronise les données de cette source à la fréquence que vous avez sélectionnée lors de la configuration. La première synchronisation a lieu environ une heure après la création du connecteur de données. La prochaine synchronisation a lieu environ 24, 72 ou 120 heures plus tard.

Étapes suivantes