Konfigurieren Sie ein externes Volume für S3-kompatiblen Speicher

Für extern verwaltete oder Snowflake-verwaltete Apache Iceberg™ Tabellen mit Daten und Metadaten in S3-kompatiblem Speicher können Sie ein externes Volume konfigurieren, das mit einem Amazon S3-kompatiblen Speicherort verbunden ist.

Um ein externes Volume für S3-kompatiblen Speicher zu erstellen, können Sie SQL oder Snowsight verwenden.

Voraussetzungen

Um S3-kompatiblen Speicher für Iceberg-Tabellen zu verwenden, müssen Sie einen S3-kompatiblen API-Endpunkt für Snowflake haben. Weitere Informationen dazu finden Sie unter Anforderungen an S3-kompatiblen Speicher.

Create an external volume for S3-compatible storage by using SQL

Erstellen Sie ein externes Volume, das einen S3-kompatiblen Speicherort angibt. Informationen zu den S3-kompatiblen Parametern im Befehl CREATE EXTERNAL VOLUME finden Sie in der Befehlssyntax <label-iceberg_external_volume_s3_compatible_syntax>.

CREATE OR REPLACE EXTERNAL VOLUME ext_vol_s3_compat
  STORAGE_LOCATIONS = (
    (
      NAME = 'my_s3_compat_storage_location'
      STORAGE_PROVIDER = 'S3COMPAT'
      STORAGE_BASE_URL = 's3compat://mybucket/unload/mys3compatdata'
      CREDENTIALS = (
        AWS_KEY_ID = '1a2b3c...'
        AWS_SECRET_KEY = '4x5y6z...'
      )
      STORAGE_ENDPOINT = 'mystorage.com'
    )
  );
Copy

Create an external volume for S3-compatible storage by using Snowsight

  1. Melden Sie sich bei Snowsight an.

  2. Wählen Sie links unten Ihren Namen » Switch role und dann ACCOUNTADMIN oder eine Rolle mit der Berechtigung CREATEEXTERNAL VOLUME aus.

    Weitere Informationen 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 + Create aus.

  6. Wählen Sie S3 compatible storage aus.

  7. Wählen Sie Next aus.

  8. Erstellen Sie in Ihrem S3-kompatiblen Speicheranbieter Anmeldeinformationen für den Zugriffsschlüssel, die über die erforderlichen Berechtigungen für den Zugriff auf Ihren Bucket und das Abrufen von Objekten verfügen.

    Weitere Informationen dazu finden Sie unter Anforderungen an S3-kompatiblen Speicher.

  9. Wählen Sie Next aus.

  10. Füllen Sie zum Konfigurieren des externen Volumes auf der Seite Configure external volume die folgenden Felder aus:

    Feld

    Beschreibung

    External volume name

    Geben Sie einen Namen für Ihr externes Volume ein.

    Storage endpoint

    Gibt eine vollqualifizierte Domäne an, die auf Ihren S3-kompatiblen API-Endpunkt verweist.

    Bemerkung

    Der Endpunkt des Speichers sollte keinen Bucket-Namen enthalten. Geben Sie zum Beispiel example.com statt my_bucket.example.com an.

    AWS key ID

    Gibt die AWS-Schlüssel-ID für die Verbindung zu und den Zugriff auf Ihren S3-kompatiblen Speicherort an.

    AWS secret key

    Gibt den geheimen AWS-Schlüssel für die Verbindung zu und den Zugriff auf Ihren S3-kompatiblen Speicherort an.

    Access scope

    Gibt an, ob Schreiboperationen für das externe Volume erlaubt sind; muss bei den folgenden Tabellen auf Allow writes gesetzt werden:

    • Iceberg-Tabellen, die Snowflake als Katalog verwenden.

    • Iceberg-Tabellen, die einen externen Katalog verwenden und beschreibbar sind. Extern verwaltete Iceberg-Tabellen sind beschreibbar, wenn Sie über eine mit dem Katalog verknüpfte Datenbank auf sie zugreifen, bei der derALLOWED_WRITE_OPERATIONS-Parameter auf TRUE eingestellt ist.

    Bei Iceberg-Tabellen, die aus Delta-Tabellendateien erstellt wurden, wird Snowflake durch Festlegen dieses Parameters auf Allow writes ermöglicht, Iceberg-Metadaten in Ihren externen Speicher zu schreiben. Weitere Informationen dazu finden Sie unter Delta-basierte Tabellen.

    Der Wert dieses Felds muss auch mit den Berechtigungen übereinstimmen, die Sie für das Cloudspeicherkonto für jeden angegebenen Speicherort festgelegt haben.

    Bemerkung

    Wenn Sie planen, das externe Volume für das Lesen von extern verwalteten Iceberg-Tabellen zu verwenden, können Sie diesen Parameter auf „Off“ festlegen. Snowflake schreibt keine Daten oder Iceberg-Metadaten-Dateien in Ihren Cloudspeicher, wenn Sie Tabellen in einem externen Iceberg-Katalog lesen.

    Scope

    Wählen Sie aus, wo dieses externe Volume zum Standardspeicherort für zukünftige Iceberg-Tabellen werden soll. Mögliche Werte sind:

    • Do not set a default: Legen Sie das externe Volume nirgendwo als Standard fest.

    • Account: Legen Sie das externe Volume als Standard für Iceberg-Tabellen fest, die unter dem gesamten Konto erstellt werden.

    • Specific database: Legen Sie das externe Volume als Standard für Iceberg-Tabellen fest, die unter der von Ihnen angegebenen Datenbank erstellt werden. Um diese Datenbank anzugeben, verwenden Sie das Dropdown-Menü Database, das angezeigt wird, wenn Sie Specific database auswählen.

    • Specific schema: Legen Sie das externe Volume als Standard für Iceberg-Tabellen fest, die unter dem von Ihnen angegebenen Schema erstellt werden. Um dieses Schema anzugeben, verwenden Sie das Dropdown-Menü Database, das angezeigt wird, um zuerst die übergeordnete Datenbank des Schemas und dann das Schema auszuwählen.

    Comment

    Gibt einen Kommentar für das externe Volume an.

    Storage base URL

    Gibt die Basis-URL für Ihren Cloudspeicherort an.

  11. Wählen Sie Next aus.

    Auf der Seite Verify connection & create volume verifiziert Snowflake Ihre Verbindung zu Ihrem S3-kompatiblen Speicher und zeigt dann die Meldung „Successfully connected“ an.

    Bemerkung

    Wenn Snowflake Ihre Verbindung nicht verifizieren kann, überprüfen Sie Ihre Berechtigung oder die Konfiguration des externen Volumes, und wählen Sie dann Verify again aus.

  12. Wählen Sie Create aus.

Aktualisieren Sie die Anmeldeinformationen für Ihr externes Volume

Um die Anmeldeinformationen für das externe Volume zu ändern oder zu aktualisieren, können Sie den Befehl ALTER EXTERNAL VOLUME. … UPDATE verwenden. Geben Sie den Namen des Speicherorts an, für den Sie die Anmeldeinformationen ändern möchten.

ALTER EXTERNAL VOLUME ext_vol_s3_compat UPDATE
  STORAGE_LOCATION = 'my_s3_compat_storage_location'
  CREDENTIALS = (
    AWS_KEY_ID = '4d5e6f...'
    AWS_SECRET_KEY = '7g8h9i...'
  );
Copy