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à.
Accesso alle tabelle utilizzando l’endpoint Iceberg REST di Tabelle Amazon S3
È possibile collegare il client Iceberg REST all’endpoint Iceberg REST di Tabelle Amazon S3 ed effettuare chiamate REST API per creare, aggiornare o sottoporre a query le tabelle nei bucket di tabelle S3. L'endpoint implementa un set di standard Iceberg REST APIs specificato nella specifica Apache Iceberg RESTCatalog Open API
Nota
L'Iceberg RESTendpoint Amazon S3 Tables può essere utilizzato per accedere alle tabelle nelle implementazioni del catalogo AWS Partner Network (APN) o alle implementazioni di cataloghi personalizzati. Può essere utilizzato anche se è necessario solo l' read/write accesso di base a un singolo bucket di tabelle. Per altri scenari di accesso, consigliamo di utilizzare l' AWS Glue Iceberg RESTendpoint per connettersi alle tabelle, che fornisce una gestione unificata delle tabelle, una governance centralizzata e un controllo granulare degli accessi. Per ulteriori informazioni, consulta Accesso alle tabelle Amazon S3 utilizzando l’endpoint AWS Glue Iceberg REST
Configurazione dell’endpoint
Ci si connette all’endpoint Iceberg REST di Tabelle Amazon S3 utilizzando l’endpoint del servizio. Gli endpoint Iceberg REST di Tabelle S3 hanno il formato seguente:
https://s3tables.<REGION>.amazonaws.com/iceberg
Fai riferimento a Endpoint e Regioni AWS di Tabelle S3 per gli endpoint specifici della Regione.
Proprietà della configurazione del catalogo
Quando si utilizza un client Iceberg per connettere un motore di analisi all’endpoint del servizio, è necessario specificare le seguenti proprietà di configurazione quando si inizializza il catalogo. Sostituiscili placeholder values con le informazioni relative alla tua regione e al tuo bucket di tabella.
L’endpoint specifico della Regione come l’URI dell’endpoint:
https://s3tables.<REGION>.amazonaws.com/icebergL’ARN del bucket di tabelle come posizione del warehouse:
arn:aws:s3tables:<region>:<accountID>:bucket/<bucketname>Proprietà Sigv4 per l’autenticazione. Il nome di firma SigV4 per le richieste degli endpoint del servizio è:
s3tables
I seguenti esempi illustrano come configurare client diversi per utilizzare l’endpoint Iceberg REST di Tabelle Amazon S3.
Autenticazione e autorizzazione dell’accesso all’endpoint
Le richieste API agli endpoint del servizio S3 Tables vengono autenticate utilizzando AWS Signature Version 4 (SigV4). Consulta AWS Signature Version 4 per le richieste API per saperne di più su SigV4. AWS
Il nome di firma SigV4 per le richieste degli endpoint Iceberg REST di Tabelle Amazon S3 è: s3tables
Le richieste all’endpoint Iceberg REST di Tabelle Amazon S3 sono autorizzate utilizzando azioni IAM s3tables che corrispondono alle operazioni REST API. Queste autorizzazioni possono essere definite in policy basate su identità IAM o in policy basate su risorse collegate a tabelle e bucket di tabelle. Per ulteriori informazioni, consulta Gestione degli accessi per Tabelle S3.
È possibile monitorare le richieste effettuate alle tabelle tramite l’endpoint REST con AWS CloudTrail. Le richieste verranno registrate nei log come azioni IAM S3 corrispondenti. Ad esempio, un’API LoadTable genererà un evento di gestione per l’operazione GetTableMetadataLocation e un evento di dati per l’operazione GetTableData. Per ulteriori informazioni, consulta Registrazione con AWS CloudTrail per Tabelle S3.
Prefisso e parametri di percorso
Iceberg REST APIs i cataloghi hanno un prefisso in formato libero nella richiesta. URLs Ad esempio, la chiamata API ListNamespaces utilizza il formato URL GET/v1/{prefix}/namespaces. Per Tabelle S3, il {prefix} del percorso REST è sempre l’ARN del bucket di tabelle con codifica URL.
Ad esempio, per il seguente ARN di bucket di tabelle: arn:aws:s3tables: il prefisso sarebbe: us-east-1:111122223333:bucket/bucketnamearn%3Aaws%3As3tables%3A us-east-1%3A111122223333%3Abucket%2Fbucketname
Parametro del percorso namespace
I namespace in un percorso API del catalogo Iceberg REST possono avere più livelli. Tuttavia, Tabelle S3 supporta solo namespace con un singolo livello. Per accedere a un namespace in una gerarchia di cataloghi con più livelli, è possibile connettersi a un catalogo con più livelli sopra il namespace per fare riferimento al namespace. Ciò consente a qualsiasi motore di query che supporti la notazione in tre parti catalog.namespace.table di accedere agli oggetti nella gerarchia del catalogo di Tabelle S3 senza problemi di compatibilità rispetto all’utilizzo del namespace multilivello.
Operazioni Iceberg REST API supportate
La tabella seguente contiene i REST di Iceberg supportati APIs e il modo in cui corrispondono alle azioni di S3 Tables.
| Operazione Iceberg REST | Percorso REST | Azione IAM di Tabelle S3 | CloudTrail EventName |
|---|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Considerazioni e limitazioni
Di seguito sono riportate le considerazioni e le limitazioni relative all’utilizzo dell’endpoint Iceberg REST di Tabelle Amazon S3.
Considerazioni
CreateTable Comportamento dell'API:
stage-createl'opzione non è supportata per questa operazione e genera un400 Bad Requesterrore. Ciò significa che non è possibile creare una tabella dai risultati della query utilizzandoCREATE TABLE AS SELECT(CTAS).DeleteTable Comportamento delle API: è possibile eliminare le tabelle solo con l'eliminazione abilitata. L’eliminazione di tabelle con
purge=falsenon è supportata e genera un errore400 Bad Request. Alcune versioni di Spark impostano sempre questo flag su false anche quando eseguono i comandiDROP TABLE PURGE. Puoi provareDROP TABLE PURGEo utilizzare l'DeleteTableoperazione S3 Tables per eliminare una tabella.-
L’endpoint supporta solo le operazioni standard sui metadati delle tabelle. Per la manutenzione delle tabelle, come la gestione e la compattazione di snapshot, utilizza le operazioni API di manutenzione di Tabelle S3. Per ulteriori informazioni, consulta Manutenzione di Tabelle S3.
Limitazioni
I namespace multilivello non sono supportati.
OAuthl'autenticazione basata non è supportata.
Solo la proprietà
ownerè supportata per i namespace.I dati relativi alla visualizzazione APIs definiti nella specifica Apache Iceberg REST Open API
non sono supportati. L'esecuzione di operazioni su una tabella con un
metadata.jsonfile di dimensioni superiori a 50 MB non è supportata e restituirà un errore.400 Bad RequestPer controllare la dimensione dei filemetadata.json, utilizza le operazioni di manutenzione delle tabelle. Per ulteriori informazioni, consulta Manutenzione di Tabelle S3.