Zum Inhalt springen

S3-Iceberg-Import

Voraussetzungen

Das Laden einer Iceberg-Datei von S3 erfordert sowohl die Erweiterung httpfs als auch iceberg. Installieren Sie sie mit dem SQL-Befehl INSTALL. Erweiterungen müssen Sie nur einmal installieren.

INSTALL httpfs;
INSTALL iceberg;

Um die Erweiterungen zu laden, verwenden Sie den Befehl LOAD:

LOAD httpfs;
LOAD iceberg;

Anmeldedaten

Nachdem die Erweiterungen geladen sind, richten Sie die Anmeldedaten und die S3-Region zum Lesen ein. Sie können entweder einen Access Key und ein Secret oder ein Token verwenden.

CREATE SECRET (
TYPE s3,
KEY_ID '⟨AKIAIOSFODNN7EXAMPLE⟩',
SECRET '⟨wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY⟩',
REGION '⟨us-east-1⟩'
);

Um Anmeldedaten stattdessen automatisch abzurufen – oder um ein benanntes Profil, SSO oder eine übernommene Rolle zu verwenden – siehe die aws-Erweiterung. Der Standard sieht so aus:

CREATE SECRET (
TYPE s3,
PROVIDER credential_chain
);

Iceberg-Tabellen von S3 laden

Nachdem die Erweiterungen eingerichtet und die S3-Anmeldedaten korrekt konfiguriert sind, können Iceberg-Tabellen mit folgendem Befehl von S3 gelesen werden:

SELECT *
FROM iceberg_scan('s3://⟨bucket⟩/⟨iceberg_table_folder⟩/metadata/⟨id⟩.metadata.json');

Beachten Sie, dass Sie direkt auf die Manifest-Datei verweisen müssen. Andernfalls erhalten Sie einen Fehler wie diesen:

Terminal window
IO Error:
Cannot open file "s3://bucket/iceberg_table_folder/metadata/version-hint.text": No such file or directory