Abfrage einer Tabelle in Snowflake Open Catalog mit Snowflake

Um eine in Snowflake Open Catalog registrierte Tabelle mit Snowflake abzufragen, können Sie eine Apache Iceberg™-Tabelle erstellen, die einen externen Katalog verwendet.

Die Tabelle stellt die Iceberg-Tabelle in Snowflake Open Catalog dar und bietet einen schreibgeschützten Zugriff.

Voraussetzungen

Bevor Sie beginnen, benötigen Sie Folgendes:

  • Eine Iceberg-Tabelle, die im Open Catalog registriert ist.

  • Eine Dienstverbindung, über die Snowflake eine Verbindung zu Open Catalog herstellen kann. Sie können eine bestehende Dienstverbindung verwenden, für die Sie Rollen und Berechtigungen eingerichtet haben, oder Eine Dienstverbindung konfigurieren für Snowflake. Wenn Sie eine neue Dienstverbindung konfigurieren, müssen Sie auch die Zugriffssteuerung für diese Verbindung konfigurieren.

Schritt 1: Externes Volume in Snowflake erstellen

Wenn Sie noch kein externes Volume haben, beginnen Sie mit der Erstellung eines solchen in Snowflake, das Zugriff auf den Speicherort in der Cloud bietet, an dem Sie Ihre Tabellendaten und Metadaten speichern möchten.

Füllen Sie die Anweisungen für Ihren Cloudspeicherdienst aus:

Schritt 2: Eine Katalog-Integration für Open Catalog erstellen

Als Nächstes verwenden Sie den Befehl CREATE CATALOG INTEGRATION, um eine Katalogintegration in Snowflake zu erstellen, die OAuth verwendet, um sich unter Verwendung Ihrer Anmeldedaten mit Open Catalog mit zu verbinden.

CREATE OR REPLACE CATALOG INTEGRATION open_catalog_int
  CATALOG_SOURCE = POLARIS
  TABLE_FORMAT = ICEBERG
  CATALOG_NAMESPACE= 'myOpenCatalogNamespace'
  REST_CONFIG = (
    CATALOG_URI ='https://my_account.snowflakecomputing.com/polaris/api/catalog'
    WAREHOUSE = 'myOpenCatalogName'
  )
  REST_AUTHENTICATION = (
    TYPE = OAUTH
    OAUTH_CLIENT_ID = 'my-client-id'
    OAUTH_CLIENT_SECRET = 'my-client-secret'
    OAUTH_ALLOWED_SCOPES = ( 'PRINCIPAL_ROLE:ALL' )
  )
  ENABLED = TRUE;
Copy

Schritt 3: Eine extern verwaltete Tabelle erstellen

Erstellen Sie eine Iceberg-Tabelle in Snowflake unter des externen Volumes und der Katalogverbindung, die Sie zuvor konfiguriert haben.

Geben Sie für CATALOG_TABLE_NAME den Tabellennamen so an, wie er in Open Catalog erscheint.

CREATE ICEBERG TABLE open_catalog_iceberg_table
  CATALOG = 'open_catalog_int'
  EXTERNAL_VOLUME = 'my_external_volume'
  CATALOG_TABLE_NAME = 'my_iceberg_table';
Copy

Sie können optional automatische Aktualisierungen der Tabellenmetadaten aktivieren, indem Sie AUTO_REFRESH = TRUE angeben. Weitere Informationen dazu finden Sie unter Apache Iceberg™-Tabellen automatisch aktualisieren.

Bemerkung

Um eine Liste von Tabellen oder Namespaces in Ihrem Remote-Katalog abzurufen, können Sie die folgenden Funktionen verwenden:

Schritt 4: Die Tabelle mit Snowflake abfragen

Sie können nun Snowflake verwenden, um die Tabelle in Open Catalog abzufragen. Sie können die Abfrageergebnisse auch mit anderen Snowflake-Tabellen verknüpfen.

SELECT id, date
  FROM open_catalog_iceberg_table
  LIMIT 10;
Copy