Connessione al Data Catalog utilizzando l'endpoint REST AWS Glue Iceberg - AWS Glue

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Connessione al Data Catalog utilizzando l'endpoint REST AWS Glue Iceberg

L'endpoint AWS Glue Iceberg Rest supporta le operazioni API specificate nella specifica di Apache Iceberg REST. Utilizzando un client Iceberg REST, è possibile collegare l'applicazione in esecuzione su un motore di analisi al catalogo REST ospitato nel Catalogo dati.

L'endpoint supporta entrambe le specifiche delle tabelle Apache Iceberg: v1 e v2, con l'impostazione predefinita su v2. Quando si utilizza la specifica della tabella Iceberg v1, occorre specificare v1 nella chiamata API. Usando l'operazione API, è possibile accedere alle tabelle Iceberg archiviate sia nello storage degli oggetti Amazon S3 che nello storage delle Tabelle Amazon S3.

Configurazione dell'endpoint

È possibile accedere al catalogo AWS Glue Iceberg REST utilizzando l'endpoint del servizio. Per l'endpoint specifico della regione, consulta la guida di riferimento agli endpoint del servizio AWS Glue. Ad esempio, quando ti connetti ad AWS Glue nella regione us-east-1, devi configurare la proprietà URI dell'endpoint come segue:

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

Proprietà di configurazione aggiuntive: quando usi il client Iceberg per connettere un motore di analisi come Spark all'endpoint del servizio, devi specificare le seguenti proprietà di configurazione dell'applicazione:

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 L'endpoint Iceberg https://glue.us-east-1.amazonaws.com/iceberg supporta i seguenti Iceberg REST: APIs

  • GetConfig

  • ListNamespaces

  • CreateNamespace

  • LoadNamespaceMetadata

  • UpdateNamespaceProperties

  • DeleteNamespace

  • ListTables

  • CreateTable

  • LoadTable

  • TableExists

  • UpdateTable

  • DeleteTable

Parametri del percorso del catalogo e del prefisso

Il catalogo Iceberg REST APIs ha un prefisso in formato libero nella richiesta. URLs Ad esempio, la chiamata ListNamespaces API utilizza il formato URL. GET/v1/{prefix}/namespaces AWS Glue il prefisso segue sempre la /catalogs/{catalog} struttura per garantire che il percorso REST allinei la gerarchia AWS Glue multicatalogo. Il parametro di percorso {catalog} può essere derivato in base alle seguenti regole:

Schema di accesso

Stile ID Catalogo Glue

Stile del prefisso

Esempio di ID catalogo predefinito

Esempio di percorso REST

Accedi al catalogo predefinito nell'account corrente

non obbligatorio :

non applicabile

GET /v1/catalogs/:/namespaces

Accesso al catalogo predefinito in un account specifico

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

Accesso a un catalogo annidato nell'account corrente

catalog1/catalog2

catalog1/catalog2

rmscatalog1:db1

OTTIENI /v1/ catalogs/rmscatalog1:db1/namespaces

Accesso a un catalogo annidato in uno specifico account

accountId:catalog1/catalog2

accountId:catalog1/catalog2

123456789012/rmscatalog1:db1

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

Questa mappatura tra l'ID del catalogo e il prefisso è richiesta solo quando si chiama direttamente REST. APIs Quando lavori con il catalogo REST di AWS Glue Iceberg APIs tramite un motore, devi specificare l'ID del AWS Glue catalogo nel warehouse parametro per l'impostazione dell'API del catalogo Iceberg REST o nel glue.id parametro per l' AWS Glue impostazione dell'API delle estensioni. Scopri come utilizzarlo ad esempio con EMR Spark in Utilizza un cluster Iceberg con Spark.

Parametro del percorso namespace

I namespace nel percorso del catalogo REST di Iceberg possono avere più livelli APIs . Tuttavia, AWS Glue supporta solo namespace a livello singolo. Per accedere a un namespace in una gerarchia di cataloghi multilivello, è possibile connettersi a un catalogo multilivello sopra il namespace per fare riferimento al namespace. Ciò consente a qualsiasi motore di query che supporti la notazione in 3 parti di accedere catalog.namespace.table agli oggetti nella gerarchia del catalogo a più livelli senza problemi AWS Glue di compatibilità rispetto all'utilizzo del namespace a più livelli.