Zephyrnet-logo

Hoe Ruparupa bijgewerkte inzichten verwierf met een Amazon S3 data lake, AWS Glue, Apache Hudi en Amazon QuickSight

Datum:

Dit bericht is geschreven in samenwerking met Olivia Michele en Dariswan Janweri P. bij Ruparupa.

ruparupa werd gebouwd door PT. Omni Digitama Internusa met de visie om synergie te cultiveren en een naadloos digitaal ecosysteem te creëren binnen Kawan Lama Group dat de levens van velen raakt en verbetert.

Ruparupa is het eerste digitale platform gebouwd door Kawan Lama Group om de beste winkelervaring te bieden voor huishoudelijke, meubel- en lifestyle-behoeften. Het doel van Ruparupa is om u te helpen een beter leven te leiden, wat blijkt uit de betekenis van het woord ruparupa, wat 'alles' betekent. Wij geloven dat iedereen het beste verdient, en thuis is waar alles begint.

In dit bericht laten we zien hoe Ruparupa een incrementeel bijgewerkt datameer implementeerde om inzicht te krijgen in het gebruik van hun bedrijf Amazon eenvoudige opslagservice (Amazone S3), AWS lijm, Apache Hudi en Amazon QuickSight. We bespreken ook de voordelen die Ruparupa heeft behaald na de implementatie.

Het door Ruparupa geïmplementeerde datameer gebruikt Amazon S3 als opslagplatform, AWS-databasemigratieservice (AWS DMS) als opnametool, AWS Glue als ETL-tool (extraheren, transformeren en laden) en QuickSight voor analytische dashboards.

Amazon S3 is een objectopslagservice met een zeer hoge schaalbaarheid, duurzaamheid en beveiliging, waardoor het een ideale opslaglaag is voor een datameer. AWS DMS is een tool voor databasemigratie die veel relationele databasebeheerservices ondersteunt en ook Amazon S3 ondersteunt.

Een AWS Glue ETL-taak, die gebruikmaakt van de Apache Hudi-connector, werkt het S3-datameer elk uur bij met incrementele gegevens. De AWS Glue-taak kan de onbewerkte gegevens in Amazon S3 omzetten naar het Parquet-formaat, dat is geoptimaliseerd voor analytische vragen. De AWS Glue Data Catalog slaat de metadata op, en Amazone Athene (een serverloze query-engine) wordt gebruikt om gegevens op te vragen in Amazon S3.

AWS-geheimenmanager is een AWS-service die kan worden gebruikt om gevoelige gegevens op te slaan, waardoor gebruikers gegevens zoals databasereferenties uit de broncode kunnen houden. In deze implementatie wordt Secrets Manager gebruikt om de configuratie van de Apache Hudi-taak voor verschillende tabellen op te slaan.

Uitdagingen op het gebied van data-analyse

Als e-commercebedrijf produceert Ruparupa veel gegevens van hun e-commercewebsite, hun inventarisatiesystemen en distributie- en financiële toepassingen. De gegevens kunnen gestructureerde gegevens van bestaande systemen zijn, maar ook ongestructureerde of semi-gestructureerde gegevens van hun klantinteracties. Deze gegevens bevatten inzichten die, indien ontgrendeld, het management kunnen helpen bij het nemen van beslissingen om de verkoop te verhogen en de kosten te optimaliseren.

Voordat een data lake op AWS werd geïmplementeerd, had Ruparupa geen infrastructuur die het volume en de verscheidenheid aan dataformaten in korte tijd kon verwerken. Gegevens moesten handmatig worden verwerkt door data-analisten en datamining duurde lang. Vanwege de snelle groei van gegevens duurde het 1 tot 1.5 uur alleen al om gegevens op te nemen, wat honderdduizenden rijen betrof.

Het handmatige proces veroorzaakte een inconsistente opschoning van gegevens. Nadat de gegevens waren opgeschoond, ontbraken er vaak enkele processen en moesten alle gegevens nog een proces van gegevensopschoning doorlopen.

Deze lange verwerkingstijd verminderde de productiviteit van het analytische team. Het analyseteam kon alleen wekelijkse en maandelijkse rapporten produceren. Deze vertraging in de rapportagefrequentie had invloed op het leveren van belangrijke inzichten aan het management, en ze konden niet snel genoeg handelen om te anticiperen op veranderingen in hun bedrijf.

De methode die werd gebruikt om analytische dashboards te maken, was handmatig en kon slechts enkele routinerapporten opleveren. Het publiek van deze paar rapporten was beperkt - maximaal 20 mensen van het management. Andere business units in Kawan Lama Group gebruikten alleen wekelijkse rapporten die handmatig werden opgesteld. Zelfs de wekelijkse rapporten konden niet alle belangrijke statistieken bevatten, omdat sommige statistieken alleen beschikbaar waren in maandelijkse rapporten.

Eerste oplossing voor een realtime dashboard

Het volgende diagram illustreert de initiële oplossing die Ruparupa heeft geïmplementeerd.

Initiële oplossingsarchitectuur

Ruparupa startte een data-initiatief binnen de organisatie om één bron van waarheid binnen het bedrijf te creëren. Voorheen konden zakelijke gebruikers alleen de verkoopgegevens van de dag ervoor krijgen en hadden ze geen zicht op de huidige verkoopactiviteiten in hun winkels en websites.

Om het vertrouwen van zakelijke gebruikers te winnen, wilden we de meest actuele gegevens aanbieden in een interactief QuickSight-dashboard. We gebruikten een AWS DMS-replicatietaak om realtime CDC-updates (Change Data Capture) te streamen naar een Amazon Aurora MySQL-compatibele editie database en bouwde een QuickSight-dashboard om het statische presentatiedeck te vervangen.

Dit pilot-dashboard werd buitengewoon goed geaccepteerd door de gebruikers, die nu inzicht hadden in hun huidige gegevens. De gegevensbron voor het dashboard bevond zich echter nog steeds in een Aurora MySQL-database en dekte slechts één gegevensdomein.

Het oorspronkelijke ontwerp had een aantal extra uitdagingen:

  • Diverse gegevensbron – De gegevensbron in een e-commerceplatform bestaat uit gestructureerde, semi-gestructureerde en ongestructureerde gegevens, wat een flexibele gegevensopslag vereist. Het aanvankelijke ontwerp van het datawarehouse in Ruparupa bewaarde alleen transactiegegevens en gegevens van andere systemen, waaronder gegevens over gebruikersinteractie, waren nog niet geconsolideerd.
  • Kosten en schaalbaarheid – Ruparupa wilde een toekomstbestendige dataplatformoplossing bouwen die op de meest kosteneffectieve manier kon worden opgeschaald tot terabytes aan data.

Het oorspronkelijke ontwerp had ook enkele voordelen:

  • Gegevensupdates – Gegevens in het initiële datawarehouse waren met 1 dag vertraagd. Dit was een verbetering ten opzichte van het wekelijkse rapport, maar nog steeds niet snel genoeg om snellere beslissingen te nemen.

Deze oplossing diende slechts als tijdelijke oplossing; we hadden een completere analyseoplossing nodig die sneller en kosteneffectiever complexere en grotere gegevensbronnen kon bedienen.

Realtime data lake-oplossing

Om aan hun vereisten te voldoen, introduceerde Ruparupa een veranderlijk datameer, zoals weergegeven in het volgende diagram.

Architectuur van real-time data lake-oplossingen

Laten we elk hoofdonderdeel in meer detail bekijken.

AWS DMS CDC-proces

Om de realtime gegevens van de bron te krijgen, hebben we het CDC-logboek van de database gestreamd met behulp van AWS DMS (component 1 in het architectuurdiagram). De CDC-records bestaan ​​uit alle inserts, updates en deletes uit de brondatabase. Deze ruwe data wordt opgeslagen in de ruwe laag van de S3 data lake.

Er wordt een S3-levenscyclusbeleid gebruikt om het bewaren van gegevens te beheren, waar de oudere gegevens naartoe worden verplaatst Amazon S3-gletsjer.

AWS Lijm ETL baan

De tweede S3-datalake-laag is de getransformeerde laag, waar de gegevens worden getransformeerd naar een geoptimaliseerd formaat dat klaar is voor zoekopdrachten van gebruikers. De bestanden worden getransformeerd naar Parquet-kolomformaat met pittige compressie en tabelpartitionering om SQL-query's van Athena te optimaliseren.

Om een ​​veranderlijk datameer te creëren dat wijzigingen van de gegevensbron kan samenvoegen, hebben we een Apache Hudi-datameerframework geïntroduceerd. Met Apache Hudi kunnen we upserts en deletes uitvoeren op de getransformeerde laag om de gegevens op een betrouwbare manier consistent te houden. Met een Hudi-datameer kan Ruparupa snel en eenvoudig één bron van waarheid creëren voor al onze gegevensbronnen. Het Hudi-framework zorgt voor de onderliggende metadata van de updates, waardoor het eenvoudig te implementeren is in honderden tabellen in het datameer. We hoeven alleen de uitvoer van de schrijver te configureren om een ​​copy-on-write-tabel te maken, afhankelijk van de toegangsvereisten. Voor de schrijver gebruiken we een AWS Glue jobwriter gecombineerd met een AWS Glue Hudi connector van AWS Marketplace. De extra bibliotheek van de connector helpt AWS Glue te begrijpen hoe naar Hudi te schrijven.

Een AWS Glue ETL-taak wordt gebruikt om de wijzigingen uit de onbewerkte laag te halen en de wijzigingen in de getransformeerde laag samen te voegen (component 2 in het architectuurdiagram). Met AWS Glue kunnen we een PySpark-taak maken om de gegevens op te halen, en we gebruiken de AWS-lijmconnector voor Apache Hudi om de Hudi-bibliotheekimport naar de AWS Glue-taak te vereenvoudigen. Met AWS Glue kunnen alle wijzigingen van AWS DMS eenvoudig worden samengevoegd met het Hudi-datameer. De taken worden elk uur ingepland met behulp van een ingebouwde planner in AWS Glue.

Secrets Manager wordt gebruikt om alle gerelateerde parameters op te slaan die nodig zijn om de taak uit te voeren. In plaats van één transformatietaak voor elke tabel te maken, maakt Ruparupa één generieke taak die meerdere tabellen kan transformeren door verschillende parameters te gebruiken. De parameters die details geven over de tabelstructuur worden opgeslagen in Secrets Manager en kunnen worden opgehaald met de naam van de tabel als sleutel. Met deze aangepaste parameters hoeft Ruparupa niet voor elke tabel een taak te maken. We kunnen een enkele taak gebruiken die de gegevens voor alle verschillende tabellen kan opnemen door de naam van de tabel aan de taak door te geven.

Alle metadata van de tabellen worden opgeslagen in de AWS Glue Data Catalog, inclusief de Hudi-tabellen. Deze catalogus wordt gebruikt door de AWS Glue ETL-taak, de Athena-query-engine en het QuickSight-dashboard.

Athena vraagt

Gebruikers kunnen vervolgens de nieuwste gegevens voor hun rapport opvragen met behulp van Athena (component 3 in het architectuurdiagram). Athena is serverloos, dus er is geen infrastructuur om in te richten of te onderhouden. We kunnen SQL onmiddellijk gebruiken om het datameer te bevragen om een ​​rapport te maken of de gegevens in het dashboard op te nemen.

QuickSight-dashboard

Zakelijke gebruikers kunnen een QuickSight-dashboard gebruiken om het datameer te bevragen (component 4 in het architectuurschema). Het bestaande dashboard is aangepast om gegevens van Athena te krijgen, ter vervanging van de vorige database. Er werden ook nieuwe dashboards gecreëerd om te voldoen aan de voortdurend evoluerende behoeften aan inzichten van meerdere business units.

QuickSight wordt ook gebruikt om bepaalde partijen op de hoogte te stellen wanneer een waarde een bepaalde drempel bereikt. Er wordt een e-mailwaarschuwing naar een extern meldings- en berichtenplatform gestuurd, zodat deze de eindgebruiker kan bereiken.

Bedrijfsresultaten

De implementatie van het data lake in Ruparupa duurde ongeveer 3 maanden, met een extra maand voor datavalidatie, voordat het gereed voor productie werd beschouwd. Met deze oplossing kan het management het laatste informatieoverzicht krijgen van hun huidige status tot het laatste uur. Voorheen konden ze alleen wekelijkse rapporten genereren, nu zijn inzichten 1 keer sneller beschikbaar.

Het QuickSight-dashboard, dat automatisch kan worden bijgewerkt, verkort de tijd die het analytisch team nodig heeft. Het QuickSight-dashboard heeft nu meer inhoud: er worden niet alleen transactiegegevens gerapporteerd, maar ook andere statistieken zoals nieuwe SKU, operationele escalatie voor gratis services aan klanten en monitoring van SLA. Sinds april 2021, toen Ruparupa hun QuickSight-pilot startte, is het aantal dashboards toegenomen tot ongeveer 70 op basis van verzoeken van zakelijke gebruikers.

Ruparupa heeft nieuw personeel aangenomen om zich bij het data-analyseteam aan te sluiten om nieuwe mogelijkheden en nieuwe use-cases te verkennen. Het analyseteam is gegroeid van slechts één naar zeven personen om nieuwe analytische use cases te behandelen:

  • Merchandising
  • Operations
  • Prestatiemeting van de winkelmanager
  • Inzichten in trending SKU's

Kawan Lama Group heeft naast het door Ruparupa beheerde e-commerceplatform ook offline winkels. Met het nieuwe dashboard is het eenvoudiger om transactiegegevens van online en offline winkels te vergelijken, omdat ze nu hetzelfde platform gebruiken.

De nieuwe dashboards kunnen ook gebruikt worden door een breder publiek, inclusief andere business units in Kawan Lama Group. Het totale aantal gebruikers dat het dashboard gebruikte, nam toe van slechts 20 gebruikers van het management tot ongeveer 180 gebruikers (een toename van 9 keer).

Sinds de implementatie hebben andere business units in Kawan Lama Group hun vertrouwen in het door Ruparupa geïmplementeerde S3 data lake-platform vergroot, omdat de gegevens actueler zijn en ze kunnen inzoomen op SKU-niveau om te valideren dat de gegevens correct zijn. Andere bedrijfsonderdelen kunnen nu sneller handelen na een evenement zoals een marketingcampagne. Deze data lake-implementatie heeft bijgedragen aan het verhogen van de omzet in verschillende business units van de Kawan Lama Group.

Conclusie

Het implementeren van een real-time data lake met behulp van Amazon S3, Apache Hudi, AWS Glue, Athena en QuickSight leverde Ruparupa de volgende voordelen op:

  • Leverde snellere inzichten op (per uur vergeleken met wekelijks)
  • Nieuwe inzichten ontgrendeld
  • Meer mensen in meer business units in staat gesteld om het dashboard te gebruiken
  • Business units in de Kawan Lama Group geholpen sneller te handelen en de omzet te verhogen

Als u geïnteresseerd bent in het verkrijgen van vergelijkbare voordelen, bekijk dan Bouw een Data Lake Foundation met AWS Glue en Amazon S3.

U kunt ook leren hoe u aan de slag kunt met QuickSight in de Aan de slag-gids.

Last but not least kun je leren over het uitvoeren van Apache Hudi op AWS Glue in Schrijven naar Apache Hudi-tabellen met AWS Glue Custom Connector.


Over de auteurs

Olivia Michèle is Data Scientist Lead bij Ruparupa, waar ze de afgelopen 5 jaar in verschillende datarollen heeft gewerkt, waaronder het bouwen en integreren van Ruparupa-datasystemen met AWS om de gebruikerservaring met data en rapportagetools te verbeteren. Ze is gepassioneerd over het omzetten van ruwe informatie in waardevolle bruikbare inzichten en het leveren van waarde aan het bedrijf.

Dariswan Janweri P. is Data Engineer bij Ruparupa. Hij beschouwt uitdagingen of problemen als interessante raadsels en vindt voldoening in het oplossen ervan, en nog meer voldoening door zijn collega's en vrienden te kunnen helpen, "twee vliegen in één klap". Hij is verheugd een belangrijke speler te zijn in de technologische transformatie van Indonesië.

Adrianus Budiardjo Kurnadi is een Senior Solutions Architect bij Amazon Web Services Indonesië. Hij heeft een sterke passie voor databases en machine learning en werkt nauw samen met de Indonesische machine learning-gemeenschap om hen kennis te laten maken met verschillende AWS Machine Learning-services. In zijn vrije tijd zingt hij graag in een koor, leest hij en speelt hij graag met zijn twee kinderen.

Nico Anandito is een Analytics Specialist Solutions Architect bij Amazon Web Services Indonesia. Hij heeft jarenlange ervaring met data-integratie, datawarehouses en big data-implementatie in meerdere industrieën. Hij is gecertificeerd in AWS-gegevensanalyse en heeft een masterdiploma op het gebied van gegevensbeheer in de informatica.

spot_img

Laatste intelligentie

spot_img