Importer des données depuis BigQuery

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

  • Ingestion unique : 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 les données.

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

Le tableau suivant compare les deux façons d'importer des données BigQuery dans des datastores Gemini Enterprise.

Ingestion unique Aperçu public
Disponibilité générale Aperçu public
Les données doivent être actualisées manuellement. Les données sont mises à jour automatiquement tous les 1, 3 ou 5 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é data store d'entité) pour chaque table spécifiée. Pour chaque connecteur de données, les tables doivent avoir le même type de données (par exemple, structurées ) et se trouver dans le même ensemble de données BigQuery.
Les données de plusieurs tables peuvent être combinées 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. Comme l'importation manuelle de données n'est pas acceptée, les données d'un data store d'entité ne peuvent provenir que d'une seule table BigQuery.
Le contrôle des accès aux sources de données est accepté. Le contrôle des accès aux sources de données n'est pas accepté. Les données importées peuvent contenir des contrôles d'accès, mais ces contrôles ne seront pas respectés.
Vous pouvez créer un data store à l'aide de la Google Cloud console ou de l'API. Vous devez utiliser la console pour créer des connecteurs de données et leurs datastores d'entité.
Conforme à CMEK Conforme à CMEK

Avant de commencer

Pour importer des données à partir d'un projet source différent de celui contenant le data store Gemini Enterprise, accordez les rôles Identity and Access Management (IAM) suivants au compte de service dans le projet contenant le data store Gemini Enterprise : Google Cloud Google Cloud service-PROJECT_NUMBER@gcp-sa-discoveryengine.iam.gserviceaccount.com

Importer une seule fois depuis BigQuery

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 Google Cloud console ou de l'API.

Avant d'importer vos données, consultez Préparer les données à ingérer.

Console

Pour utiliser la Google Cloud console afin d'ingérer des données depuis BigQuery, procédez comme suit :

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

    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 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 directement l'emplacement de la table dans le champ Chemin BigQuery.

  8. Cliquez sur Continuer.

  9. Si vous effectuez une importation unique de données structurées :

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

    2. Si des champs importants sont manquants 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 utiliser la ligne de commande afin de créer un data store et d'importer des données depuis BigQuery, procédez comme suit.

  1. Créer un data store

    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 : par l'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 : par le 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 de documents ou activer le découpage de documents pour RAG, spécifiez l' documentProcessingConfig objet et incluez-le dans votre requête de création de data store. Il est recommandé 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 découpage, consultez Analyser et découper des documents.

  2. Importer des données depuis BigQuery

    Si vous avez défini un schéma, assurez-vous que les données sont conformes à ce schéma.

    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 : par l'ID du data store.
    • DATASET_ID: par l'ID de l'ensemble de données BigQuery.
    • TABLE_ID : par l'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 "Lecteur de données BigQuery" l'autorisation 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 vous-même l'ID de chaque document, tout en encapsulant toutes les données dans la chaîne jsonData.
      • custom: n'importe quel schéma de table BigQuery est accepté, et Gemini Enterprise génère automatiquement les ID de chaque document importé.
    • ERROR_DIRECTORY : facultatif. Répertoire Cloud Storage contenant des informations sur les erreurs d'importation, par exemple, gs://<your-gcs-bucket>/directory/import_errors. Google vous 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. Une opération d'upsert est effectuée, ce qui ajoute de nouveaux documents et remplace les documents existants par des documents mis à jour portant le même ID. Si vous spécifiez FULL, les documents de votre data store sont entièrement rebasés. En d'autres termes, les documents nouveaux et mis à jour sont ajoutés à votre data store, et les documents qui ne se trouvent pas dans BigQuery sont supprimés de votre data store. Le mode FULL est utile si vous souhaitez supprimer automatiquement les documents dont vous n'avez plus besoin.
    • AUTO_GENERATE_IDS : facultatif. Indique 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 sur plusieurs importations. Si vous générez automatiquement des ID sur 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. Sinon, 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 échoue.

    • 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 contenant 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é. Sinon, une erreur INVALID_ARGUMENT est renvoyée.

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

Se connecter à BigQuery avec une synchronisation périodique

Avant d'importer vos données, consultez Préparer les données à ingérer.

La procédure suivante décrit comment créer un datastore BigQuery qui synchronise périodiquement 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 Google Cloud console, 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 datastores d'entité. 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 périodiquement les données d'un ensemble de données BigQuery avec Gemini Enterprise, procédez comme suit :

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

    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 vous souhaitez que le connecteur Gemini Enterprise se synchronise avec l'ensemble de données BigQuery. Vous pourrez modifier la fréquence ultérieurement.

  8. Dans le champ Chemin de 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 BigQuery. Le format du chemin 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 datastores, 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 périodiquement les données avec l'ensemble de données BigQuery. Vous avez également créé un ou plusieurs datastores d'entité. Les datastores portent les mêmes noms 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 data store 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 synchronisation suivante a lieu environ 24 heures, 72 heures ou 120 heures plus tard.

Étapes suivantes