View a markdown version of this page

Connessione al catalogo dati tramite AWS Glue Endpoint REST Iceberg - AWS Aderenza

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 catalogo dati tramite AWS Glue Endpoint REST 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

Puoi accedere a AWS Glue Catalogo REST Iceberg che utilizza 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 Endpoint Iceberg https://glue.us-east-1.amazonaws.com/iceberg support supporta le seguenti API REST Iceberg:

  • GetConfig

  • ListNamespaces

  • CreateNamespace

  • LoadNamespaceMetadata

  • UpdateNamespaceProperties

  • DeleteNamespace

  • ListTables

  • CreateTable

  • LoadTable

  • TableExists

  • UpdateTable

  • DeleteTable

Autenticazione

Il AWS Glue L'endpoint REST di Iceberg supporta due metodi di autenticazione. Scegli il metodo che corrisponde al modo in cui il tuo motore di analisi o integrazione si connette al catalogo.

  • AWS Signature versione 4 (SIGv4) — L'impostazione predefinita per AWS SDK e AWS motori di analisi nativi che si autenticano con AWS credenziali.

  • Token portatore OAuth 2.0 — Per partner di integrazione esterni e motori di query di terze parti che utilizzano il modello di autenticazione OAuth definito dalla specifica del catalogo REST di Apache Iceberg. Il client presenta un token di accesso OAuth nel Authorization: Bearer intestazione su ogni richiesta.

Autenticazione con token portatori OAuth 2.0

I client esterni ottengono un token di accesso OAuth di breve durata da AWS Sign-In e presentalo al AWS Glue Endpoint REST Iceberg. AWS Glue convalida il token e lo applica AWS Lake Formation autorizzazioni su ogni richiesta. Per LoadTable operazione, le credenziali Amazon S3 che AWS Glue le vendite sono limitate dal ruolo IAM assunto e Lake Formation concede tale ruolo.

Questa integrazione utilizza l'OAuth 2.0 Token Exchange Grant (RFC 8693). Un partner di integrazione presenta il JSON Web Token (JWT) di un utente finale a AWS Sign-In e lo scambia con un token di accesso OAuth di breve durata con ambito di AWS Glue servizio. Il partner presenta quindi quel token al AWS Glue Endpoint REST Iceberg per leggere le tue tabelle.

Per la configurazione completa e i dettagli sullo scambio di token, consulta Configurare l'accesso OAuth a AWS Glue Catalogo REST Iceberg nel AWS Sign-In Guida per l'utente.

Parametri del percorso del catalogo e del prefisso

Le API del catalogo di Iceberg REST hanno un prefisso in formato libero negli URL di richiesta. Ad esempio, ListNamespaces La chiamata API utilizza GET/v1/{prefix}/namespaces Formato URL. AWS Glue il prefisso segue sempre il /catalogs/{catalog} struttura per garantire che il percorso REST allinei AWS Glue gerarchia multi-catalogo. Il parametro di percorso {catalog} può essere derivato in base alle seguenti regole:

Modello 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

OTTIENI/v1/catalogs/: /namespace

Accesso al catalogo predefinito in un account specifico

accountID accountID 111122223333 OTTIENI/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

contoId:catalog1/catalog2

contoId:catalog1/catalog2

123456789012/rmscatalog1: db1

OTTIENI/v1/catalogs/123456789012: rms catalog1:db1/namespaces

Questa mappatura tra ID catalogo e prefisso è richiesta solo quando si richiamano direttamente le API REST. Quando si lavora con AWS Glue Le API del catalogo REST di Iceberg tramite un motore, è necessario specificare AWS Glue ID del catalogo nel warehouse parametro per l'impostazione dell'API del catalogo REST di Iceberg o nel glue.id parametro per il tuo 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 nei percorsi delle API del catalogo di Iceberg REST possono avere più livelli. 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 qualsiasi motore di interrogazione che supporti la notazione in 3 parti di catalog.namespace.table per accedere agli oggetti in AWS Glue la gerarchia del catalogo a più livelli senza problemi di compatibilità rispetto all'utilizzo dello spazio dei nomi a più livelli.