Verwalten von Verzeichnistabellen¶
Unter diesem Thema wird eine Anleitung zum Erstellen und Verwalten externer oder interner Stagingbereiche mittels Verzeichnistabellen bereitgestellt.
Erstellen eines Stagingbereichs mit einer Verzeichnistabelle¶
Dieser Abschnitt enthält eine Anleitung zum Erstellen von Stagingbereichen (unter Verwendung von CREATE STAGE), die über eine Verzeichnistabelle zum Speichern von Metadaten über die Stagingdateien verfügen.
Bei Verzeichnistabellen in internen Stagingbereichen müssen die Metadaten manuell aktualisiert werden. Sie können auch für externe Stagingbereiche eine Verzeichnistabelle erstellen und die Metadaten manuell aktualisieren. Weitere Informationen zum automatischen Aktualisieren von Metadaten finden Sie unter Automatische Metadatenaktualisierungen.
Die Syntax für das Erstellen eines Stagingbereichs mit einer Verzeichnistabelle ist nahezu identisch mit dem Erstellen eines standardmäßigen externen oder internen Stagingbereichs. Setzen Sie den optionalen DIRECTORY-Parameter auf TRUE.
Die vollständige Syntax- und Parameterbeschreibung finden Sie unter CREATE STAGE. Um eine Verzeichnistabelle zu einem bestehenden Stagingbereich hinzuzufügen, verwenden Sie den Befehl ALTER STAGE … SET DIRECTORY.
Bemerkung
Nachdem Sie einen Stagingbereich mit einer Verzeichnistabelle erstellt haben, müssen Sie ALTER STAGE … REFRESH ausführen, um die Metadaten der Verzeichnistabelle manuell zu aktualisieren.
Beispiele¶
Erstellen Sie einen internen Stagingbereich namens mystage
, der eine Verzeichnistabelle enthält. Der Stagingbereich verweist auf ein Dateiformat mit dem Namen myformat
:
CREATE STAGE mystage DIRECTORY = (ENABLE = TRUE) FILE_FORMAT = myformat;
Erstellen Sie einen externen Stagingbereich namens mystage
, die eine Verzeichnistabelle enthält. Der Stagingbereich verweist auf einen Bucket oder Container mit dem Namen load
und dem Pfad files
. Sicherer Zugriff auf den Cloudspeicherort wird über die Speicherintegration my_storage_int
bereitgestellt:
Bemerkung
Der Speicherort im URL-Wert muss mit einem Schrägstrich (/
) enden.
Amazon S3
CREATE STAGE mystage
URL='s3://load/files/'
STORAGE_INTEGRATION = my_storage_int
DIRECTORY = (ENABLE = TRUE);
Google Cloud Storage
CREATE STAGE mystage
URL='gcs://load/files/'
STORAGE_INTEGRATION = my_storage_int
DIRECTORY = (ENABLE = TRUE);
Microsoft Azure
CREATE STAGE mystage
URL='azure://myaccount.blob.core.windows.net/load/files/'
STORAGE_INTEGRATION = my_storage_int
DIRECTORY = (ENABLE = TRUE);
Aktualisieren der Metadaten von Verzeichnistabellen¶
Automatische Aktualisierung¶
Sie können die Metadaten von Verzeichnistabellen automatisch über den Ereignisbenachrichtigungsdienst Ihres Cloudspeicherdienstes aktualisieren. Weitere Informationen zum Konfigurieren automatischer Aktualisierungen finden Sie unter Automatisiertes Aktualisieren der Metadaten von Verzeichnistabellen.
Manuelle Aktualisierung¶
Bemerkung
Manuelle Aktualisierungen in einem externen Stagingbereich blockieren gleichzeitige automatische Aktualisierungen. Die automatischen Aktualisierungen werden nach Abschluss der manuellen Aktualisierung fortgesetzt.
Manuelle Aktualisierungen führen eine Listenoperation auf einem Stagingbereich aus und können für große oder schnell wachsende Stagingbereiche langsam oder teuer sein. Verwenden Sie stattdessen ereignisbasierte automatische Aktualisierungen.
Um die Metadaten in einer Verzeichnistabelle manuell zu aktualisieren, verwenden Sie den Befehl ALTER STAGE.
Die beste Leistung erzielen Sie, wenn Sie einen selektiven SUBPATH
mit ALTER STAGE verwenden. Dadurch wird die Anzahl der Dateien, die aufgelistet und überprüft werden müssen, reduziert. Weitere Informationen zum Organisieren Ihrer Daten nach Pfaden finden Sie unter Best Practices für das Staging Ihrer Datendateien.
Beispiel:
ALTER STAGE my_stage REFRESH SUBPATH = '2024/01/31';
Der Befehl gibt die folgenden Spalten zurück:
Spalte |
Beschreibung |
---|---|
|
Name der bereitgestellten Quelldatei und relativer Pfad zur Datei. |
|
Status: REGISTERED_NEW, REGISTERED_UPDATE, REGISTER_SKIPPED, REGISTER_FAILED, UNREGISTERED oder UNREGISTER_FAILED. |
|
Detaillierte Beschreibung des Registrierungsstatus der Datei. |