Memperbarui data terstruktur dan tidak terstruktur

Halaman ini menjelaskan cara memperbarui data terstruktur dan tidak terstruktur.

Untuk memuat ulang aplikasi situs Anda, lihat Memuat ulang halaman web Anda.

Memperbarui data terstruktur

Anda dapat memuat ulang data di penyimpanan data terstruktur selama Anda menggunakan skema yang sama atau kompatibel mundur dengan skema di penyimpanan data. Misalnya, menambahkan hanya kolom baru ke skema yang ada kompatibel dengan versi sebelumnya.

Anda dapat memperbarui data terstruktur di konsol Google Cloud atau menggunakan API.

Konsol

Untuk menggunakan konsol Google Cloud guna memperbarui data terstruktur dari cabang penyimpanan data, ikuti langkah-langkah berikut:

  1. Di konsol Google Cloud , buka halaman AI Applications.

    Aplikasi AI

  2. Di menu navigasi, klik Data Stores.

  3. Di kolom Nama, klik penyimpanan data yang ingin Anda edit.

  4. Di tab Dokumen, klik Impor data.

  5. Untuk memperbarui dari Cloud Storage:

    1. Di panel Select a data source, pilih Cloud Storage.
    2. Di panel Impor data dari Cloud Storage, klik Telusuri, pilih bucket yang berisi data yang diperbarui, lalu klik Pilih. Atau, masukkan lokasi bucket secara langsung di kolom gs://.
    3. Di bagian Opsi Impor Data, pilih opsi impor.
    4. Klik Import.
  6. Untuk memperbarui dari BigQuery:

    1. Di panel Pilih sumber data, pilih BigQuery.
    2. Di panel Impor data dari BigQuery, klik Jelajahi, pilih tabel yang berisi data yang diperbarui, lalu klik Pilih. Atau, masukkan lokasi tabel langsung di kolom jalur BigQuery.
    3. Di bagian Opsi Impor Data, pilih opsi impor.
    4. Klik Import.

REST

Gunakan metode documents.import untuk memuat ulang data Anda, dengan menentukan nilai reconciliationMode yang sesuai.

Untuk memperbarui data terstruktur dari BigQuery atau Cloud Storage menggunakan command line, ikuti langkah-langkah berikut:

  1. Temukan ID penyimpanan data Anda. Jika Anda sudah memiliki ID penyimpanan data, lanjutkan ke langkah berikutnya.

    1. Di konsol Google Cloud , buka halaman AI Applications dan di menu navigasi, klik Data Stores.

      Buka halaman Data Stores

    2. Klik nama penyimpanan data Anda.

    3. Di halaman Data untuk penyimpanan data Anda, dapatkan ID penyimpanan data.

  2. Untuk mengimpor data terstruktur dari BigQuery, panggil metode berikut. Anda dapat mengimpor dari BigQuery atau Cloud Storage. Untuk mengimpor dari Cloud Storage, lewati ke langkah berikutnya.

    curl -X POST \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    "https://discoveryengine.googleapis.com/v1beta/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_BQ",
      },
      "reconciliationMode": "RECONCILIATION_MODE",
      "autoGenerateIds": AUTO_GENERATE_IDS,
      "idField": "ID_FIELD",
      "errorConfig": {
        "gcsPrefix": "ERROR_DIRECTORY"
      }
    }'
    

    Ganti kode berikut:

    • PROJECT_ID: ID Google Cloud project Anda.
    • DATA_STORE_ID: ID penyimpanan data Vertex AI Search.
    • DATASET_ID: nama set data BigQuery Anda.
    • TABLE_ID: nama tabel BigQuery Anda.
    • DATA_SCHEMA_BQ: kolom opsional untuk menentukan skema yang akan digunakan saat mengurai data dari sumber BigQuery. Dapat memiliki nilai berikut:
      • document: nilai default. Tabel BigQuery yang Anda gunakan harus sesuai dengan skema BigQuery default berikut. Anda dapat menentukan ID setiap dokumen sendiri, sambil membungkus seluruh data dalam string json_data.
      • custom: skema tabel BigQuery apa pun diterima, dan Aplikasi AI akan otomatis membuat ID untuk setiap dokumen yang diimpor.
    • ERROR_DIRECTORY: kolom opsional untuk menentukan direktori Cloud Storage untuk informasi error tentang impor—misalnya, gs://<your-gcs-bucket>/directory/import_errors. Google merekomendasikan agar Anda mengosongkan kolom ini agar Aplikasi AI dapat membuat direktori sementara secara otomatis.
    • RECONCILIATION_MODE: kolom opsional untuk menentukan cara dokumen yang diimpor disesuaikan dengan dokumen yang ada di penyimpanan data tujuan. Dapat memiliki nilai berikut:
      • INCREMENTAL: nilai default. Menyebabkan refresh data inkremental dari BigQuery 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.
      • FULL: menyebabkan penggabungan ulang dokumen secara penuh di penyimpanan data Anda. Oleh karena itu, dokumen baru dan yang diperbarui akan ditambahkan ke penyimpanan data Anda, dan dokumen yang tidak ada di BigQuery akan dihapus dari penyimpanan data Anda. Mode FULL berguna jika Anda ingin menghapus dokumen yang tidak lagi diperlukan secara otomatis.
    • AUTO_GENERATE_IDS: kolom opsional untuk menentukan apakah ID dokumen akan dibuat secara otomatis. Jika disetel ke true, ID dokumen dibuat berdasarkan hash payload. Perhatikan bahwa ID dokumen yang dibuat mungkin tidak tetap konsisten selama beberapa kali impor. Jika Anda membuat ID secara otomatis di beberapa impor, Google sangat merekomendasikan agar Anda menyetel reconciliationMode ke FULL untuk mempertahankan ID dokumen yang konsisten.

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

    • ID_FIELD: kolom opsional untuk menentukan kolom mana yang merupakan ID dokumen. Untuk file sumber BigQuery, idField menunjukkan nama kolom dalam tabel BigQuery yang berisi ID dokumen.

      Tentukan idField hanya jika kedua kondisi ini terpenuhi, jika tidak, error INVALID_ARGUMENT akan ditampilkan:

      • bigquerySource.dataSchema disetel ke custom
      • auto_generate_ids disetel ke false atau tidak ditentukan.

      Selain itu, nilai nama kolom BigQuery harus berupa jenis string, harus terdiri dari 1 hingga 63 karakter, dan harus sesuai dengan RFC-1034. Jika tidak, dokumen akan gagal diimpor.

    Berikut adalah skema BigQuery default. Tabel BigQuery Anda harus sesuai dengan skema ini saat Anda menyetel dataSchema ke document.

    [
     {
       "name": "id",
       "mode": "REQUIRED",
       "type": "STRING",
       "fields": []
     },
     {
       "name": "jsonData",
       "mode": "NULLABLE",
       "type": "STRING",
       "fields": []
     }
    ]
    
  3. Untuk mengimpor data terstruktur dari Cloud Storage, panggil metode berikut. Anda dapat mengimpor dari BigQuery atau Cloud Storage. Untuk mengimpor dari BigQuery, buka langkah sebelumnya.

    curl -X POST \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    "https://discoveryengine.googleapis.com/v1beta/projects/PROJECT_ID/locations/global/collections/default_collection/dataStores/DATA_STORE_ID/branches/0/documents:import" \
    -d '{
      "gcsSource": {
        "inputUris": ["GCS_PATHS"],
        "dataSchema": "DATA_SCHEMA_GCS",
      },
      "reconciliationMode": "RECONCILIATION_MODE",
      "idField": "ID_FIELD",
      "errorConfig": {
        "gcsPrefix": "ERROR_DIRECTORY"
      }
    }'
    

    Ganti kode berikut:

    • PROJECT_ID: ID Google Cloud project Anda.
    • DATA_STORE_ID: ID penyimpanan data Vertex AI Search.
    • GCS_PATHS: daftar URI yang dipisahkan koma ke lokasi Cloud Storage tempat Anda ingin mengimpor. Setiap URI dapat berisi hingga 2.000 karakter. URI dapat mencocokkan jalur lengkap untuk objek penyimpanan atau dapat mencocokkan pola untuk satu atau beberapa objek. Misalnya, gs://bucket/directory/*.json adalah jalur yang valid.
    • DATA_SCHEMA_GCS: kolom opsional untuk menentukan skema yang akan digunakan saat mengurai data dari sumber BigQuery. Dapat memiliki nilai berikut:
      • document: nilai default. Tabel BigQuery yang Anda gunakan harus sesuai dengan skema BigQuery default berikut. Anda dapat menentukan ID setiap dokumen sendiri, sambil membungkus seluruh data dalam string json_data.
      • custom: skema tabel BigQuery apa pun diterima, dan Aplikasi AI akan otomatis membuat ID untuk setiap dokumen yang diimpor.
    • ERROR_DIRECTORY: kolom opsional untuk menentukan direktori Cloud Storage untuk informasi error tentang impor—misalnya, gs://<your-gcs-bucket>/directory/import_errors. Google merekomendasikan agar Anda mengosongkan kolom ini agar Aplikasi AI dapat membuat direktori sementara secara otomatis.
    • RECONCILIATION_MODE: kolom opsional untuk menentukan cara dokumen yang diimpor disesuaikan dengan dokumen yang ada di penyimpanan data tujuan. Dapat memiliki nilai berikut:
      • INCREMENTAL: nilai default. Menyebabkan refresh data inkremental dari BigQuery 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.
      • FULL: menyebabkan penggabungan ulang dokumen secara penuh di penyimpanan data Anda. Oleh karena itu, dokumen baru dan yang diperbarui akan ditambahkan ke penyimpanan data Anda, dan dokumen yang tidak ada di BigQuery akan dihapus dari penyimpanan data Anda. Mode FULL berguna jika Anda ingin menghapus dokumen yang tidak lagi diperlukan secara otomatis.

Python

Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi API Python Aplikasi AI.

Untuk melakukan autentikasi ke Aplikasi AI, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.


from google.api_core.client_options import ClientOptions
from google.cloud import discoveryengine

# TODO(developer): Uncomment these variables before running the sample.
# project_id = "YOUR_PROJECT_ID"
# location = "YOUR_LOCATION" # Values: "global"
# data_store_id = "YOUR_DATA_STORE_ID"
# bigquery_dataset = "YOUR_BIGQUERY_DATASET"
# bigquery_table = "YOUR_BIGQUERY_TABLE"

#  For more information, refer to:
# https://cloud.google.com/generative-ai-app-builder/docs/locations#specify_a_multi-region_for_your_data_store
client_options = (
    ClientOptions(api_endpoint=f"{location}-discoveryengine.googleapis.com")
    if location != "global"
    else None
)

# Create a client
client = discoveryengine.DocumentServiceClient(client_options=client_options)

# The full resource name of the search engine branch.
# e.g. projects/{project}/locations/{location}/dataStores/{data_store_id}/branches/{branch}
parent = client.branch_path(
    project=project_id,
    location=location,
    data_store=data_store_id,
    branch="default_branch",
)

request = discoveryengine.ImportDocumentsRequest(
    parent=parent,
    bigquery_source=discoveryengine.BigQuerySource(
        project_id=project_id,
        dataset_id=bigquery_dataset,
        table_id=bigquery_table,
        data_schema="custom",
    ),
    # Options: `FULL`, `INCREMENTAL`
    reconciliation_mode=discoveryengine.ImportDocumentsRequest.ReconciliationMode.INCREMENTAL,
)

# Make the request
operation = client.import_documents(request=request)

print(f"Waiting for operation to complete: {operation.operation.name}")
response = operation.result()

# After the operation is complete,
# get information from operation metadata
metadata = discoveryengine.ImportDocumentsMetadata(operation.metadata)

# Handle the response
print(response)
print(metadata)

Memuat ulang data tidak terstruktur

Anda dapat memperbarui data tidak terstruktur di konsol Google Cloud atau menggunakan API.

Konsol

Untuk menggunakan konsol Google Cloud guna memuat ulang data tidak terstruktur dari cabang penyimpanan data, ikuti langkah-langkah berikut:

  1. Di konsol Google Cloud , buka halaman AI Applications.

    Aplikasi AI

  2. Di menu navigasi, klik Data Stores.

  3. Di kolom Nama, klik penyimpanan data yang ingin Anda edit.

  4. Di tab Dokumen, klik Impor data.

  5. Untuk menyerap dari bucket Cloud Storage (dengan atau tanpa metadata):

    1. Di panel Select a data source, pilih Cloud Storage.
    2. Di panel Impor data dari Cloud Storage, klik Telusuri, pilih bucket yang berisi data yang diperbarui, lalu klik Pilih. Atau, masukkan lokasi bucket secara langsung di kolom gs://.
    3. Di bagian Opsi Impor Data, pilih opsi impor.
    4. Klik Import.
  6. Untuk melakukan penyerapan dari BigQuery:

    1. Di panel Pilih sumber data, pilih BigQuery.
    2. Di panel Impor data dari BigQuery, klik Jelajahi, pilih tabel yang berisi data yang diperbarui, lalu klik Pilih. Atau, masukkan lokasi tabel langsung di kolom jalur BigQuery.
    3. Di bagian Opsi Impor Data, pilih opsi impor.
    4. Klik Import.

REST

Untuk memperbarui data tidak terstruktur menggunakan API, impor ulang menggunakan metode documents.import, dengan menentukan nilai reconciliationMode yang sesuai. Untuk mengetahui informasi selengkapnya tentang mengimpor data tidak terstruktur, lihat Data tidak terstruktur.

Python

Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi API Python Aplikasi AI.

Untuk melakukan autentikasi ke Aplikasi AI, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.

from google.api_core.client_options import ClientOptions
from google.cloud import discoveryengine

# TODO(developer): Uncomment these variables before running the sample.
# project_id = "YOUR_PROJECT_ID"
# location = "YOUR_LOCATION" # Values: "global"
# data_store_id = "YOUR_DATA_STORE_ID"

# Examples:
# - Unstructured documents
#   - `gs://bucket/directory/file.pdf`
#   - `gs://bucket/directory/*.pdf`
# - Unstructured documents with JSONL Metadata
#   - `gs://bucket/directory/file.json`
# - Unstructured documents with CSV Metadata
#   - `gs://bucket/directory/file.csv`
# gcs_uri = "YOUR_GCS_PATH"

#  For more information, refer to:
# https://cloud.google.com/generative-ai-app-builder/docs/locations#specify_a_multi-region_for_your_data_store
client_options = (
    ClientOptions(api_endpoint=f"{location}-discoveryengine.googleapis.com")
    if location != "global"
    else None
)

# Create a client
client = discoveryengine.DocumentServiceClient(client_options=client_options)

# The full resource name of the search engine branch.
# e.g. projects/{project}/locations/{location}/dataStores/{data_store_id}/branches/{branch}
parent = client.branch_path(
    project=project_id,
    location=location,
    data_store=data_store_id,
    branch="default_branch",
)

request = discoveryengine.ImportDocumentsRequest(
    parent=parent,
    gcs_source=discoveryengine.GcsSource(
        # Multiple URIs are supported
        input_uris=[gcs_uri],
        # Options:
        # - `content` - Unstructured documents (PDF, HTML, DOC, TXT, PPTX)
        # - `custom` - Unstructured documents with custom JSONL metadata
        # - `document` - Structured documents in the discoveryengine.Document format.
        # - `csv` - Unstructured documents with CSV metadata
        data_schema="content",
    ),
    # Options: `FULL`, `INCREMENTAL`
    reconciliation_mode=discoveryengine.ImportDocumentsRequest.ReconciliationMode.INCREMENTAL,
)

# Make the request
operation = client.import_documents(request=request)

print(f"Waiting for operation to complete: {operation.operation.name}")
response = operation.result()

# After the operation is complete,
# get information from operation metadata
metadata = discoveryengine.ImportDocumentsMetadata(operation.metadata)

# Handle the response
print(response)
print(metadata)