Auf OpenSearch-Daten über AlloyDB zugreifen

Sie können mit der Integration der externen Suche in AlloyDB auf Daten zugreifen, die in OpenSearch gespeichert sind, und darin suchen. Mit dieser Integration können Sie OpenSearch-Indizes mit relationalen Tabellen in AlloyDB verknüpfen, ohne Daten verschieben oder kopieren zu müssen.

Hinweis

Bevor Sie beginnen, müssen Sie Folgendes erledigt haben:

OpenSearch-Anmeldedaten in Secret Manager speichern

AlloyDB speichert Ihre OpenSearch-Anmeldedaten in Secret Manager und liest sie daraus. Weitere Informationen zur Verwendung von Secret Manager finden Sie unter Secret mit Secret Manager erstellen und darauf zugreifen.

Prüfen Sie, ob Ihr AlloyDB-Dienstkonto die Rolle „Secret Manager Secret Accessor“ (roles/secretmanager.secretAccessor) hat, um das Secret aus Secret Manager zu lesen. Weitere Informationen finden Sie unter Secret mit Secret Manager erstellen und darauf zugreifen.

external_search_fdw-Erweiterung aktivieren und konfigurieren

Um die Integration mit OpenSearch zu starten, konfigurieren Sie den Zugriff auf Ihren OpenSearch-Cluster über einen ausländischen Datenserver.

  1. Aktivieren Sie die Erweiterung external_search_fdw.

    CREATE EXTENSION external_search_fdw;
    
  2. Erstellen Sie einen Server für Ihren OpenSearch-Cluster.

    CREATE SERVER OPENSEARCH_SERVER_NAME
    FOREIGN DATA WRAPPER external_search_fdw
    OPTIONS (
      server 'OPENSEARCH_SERVER_HOST_PORT',
      search_provider 'opensearch',
      auth_mode 'secret_manager',
      auth_method 'Basic',
      secret_path 'SECRET_PATH'
    );
    

    Ersetzen Sie die folgenden Variablen:

    • OPENSEARCH_SERVER_NAME: Name für Ihren Server für externe Daten. Beispiel: opensearch.

    • OPENSEARCH_SERVER_HOST_PORT: Die öffentliche URL (Endpunkt) für Ihren OpenSearch-Cluster.

    • SECRET_PATH: Secret Manager-Pfad zu Ihren OpenSearch-Anmeldedaten. Beispiel: projects/123456789012/secrets/opensearch-credentials/versions/1. 123456789012 steht für Ihre Google Cloud -Projekt-ID.

  3. Definieren Sie die PostgreSQL-Nutzerzuordnung für den OpenSearch-Server. Hinweis: Für PostgreSQL-FDWs ist diese Nutzerzuordnung erforderlich. Die Authentifizierung in AlloyDB erfolgt über den REST-Autorisierungsheader.

    CREATE USER MAPPING FOR CURRENT_USER
    SERVER OPENSEARCH_SERVER_NAME;
    
  4. Ordnen Sie das Schema Ihres OpenSearch-Index einer externen PostgreSQL-Tabelle zu.

    CREATE FOREIGN TABLE OPENSEARCH_FD_TABLE(
        metadata external_search_fdw_schema.OpaqueMetadata,
        OPENSEARCH_FIELDS)
           SERVER OPENSEARCH_SERVER_NAME
           OPTIONS(
                remote_table_name 'OPENSEARCH_INDEX_NAME'