Importer depuis Bigtable

Pour ingérer des données depuis Bigtable, suivez ces étapes pour créer un data store et ingérer des données à l'aide de l'API.

Configurer l'accès à Bigtable

Pour accorder à Gemini Enterprise l'accès aux données Bigtable qui se trouvent dans un autre projet, procédez comme suit :

  1. Remplacez la variable PROJECT_NUMBER suivante par le numéro de votre projet Gemini Enterprise, puis copiez le contenu de ce bloc de code. Il s'agit de l'identifiant de votre compte de service Gemini Enterprise :

    service-PROJECT_NUMBER@gcp-sa-discoveryengine.iam.gserviceaccount.com`
    
  2. Accédez à la page IAM et administration.

    IAM et administration

  3. Basculez vers votre projet Bigtable sur la page IAM et administration , puis cliquez sur Accorder l'accès.

  4. Pour Nouveaux comptes principaux, saisissez l'identifiant du compte de service de l'instance et sélectionnez le rôle Bigtable > Lecteur Bigtable.

  5. Cliquez sur Enregistrer.

  6. Revenez à votre projet Gemini Enterprise.

Ensuite, passez à Importer des données depuis Bigtable.

Importer des données depuis Bigtable

REST

Pour utiliser la ligne de commande afin de créer un data store et d'ingérer des données depuis Bigtable, 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/v1alpha/projects/PROJECT_ID/locations/global/collections/default_collection/dataStores?dataStoreId=DATA_STORE_ID" \
    -d '{
      "displayName": "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. L'ID ne peut contenir que des lettres minuscules, des chiffres, des traits de soulignement et des traits d'union.
    • DISPLAY_NAME : par le nom à afficher pour le data store. Il peut s'afficher dans la Google Cloud console.
  2. Importer des données depuis Bigtable

      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 '{
        "bigtableSource ": {
          "projectId": "BIGTABLE_PROJECT_ID",
          "instanceId": "INSTANCE_ID",
          "tableId": "TABLE_ID",
          "bigtableOptions": {
            "keyFieldName": "KEY_FIELD_NAME",
            "families": {
              "key": "KEY",
              "value": {
                "fieldName": "FIELD_NAME",
                "encoding": "ENCODING",
                "type": "TYPE",
                "columns": [
                  {
                    "qualifier": "QUALIFIER",
                    "fieldName": "FIELD_NAME",
                    "encoding": "COLUMN_ENCODING",
                    "type": "COLUMN_VALUES_TYPE"
                  }
                ]
              }
             }
             ...
          }
        },
        "reconciliationMode": "RECONCILIATION_MODE",
        "autoGenerateIds": "AUTO_GENERATE_IDS",
        "idField": "ID_FIELD",
      }'
    

    Remplacez les éléments suivants :

    • PROJECT_ID : par l'ID de votre projet Gemini Enterprise.
    • DATA_STORE_ID : par l'ID du data store. L'ID ne peut contenir que des lettres minuscules, des chiffres, des traits de soulignement et des traits d'union.
    • BIGTABLE_PROJECT_ID : par l'ID de votre projet Bigtable.
    • INSTANCE_ID : par l'ID de votre instance Bigtable.
    • TABLE_ID : par l'ID de votre table Bigtable.
    • KEY_FIELD_NAME : facultatif, mais recommandé. Nom du champ à utiliser pour la valeur de la clé de ligne après l'ingestion dans Gemini Enterprise.
    • KEY : obligatoire. Valeur de chaîne pour la clé de la famille de colonnes.
    • ENCODING : facultatif. Mode d'encodage des valeurs lorsque le type n'est pas STRING.Vous pouvez remplacer ce paramètre pour une colonne spécifique en la listant dans columns et en spécifiant un encodage pour elle.
    • COLUMN_TYPE : facultatif. Type de valeurs dans cette famille de colonnes.
    • QUALIFIER : obligatoire. Qualificatif de la colonne.
    • FIELD_NAME : facultatif, mais recommandé. Nom du champ à utiliser pour cette colonne après l'ingestion dans Gemini Enterprise.
    • COLUMN_ENCODING : facultatif. Mode d'encodage des valeurs pour une colonne spécifique lorsque le type n'est pas STRING.
    • 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 Bigtable sont actualisées de manière incrémentielle dans votre data store. Cette opération effectue une opération d'insertion/mise à jour, 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 Bigtable 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 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.

Étapes suivantes