Pour ingérer des données depuis Bigtable, suivez les étapes ci-dessous 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 :
Remplacez la variable
PROJECT_NUMBER
suivante par le numéro de votre projet Gemini Enterprise, puis copiez le contenu de ce bloc de code. Voici l'identifiant de votre compte de service Gemini Enterprise :service-PROJECT_NUMBER@gcp-sa-discoveryengine.`
Accédez à la page IAM et administration.
Basculez vers votre projet Bigtable sur la page IAM et administration, puis cliquez sur Accorder l'accès.
Pour Nouveaux comptes principaux, saisissez l'identifiant du compte de service de l'instance et sélectionnez le rôle Bigtable > Lecteur Bigtable.
Cliquez sur Enregistrer.
Revenez à votre projet Gemini Enterprise.
Ensuite, accédez à Importer des données depuis Bigtable.
Importer des données depuis Bigtable
REST
Pour créer un data store et ingérer des données depuis Bigtable à l'aide de la ligne de commande, procédez comme suit :
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/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
: 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
: nom à afficher du data store. Il peut s'afficher dans la console Google Cloud .
Importez 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
: ID de votre projet Gemini Enterprise.DATA_STORE_ID
: 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
: ID de votre projet Bigtable.INSTANCE_ID
: ID de votre instance Bigtable.TABLE_ID
: 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 mode pour une colonne spécifique en listant cette colonne danscolumns
et en spécifiant un encodage pour celle-ci.COLUMN_TYPE
(facultatif) : Type de valeurs dans cette famille de colonnes.QUALIFIER
: Obligatoire. Qualificatif de la colonne.FIELD_NAME
: facultatif, mais recommandé. Nom de champ à utiliser pour cette colonne après l'ingestion dans Gemini Enterprise.COLUMN_ENCODING
(facultatif) : Mode d'encodage des valeurs d'une colonne spécifique lorsque le type n'est pas STRING.RECONCILIATION_MODE
(facultatif) : Les valeurs sontFULL
etINCREMENTAL
. La valeur par défaut estINCREMENTAL
. Si vous spécifiezINCREMENTAL
, les données de Bigtable 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écifiezFULL
, les documents de votre data store seront entièrement rebasés. En d'autres termes, les documents nouveaux et modifiés sont ajoutés à votre data store, et les documents qui ne figurent pas dans Bigtable sont supprimés de votre data store. Le modeFULL
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 surtrue
, 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éfinirreconciliationMode
surFULL
pour conserver des ID de document cohérents.Indiquez
autoGenerateIds
uniquement lorsquebigquerySource.dataSchema
est défini surcustom
. Dans le cas contraire, une erreurINVALID_ARGUMENT
est renvoyée. Si vous ne spécifiez pasautoGenerateIds
ou si vous le définissez surfalse
, vous devez spécifieridField
. Sinon, l'importation des documents échouera.ID_FIELD
(facultatif) : Spécifie les champs qui correspondent aux ID de document.
Étapes suivantes
Pour associer votre data store à une application, créez une application et sélectionnez votre data store en suivant les étapes décrites dans Créer une application de recherche.
Pour prévisualiser l'apparence de vos résultats de recherche une fois votre application et votre datastore configurés, consultez Prévisualiser les résultats de recherche.