Zephyrnet-logotyp

Visualisera MongoDB-data från Amazon QuickSight med Amazon Athena Federated Query

Datum:

I det här inlägget får du lära dig hur du använder Amazon Athena Federated Query att ansluta en MongoDB-databas till Amazon QuickSight för att bygga instrumentpaneler och visualiseringar.

Amazonas Athena är en serverlös interaktiv frågetjänst, baserad på Presto, som ger fullt ANSI SQL-stöd för att söka efter en mängd olika standarddataformat, inklusive CSV, JSON, ORC, Avro och Parquet, som lagras på Amazon enkel lagringstjänst (Amazon S3). För data som inte lagras på Amazon S3 kan du använda Athena Federated Query för att fråga efter data på plats eller bygga pipelines som extraherar data från flera datakällor och lagrar dem i Amazon S3. Med Athena Federated Query kan du köra SQL-frågor över data som lagras i relationella, icke-relationella, objekt- och anpassade datakällor.

MongoDB är ett populärt NoSQL-databasalternativ för webbplatser och API-slutpunkter. Du kan välja att distribuera MongoDB som en egenvärd eller helt hanterad databas. Databaser är ett populärt val för UI-applikationer för att hantera användarprofiler, produktkataloger, profilvyer, klickströmhändelser, händelser från en ansluten enhet och så vidare. QuickSight är en serverlös affärsanalystjänst med inbyggd maskininlärning (ML) som automatiskt kan leta efter mönster och extremvärden, och har flexibiliteten att bädda in instrumentpaneler i applikationer för en datadriven upplevelse. Du kan också använda QuickSight Q för att tillåta användare att ställa frågor med naturligt språk och hitta svar på affärsfrågor omedelbart.

Översikt över Athena Federated Query

Athena Federated Query använder datakällaanslutningar som körs på AWS Lambda för att köra federerade frågor till andra datakällor. Förbyggda datakällanslutningar är tillgängliga för inhemska butiker, som Amazon Timestream, Amazon CloudWatch-loggar, Amazon DynamoDB, och externa källor som Vertica och SAP Hana. Du kan också skriva en anslutning genom att använda Athena Query Federation SDK. Du kan anpassa Athenas förbyggda kontakter för eget bruk, eller ändra en kopia av källkoden för att skapa din egen AWS Serverless Application Repository paket.

Lösningsöversikt

Följande arkitekturdiagram visar komponenterna i Athena Federated Query MongoDB-anslutningen. Den innehåller följande komponenter:

  • Ett virtuellt privat moln (VPC) konfigurerat med offentliga och privata undernät över tre tillgänglighetszoner.
  • Ett MongoDB-kluster med anpassningsbara Amazon Elastic Block Store (Amazon EBS) lagring utplacerad i privata undernät och NAT-gateways i ett offentligt undernät för utgående internetanslutning för MongoDB-instanser.
  • Bastion värdar i en automatisk skalningsgrupp med elastiska IP-adresser för att tillåta inkommande SSH-åtkomst.
  • An AWS identitets- och åtkomsthantering (JAG ÄR) MongoDBnode roll med Amazon Elastic Compute Cloud (Amazon EC2) och Amazon S3-behörigheter.
  • Säkerhetsgrupper för att möjliggöra kommunikation inom VPC.
  • Lambdafunktioner utplacerade i ett privat undernät med åtkomst till S3-hinkar. Athena anropar Lambda-funktionen, som i sin tur hämtar data från MongoDB och mappar svaret tillbaka till Athena.
  • AWS Secrets Manager genom en VPC-slutpunkt.

Förutsättningar

För att implementera lösningen behöver du följande:

  • Ett AWS-konto för åtkomst till AWS-tjänster.
  • En IAM-användare med behörighet att CreateRole, ListRoles, GetPolicyoch AttachRolePolicy.
  • En IAM-användare med en åtkomstnyckel och hemlig nyckel för att konfigurera en integrerad utvecklingsmiljö (IDE).
  • En MongoDB-databas. Du kan distribuera en värd MongoDB på Amazon EC2 or MongoDB Atlas i en VPC.
  • Om du inte har en QuickSight-prenumeration konfigurerad, registrera dig för en. Du kan komma åt QuickSights kostnadsfria provperiod som en del av AWS gratis nivå alternativ.
  • En ny hemlighet i Secrets Manager för att lagra ditt MongoDB-användarnamn och lösenord.
  • Data laddas in i din MongoDB-databas. För det här exemplet använde vi en flygbolagsdatauppsättning. Ladda provdata antingen från MongoDB-kommandoraden eller MongoDB Atlas-användargränssnittet, om du använder MongoDB Atlas.

Konfigurera en Lambdakontakt

Det första steget i distributionen är att ställa in anslutningsmiljön. Athena använder datakälla-anslutningar som körs på Lambda för att köra federerade frågor. För att få kontakt med MongoDB, använd Amazon Athena DocumentDB Connector, som också fungerar med alla slutpunkter som är kompatibla med MongoDB.

Utför följande steg för att konfigurera en Lambda-kontakt:

  1. Välj på Athena-konsolen Datakällor i navigeringsfönstret.
  2. För att se en publicerad lista med datakällor för Athena, välj Amazon DocumentDB.
  3. Välja Nästa.
  4. I Datakälla detaljer avsnitt, ge din datakälla ett unikt namn; till exempel, ds_mongo.
    Detta kommer att vara anslutningsnamnet som visas under Datakällor för Athena.
  5. Välja Skapa Lambda-funktion.
    Detta startar sidan Skapa funktion i Lambda. Anslutningen distribueras med hjälp av AWS Serverless Application Repository.
  6. För Hemligt Namn Eller Prefix, stiga på mongo.
  7. För SpillBucket, stiga på spl-mongo-athena-test.
  8. För AthenaCatalogName, stiga på us-west-mongo-cat.
  9. För DocDBConnectionString (MongoDB-anslutningen), ange följande:
    mongodb://${docdb_instance_1_creds}@replace_with_mongodb_private_ip:27017/?authSource=admin&readPreference=secondaryPreferred&retryWrites=false; 

  10. För SecurityGroupIds, välj den säkerhetsgrupp som du vill koppla till funktionen. Se till att säkerhetsgruppen för MongoDB-instansen tillåter trafik från Lambda-funktionen.
  11. För SpillPrefix, stiga på athena-spill.
  12. För Subnetider, ange undernäts-ID:n för undernät med MongoDB-instanser.
    I det här fallet, Lambdaminne och LambdaTimeout har ställts in på maximala värden, men dessa kan variera beroende på frågekörning och minneskrav. SpillBucket är en S3-hink i ditt konto för att lagra data som överskrider Lambda-funktionens svarsstorleksgränser.
  13. Behåll resten som standard.
  14. Markera kryssrutan för bekräftelse välj Distribuera.
    Anslutningsfunktionen startas baserat på de givna parametrarna.
  15. Skapa en VPC-slutpunkt för att låta Lambda-funktionen komma åt Amazon S3 via en slutpunkt.
    Detta är för spillhinken. Spillhinken är ett lagringsområde för att kopiera resultaten av de frågor som utförs på MongoDB via Athena federation. Detta för att Lambdafunktionen i VPC:n ska kunna komma åt Amazon S3.
  16. Gå tillbaka till Athena-konsolen.
  17. Enligt Anslutningsdetaljer, För Lambdafunktion, välj den nyskapade Lambda-funktionen.
  18. Välja Nästa.

  19. För att verifiera anslutningen, välj på Athena-konsolen DatakällorOch välj sedan ds_mongo.
    Associerade databaser från anslutningen bör listas.

    Du bör nu kunna fråga datauppsättningarna från Athenas frågeredigerare genom att använda SQL.
  20. I frågeredigeraren, för Datakällaväljer ds_mongo.

Athena sammankopplar frågan med anslutningen, som anropar Lambda-funktionen. Sedan utförs frågan av funktionen på MongoDB, och frågeresultaten översätts tillbaka till Athena. Följande är ett exempel på en fråga som utfördes på flygbolagens datauppsättning.

Skapa en datauppsättning på QuickSight för att läsa data från MongoDB

Innan du startar QuickSight för första gången i ett AWS-konto måste du skapa ett konto. För instruktioner, se Logga in på Amazon QuickSight.

Efter den första installationen kan du skapa en datauppsättning med Athena som källa. QuickSight-tjänstrollen behöver tillstånd för att anropa Lambda-funktionen som ansluter MongoDB. De aws-quicksight-service-role-v0 service roll skapas automatiskt med QuickSight-kontot.

För att skapa en datauppsättning i QuickSight, utför följande steg:

  1. I navigationsfönstret väljer du på IAM-konsolen roller.
  2. Sök efter rollen aws-quicksight-service-role-v0 och lägg till behörigheten Lambda _fullaccess.
    I en organisation kan det finnas olika datalager baserat på databelastning och konsumtionsmönster. Exempel inkluderar katalog- eller manuell data som är associerad med produkter i en MongoDB- eller nyckel-värdesindexbutik, transaktioner eller försäljningsdata i en SQL-databas och bilder eller videoklipp som är associerade med produkten i en objektbutik.
    I det här fallet an airlines tabell från MongoDB sammanfogas med en platt fil som innehåller information om flygplatserna.
  3. Använd QuickSights korsdatalagringsfunktion för att sammanfoga data från olika källor på vanliga fält.
  4. Vi uppdaterar sedan datatyperna för våra geografiska fält som fält som stad, land, latitud och longitud så att vi kan bygga kartor senare.
  5. Du kan också skapa beräknade fält medan du förbereder din datauppsättning, vilket gör att du kan återanvända dem i andra QuickSight-analyser.

Med några få klick borde du kunna skapa en instrumentpanel med den publicerade datamängden. Du kan till exempel plotta dina data på en karta, visa trender i ett linjediagram och lägga till automatiska berättelser från listan med föreslagna insikter för att skapa analysen som visas i följande skärmdump.

Städa upp

Se till att rensa upp dina resurser för att undvika resursutgifter och tillhörande kostnader. Du måste ta bort EC2-instanserna med MongoDB. När det gäller MongoDB Atlas kan du ta bort databaserna och tabellerna. Ta bort Athena-datakällan ds_mongo och avsluta prenumerationen på ditt QuickSight-konto från administratörssidan för hantering av QuickSight.

Slutsats

Med QuickSight och Athena Federated Query kan organisationer få tillgång till ytterligare datakällor utöver de som redan stöds av QuickSight. Om du har data i andra källor än Amazon S3 kan du använda Athena Federerad fråga att analysera data på plats eller bygga pipelines som extraherar och lagrar data i Amazon S3. Athena stöder nu även federerade frågor över flera konton för att göra det möjligt för team av analytiker, datavetare och dataingenjörer att söka efter data som lagras i andra AWS-konton. Försök att ansluta till proprietära dataformat och källor, eller bygg nya användardefinierade funktioner med Athena Query Federation SDK.


Om författaren

Soujanya Konka är en lösningsarkitekt och analysspecialist på AWS, fokuserad på att hjälpa kunder att bygga sina idéer i molnet. Expertis inom design och implementering av affärsinformationssystem och datalagerlösningar. Innan Soujanya gick med i AWS har han haft snålhet med företag som HSBC, Cognizant.

Nilesh Parekh är en Partner Solution Architect med segmentet ISV India. Nilesh hjälper partner att granska och åtgärda sin arbetsbelastning som körs på AWS baserat på AWS Well-Architected and Foundational Technical Review bästa praxis. Han hjälper också att hjälpa partners med applikationsmoderniseringar och leverans av POC.

plats_img

Senaste intelligens

plats_img

Chatta med oss

Hallå där! Hur kan jag hjälpa dig?