ALTER EXTERNAL VOLUME¶
Ändert die Eigenschaften eines bestehenden externen Volumes.
- Siehe auch:
CREATE EXTERNAL VOLUME, DROP EXTERNAL VOLUME, SHOW EXTERNAL VOLUMES, DESCRIBE EXTERNAL VOLUME
Unter diesem Thema:
Syntax¶
ALTER EXTERNAL VOLUME [ IF EXISTS ] <name> ADD STORAGE_LOCATION =
(
NAME = '<name>'
cloudProviderParams
)
ALTER EXTERNAL VOLUME [ IF EXISTS ] <name> REMOVE STORAGE_LOCATION '<name>'
ALTER EXTERNAL VOLUME [ IF EXISTS ] <name> SET ALLOW_WRITES = TRUE
ALTER EXTERNAL VOLUME [ IF EXISTS ] <name> SET COMMENT = '<string_literal>'
Wobei:
cloudProviderParams (for Amazon S3) ::= STORAGE_PROVIDER = 'S3' STORAGE_AWS_ROLE_ARN = '<iam_role>' STORAGE_BASE_URL = 's3://<bucket>[/<path>/]' [ ENCRYPTION = ( [ TYPE = 'AWS_SSE_S3' ] | [ TYPE = 'AWS_SSE_KMS' [ KMS_KEY_ID = '<string>' ] ] | [ TYPE = 'NONE' ] ) ]cloudProviderParams (for Google Cloud Storage) ::= STORAGE_PROVIDER = 'GCS' STORAGE_BASE_URL = 'gcs://<bucket>[/<path>/]' [ ENCRYPTION = ( [ TYPE = 'GCS_SSE_KMS' ] [ KMS_KEY_ID = '<string>' ] | [ TYPE = 'NONE' ] ) ]cloudProviderParams (for Microsoft Azure) ::= STORAGE_PROVIDER = 'AZURE' AZURE_TENANT_ID = '<tenant_id>' STORAGE_BASE_URL = 'azure://<account>.blob.core.windows.net/<container>[/<path>/]'
Parameter¶
name
Gibt den Bezeichner für das zu ändernde externe Volume an.
Wenn der Bezeichner Leerzeichen oder Sonderzeichen enthält, muss die gesamte Zeichenfolge in doppelte Anführungszeichen gesetzt werden. Bei Bezeichnern, die in doppelte Anführungszeichen eingeschlossen sind, ist auch die Groß- und Kleinschreibung zu beachten.
Weitere Informationen dazu finden Sie unter Anforderungen an Bezeichner.
ADD STORAGE_LOCATION
Fügt den angegebenen Speicherort zur Definition des externen Volumes hinzu. Um mehrere Speicherorte hinzuzufügen, führen Sie für jeden Speicherort eine ALTER EXTERNAL VOLUME-Anweisung aus.
Bemerkung
Iceberg-Tabellen schreiben in den ersten Speicherort des Satzes, das sich in derselben Region wie Ihr Snowflake-Konto befindet, bzw. lesen daraus. Um die Definition und die Speicherortregionen des externen Volumes anzuzeigen, führen Sie DESCRIBE EXTERNAL VOLUME aus.
REMOVE STORAGE_LOCATION
Entfernt den angegebenen Speicherort aus der Definition des externen Volumes. Um mehrere Speicherorte zu entfernen, führen Sie für jeden Speicherort eine ALTER EXTERNAL VOLUME-Anweisung aus.
Bemerkung
Die ALTER EXTERNAL VOLUME-Anweisung schlägt fehl, wenn Sie versuchen, den von Iceberg-Tabellen Ihres Kontos verwendeten aktiven Speicherort zu entfernen.
SET ...
Gibt eine oder mehrere Eigenschaften/Parameter an, die für das externe Volume festgelegt werden sollen (getrennt durch Leerzeichen, Kommas oder Neue-Zeile-Zeichen):
ALLOW_WRITES = TRUE
Gibt an, dass Schreiboperationen für das externe Volume erlaubt sind; muss bei Iceberg-Tabellen, die Snowflake als Katalog verwenden, auf
TRUE
gesetzt werden.COMMENT = 'string_literal'
Zeichenfolge (Literal), die einen Kommentar zum externen Volume enthält.
Cloudanbieterparameter (cloudProviderParams
)¶
Amazon S3
STORAGE_PROVIDER = 'S3'
Gibt den Cloudspeicheranbieter an, der Ihre Datendateien speichert.
STORAGE_AWS_ROLE_ARN = iam_role
Gibt den Amazon Resource Name (ARN) der AWS-Rolle für Identitäts- und Zugriffsverwaltung (IAM) an, die Berechtigungen für den S3-Bucket mit Ihren Datendateien gewährt. Weitere Informationen dazu finden Sie unter Konfigurieren des sicheren Zugriffs auf Amazon S3.
STORAGE_BASE_URL = 's3://bucket[/path/]'
Gibt die Basis-URL für Ihren Cloudspeicherort an, wobei:
bucket
ist der Name des S3-Buckets, in dem Ihre Datendateien gespeichert sind.
path
ist ein optionaler Pfad, mit dem Sie Objekte im Bucket genauer steuern können.ENCRYPTION = ( [ TYPE = 'AWS_SSE_S3' ] | [ TYPE = 'AWS_SSE_KMS' [ KMS_KEY_ID = 'string' ] ] | [ TYPE = 'NONE' ] )
Gibt die Eigenschaften an, die zur Verschlüsselung von Daten auf dem externen Volume erforderlich sind.
TYPE = ...
Gibt den verwendeten Verschlüsselungstyp an. Mögliche Werte sind:
AWS_SSE_S3
: Serverseitige Verschlüsselung mit S3-verwalteten Verschlüsselungsschlüsseln. Weitere Informationen dazu finden Sie unter Verwenden der serverseitigen Verschlüsselung mit Amazon S3-verwalteten Verschlüsselungsschlüsseln (SSE-S3).
AWS_SSE_KMS
: Serverseitige Verschlüsselung mit in KMS gespeicherten Schlüsseln. Weitere Informationen dazu finden Sie unter Verwenden der serverseitigen Verschlüsselung mit AWS Key Management Service (SSE-KMS).
NONE
: Keine Verschlüsselung.KMS_KEY_ID = 'string'
(gilt nur fürAWS_SSE_KMS
-Verschlüsselung)Gibt optional die ID für den AWS-KMS-verwalteten Schlüssel an, der zum Verschlüsseln von Dateien verwendet wird, die in den Bucket geschrieben wurden. Wenn kein Wert angegeben wird, werden die Dateien zum Schreiben von Daten mit Ihrem standardmäßigen KMS-Schlüssel verschlüsselt.
Beachten Sie, dass dieser Wert beim Lesen von Daten ignoriert wird.
Google Cloud Storage
STORAGE_PROVIDER = 'GCS'
Gibt den Cloudspeicheranbieter an, der Ihre Datendateien speichert.
STORAGE_BASE_URL = 'gcs://bucket[/path/]'
Gibt die Basis-URL für Ihren Cloudspeicherort an, wobei:
bucket
ist der Name eines Cloud Storage-Buckets, in dem Ihre Datendateien gespeichert sind.
path
ist ein optionaler Pfad, mit dem Sie Objekte im Bucket genauer steuern können.ENCRYPTION = ( [ TYPE = 'GCS_SSE_KMS' ] [ KMS_KEY_ID = 'string' ] | [ TYPE = 'NONE' ] )
Gibt die Eigenschaften an, die zur Verschlüsselung von Daten auf dem externen Volume erforderlich sind.
TYPE = ...
Gibt den verwendeten Verschlüsselungstyp an. Mögliche Werte sind:
GCS_SSE_KMS
: Serverseitige Verschlüsselung mit in KMS gespeicherten Schlüsseln. Weitere Informationen dazu finden Sie unter vom Kunden verwaltete Verschlüsselungsschlüssel.
NONE
: Keine Verschlüsselung.KMS_KEY_ID = 'string'
(gilt nur fürGCS_SSE_KMS
-Verschlüsselung)Gibt die ID für den Cloud-KMS-verwalteten Schlüssel an, der zum Verschlüsseln von Dateien verwendet wird, die in den Bucket geschrieben wurden.
Dieser Wert wird beim Lesen von Daten ignoriert. Die Leseoperation sollte erfolgreich sein, wenn das Dienstkonto über ausreichende Berechtigungen für die Daten und alle angegebenen KMS-Schlüssel verfügt.
Microsoft Azure
STORAGE_PROVIDER = 'AZURE'
Gibt den Cloudspeicheranbieter an, der Ihre Datendateien speichert.
AZURE_TENANT_ID = 'tenant_id'
Gibt die ID Ihres Office 365-Mandanten an, zu dem die zulässigen und gesperrten Speicherkonten gehören. Die Authentifizierung eines externen Volumes kann nur für einen einzigen Mandanten erfolgen. Daher müssen sich die zulässigen und blockierten Speicherorte auf Speicherkonten beziehen, die alle zu diesem einen Mandanten gehören.
Melden Sie sich beim Azure-Portal an, und klicken Sie auf Azure Active Directory » Properties, um Ihre Mandanten-ID zu ermitteln. Die Mandanten-ID wird im Feld Tenant ID angezeigt.
STORAGE_BASE_URL = 'azure://account.blob.core.windows.net/container[/path/]'
Gibt die Basis-URL für Ihren Cloudspeicherort an, wobei:
account
ist der Name Ihres Azure-Kontos, z. B.myaccount
.
container
ist der Name des Azure-Containers, in dem Ihre Datendateien gespeichert sind.
path
ist ein optionaler Pfad, mit dem Sie logische Verzeichnisse im Container genauer steuern können.
Anforderungen an die Zugriffssteuerung¶
Eine Rolle, die zur Ausführung dieses SQL-Befehls verwendet wird, muss mindestens die folgenden Berechtigungen haben:
Berechtigung |
Objekt |
Anmerkungen |
---|---|---|
OWNERSHIP |
Externes Volume |
OWNERSHIP is a special privilege on an object that is automatically granted to the role that created the object, but can also be transferred using the GRANT OWNERSHIP command to a different role by the owning role (or any role with the MANAGE GRANTS privilege). |
Eine Anleitung zum Erstellen einer kundenspezifischen Rolle mit einer bestimmten Gruppe von Berechtigungen finden Sie unter Erstellen von kundenspezifischen Rollen.
Allgemeine Informationen zu Rollen und Berechtigungen zur Durchführung von SQL-Aktionen auf sicherungsfähigen Objekten finden Sie unter Übersicht zur Zugriffssteuerung.
Nutzungshinweise¶
Metadaten:
Achtung
Kunden müssen sicherstellen, dass bei der Nutzung des Snowflake-Dienstes keine personenbezogenen Daten (außer für ein Objekt „Benutzer“), sensible Daten, exportkontrollierte Daten oder andere regulierte Daten als Metadaten eingegeben werden. Weitere Informationen dazu finden Sie unter Metadatenfelder in Snowflake.
Beispiele¶
Im folgenden Beispiel wird der Speicherort my-us-east-1
aus dem externen Volume exvol1
entfernt:
ALTER EXTERNAL VOLUME exvol1 REMOVE STORAGE_LOCATION 'my-us-east-1';
Im folgenden Beispiele wird ein Speicherort zu einem externen Volume hinzugefügt:
Amazon S3
ALTER EXTERNAL VOLUME exvol1
ADD STORAGE_LOCATION =
(
NAME = 'my-s3-us-central-2'
STORAGE_PROVIDER = 'S3'
STORAGE_BASE_URL = 's3://my_bucket_us_central-1/'
STORAGE_AWS_ROLE_ARN = 'arn:aws:iam::123456789012:role/myrole'
);
Google Cloud Storage
ALTER EXTERNAL VOLUME exvol2
ADD STORAGE_LOCATION =
(
NAME = 'my-gcs-europe-west4'
STORAGE_PROVIDER = 'GCS'
STORAGE_BASE_URL = 'gcs://my_bucket_europe-west4/'
);
Microsoft Azure
ALTER EXTERNAL VOLUME exvol3
ADD STORAGE_LOCATION =
(
NAME = 'my-azure-japaneast'
STORAGE_PROVIDER = 'AZURE'
STORAGE_BASE_URL = 'azure://sfcdev1.blob.core.windows.net/my_container_japaneast/'
AZURE_TENANT_ID = 'a9876545-4321-987b-b23c-2kz436789d0'
);