Verwalten von Verzeichnistabellen

Unter diesem Thema wird eine Anleitung zum Erstellen und Verwalten externer oder interner Stagingbereiche mittels Verzeichnistabellen bereitgestellt.

Automatisches Aktualisieren der Metadaten von Verzeichnistabellen

Die Metadaten von Verzeichnistabellen können automatisch über den Ereignisbenachrichtigungsdienst Ihres Cloudspeicherdienstes aktualisiert werden.

Bei Aktualisierungsoperationen werden die Metadaten mit dem neuesten Satz zugeordneter Dateien im externen Stagingbereich und Pfad synchronisiert, d. h.:

  • Neue Dateien im Pfad werden zu den Tabellenmetadaten hinzugefügt.

  • Änderungen an Dateien im Pfad werden in den Tabellenmetadaten aktualisiert.

  • Dateien, die sich nicht mehr im Pfad befinden, werden aus den Tabellenmetadaten entfernt.

Eine Anleitung zum Erstellen von Stagingbereichen mit automatisch aktualisierten Verzeichnistabellen finden Sie unter Automatisiertes Aktualisieren der Metadaten von Verzeichnistabellen.

Bemerkung

Das automatische Aktualisieren der Metadaten von Verzeichnistabellen interner Stagingbereiche, die auf externe Cloudspeicher verweisen, ist nicht möglich. Für diese Typen von Stagingbereichen müssen Sie die Metadaten der Verzeichnistabelle manuell aktualisieren. Eine Anleitung dazu finden Sie unter Manuelles Aktualisieren einer Verzeichnistabelle (unter diesem Thema).

Wir empfehlen Ihnen, unsere Best Practices für das Staging Ihrer Datendateien zu befolgen und regelmäßig eine ALTER STAGE … REFRESH-Anweisung auszuführen, um fehlende Dateien zu registrieren. Für eine zufriedenstellende Leistung empfehlen wir außerdem die Verwendung eines selektiven Pfadpräfixes mit ALTER STAGE. Dadurch wird die Anzahl der Dateien reduziert, die aufgelistet und daraufhin geprüft werden müssen, ob sie bereits registriert wurden (z. B. bucket_name/YYYY/MM/DD/ oder auch bucket_name/YYYY/MM/DD/HH/, abhängig vom Volumen).

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 Automatisches Aktualisieren von Metadaten in Verzeichnistabellen (unter diesem Thema).

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

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);
Copy

Google Cloud Storage

CREATE STAGE mystage
  URL='gcs://load/files/'
  STORAGE_INTEGRATION = my_storage_int
  DIRECTORY = (ENABLE = TRUE);
Copy

Microsoft Azure

CREATE STAGE mystage
  URL='azure://myaccount.blob.core.windows.net/load/files/'
  STORAGE_INTEGRATION = my_storage_int
  DIRECTORY = (ENABLE = TRUE);
Copy

Manuelles Aktualisieren einer Verzeichnistabelle

Aktualisieren Sie die Metadaten in einer Verzeichnistabelle manuell mit dem Befehl ALTER STAGE.

Bemerkung

Das manuelle Aktualisieren von Metadaten in einem externen Stagingbereich verhindert, dass zur gleichen Zeit automatisierte Aktualisierungsoperationen ausgeführt werden. Die automatischen Aktualisierungen werden nach Abschluss der manuellen Aktualisierung fortgesetzt.

Beispiel:

ALTER STAGE mystage REFRESH;
Copy