Mengimpor dari Bigtable

Untuk memasukkan data dari Bigtable, gunakan langkah-langkah berikut untuk membuat penyimpanan data dan memasukkan data menggunakan API.

Menyiapkan akses Bigtable

Untuk memberikan akses Gemini Enterprise ke data Bigtable yang berada di project lain, ikuti langkah-langkah berikut:

  1. Ganti variabel PROJECT_NUMBER berikut dengan nomor project Gemini Enterprise Anda, lalu salin konten blok kode ini. Ini adalah ID akun layanan Gemini Enterprise Anda:

    service-PROJECT_NUMBER@gcp-sa-discoveryengine.iam.gserviceaccount.com`
    
  2. Buka halaman IAM &Admin.

    IAM &Admin

  3. Beralihlah ke project Bigtable Anda di halaman IAM &Admin , lalu klik Grant Access.

  4. Untuk New principals, masukkan ID akun layanan instance dan pilih peran Bigtable > Bigtable Reader.

  5. Klik Save.

  6. Beralihlah kembali ke project Gemini Enterprise Anda.

Selanjutnya, buka Mengimpor data dari Bigtable.

Mengimpor data dari Bigtable

REST

Untuk menggunakan command line guna membuat penyimpanan data dan memasukkan data dari Bigtable, ikuti langkah-langkah berikut:

  1. Buat penyimpanan data.

    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"],
    }'
    

    Ganti kode berikut:

    • PROJECT_ID: ID project Anda.
    • DATA_STORE_ID: ID penyimpanan data. ID hanya dapat berisi huruf kecil, digit, garis bawah, dan tanda hubung.
    • DISPLAY_NAME: nama tampilan penyimpanan data. Nama ini mungkin ditampilkan di Google Cloud konsol.
  2. Impor data dari 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",
      }'
    

    Ganti kode berikut:

    • PROJECT_ID: ID project Gemini Enterprise Anda.
    • DATA_STORE_ID: ID penyimpanan data. ID hanya dapat berisi huruf kecil, digit, garis bawah, dan tanda hubung.
    • BIGTABLE_PROJECT_ID: ID project Bigtable Anda.
    • INSTANCE_ID: ID instance Bigtable Anda.
    • TABLE_ID: ID tabel Bigtable Anda.
    • KEY_FIELD_NAME: opsional, tetapi direkomendasikan. Nama kolom yang akan digunakan untuk nilai row key setelah diserap ke Gemini Enterprise.
    • KEY: wajib. Nilai string untuk kunci grup kolom.
    • ENCODING: opsional. Mode encoding nilai saat jenisnya bukan STRING.Mode ini dapat diganti untuk kolom tertentu dengan mencantumkan kolom tersebut di columns dan menentukan encoding untuknya.
    • COLUMN_TYPE: opsional. Jenis nilai dalam grup kolom ini.
    • QUALIFIER: wajib. Penentu kolom.
    • FIELD_NAME: opsional, tetapi direkomendasikan. Nama kolom yang akan digunakan untuk kolom ini setelah dimasukkan ke Gemini Enterprise.
    • COLUMN_ENCODING: opsional. Mode encoding nilai untuk kolom tertentu saat jenisnya bukan STRING.
    • RECONCILIATION_MODE: opsional. Nilainya adalah FULL dan INCREMENTAL. Default-nya adalah INCREMENTAL. Menentukan INCREMENTAL akan menyebabkan refresh data inkremental dari Bigtable ke penyimpanan data Anda. Tindakan ini melakukan operasi upsert, yang menambahkan dokumen baru dan mengganti dokumen yang ada dengan dokumen yang diperbarui dengan ID yang sama. Menentukan FULL akan menyebabkan rebase penuh dokumen di penyimpanan data Anda. Dengan kata lain, dokumen baru dan yang diperbarui akan ditambahkan ke penyimpanan data Anda, dan dokumen yang tidak ada di Bigtable akan dihapus dari penyimpanan data Anda. Mode FULL berguna jika Anda ingin menghapus dokumen yang tidak lagi diperlukan secara otomatis.
    • AUTO_GENERATE_IDS: opsional. Menentukan apakah akan otomatis membuat ID dokumen. Jika ditetapkan ke true, ID dokumen akan dibuat berdasarkan hash payload. Perhatikan bahwa ID dokumen yang dibuat mungkin tidak tetap konsisten selama beberapa kali impor. Jika Anda otomatis membuat ID selama beberapa kali impor, Google sangat merekomendasikan untuk menetapkan reconciliationMode ke FULL guna mempertahankan ID dokumen yang konsisten.

      Tentukan autoGenerateIds hanya jika bigquerySource.dataSchema ditetapkan ke custom. Jika tidak, error INVALID_ARGUMENT akan ditampilkan. Jika Anda tidak menentukan autoGenerateIds atau menetapkannya ke false, Anda harus menentukan idField. Jika tidak, dokumen akan gagal diimpor.

    • ID_FIELD: opsional. Menentukan kolom mana yang merupakan ID dokumen.

Langkah berikutnya