Mit dem AWS Glue Iceberg-REST-Endpunkt eine Verbindung zum Datenkatalog herstellen - AWS Glue

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Mit dem AWS Glue Iceberg-REST-Endpunkt eine Verbindung zum Datenkatalog herstellen

Der Iceberg-REST-Endpunkt von AWS Glue unterstützt API-Operationen, die in der Apache-Iceberg-REST-Spezifikation spezifiziert sind. Mit einem Iceberg-REST-Client können Sie Ihre auf einer Analyse-Engine ausgeführte Anwendung mit dem im Datenkatalog gehosteten REST-Katalog verbinden.

Der Endpunkt unterstützt beide Apache-Iceberg-Tabellenspezifikationen – v1 und v2, wobei standardmäßig v2 verwendet wird. Wenn Sie die Iceberg-Tabellenspezifikation v1 verwenden, müssen Sie v1 im API-Aufruf angeben. Mit der API-Operation können Sie auf Iceberg-Tabellen zugreifen, die sowohl im Amazon-S3-Objektspeicher als auch im Amazon-S3-Tables-Speicher gespeichert sind.

Endpunktkonfiguration

Sie können über den Service-Endpunkt auf den AWS Glue Iceberg-REST-Katalog zugreifen. Die regionsspezifischen Endpunkte finden Sie im Referenzhandbuch zu den AWS Glue -Service-Endpunkten. Wenn Sie beispielsweise eine Verbindung zu AWS Glue in der Region us-east-1 herstellen, müssen Sie die Eigenschaft „Endpunkt-URI“ wie folgt konfigurieren:

Endpoint : https://glue.us-east-1.amazonaws.com/iceberg

Zusätzliche Konfigurationseigenschaften: Wenn Sie den Iceberg-Client verwenden, um eine Analyse-Engine wie Spark mit dem Service-Endpunkt zu verbinden, müssen Sie die folgenden Anwendungskonfigurationseigenschaften angeben:

catalog_name = "mydatacatalog"
aws_account_id = "123456789012"
aws_region = "us-east-1"
spark = SparkSession.builder \
    ... \
    .config("spark.sql.defaultCatalog", catalog_name) \
    .config(f"spark.sql.catalog.{catalog_name}", "org.apache.iceberg.spark.SparkCatalog") \
    .config(f"spark.sql.catalog.{catalog_name}.type", "rest") \
    .config(f"spark.sql.catalog.{catalog_name}.uri", "https://glue.{aws_region}.amazonaws.com/iceberg") \
    .config(f"spark.sql.catalog.{catalog_name}.warehouse", "{aws_account_id}") \
    .config(f"spark.sql.catalog.{catalog_name}.rest.sigv4-enabled", "true") \
    .config(f"spark.sql.catalog.{catalog_name}.rest.signing-name", "glue") \    
    .config("spark.sql.extensions","org.apache.iceberg.spark.extensions.IcebergSparkSessionExtensions") \
    .getOrCreate()
     

AWS Glue Der Iceberg-Endpunkt https://glue.us-east-1.amazonaws.com/iceberg unterstützt den folgenden Iceberg-REST: APIs

  • GetConfig

  • ListNamespaces

  • CreateNamespace

  • LoadNamespaceMetadata

  • UpdateNamespaceProperties

  • DeleteNamespace

  • ListTables

  • CreateTable

  • LoadTable

  • TableExists

  • UpdateTable

  • DeleteTable

Präfix- und Katalogpfadparameter

Der Iceberg-REST-Katalog enthält in APIs seiner Anfrage ein Präfix in freier Form. URLs Beispielsweise verwendet der ListNamespaces API-Aufruf das GET/v1/{prefix}/namespaces URL-Format. AWS Glue Das Präfix folgt immer der /catalogs/{catalog} Struktur, um sicherzustellen, dass der REST-Pfad der Hierarchie mit AWS Glue mehreren Katalogen entspricht. Der {catalog}-Pfadparameter kann auf der Grundlage der folgenden Regeln abgeleitet werden:

Zugriffsmuster

Glue-Katalog-ID-Stil

Präfix-Stil

Beispiel für eine Standard-Katalog-ID

Beispiel für eine REST-Route

Zugriff auf den Standardkatalog im aktuellen Konto

Nicht erforderlich :

Nicht zutreffend

GET /v1/catalogs/:/namespaces

Zugriff auf den Standardkatalog in einem bestimmten Konto

accountID accountID 111122223333 GET /v1/catalogs/111122223333/namespaces

Zugriff auf einen verschachtelten Katalog im aktuellen Konto

catalog1/catalog2

catalog1/catalog2

rmscatalog1:db1

HOLEN SIE SICH /v1/ catalogs/rmscatalog1:db1/namespaces

Zugriff auf einen verschachtelten Katalog in einem bestimmten Konto

accountId:catalog1/catalog2

accountId:catalog1/catalog2

123456789012/rmscatalog1:db1

GET /v1/catalogs/123456789012:rmscatalog1:db1/namespaces

Diese Zuordnung von Katalog-ID zu Präfix ist nur erforderlich, wenn Sie den REST direkt aufrufen. APIs Wenn Sie mit dem AWS Glue Iceberg-REST-Katalog APIs über eine Engine arbeiten, müssen Sie die AWS Glue Katalog-ID im warehouse Parameter für Ihre Iceberg-REST-Katalog-API-Einstellung oder im glue.id Parameter für Ihre AWS Glue Erweiterungs-API-Einstellung angeben. Informationen zur Verwendung mit EMR Spark finden Sie unter Verwenden Sie einen Iceberg-Cluster mit Spark.

Namespace-Pfadparameter

Namespaces im APIs Iceberg-REST-Katalogpfad können mehrere Ebenen haben. AWS Glue unterstützt jedoch nur einstufige Namespaces. Um auf einen Namespace in einer mehrstufigen Kataloghierarchie zuzugreifen, können Sie eine Verbindung zu einem übergeordneten mehrstufigen Katalog herstellen, um auf den Namespace zu verweisen. Dadurch kann jede Abfrage-Engine, die die dreiteilige Notation unterstützt, im Vergleich catalog.namespace.table zur Verwendung des mehrstufigen AWS Glue Namespaces ohne Kompatibilitätsprobleme auf Objekte in der mehrstufigen Kataloghierarchie zugreifen.