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;
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';
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;