

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à.

# Interroga le tabelle Amazon DynamoDB con SQL utilizzando Amazon Athena
<a name="query-amazon-dynamodb-tables-sql-amazon-athena"></a>

*Gavin Perrie, Ajit Ambike e Brad Yates, Amazon Web Services*

## Riepilogo
<a name="query-amazon-dynamodb-tables-sql-amazon-athena-summary"></a>

Se i tuoi dati includono fonti diverse da Amazon Simple Storage Service (Amazon S3), puoi utilizzare query federate per accedere a tali origini dati relazionali, non relazionali, a oggetti o personalizzate. Questo modello mostra come configurare l'accesso alle query federate tramite Amazon Athena ad Amazon DynamoDB utilizzando un connettore di origine dati SQL.

Utilizzando questo pattern puoi fare quanto segue:
+ Interroga le tabelle DynamoDB utilizzando SQL.
+ Esegui query SQL federate in Athena e unisci tabelle DynamoDB con altre fonti di dati supportate.

## Prerequisiti e limitazioni
<a name="query-amazon-dynamodb-tables-sql-amazon-athena-prereqs"></a>

**Prerequisiti**
+ Una tabella DynamoDB.
+ Un gruppo di lavoro Athena impostato per utilizzare il motore Athena versione 2. Per istruzioni, consulta la documentazione di [Athena](https://docs.aws.amazon.com/athena/latest/ug/engine-versions-changing.html).
+ Un bucket S3 in cui la `AthenaDynamoDBConnector` AWS Lambda funzione può trasferire i dati. Il bucket S3 e la funzione Lambda devono trovarsi nella stessa regione AWS.

Se è la prima volta che accedi ad Athena, avrai bisogno di un bucket S3 aggiuntivo da utilizzare come posizione dei risultati della query. Per istruzioni, consulta la documentazione di [Athena](https://docs.aws.amazon.com/athena/latest/ug/querying.html#query-results-specify-location-console).

**Limitazioni**
+ Le operazioni di scrittura come [INSERT INTO](https://docs.aws.amazon.com/athena/latest/ug/insert-into.html) non sono supportate. ****

**Versioni del prodotto**
+ [Athena Query Federation rilascia il GitHub](https://github.com/awslabs/aws-athena-query-federation/releases)

## Architecture
<a name="query-amazon-dynamodb-tables-sql-amazon-athena-architecture"></a>

**Architettura Target**

Il diagramma seguente mostra il flusso di connessione dopo aver stabilito lo schema. L'utente si connette ad Amazon Athena per fornire la query. Athena passa la query e la destinazione alla funzione Lambda del connettore di origine dati DynamoDB, che recupera e restituisce i dati ad Athena. Se vengono restituite grandi quantità di dati, Athena archivia i risultati temporanei nel secchio di raccolta prima di imballare e restituire il set di dati completo.

![Flusso di lavoro dagli utenti ad Athena a Lambda, che si collega al bucket S3 e alla tabella DynamoDB.](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/9d1ee529-36f3-4c7e-a2e7-05b76e09a3d8/images/e50a00cf-a55a-4def-81d5-4d2755dc9a97.png)


## Tools (Strumenti)
<a name="query-amazon-dynamodb-tables-sql-amazon-athena-tools"></a>

**Servizi AWS**
+ [Amazon Athena](https://docs.aws.amazon.com/athena/latest/ug/what-is.html) è un servizio di query interattivo che ti aiuta ad analizzare i dati direttamente in Amazon Simple Storage Service (Amazon S3) utilizzando SQL standard. Questo modello utilizza [Amazon Athena DynamoDB Connector](https://github.com/awslabs/aws-athena-query-federation/tree/master/athena-dynamodb), uno strumento creato utilizzando Amazon Athena Query Federation SDK e installato come applicazione tramite. AWS Lambda AWS Serverless Application Repository
+ [Amazon DynamoDB](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Introduction.html) è un servizio di database NoSQL interamente gestito che offre prestazioni elevate, prevedibili e scalabili.
+ [AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html) è un servizio di calcolo che consente di eseguire il codice senza gestire i server o effettuarne il provisioning. Esegue il codice solo quando necessario e si ridimensiona automaticamente, quindi paghi solo per il tempo di elaborazione che utilizzi.
+ [Amazon Simple Storage Service (Amazon S3)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html) è un servizio di archiviazione degli oggetti basato sul cloud che consente di archiviare, proteggere e recuperare qualsiasi quantità di dati.

**Archivio di codice**

Il codice per questo pattern è disponibile nel repository GitHub [Athena Query Federation](https://github.com/awslabs/aws-athena-query-federation/releases).

## Epiche
<a name="query-amazon-dynamodb-tables-sql-amazon-athena-epics"></a>

### Configurare e testare il connettore di origine dati DynamoDB
<a name="set-up-and-test-the-ddb-data-source-connector"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Implementa l' AthenaDynamoDBConnector applicazione. | Per eseguire la distribuzione AthenaDynamoDBConnecter, effettuate le seguenti operazioni:[See the AWS documentation website for more details](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/query-amazon-dynamodb-tables-sql-amazon-athena.html) | AWS DevOps | 
| Crea una fonte di dati per Athena. | Per creare l'origine dati, procedi come segue:[See the AWS documentation website for more details](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/query-amazon-dynamodb-tables-sql-amazon-athena.html) | AWS DevOps | 
| Usa Athena per interrogare la tabella DynamoDB. | Per interrogare la tabella DynamoDB, procedi come segue:[See the AWS documentation website for more details](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/query-amazon-dynamodb-tables-sql-amazon-athena.html) | Sviluppatore di app | 

## risoluzione dei problemi
<a name="query-amazon-dynamodb-tables-sql-amazon-athena-troubleshooting"></a>


| Problema | Soluzione | 
| --- | --- | 
| *La query ha esito negativo con. `GENERIC_INTERNAL_ERROR: The bucket is in this region: <region>`* | Assicurati che lo spill bucket Athena e la funzione Lambda siano creati nello stesso ambiente. Regione AWS | 
| L'origine dati appena creata non è visibile sulla console Athena. | I cataloghi di dati Athena sono regionali. Assicurati che sia `AthenaDynamoDBConnector` stato schierato nella regione in cui stai cercando di usare Athena. | 
| Non è possibile eseguire la query sull'origine dati appena creata. | Verifica che la **posizione dei risultati della query** sia stata impostata. | 

## Risorse correlate
<a name="query-amazon-dynamodb-tables-sql-amazon-athena-resources"></a>
+ [Connettore Amazon Athena DynamoDB](https://github.com/awslabs/aws-athena-query-federation/tree/master/athena-dynamodb)
+ [Query federata Amazon Athena](https://docs.aws.amazon.com/athena/latest/ug/connect-to-a-data-source.html)