Zephyrnet-logo

Codeversiebeheer met AWS Glue Studio en GitHub

Datum:

AWS lijm biedt nu integratie met Git, een open-source versiebeheersysteem dat veel wordt gebruikt door de ontwikkelaarsgemeenschap. Dankzij deze integratie kunt u uw bestaande DevOps-praktijken op Vacatures voor AWS Lijm. AWS Glue is een serverloze data-integratieservice die u helpt bij het creëren van jobs op basis van Apache Spark of Python om taken uit te pakken, te transformeren en te laden (ETL) op datasets van bijna elke grootte.

Git-integratie in AWS Glue werkt voor alle AWS Glue-taaktypen, zowel visueel als op code gebaseerd. Het biedt ingebouwde integratie met beide GitHub en AWS Codecommit, en maakt het gebruik van automatiseringstools zoals Jenkins en AWS CodeDeploy om AWS Glue-taken in te zetten. De visuele editor van AWS Glue Studio ondersteunt nu ook het parametriseren van gegevensbronnen en doelen voor transparante implementaties tussen omgevingen.

Overzicht van de oplossing

Om te demonstreren hoe AWS Glue Studio kan worden geïntegreerd met een codehostingplatform voor versiebeheer en samenwerking, gebruiken we de Toronto parkeerkaarten dataset, met name de gegevens over parkeerkaarten die in 2019 in de stad Toronto zijn uitgegeven. Het doel is om een ​​taak te creëren om parkeerkaarten te filteren op een specifieke categorie en de code naar een GitHub-repo te pushen voor versiebeheer. Nadat de taak is geüpload naar de repository, brengen we enkele wijzigingen aan in de code en trekken we de wijzigingen terug naar de AWS Glue-taak.

Voorwaarden

Voor deze walkthrough moet u aan de volgende vereisten voldoen:

Als het AWS-account dat u gebruikt om dit bericht te volgen, wordt gebruikt AWS Lake-formatie om machtigingen op de AWS Glue Data Catalog te beheren, moet u ervoor zorgen dat u zich aanmeldt als een gebruiker met toegang om databases en tabellen te maken. Voor meer informatie, zie: Impliciete Lake Formation-machtigingen.

Start uw CloudFormation-stack

Voer de volgende stappen uit om uw resources voor deze use case te maken:

  1. Start uw CloudFormation-stack in us-east-1:
  2. Onder parametersvoor paramBucketName, voer een naam in voor uw S3-bucket (vermeld uw accountnummer).
  3. kies Ik erken dat AWS CloudFormation IAM-bronnen met aangepaste namen kan maken.
  4. Kies Maak een stapel.
  5. Wacht tot het maken van de stapel is voltooid, zoals weergegeven op de AWS CloudFormation-console.

Door deze stapel te starten, worden AWS-bronnen gemaakt. U hebt de volgende bronnen nodig van de Uitgangen tabblad voor de volgende stappen:

  • CFNGlueRol – De IAM-rol om AWS Glue-taken uit te voeren
  • S3Emmer – De naam van de S3-bucket om oplossingsgerelateerde bestanden op te slaan
  • CFNDatabaseBlog – De AWS Glue-database om de tabel met betrekking tot dit bericht op te slaan
  • CFNTableTickets – De AWS-lijmtabel om te gebruiken als onderdeel van de voorbeeldopdracht

Configureer de GitHub-repository

We gebruiken GitHub als het broncontrolesysteem voor dit bericht. Om het te gebruiken, heb je een GitHub-account. Nadat het account is gemaakt, moet u de volgende componenten maken:

  • GitHub-repository – Maak een repository en noem deze glue-ver-log. Raadpleeg voor instructies: Maak een repo.
  • Tak – Maak een branch aan en noem deze ontwikkel. Raadpleeg voor instructies: Vestigingen beheren.
  • Persoonlijke toegangstoken – Voor instructies, zie Een persoonlijke toegangstoken maken. Zorg ervoor dat u het persoonlijke toegangstoken bij de hand houdt, want u gebruikt het in latere stappen.

Een AWS Glue Studio-taak maken

Nu de infrastructuur is opgezet, gaan we een AWS Glue-taak in ons account schrijven. Voer de volgende stappen uit:

  1. Kies op de AWS Glue-console: Vacatures in het navigatievenster.
  2. kies Visuele opdracht met leeg canvas En kies creëren.
  3. Voer een naam in voor de taak met behulp van de titeleditor. Bijvoorbeeld, aws-glue-git-demo-job.
  4. Op de Visual tabblad, kies bron en kies dan AWS-lijmgegevenscatalogus

  5. Voor Database, kiezen torontoparking en voor tafel, kies kaartjes.
  6. Kies Transformeren en FILTER.
  7. Voeg een filter toe op infraction_description en stel de waarde in op PARK ON PRIVATE PROPERTY.
  8. Kies doelwit en kies dan Amazon S3.
  9. Voor Formaat, kiezen Parket.
  10. Voor S3 doellocatie, ga naar binnen s3://glue-version-blog-YOUR ACOUNT NUMBER/output/.
  11. Voor Update-opties voor gegevenscatalogusselecteer Werk de gegevenscatalogus niet bij.
  12. Ga naar uw Script tabblad om te controleren of er een script is gegenereerd.
  13. Ga naar uw Job Details tabblad om ervoor te zorgen dat de rol GlueBlogRole is geselecteerd en laat al het andere met de standaardwaarden.

    Omdat de catalogustabelnamen in de productie- en ontwikkelomgeving kunnen verschillen, kunt u met AWS Glue Studio nu visuele taken parametreren. Voer hiervoor de volgende stappen uit:
  14. Op de Details van de baan tabblad, ga naar het Taakparameters afdeling onder Geavanceerde eigenschappen.
  15. Maak de --source.database.name parameter en stel de waarde in op torontoparking.
  16. Maak de --souce.table.name parameter en stel de waarde in op tickets.
  17. Ga naar uw Visual tabblad en kies de AWS-lijmgegevenscatalogus node.Merk op dat onder elk van de database- en tabelselectie-opties een nieuwe uitbreidbare sectie is genaamd Runtime-parameters gebruiken.
  18. De runtime-parameters worden automatisch ingevuld met de eerder gemaakte parameters. Klikken op de Solliciteer knop past de standaardwaarden voor deze parameters toe.
  19. Ga naar uw Script tab om het script te bekijken. Het genereren van AWS Glue Studio-code pakt automatisch de parameters op die moeten worden opgelost en maakt vervolgens de juiste verwijzingen in het script zodat de parameters kunnen worden gebruikt.
    Nu is de taak klaar om naar de ontwikkeltak van ons versiebeheersysteem te worden geduwd.
  20. Op de Versiebeheer tabblad, voor Versiecontrolesysteem, kiezen GitHub.
  21. Voor Persoonlijke toegangstoken, voer je GitHub-token in.
  22. Voor Repository-eigenaar, voer de eigenaar van uw GitHub-account in.
  23. In het Opslagplaatsconfiguratie sectie, voor bewaarplaats, kiezen glue-ver-blog.
  24. Voor Tak, kiezen develop.
  25. Voor Map, laat het open.
  26. Kies Bespaar om de baan te redden.

Push naar de repository

Nu kan de taak naar de externe repository worden gepusht.

  1. Op de Acties menu, kies Push naar repository.
  2. Kies Bevestigen om de bewerking te bevestigen.

    Nadat de bewerking is geslaagd, wordt de pagina opnieuw geladen om de nieuwste informatie van het versiebeheersysteem weer te geven. Een melding toont de laatst beschikbare commit en linkt je naar de commit op GitHub.
  3. Kies de commit-link om naar de repository op GitHub te gaan.

Je hebt met succes je eerste commit aan GitHub gemaakt vanuit AWS Glue Studio!

Uit de repository halen

Nu we de taak van AWS Glue aan GitHub hebben toegewezen, is het tijd om te zien hoe we wijzigingen kunnen aanbrengen met AWS Glue Studio. Voor deze demo maken we een kleine wijziging in onze voorbeeldtaak met behulp van de GitHub-gebruikersinterface en trekken we de wijzigingen door met AWS Glue Studio.

  1. Kies op GitHub de develop tak.
  2. Kies de aws-glue-git-demo-job map.
  3. Kies de aws-glue-git-demo-job.json bestand.
  4. Kies het bewerkingspictogram.
  5. Kies het MaxRetries parameter 1.
  6. Kies Wijzigingen vastleggen.
  7. Keer terug naar de AWS Glue-console en op de Acties menu, kies Pull uit repository.
  8. Kies Bevestigen.

Merk op dat de commit-ID is gewijzigd.

Op de Details van de baan tabblad, kunt u zien dat de waarde voor Aantal nieuwe pogingen is 1.

Opruimen

Om toekomstige kosten te voorkomen en om ongebruikte rollen en beleidsregels op te schonen, verwijdert u de bronnen die u hebt gemaakt: de datasets, CloudFormation-stack, S3-bucket, AWS Glue-taak, AWS Glue-database en AWS Glue-tabel.

Conclusie

Dit bericht liet zien hoe je AWS Glue integreert met GitHub, maar dit is nog maar het begin - nu kun je de meest populaire functionaliteiten van Git gebruiken.

Raadpleeg voor meer informatie en om aan de slag te gaan met de AWS Glue Studio Git-integratie: Git-integratie configureren in AWS Glue.


Over de auteurs

Leonardo Gomez is Senior Analytics Specialist Solutions Architect bij AWS. Hij is gevestigd in Toronto, Canada, en heeft meer dan tien jaar ervaring in gegevensbeheer, waarmee hij klanten over de hele wereld helpt bij het aanpakken van hun zakelijke en technische behoeften.

Daiyan Alamgir is een Principal Frontend Engineer op AWS Glue gevestigd in New York. Hij leidt het AWS Glue UI-team en is gefocust op het bouwen van interactieve webgebaseerde applicaties voor data-analisten en ingenieurs om hun data-integratie use cases aan te pakken.

spot_img

Laatste intelligentie

spot_img