Strukturierte und unstrukturierte Daten aktualisieren

Auf dieser Seite wird beschrieben, wie Sie strukturierte und unstrukturierte Daten aktualisieren.

Informationen zum Aktualisieren Ihrer Website-Apps finden Sie unter Webseite aktualisieren.

Strukturierte Daten aktualisieren

Sie können die Daten in einem strukturierten Datenspeicher aktualisieren, sofern Sie ein Schema verwenden, das mit dem Schema im Datenspeicher identisch oder abwärtskompatibel ist. Wenn Sie beispielsweise einem vorhandenen Schema nur neue Felder hinzufügen, ist das abwärtskompatibel.

Sie können strukturierte Daten in der Google Cloud Console oder über die API aktualisieren.

Console

So aktualisieren Sie mit der Google Cloud -Console strukturierte Daten aus einem Zweig eines Datenspeichers:

  1. Rufen Sie in der Google Cloud Console die Seite KI-Anwendungen auf.

    KI-Anwendungen

  2. Klicken Sie im Navigationsmenü auf Datenspeicher.

  3. Klicken Sie in der Spalte Name auf den Datenspeicher, den Sie bearbeiten möchten.

  4. Klicken Sie auf dem Tab Dokumente auf Daten importieren.

  5. So aktualisieren Sie Daten aus Cloud Storage:

    1. Wählen Sie im Bereich Datenquelle auswählen die Option Cloud Storage aus.
    2. Klicken Sie im Bereich Daten aus Cloud Storage importieren auf Durchsuchen, wählen Sie den Bucket mit den aktualisierten Daten aus und klicken Sie dann auf Auswählen. Alternativ können Sie den Bucket-Speicherort direkt in das Feld gs:// eingeben.
    3. Wählen Sie unter Optionen für den Datenimport eine Importoption aus.
    4. Klicken Sie auf Importieren.
  6. So aktualisieren Sie Daten aus BigQuery:

    1. Wählen Sie im Bereich Datenquelle auswählen die Option BigQuery aus.
    2. Klicken Sie im Bereich Daten aus BigQuery importieren auf Durchsuchen, wählen Sie eine Tabelle mit den aktualisierten Daten aus und klicken Sie dann auf Auswählen. Alternativ können Sie den Tabellenspeicherort direkt in das Feld BigQuery-Pfad eingeben.
    3. Wählen Sie unter Optionen für den Datenimport eine Importoption aus.
    4. Klicken Sie auf Importieren.

REST

Verwenden Sie die Methode documents.import, um Ihre Daten zu aktualisieren. Geben Sie dabei den entsprechenden reconciliationMode-Wert an.

So aktualisieren Sie strukturierte Daten aus BigQuery oder Cloud Storage über die Befehlszeile:

  1. Suchen Sie nach Ihrer Datenspeicher-ID. Wenn Sie die ID Ihres Datenspeichers bereits haben, fahren Sie mit dem nächsten Schritt fort.

    1. Rufen Sie in der Google Cloud Console die Seite KI-Anwendungen auf und klicken Sie im Navigationsmenü auf Datenspeicher.

      Zur Seite „Datenspeicher“

    2. Klicken Sie auf den Namen des Datenspeichers.

    3. Rufen Sie auf der Datenseite Ihres Datenspeichers die Datenspeicher-ID ab.

  2. Rufen Sie die folgende Methode auf, um Ihre strukturierten Daten aus BigQuery zu importieren. Sie können Daten entweder aus BigQuery oder aus Cloud Storage importieren. Wenn Sie aus Cloud Storage importieren möchten, fahren Sie mit dem nächsten Schritt fort.

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

    Ersetzen Sie Folgendes:

    • PROJECT_ID: die ID Ihres Google Cloud Projekts.
    • DATA_STORE_ID: Die ID des Vertex AI Search-Datenspeichers.
    • DATASET_ID: der Name Ihres BigQuery-Datasets.
    • TABLE_ID: Der Name Ihrer BigQuery-Tabelle.
    • DATA_SCHEMA_BQ: Ein optionales Feld, in dem das Schema angegeben wird, das beim Parsen von Daten aus der BigQuery-Quelle verwendet werden soll. Mögliche Werte:
      • document: der Standardwert. Die BigQuery-Tabelle, die Sie verwenden, muss dem folgenden BigQuery-Standardschema entsprechen. Sie können die ID jedes Dokuments selbst definieren und die gesamten Daten in den json_data-String einfügen.
      • custom: Es wird jedes BigQuery-Tabellenschema akzeptiert und AI Applications generiert automatisch die IDs für jedes importierte Dokument.
    • ERROR_DIRECTORY: Ein optionales Feld, in dem Sie ein Cloud Storage-Verzeichnis für Fehlerinformationen zum Import angeben können, z. B. gs://<your-gcs-bucket>/directory/import_errors. Google empfiehlt, dieses Feld leer zu lassen, damit AI Applications automatisch ein temporäres Verzeichnis erstellt.
    • RECONCILIATION_MODE: ein optionales Feld, mit dem angegeben wird, wie die importierten Dokumente mit den vorhandenen Dokumenten im Zieldatenspeicher abgeglichen werden. Kann die folgenden Werte haben:
      • INCREMENTAL: der Standardwert. Bewirkt eine inkrementelle Aktualisierung der Daten aus BigQuery in Ihrem Datenspeicher. Dadurch wird ein Upsert-Vorgang ausgeführt, bei dem neue Dokumente hinzugefügt und vorhandene Dokumente durch aktualisierte Dokumente mit derselben ID ersetzt werden.
      • FULL: Bewirkt eine vollständige Neubasierung der Dokumente in Ihrem Datenspeicher. Daher werden neue und aktualisierte Dokumente Ihrem Datenspeicher hinzugefügt und Dokumente, die nicht in BigQuery enthalten sind, daraus entfernt. Der FULL-Modus ist hilfreich, wenn Sie Dokumente, die Sie nicht mehr benötigen, automatisch löschen möchten.
    • AUTO_GENERATE_IDS: Ein optionales Feld, in dem angegeben wird, ob Dokument-IDs automatisch generiert werden sollen. Wenn dieser Wert auf true gesetzt ist, werden Dokument-IDs auf Grundlage eines Hash der Nutzlast generiert. Beachten Sie, dass generierte Dokument-IDs bei mehreren Importvorgängen möglicherweise nicht konsistent bleiben. Wenn Sie IDs bei mehreren Importvorgängen automatisch generieren, empfiehlt Google dringend, reconciliationMode auf FULL zu setzen, um einheitliche Dokument-IDs zu erhalten.

      Geben Sie autoGenerateIds nur an, wenn bigquerySource.dataSchema auf custom festgelegt ist. Andernfalls wird der Fehler INVALID_ARGUMENT zurückgegeben. Wenn Sie autoGenerateIds nicht angeben oder auf false festlegen, müssen Sie idField angeben. Andernfalls schlägt der Import der Dokumente fehl.

    • ID_FIELD: Ein optionales Feld, mit dem angegeben wird, welche Felder die Dokument-IDs sind. Bei BigQuery-Quelldateien gibt idField den Namen der Spalte in der BigQuery-Tabelle an, die die Dokument-IDs enthält.

      Geben Sie idField nur an, wenn beide Bedingungen erfüllt sind. Andernfalls wird der Fehler INVALID_ARGUMENT zurückgegeben:

      • bigquerySource.dataSchema ist auf custom gesetzt.
      • auto_generate_ids ist auf false festgelegt oder nicht angegeben.

      Außerdem muss der Wert des BigQuery-Spaltennamens vom Typ „String“ sein, zwischen 1 und 63 Zeichen lang sein und RFC-1034 entsprechen. Andernfalls schlägt der Import der Dokumente fehl.

    Hier ist das Standard-BigQuery-Schema. Ihre BigQuery-Tabelle muss diesem Schema entsprechen, wenn Sie dataSchema auf document festlegen.

    [
     {
       "name": "id",
       "mode": "REQUIRED",
       "type": "STRING",
       "fields": []
     },
     {
       "name": "jsonData",
       "mode": "NULLABLE",
       "type": "STRING",
       "fields": []
     }
    ]
    
  3. Rufen Sie die folgende Methode auf, um Ihre strukturierten Daten aus Cloud Storage zu importieren. Sie können Daten entweder aus BigQuery oder Cloud Storage importieren. Wenn Sie Daten aus BigQuery importieren möchten, fahren Sie mit dem vorherigen Schritt fort.

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

    Ersetzen Sie Folgendes:

    • PROJECT_ID: die ID Ihres Google Cloud Projekts.
    • DATA_STORE_ID: Die ID des Vertex AI Search-Datenspeichers.
    • GCS_PATHS: Eine Liste von durch Kommas getrennten URIs zu Cloud Storage-Speicherorten, von denen Sie importieren möchten. Jeder URI kann bis zu 2.000 Zeichen lang sein. URIs können dem vollständigen Pfad für ein Speicherobjekt oder dem Muster für ein oder mehrere Objekte entsprechen. gs://bucket/directory/*.json ist beispielsweise ein gültiger Pfad.
    • DATA_SCHEMA_GCS: Ein optionales Feld, in dem das Schema angegeben wird, das beim Parsen von Daten aus der BigQuery-Quelle verwendet werden soll. Mögliche Werte:
      • document: der Standardwert. Die BigQuery-Tabelle, die Sie verwenden, muss dem folgenden BigQuery-Standardschema entsprechen. Sie können die ID jedes Dokuments selbst definieren und die gesamten Daten in den json_data-String einfügen.
      • custom: Es wird jedes BigQuery-Tabellenschema akzeptiert und AI Applications generiert automatisch die IDs für jedes importierte Dokument.
    • ERROR_DIRECTORY: Ein optionales Feld, in dem Sie ein Cloud Storage-Verzeichnis für Fehlerinformationen zum Import angeben können, z. B. gs://<your-gcs-bucket>/directory/import_errors. Google empfiehlt, dieses Feld leer zu lassen, damit AI Applications automatisch ein temporäres Verzeichnis erstellt.
    • RECONCILIATION_MODE: ein optionales Feld, mit dem angegeben wird, wie die importierten Dokumente mit den vorhandenen Dokumenten im Zieldatenspeicher abgeglichen werden. Kann die folgenden Werte haben:
      • INCREMENTAL: der Standardwert. Bewirkt eine inkrementelle Aktualisierung der Daten aus BigQuery in Ihrem Datenspeicher. Dadurch wird ein Upsert-Vorgang ausgeführt, bei dem neue Dokumente hinzugefügt und vorhandene Dokumente durch aktualisierte Dokumente mit derselben ID ersetzt werden.
      • FULL: Bewirkt eine vollständige Neubasierung der Dokumente in Ihrem Datenspeicher. Daher werden neue und aktualisierte Dokumente Ihrem Datenspeicher hinzugefügt und Dokumente, die nicht in BigQuery enthalten sind, daraus entfernt. Der FULL-Modus ist hilfreich, wenn Sie Dokumente, die Sie nicht mehr benötigen, automatisch löschen möchten.

Python

Weitere Informationen finden Sie in der Referenzdokumentation zur AI Applications Python API.

Richten Sie zur Authentifizierung bei AI Applications Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.


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)

Unstrukturierte Daten aktualisieren

Sie können unstrukturierte Daten in der Google Cloud -Konsole oder über die API aktualisieren.

Console

So aktualisieren Sie mit der Google Cloud -Console unstrukturierte Daten aus einem Zweig eines Datenspeichers:

  1. Rufen Sie in der Google Cloud Console die Seite KI-Anwendungen auf.

    KI-Anwendungen

  2. Klicken Sie im Navigationsmenü auf Datenspeicher.

  3. Klicken Sie in der Spalte Name auf den Datenspeicher, den Sie bearbeiten möchten.

  4. Klicken Sie auf dem Tab Dokumente auf Daten importieren.

  5. So nehmen Sie Daten aus einem Cloud Storage-Bucket auf (mit oder ohne Metadaten):

    1. Wählen Sie im Bereich Datenquelle auswählen die Option Cloud Storage aus.
    2. Klicken Sie im Bereich Daten aus Cloud Storage importieren auf Durchsuchen, wählen Sie den Bucket mit den aktualisierten Daten aus und klicken Sie dann auf Auswählen. Alternativ können Sie den Bucket-Standort direkt in das Feld gs:// eingeben.
    3. Wählen Sie unter Optionen für den Datenimport eine Importoption aus.
    4. Klicken Sie auf Importieren.
  6. So nehmen Sie Daten aus BigQuery auf:

    1. Wählen Sie im Bereich Datenquelle auswählen die Option BigQuery aus.
    2. Klicken Sie im Bereich Daten aus BigQuery importieren auf Durchsuchen, wählen Sie eine Tabelle mit den aktualisierten Daten aus und klicken Sie dann auf Auswählen. Alternativ können Sie den Tabellenspeicherort direkt in das Feld BigQuery-Pfad eingeben.
    3. Wählen Sie unter Optionen für den Datenimport eine Importoption aus.
    4. Klicken Sie auf Importieren.

REST

Wenn Sie unstrukturierte Daten mithilfe der API aktualisieren möchten, importieren Sie sie mit der Methode documents.import neu und geben Sie den entsprechenden reconciliationMode-Wert an. Weitere Informationen zum Importieren unstrukturierter Daten finden Sie unter Unstrukturierte Daten.

Python

Weitere Informationen finden Sie in der Referenzdokumentation zur AI Applications Python API.

Richten Sie zur Authentifizierung bei AI Applications Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.

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)