

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
<a name="connect-glu-iceberg-rest"></a>

 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](https://docs.aws.amazon.com/general/latest/gr/glue.html#glue_region). 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
<a name="prefix-catalog-path-parameters"></a>

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](https://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-iceberg-use-spark-cluster.html).

## Parametro del percorso namespace
<a name="ns-path-param"></a>

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.