Interroga le tabelle Amazon DynamoDB con SQL utilizzando Amazon Athena - Prontuario AWS

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

Creato da Gavin Perrie (AWS), Ajit Ambike (AWS) e Brad Yates (AWS)

Riepilogo

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

Prerequisiti

  • Una tabella DynamoDB.

  • Un gruppo di lavoro Athena impostato per utilizzare il motore Athena versione 2. Per istruzioni, consulta la documentazione di Athena.

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

Limitazioni

  • Le operazioni di scrittura come INSERT INTO non sono supportate.

Versioni del prodotto

Architettura

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.

Strumenti

Servizi AWS

  • Amazon Athena è 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, uno strumento creato utilizzando Amazon Athena Query Federation SDK e installato come applicazione tramite. AWS Lambda AWS Serverless Application Repository

  • Amazon DynamoDB è un servizio di database NoSQL interamente gestito che offre prestazioni elevate, prevedibili e scalabili.

  • AWS Lambda è 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) è 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.

Epiche

AttivitàDescrizioneCompetenze richieste

Implementa l' AthenaDynamoDBConnector applicazione.

Per eseguire la distribuzione AthenaDynamoDBConnecter, effettuate le seguenti operazioni:

  1. Accedi a e scegli Regione AWS quello che stai utilizzando per la tabella DynamoDB e lo spill bucket. AWS Management Console

  2. Aprire il Serverless https://console.aws.amazon.com/serverlessrepo/ Application Repository all'indirizzo.

  3. Nel riquadro di navigazione, scegli Applicazioni disponibili.

  4. Per l'accesso AWS Identity and Access Management (IAM), nella barra di ricerca, seleziona la casella di controllo Mostra app che creano ruoli IAM personalizzati o politiche delle risorse.

  5. Cerca e seleziona AthenaDynamoDBConnectore assicurati che l'autore elencato sia Amazon Athena Federation.

  6. In Impostazioni dell'applicazione, inserisci i seguenti valori:

    • SpillBucket‒ Luogo in cui la funzione può trasferire dati.

    • AthenaCatalogName‒ Il nome della funzione Lambda che verrà creata. Il nome verrà utilizzato anche come nome dell'origine dati in Athena.

  7. Seleziona la casella di controllo per confermare la creazione di ruoli e policy IAM.

  8. Seleziona Deploy (Implementa).

AWS DevOps

Crea una fonte di dati per Athena.

Per creare l'origine dati, procedi come segue:

  1. Apri la console Athena all'indirizzo

    https://console.aws.amazon.com/athena/.

  2. Espandi il riquadro di navigazione e scegli Fonti di dati.

  3. Seleziona Create data source (Crea origine dati).

  4. Scegli Amazon DynamoDB.

  5. Inserisci il nome della fonte di dati.

  6. Seleziona la funzione Lambda che hai creato.

  7. Esamina i dettagli e scegli Crea origine dati.

AWS DevOps

Usa Athena per interrogare la tabella DynamoDB.

Per interrogare la tabella DynamoDB, procedi come segue:

  1. Nella console Athena, espandi il riquadro di navigazione e scegli Query editor.

  2. Nell'elenco a discesa Origine dati, scegli l'origine dati che hai creato.

  3. Verificare che le tabelle DynamoDB siano elencate in Tabelle.

  4. Eseguire la query.

Sviluppatore di app

Risoluzione dei problemi

ProblemaSoluzione

La query fallisce 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