Externes Volume konfigurieren

Ein externes Volume ist ein benanntes Snowflake-Objekt auf Kontoebene, das Sie verwenden, um Snowflake mit Ihrem externen Cloudspeicher für Iceberg-Tabellen zu verbinden. Ein externes Volume speichert eine Identitäts- und Zugriffsverwaltungseinheit (IAM) für Ihren Speicherort. Snowflake verwendet die IAM-Entität, um eine sichere Verbindung zu Ihrem Speicher für den Zugriff auf Tabellendaten, Iceberg-Metadaten und Manifest-Dateien herzustellen, in denen das Tabellenschema, Partitionen und andere Metadaten gespeichert sind.

Ein einzelnes externes Volume kann eine oder mehrere Iceberg-Tabellen unterstützen.

Sie müssen ein externes Volume erstellen, bevor Sie in Snowflake eine Apache Iceberg™-Tabelle erstellen können.

Externes Volume erstellen

Die Schritte zur Erstellung eines externen Volumes hängen von Ihrem Cloudspeicheranbieter ab.

Anleitungen finden Sie unter den folgenden Themen:

Jedes externe Volume ist mit einem bestimmten Aktiver Speicherort verbunden, und ein einzelnes externes Volume kann mehrere Iceberg-Tabellen unterstützen. Die Anzahl der externen Volumes, die Sie benötigen, hängt jedoch davon ab, wie Sie Ihre Tabellendaten speichern, organisieren und sichern möchten.

Sie können ein einziges externes Volume verwenden, wenn Sie die Daten und Metadaten für alle Ihre Snowflake-Iceberg-Tabellen in Unterverzeichnissen unter demselben Speicherort (z. B. im selben S3 Bucket) haben möchten. Um diese Verzeichnisse für von Snowflake verwaltete Tabellen zu konfigurieren, siehe Daten- und Metadatenverzeichnisse.

Alternativ können Sie auch mehrere externe Volumes erstellen, um verschiedene Speicherorte unterschiedlich zu sichern. Sie könnten zum Beispiel die folgenden externen Volumes erstellen:

  • Ein externes Volume mit Lesezugriff für extern verwaltete Iceberg-Tabellen.

  • Ein externes Volume, das mit Lese- und Schreibzugriff für von Snowflake verwaltete Tabellen konfiguriert ist

Ein externes Volume überprüfen

Überprüfen Sie ein externes Volume, um zu prüfen, ob Snowflake sich erfolgreich bei Ihrem Speicheranbieter über ein von Ihnen konfiguriertes externes Volume authentifizieren kann. Sie können ein externes Volume mit SQL oder Snowsight verifizieren.

Verwenden von SQL

Um ein externes Volume mit SQL zu überprüfen, rufen Sie die SYSTEM$VERIFY_EXTERNAL_VOLUME-Funktion auf.

Geben Sie den Namen des externen Volumes an, das Sie überprüfen möchten.

SELECT SYSTEM$VERIFY_EXTERNAL_VOLUME('my_s3_external_volume');
Copy

Verwenden von Snowsight

Um ein externes Volume mit Snowsight zu überprüfen, führen Sie die folgenden Schritte aus:

  1. Melden Sie sich bei Snowsight an.

  2. Wählen Sie im Navigationsmenü die Option Catalog » External data aus.

  3. Wählen Sie die Registerkarte External volumes aus.

  4. Wählen Sie das externe Volume aus, dessen Verbindung Sie überprüfen möchten.

  5. Wählen Sie » Verify connection aus.

Externes Standardvolumen auf Konto-, Datenbank- oder Schema-Ebene festlegen

Sie können entweder ein vorhandenes externes Volume als Standard oder ein neues externes Volume als Standard festlegen, wenn Sie es erstellen.

Ein vorhandenes externes Volume als Standard festlegen

Um ein vorhandenes externes Volume als Standard für Iceberg-Tabellen festzulegen, können Sie den Parameter EXTERNAL_VOLUME auf den folgenden Ebenen einstellen:

Konto:

Kontoadministratoren können mit dem Befehl ALTER ACCOUNT die Parameter für das Konto festlegen. Wenn der Wert für das Konto festgelegt ist, werden die Lese- und Schreiboperationen aller im Konto erstellten Iceberg-Tabellen standardmäßig auf diesem externen Volume ausgeführt.

Objekt:

Benutzer können den entsprechenden CREATE <Objekt>- oder ALTER <Objekt>-Befehl ausführen, um den Parameterwert von EXTERNAL_VOLUME auf Datenbank- oder Schema-Ebene zu überschreiben. Es wird die Deklaration mit dem kleinsten Geltungsbereich verwendet: Schema > Datenbank > Konto.

Zusätzlich zu den Mindestberechtigungen, die für das Ändern eines Objekts mit dem entsprechenden ALTER <Objekttyp>-Befehl erforderlich sind, muss eine Rolle die USAGE-Berechtigung für das externe Volume haben.

Bemerkung

  • Änderungen am Parameter EXTERNAL_VOLUME gelten nur für Tabellen, die nach der Änderung erstellt wurden. Bestehende Tabellen verwenden weiterhin das externe Volume, das bei ihrer Erstellung angegeben wurde.

  • Alternativ können Sie beim Erstellen des externen Volumes mit Snowsight ein externes Standardvolume auf Konto-, Datenbank- oder Schemaebene festlegen.

Beispiel

Mit der folgenden Anweisung wird ein externes Volume (my_s3_vol) für eine Datenbank namens my_database_1 festgelegt:

ALTER DATABASE my_database_1
  SET EXTERNAL_VOLUME = 'my_s3_vol';
Copy

Nachdem Sie ein externes Volume auf Datenbankebene festgelegt haben, können Sie eine Iceberg-Tabelle in dieser Datenbank erstellen, ohne ein externes Volume angeben zu müssen. Mit der folgenden Anweisung wird eine Iceberg-Tabelle in my_database_1 erstellt, die Snowflake als Katalog und das für die Datenbank als Standard-Volume festgelegte externe Volume (my_s3_vol) verwendet.

CREATE ICEBERG TABLE iceberg_reviews_table (
  id STRING,
  product_name STRING,
  product_id STRING,
  reviewer_name STRING,
  review_date DATE,
  review STRING
)
CATALOG = 'SNOWFLAKE'
BASE_LOCATION = 'my/product_reviews/';
Copy

Ein neues externes Volume als Standard festlegen

Um ein neues externes Volume als Standard für Iceberg-Tabellen festzulegen, wenn Sie das externe Volume in Snowsight erstellen, verwenden Sie das Feld Scope in den Konfigurationseinstellungen, um das externe Volume als Standard auf Konto-, Datenbank- oder Schemaebene festzulegen.

Eine Anleitung zum Erstellen eines externen Volumes in Snowsight finden Sie in den folgenden Abschnitten:

USAGE-Berechtigungen für ein externes Volume durch Verwendung von Snowsight zuweisen

Die USAGE-Berechtigung erteilt die Möglichkeit, auf das externe Volume zu verweisen und Details zum externen Volume anzuzeigen. Weitere Informationen dazu finden Sie unter Berechtigungen von externen Volumes.

Um USAGE-Berechtigungen für ein externes Volume durch Verwendung von Snowsight zu gewähren, gehen Sie wie folgt vor:

  1. Melden Sie sich bei Snowsight an.

  2. Wechseln Sie zu einer Rolle, die über die OWNERSHIP-Berechtigungen für das externe Volume verfügt, dem Sie USAGE-Berechtigungen gewähren möchten.

    Eine Anleitung zum Wechseln einer Rolle finden Sie unter Ihre Primärrolle wechseln. Weitere Informationen zur OWNERSHIP-Berechtigung finden Sie unter Berechtigungen von externen Volumes.

  3. Wählen Sie im Navigationsmenü die Option Catalog » External data aus.

  4. Wählen Sie die Registerkarte External volumes aus.

  5. Wählen Sie das externe Volume aus, dem Sie die USAGE-Berechtigungen zuweisen möchten.

  6. Wählen Sie + Privilege aus.

  7. Wählen Sie im Feld Roles die Rolle aus, der Sie die USAGE-Berechtigung für das externe Volume zuweisen möchten.

  8. Wählen Sie im Feld Privileges die Option USAGE aus.

  9. Wählen Sie Grant privileges aus.

Mit Snowsight einen Speicherort hinzufügen

Bemerkung

Um einen Speicherort zu einem externen Volume mit SQL hinzuzufügen, verwenden Sie den Parameter ADD STORAGE_LOCATION des Befehls ALTER EXTERNAL VOLUME.

Um einen benannten Speicherort für ein externes Volume durch Verwendung von Snowsight hinzuzufügen, gehen Sie wie folgt vor:

  1. Melden Sie sich bei Snowsight an.

  2. Wechseln Sie zu einer Rolle, die über die OWNERSHIP-Berechtigung für das externe Volume verfügt, für das Sie einen Speicherort hinzufügen möchten.

    Eine Anweisung dazu finden Sie unter Ihre Primärrolle wechseln.

  3. Wählen Sie im Navigationsmenü die Option Catalog » External data aus.

  4. Wählen Sie die Registerkarte External volumes aus.

  5. Wählen Sie das externe Volume aus, dem Sie einen Speicherort hinzufügen möchten.

  6. Wählen Sie » Add storage location aus.

  7. Wählen Sie Ihren Cloudspeicheranbieter aus, und geben Sie die Konfiguration für den Speicherort an, den Sie hinzufügen möchten:

    1. Wählen Sie die Registerkarte Amazon S3 aus.

    2. Geben Sie die Konfiguration für den Speicherort an, den Sie hinzufügen:

      Feld

      Beschreibung

      Location name

      Geben Sie einen Namen für Ihren zusätzlichen Speicherort ein.

      Region type

      Gibt den Cloudspeicheranbieter an, der Ihre Datendateien speichert.

      • Standard (default): S3-Speicher in öffentlichen AWS-Regionen außerhalb Chinas.

      • Government (GovCloud): S3-Speicher in AWS-Regionen für Regierungsbehörden <label-us_gov_regions>.

      S3 role ARN

      Gibt den Amazon Resource Name (ARN; mit Beachtung der Groß-/Kleinschreibung) der AWS-Rolle für Identitäts- und Zugriffsverwaltung (IAM) an, die Berechtigungen für den S3-Bucket mit Ihren Datendateien erteilt.

      Sie haben diesen Wert notiert, als Sie eine IAM-Rolle erstellt haben.

      Encryption (optional)

      Gibt den verwendeten Verschlüsselungstyp an. Mögliche Werte sind:

      Connectivity

      Gibt an, ob Sie ausgehende private Konnektivität verwenden möchten, um Ihre Sicherheit zu verbessern. Weitere Informationen zur Verwendung dieses Parameters finden Sie unter Private Konnektivität zu externen Volumes für Amazon Web Services. Mögliche Werte sind:

      • Public (default): Verwenden des öffentlichen Internets

      • Private (AWS PrivateLink): Verwenden ausgehender privater Konnektivität

      Storage base URL

      Gibt die Basis-URL für Ihren zusätzlichen Speicherort an.

  8. Wählen Sie Add storage location aus.