Zephyrnet-logo

Automatiseer waarschuwingen en rapportage voor het gebruik van AWS Glue-taakbronnen | Amazon-webservices

Datum:

Datatransformatie speelt een cruciale rol bij het bieden van de nodige data-inzichten voor bedrijven in elke organisatie, klein en groot. Om deze inzichten te verkrijgen, voeren klanten vaak ETL-taken (extraheren, transformeren en laden) uit hun bronsystemen uit en voeren ze een verrijkte dataset uit. Veel organisaties gebruiken tegenwoordig AWS Glue om ETL-pijplijnen te bouwen die gegevens uit verschillende bronnen halen en de gegevens opslaan in repositories zoals een data lake, database of datawarehouse voor verder gebruik. Deze organisaties zijn op zoek naar manieren om de kosten in hun IT-omgevingen te verlagen en toch operationeel performant en efficiënt te zijn.

Stel je een scenario voor waarin jij, de VP Data en Analytics, de leiding hebt over je data- en analyseomgevingen en workloads die op AWS draaien, waar je een team van data-engineers en analisten aanstuurt. Dit team mag AWS Glue for Spark-taken maken in ontwikkel-, test- en productieomgevingen. Tijdens het testen was een van de taken niet geconfigureerd om de rekenresources automatisch te schalen, waardoor er een time-out voor taken ontstond, wat de organisatie meer kostte dan verwacht. De volgende stappen omvatten meestal het voltooien van een analyse van de taken, het bekijken van kostenrapporten om te zien welk account de piek in het gebruik heeft gegenereerd, het doornemen van logboeken om te zien wanneer wat er met de taak is gebeurd, enzovoort. Nadat de ETL-taak is gecorrigeerd, wilt u mogelijk monitoring implementeren en standaardwaarschuwingsdrempels instellen voor uw AWS Glue-omgeving.

Dit bericht zal organisaties helpen om hun AWS Glue-omgevingen proactief te monitoren en kosten te optimaliseren door teams een eenvoudiger pad te bieden om de efficiëntie van hun ETL-taken te meten en configuratiedetails af te stemmen op de vereisten van de organisatie. Inbegrepen is een oplossing die u kunt implementeren en die uw team via e-mail op de hoogte stelt van elke Glue-taak die onjuist is geconfigureerd. Daarnaast wordt er wekelijks een rapport gegenereerd en via e-mail verzonden waarin het gebruik van resources wordt geaggregeerd en kostenramingen per opdracht worden gegeven.

AWS Glue-kostenoverwegingen

AWS Glue voor Apache Spark-taken zijn ingericht met een aantal werkers en een werkerstype. Deze taken kunnen G.1X-, G.2X-, G.4X-, ​​G.8X- of Z.2X (Ray)-workertypes zijn die worden toegewezen aan gegevensverwerkingseenheden (DPU's). DPU's omvatten een bepaalde hoeveelheid CPU, geheugen en schijfruimte. De volgende tabel bevat meer details.

Type werknemer DPU's vCPU's Geheugen (GB) Schijf (GB)
G.1X 1 4 16 64
G.2X 2 8 32 128
G.4X 4 16 64 256
G.8X 8 32 128 512
Z.2X 2 8 32 128

Als een taak bijvoorbeeld is ingericht met 10 werkrollen als G.1X-werkroltype, heeft de taak toegang tot 40 vCPU en 160 GB RAM om gegevens te verwerken en te verdubbelen met G.2X. Overbezetting van werknemers kan leiden tot hogere kosten, omdat niet alle werknemers efficiënt worden ingezet.

In april 2022, Automatisch schalen voor AWS Glue is uitgebracht voor AWS Glue versie 3.0 en later, inclusief AWS Glue voor Apache Spark en streamingtaken. Als u automatisch schalen inschakelt voor uw Glue voor Apache Spark-taken, kunt u alleen werknemers toewijzen als dat nodig is, tot het maximale aantal werknemers dat u opgeeft. We raden aan om automatisch schalen in te schakelen voor uw AWS Glue 3.0- en 4.0-taken, omdat deze functie u helpt de kosten te verlagen en uw ETL-taken te optimaliseren.

Amazon Cloud Watch statistieken zijn ook een geweldige manier om uw AWS Glue-omgeving te bewaken door alarmen te maken voor bepaalde statistieken, zoals gemiddeld CPU- of geheugengebruik. Raadpleeg voor meer informatie over het gebruik van CloudWatch-statistieken met AWS Glue AWS Glue monitoren met behulp van Amazon CloudWatch-statistieken.

De volgende oplossing biedt een eenvoudige manier om drempels voor AWS Glue-werkers en taakduur in te stellen, monitoring te configureren en e-mails te ontvangen voor meldingen over hoe uw AWS Glue-omgeving presteert. Als een Glue-taak is voltooid en detecteert dat de werkduurdrempels zijn overschreden, wordt u hiervan op de hoogte gesteld nadat de uitvoering van de taak is voltooid, is mislukt of een time-out heeft plaatsgevonden.

Overzicht oplossingen

Het volgende diagram illustreert de oplossingsarchitectuur.

Wanneer u deze applicatie implementeert via AWS serverloos toepassingsmodel (AWS SAM), zal het vragen welke drempels voor AWS Glue-werknemers en taakduur u wilt instellen om de AWS Glue voor Apache Spark te bewaken en AWS-lijm voor Ray taken die in dat account worden uitgevoerd. De oplossing gebruikt deze waarden als beslissingscriteria wanneer ze worden aangeroepen. Het volgende is een uitsplitsing van elke stap in de architectuur:

  1. Elke AWS Glue voor Apache Spark-taak die slaagt, mislukt, stopt of een time-out heeft, wordt verzonden naar Amazon EventBridge.
  2. EventBridge pikt de gebeurtenis op van AWS Glue en activeert een AWS Lambda functie.
  3. De Lambda-functie verwerkt de gebeurtenis en bepaalt of het data- en analyseteam op de hoogte moet worden gebracht van de specifieke taakuitvoering. De functie voert de volgende taken uit:
    1. De functie stuurt een e-mail met behulp van Amazon eenvoudige meldingsservice (Amazon SNS) indien nodig.
      • Als de AWS Glue-taak is geslaagd of is gestopt zonder de werknemer- of taakduurdrempels te overschrijden, of is gemarkeerd om niet te worden gecontroleerd, worden er geen waarschuwingen of meldingen verzonden.
      • Als de taak is geslaagd maar is uitgevoerd met een werker of taakdrempels die hoger zijn dan toegestaan, of als de taak is mislukt of een time-out heeft gehad, stuurt Amazon SNS een melding naar de aangewezen e-mail met informatie over de AWS Glue-taak, de run-ID en de reden voor de waarschuwing , samen met een link naar de specifieke run-ID op de AWS Glue-console.
    2. De functie registreert de informatie over de uitvoering van de taak Amazon DynamoDB voor een wekelijks geaggregeerd rapport dat per e-mail wordt bezorgd. De Dynamo-tafel heeft Time to Live ingeschakeld voor 7 dagen, waardoor de opslag tot een minimum wordt beperkt.
  4. Een keer per week worden de gegevens binnen DynamoDB geaggregeerd door een afzonderlijke Lambda-functie met zinvolle informatie zoals langstlopende taken, aantal nieuwe pogingen, mislukkingen, time-outs, kostenanalyse en meer.
  5. Amazon eenvoudige e-mailservice (Amazon SES) wordt gebruikt om het rapport te leveren omdat het beter kan worden opgemaakt dan met Amazon SNS. De e-mail is opgemaakt via HTML-uitvoer die tabellen biedt voor de geaggregeerde taakuitvoeringsgegevens.
  6. Het gegevens- en analyseteam wordt via Amazon SNS op de hoogte gebracht van de lopende taken en ontvangt het wekelijkse verzamelrapport via Amazon SES.

Houd er rekening mee dat AWS Glue Python-shell en streaming ETL-taken niet worden ondersteund omdat ze niet binnen het bereik van deze oplossing vallen.

Voorwaarden

Je moet de volgende voorwaarden hebben:

  • Een AWS-account om de oplossing op te implementeren
  • Proper AWS Identiteits- en toegangsbeheer (IAM) rechten om de resources te maken
  • De AWS SAM CLI om de onderstaande oplossingsknop te bouwen en te implementeren, om de sjabloon op uw AWS-omgeving uit te voeren

Implementeer de oplossing

Deze AWS SAM-applicatie biedt de volgende bronnen:

  • Twee EventBridge-regels
  • Twee Lambda-functies
  • Een SNS-onderwerp en abonnement
  • Een DynamoDB-tabel
  • Een SES-abonnement
  • De vereiste IAM-rollen en -beleidslijnen

Voer de volgende stappen uit om de AWS SAM-applicatie te implementeren:

Kloon het aws-samples GitHub-repository:

git clone https://github.com/aws-samples/aws-glue-job-tracker.git

Implementeer de AWS SAM-applicatie:

cd aws-glue-job-tracker
sam deploy --guided

sam implementeert configuratie

Geef de volgende parameters op:

  • GlueJobWorkerThreshold - Voer het maximale aantal werknemers in waarmee u een AWS Glue-taak wilt laten uitvoeren voordat u een drempelwaarschuwing verzendt. De standaardwaarde is 10. Er wordt een waarschuwing verzonden als een Glue-taak wordt uitgevoerd met meer werknemers dan opgegeven.
  • GlueJobDuurdrempel – Voer de maximale duur in minuten in dat een AWS Glue-taak moet worden uitgevoerd voordat er een drempelwaarschuwing wordt verzonden. De standaardwaarde is 480 minuten (8 uur). Er wordt een waarschuwing verzonden als een Glue-taak wordt uitgevoerd met een langere taakduur dan opgegeven.
  • GlueJob-meldingen - Voer een e-mail of distributielijst in van degenen die op de hoogte moeten worden gesteld via Amazon SNS en Amazon SES. U kunt naar het SNS-onderwerp gaan nadat de implementatie is voltooid en indien nodig e-mails toevoegen.

Om e-mails van Amazon SNS en Amazon SES te ontvangen, moet u uw abonnementen bevestigen. Nadat de stapel is geïmplementeerd, controleert u uw e-mail die in de sjabloon is opgegeven en bevestigt u door de link in elk bericht te kiezen. Wanneer de applicatie met succes is ingericht, begint deze met het bewaken van uw AWS Glue voor Apache Spark-taakomgeving. De volgende keer dat een taak mislukt, een time-out krijgt of een bepaalde drempel overschrijdt, ontvang je een e-mail via Amazon SNS. De volgende schermafbeelding toont bijvoorbeeld een SNS-bericht over een taak die is geslaagd, maar waarvan de drempel voor de taakduur is overschreden.

Mogelijk hebt u taken die moeten worden uitgevoerd met een hogere werknemer- of taakduurdrempel en wilt u niet dat de oplossing ze evalueert. U kunt die taak eenvoudig taggen met de sleutel/waarde herstel en onwaar. De stapfunctie wordt nog steeds aangeroepen, maar gebruikt de status PASS wanneer deze de tag herkent. Voor meer informatie over job tagging, zie AWS-tags in AWS Glue.

Tags toevoegen aan de configuratie van de lijmtaak

Configureer wekelijkse rapportage

Zoals eerder vermeld, wanneer een AWS Glue voor Apache Spark-taak slaagt, mislukt, een time-out krijgt of wordt gestopt, stuurt EventBridge deze gebeurtenis door naar Lambda, waar specifieke informatie over elke uitgevoerde taak wordt geregistreerd. Een keer per week ondervraagt ​​een afzonderlijke Lambda-functie DynamoDB en verzamelt uw taakuitvoeringen om zinvolle inzichten en aanbevelingen te bieden over uw AWS Glue voor Apache Spark-omgeving. Dit rapport wordt via e-mail verzonden met een tabelstructuur zoals weergegeven in de volgende schermafbeelding. Het is bedoeld voor zichtbaarheid op het hoogste niveau, zodat u uw langste taakruns in de loop van de tijd kunt zien, taken die veel nieuwe pogingen, fouten en meer hebben gehad. Het biedt ook een algemene kostenberekening als schatting van wat elke AWS Glue-taak voor die week zal kosten. Het mag niet worden gebruikt als een gegarandeerde kost. Als u de exacte kosten per opdracht wilt zien, kunt u de AWS-kosten- en gebruiksrapport is de beste bron om te gebruiken. De volgende schermafbeelding toont één tabel (van in totaal vijf) van de AWS Glue-rapportfunctie.

wekelijks verslag

Opruimen

Als u de oplossing niet meer wilt uitvoeren, verwijder de AWS SAM-applicatie voor elk account waarin het is ingericht. Om uw AWS SAM-stack te verwijderen, voert u de volgende opdracht uit vanuit uw projectdirectory:

sam delete

Conclusie

In dit bericht hebben we besproken hoe u uw AWS Glue-taakconfiguraties kunt bewaken en kosten kunt optimaliseren om te voldoen aan de normen en het beleid van de organisatie. Deze methode kan kostenbeheersing bieden voor AWS Glue-taken in uw hele organisatie. Enkele andere manieren om de kosten van uw AWS Glue voor Apache Spark-taken te beheersen, zijn onder meer de onlangs uitgebrachte AWS Glue Flexibele banen en Automatische schaalverdeling. We hebben ook een AWS SAM-applicatie geleverd als oplossing om in uw accounts te implementeren. We raden u aan de bronnen in dit bericht te bekijken om meer te weten te komen over AWS Glue. Ga voor meer informatie over het bewaken en optimaliseren van kosten met behulp van AWS Glue naar deze recente blog. Het gaat dieper in op alle opties voor kostenoptimalisatie en bevat een sjabloon die een CloudWatch-dashboard voor u bouwt met statistieken over al uw Glue-taakruns.


Over de auteurs

Michael Hamilton is een Sr Analytics Solutions Architect die zich richt op het helpen van zakelijke klanten in het zuidoosten bij het moderniseren en vereenvoudigen van hun analyseworkloads op AWS. Hij houdt van mountainbiken en brengt tijd door met zijn vrouw en drie kinderen als hij niet aan het werk is.

Angus Ferguson is een Solutions Architect bij AWS die gepassioneerd is om klanten over de hele wereld te ontmoeten en hen te helpen hun technische uitdagingen op te lossen. Angus is gespecialiseerd in Data & Analytics met een focus op klanten in de financiële dienstverlening.

spot_img

Laatste intelligentie

spot_img

Chat met ons

Hallo daar! Hoe kan ik u helpen?