Importer depuis AlloyDB pour PostgreSQL

Pour ingérer des données depuis AlloyDB pour PostgreSQL, suivez la procédure ci-dessous pour créer un data store et ingérer des données à l'aide de la console Google Cloud ou de l'API.

Si vos données AlloyDB pour PostgreSQL se trouvent dans le même projet que le projet Gemini Enterprise, accédez à Importer des données depuis AlloyDB pour PostgreSQL.

Si vos données AlloyDB pour PostgreSQL se trouvent dans un projet différent de votre projet Gemini Enterprise, accédez à Configurer l'accès à AlloyDB pour PostgreSQL.

Configurer l'accès à AlloyDB pour PostgreSQL depuis un autre projet

Pour autoriser Gemini Enterprise à accéder aux données AlloyDB pour PostgreSQL qui se trouvent dans un autre projet :

  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. Voici l'identifiant de votre compte de service Gemini Enterprise :

    service-PROJECT_NUMBER@gcp-sa-discoveryengine.iam.gserviceaccount.com
    
  2. Passez au projet Google Cloud dans lequel se trouvent vos données AlloyDB pour PostgreSQL.

  3. Accédez à la page IAM.

    IAM

  4. Cliquez sur Accorder l'accès.

  5. Pour Nouveaux comptes principaux, saisissez l'identifiant du compte de service Gemini Enterprise et sélectionnez le rôle Cloud AlloyDB > Administrateur Cloud AlloyDB.

  6. Cliquez sur Enregistrer.

  7. Revenez à votre projet Gemini Enterprise.

Ensuite, accédez à Importer des données depuis AlloyDB pour PostgreSQL.

Importer des données depuis AlloyDB pour PostgreSQL

Console

Pour ingérer des données depuis AlloyDB pour PostgreSQL à l'aide de la console, 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 Sélectionner une source de données, sélectionnez AlloyDB.

  5. Spécifiez l'ID du projet, l'ID de l'emplacement, l'ID du cluster, l'ID de la base de données et l'ID de la table des données que vous prévoyez d'importer.

  6. Cliquez sur Continuer.

  7. Choisissez une région pour votre datastore.

  8. Attribuez un nom à votre datastore

  9. Cliquez sur Créer.

  10. 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 ou plusieurs heures.

REST

Pour utiliser la ligne de commande afin de créer un data store et d'ingérer des données depuis AlloyDB pour PostgreSQL, 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/v1beta/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 .
  2. Importez des données depuis AlloyDB pour PostgreSQL.

      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 '{
        "alloyDbSource": {
          "projectId": "ALLOYDB_PROJECT_ID",
          "locationId": "LOCATION_ID",
          "clusterId": "CLUSTER_ID",
          "databaseId": "DATABASE_ID",
          "tableId": "TABLE_ID",
        },
        "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.
    • ALLOYDB_PROJECT_ID : ID de votre projet AlloyDB pour PostgreSQL.
    • LOCATION_ID : ID de votre emplacement AlloyDB pour PostgreSQL.
    • CLUSTER_ID : ID de votre cluster AlloyDB pour PostgreSQL.
    • DATABASE_ID : ID de votre base de données AlloyDB pour PostgreSQL.
    • TABLE_ID : ID de votre table AlloyDB pour PostgreSQL.
    • RECONCILIATION_MODE (facultatif) : Les valeurs sont FULL et INCREMENTAL. La valeur par défaut est INCREMENTAL. Si vous spécifiez INCREMENTAL, les données seront actualisées de manière incrémentielle depuis AlloyDB pour PostgreSQL vers 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, 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 AlloyDB pour PostgreSQL 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) : 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 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.
    • ID_FIELD (facultatif) : Spécifie les champs qui correspondent aux ID de document.

Étapes suivantes