Amazon SageMaker Lakehouse (AWS Glue)
Die Unterstützung für Amazon SageMaker Lakehouse (AWS Glue) ist derzeit experimentell.
Die iceberg-Erweiterung unterstützt das Lesen von Iceberg-Tabellen über den Katalog Amazon SageMaker Lakehouse (auch bekannt als AWS Glue).
Voraussetzungen
Installieren Sie dazu die folgenden Erweiterungen:
INSTALL aws;INSTALL httpfs;INSTALL iceberg;Wenn Sie wieder Erweiterungen aus dem Repository
coreverwenden möchten, folgen Sie der Erweiterungsdokumentation.
Verbindung mit Amazon SageMaker Lakehouse (AWS Glue)
Legen Sie mit dem Secrets Manager ein S3-Secret an:
CREATE SECRET ( TYPE s3, PROVIDER credential_chain, CHAIN sts, ASSUME_ROLE_ARN 'arn:aws:iam::⟨account_id⟩:role/⟨role⟩', REGION 'us-east-2');In diesem Beispiel verwenden wir ein STS-Token, aber andere Authentifizierungsmethoden werden unterstützt.
Verbinden Sie sich anschließend mit dem Katalog:
ATTACH '⟨account_id⟩' AS glue_catalog ( TYPE iceberg, ENDPOINT 'glue.⟨REGION⟩.amazonaws.com/iceberg', AUTHORIZATION_TYPE 'sigv4');Oder alternativ:
ATTACH '⟨account_id⟩' AS glue_catalog ( TYPE iceberg, ENDPOINT_TYPE 'glue');Warning Wie bei Amazon S3 Tables baut
ENDPOINT_TYPE glueimmer einen Endpunkt der Formglue.⟨region⟩.amazonaws.com/iceberg, der für Regionen falsch ist, die nicht das einfache Suffixamazonaws.comverwenden (insbesondere die AWS-China-Regionencn-north-1undcn-northwest-1, dieamazonaws.com.cnverwenden). Für solche Regionen hängen Sie mit einem explizitenENDPOINT(mit dem richtigen Host) zusammen mitAUTHORIZATION_TYPE 'sigv4'an, stattENDPOINT_TYPEzu verwenden.
Die Warehouse-Kennung (das erste Argument von ATTACH) akzeptiert die folgenden Formen:
| Warehouse | Bedeutung |
|---|---|
: |
Der Standardkatalog des Kontos des Aufrufers. |
⟨account_id⟩ |
Eine 12-stellige AWS-Konto-ID. |
⟨account_id⟩:⟨catalog⟩ |
Ein benannter Katalog im angegebenen Konto. |
⟨catalog⟩/⟨sub_catalog⟩ |
Ein verschachtelter (föderierter) Katalog. |
⟨account_id⟩:⟨catalog⟩/⟨sub_catalog⟩ |
Ein verschachtelter Katalog im angegebenen Konto. |
Um zu prüfen, ob das Anhängen funktioniert hat, listen Sie alle Tabellen auf:
SHOW ALL TABLES;Sie können eine Tabelle wie folgt abfragen:
SELECT count(*)FROM glue_catalog.⟨namespace_name⟩.⟨table_name⟩;Wenn Sie einen von S3 Tables föderierten Katalog haben, können Sie eine Tabelle mit der üblichen CREATE TABLE-Syntax anlegen;
CREATE TABLE glue_catalog.⟨namespace_name⟩.⟨table_name⟩ (a INTEGER, b VARCHAR);Wenn der Katalog nicht von S3 Tables föderiert ist, müssen Sie möglicherweise eine Tabelleneigenschaft location übergeben. Das geht mit der Klausel WITH.
CREATE TABLE glue_catalog.⟨namespace_name⟩.⟨table_name⟩ (a INTEGER, b VARCHAR)WITH ( 'location' = 's3://path/to/location');Mehr zur Klausel WITH erfahren Sie unter Tabelleneigenschaften.