Zum Inhalt springen

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 core verwenden 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 glue immer einen Endpunkt der Form glue.⟨region⟩.amazonaws.com/iceberg, der für Regionen falsch ist, die nicht das einfache Suffix amazonaws.com verwenden (insbesondere die AWS-China-Regionen cn-north-1 und cn-northwest-1, die amazonaws.com.cn verwenden). Für solche Regionen hängen Sie mit einem expliziten ENDPOINT (mit dem richtigen Host) zusammen mit AUTHORIZATION_TYPE 'sigv4' an, statt ENDPOINT_TYPE zu 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.