Det här inlägget är skrivet tillsammans med Preshen Goobiah och Johan Olivier från Capitec.
Apache Spark är ett allmänt använt distribuerat bearbetningssystem med öppen källkod känt för att hantera storskaliga dataarbetsbelastningar. Den hittar ofta applikationer bland Spark-utvecklare som arbetar med Amazon EMR, Amazon SageMaker, AWS-lim och anpassade Spark-applikationer.
Amazon RedShift erbjuder sömlös integration med Apache Spark, så att du enkelt kan komma åt dina Redshift-data på både Amazon Redshift-provisionerade kluster och Amazon Redshift Serverlös. Denna integration utökar möjligheterna för AWS-analys- och maskininlärningslösningar (ML), vilket gör datalagret tillgängligt för ett bredare utbud av applikationer.
Med Amazon Redshift-integration för Apache Spark, kan du snabbt komma igång och utan ansträngning utveckla Spark-applikationer med populära språk som Java, Scala, Python, SQL och R. Dina applikationer kan sömlöst läsa från och skriva till ditt Amazon Redshift-datalager samtidigt som du bibehåller optimal prestanda och transaktionskonsistens. Dessutom kommer du att dra nytta av prestandaförbättringar genom pushdown-optimeringar, vilket ytterligare förbättrar effektiviteten i din verksamhet.
Capitec, Sydafrikas största detaljhandelsbank med över 21 miljoner privatbankskunder, syftar till att tillhandahålla enkla, prisvärda och tillgängliga finansiella tjänster för att hjälpa sydafrikaner att bank bättre så att de kan leva bättre. I det här inlägget diskuterar vi den framgångsrika integrationen av Amazon Redshift-kontakten med öppen källkod av Capitecs funktionsplattformsteam för delade tjänster. Som ett resultat av användningen av Amazon Redshift-integrationen för Apache Spark ökade utvecklarnas produktivitet med en faktor 10, funktionsgenereringspipelines strömlinjeformades och dataduplicering reducerades till noll.
Affärsmöjligheten
Det finns 19 prediktiva modeller med utrymme för att använda 93 funktioner byggda med AWS Glue över Capitecs Retail Credit-divisioner. Funktionsposter är berikade med fakta och dimensioner lagrade i Amazon Redshift. Apache PySpark valdes ut för att skapa funktioner eftersom det erbjuder en snabb, decentraliserad och skalbar mekanism för att bråka data från olika källor.
Dessa produktionsfunktioner spelar en avgörande roll för att möjliggöra realtidsansökningar om tidsbegränsade lån, kreditkortsansökningar, månatlig övervakning av kreditbeteende i batch och identifiering av batch daglig lön inom företaget.
Problemet med datakällan
För att säkerställa tillförlitligheten hos PySpark-datapipelines är det viktigt att ha konsekventa data på rekordnivå från både dimensions- och faktatabeller lagrade i Enterprise Data Warehouse (EDW). Dessa tabeller sammanfogas sedan med tabeller från Enterprise Data Lake (EDL) vid körning.
Under funktionsutveckling kräver dataingenjörer ett sömlöst gränssnitt till EDW. Detta gränssnitt tillåter dem att komma åt och integrera nödvändiga data från EDW i datapipelines, vilket möjliggör effektiv utveckling och testning av funktioner.
Tidigare lösningsprocess
I den tidigare lösningen tillbringade produktteamets dataingenjörer 30 minuter per körning för att manuellt exponera Redshift-data för Spark. Stegen inkluderade följande:
- Konstruera en predikerad fråga i Python.
- Skicka en LASTA AV fråga via Amazon Redshift Data API.
- Katalogdata i AWS Glue Data Catalog via AWS SDK för pandor med sampling.
Detta tillvägagångssätt ställde till problem för stora datamängder, krävde återkommande underhåll från plattformsteamet och var komplicerad att automatisera.
Aktuell lösning översikt
Capitec kunde lösa dessa problem med Amazon Redshift-integrationen för Apache Spark inom funktionsgenereringspipelines. Arkitekturen definieras i följande diagram.
Arbetsflödet innehåller följande steg:
- Interna bibliotek installeras i AWS Glue PySpark-jobbet via AWS CodeArtifact.
- Ett AWS-limjobb hämtar Redshift-klusterreferenser från AWS Secrets Manager och ställer in Amazon Redshift-anslutningen (injicerar klusterreferenser, urladdningsplatser, filformat) via det delade interna biblioteket. Amazon Redshift-integrationen för Apache Spark stöder också användning AWS identitets- och åtkomsthantering (IAM) till hämta inloggningsuppgifter och ansluta till Amazon Redshift.
- Spark-frågan översätts till en Amazon Redshift-optimerad fråga och skickas till EDW. Detta åstadkoms av Amazon Redshift-integrationen för Apache Spark.
- EDW-datauppsättningen laddas ur till ett tillfälligt prefix i en Amazon enkel lagringstjänst (Amazon S3) hink.
- EDW-dataset från S3-skopan laddas i Spark-exekutorer via Amazon Redshift-integrationen för Apache Spark.
- EDL-datauppsättningen läses in i Spark-exekutorer via AWS Glue Data Catalog.
Dessa komponenter arbetar tillsammans för att säkerställa att dataingenjörer och produktionsdatapipelines har de nödvändiga verktygen för att implementera Amazon Redshift-integrationen för Apache Spark, köra frågor och underlätta urladdningen av data från Amazon Redshift till EDL.
Använder Amazon Redshift-integrationen för Apache Spark i AWS Glue 4.0
I det här avsnittet demonstrerar vi användbarheten av Amazon Redshift-integrationen för Apache Spark genom att berika en låneansökningstabell som finns i S3-datasjön med kundinformation från Redshifts datalager i PySpark.
Smakämnen dimclient
Tabellen i Amazon Redshift innehåller följande kolumner:
- ClientKey – INT8
- ClientAltKey – VARCHAR50
- PartyIdentifierNumber – VARCHAR20
- ClientCreateDate - DATUM
- Är Avbruten – INT2
- RowIsCurrent – INT2
Smakämnen loanapplication
Tabellen i AWS Glue Data Catalog innehåller följande kolumner:
- RecordID – STORT
- LogDate - TIDSSTÄMPEL
- PartyIdentifierNumber – STRING
Redshift-tabellen läses via Amazon Redshift-integrationen för Apache Spark och cachelagras. Se följande kod:
Låneansökningsposter läses in från S3-datasjön och berikas med dimclient
tabell på Amazon Redshift information:
Som ett resultat berikas låneansökningsposten (från S3-datasjön) med ClientCreateDate
kolumn (från Amazon Redshift).
Hur Amazon Redshift-integrationen för Apache Spark löser problemet med datakällan
Amazon Redshift-integrationen för Apache Spark åtgärdar effektivt datakällans problem genom följande mekanismer:
- Just-in-time läsning – Amazon Redshift-integrationen för Apache Spark-anslutningen läser Redshift-tabeller på ett just-in-time-sätt, vilket säkerställer konsistensen av data och schema. Detta är särskilt värdefullt för Typ 2 långsamt ändrande dimension (SCD) och tidsperiod som ackumulerar ögonblicksbildfakta. Genom att kombinera dessa Redshift-tabeller med källsystemet AWS Glue Data Catalog-tabeller från EDL inom produktions PySpark-pipelines, möjliggör kontakten sömlös integrering av data från flera källor samtidigt som dataintegriteten bibehålls.
- Optimerade rödförskjutningsfrågor – Amazon Redshift-integrationen för Apache Spark spelar en avgörande roll för att konvertera Spark-frågeplanen till en optimerad Redshift-fråga. Denna konverteringsprocess förenklar utvecklingsupplevelsen för produktteamet genom att följa principen om datalokalitet. De optimerade frågorna använder funktionerna och prestandaoptimeringarna hos Amazon Redshift, vilket säkerställer effektiv datahämtning och bearbetning från Amazon Redshift för PySpark-pipelines. Detta hjälper till att effektivisera utvecklingsprocessen samtidigt som det förbättrar den övergripande prestandan för datakällan.
Få bästa prestanda
Amazon Redshift-integrationen för Apache Spark tillämpar automatiskt predikat- och fråge-pushdown för att optimera prestanda. Du kan få prestandaförbättringar genom att använda standardformatet Parkett som används för avlastning med denna integration.
För ytterligare information och kodexempel, se Nytt – Amazon Redshift-integration med Apache Spark.
Lösningsfördelar
Antagandet av integrationen gav flera betydande fördelar för teamet:
- Förbättrad utvecklarproduktivitet – PySpark-gränssnittet från integrationen ökade utvecklarens produktivitet med en faktor 10, vilket möjliggjorde smidigare interaktion med Amazon Redshift.
- Eliminering av dataduplicering – Duplicerade och AWS Glue-katalogiserade Redshift-tabeller i datasjön eliminerades, vilket resulterade i en mer strömlinjeformad datamiljö.
- Minskad EDW-belastning – Integrationen underlättade selektiv dataavlastning, vilket minimerade belastningen på EDW genom att endast extrahera nödvändiga data.
Genom att använda Amazon Redshift-integrationen för Apache Spark har Capitec banat väg för förbättrad databehandling, ökad produktivitet och ett mer effektivt ekosystem för funktionsteknik.
Slutsats
I det här inlägget diskuterade vi hur Capitec-teamet framgångsrikt implementerade Apache Spark Amazon Redshift-integrationen för Apache Spark för att förenkla deras arbetsflöden för funktionsberäkning. De betonade vikten av att använda decentraliserade och modulära PySpark-datapipelines för att skapa prediktiva modellfunktioner.
För närvarande används Amazon Redshift-integrationen för Apache Spark av 7 produktionsdatapipelines och 20 utvecklingspipelines, vilket visar dess effektivitet inom Capitecs miljö.
Framöver planerar de delade tjänsterna Feature Platform-teamet på Capitec att utöka användningen av Amazon Redshift-integrationen för Apache Spark i olika affärsområden, i syfte att ytterligare förbättra databehandlingskapaciteten och främja effektiv funktionsteknik.
För ytterligare information om hur du använder Amazon Redshift-integrationen för Apache Spark, se följande resurser:
Om författarna
Preshen Goobiah är Lead Machine Learning Engineer för Feature Platform på Capitec. Han är fokuserad på att designa och bygga Feature Store-komponenter för företagsanvändning. På fritiden tycker han om att läsa och att resa.
Johan Olivier är senior maskininlärningsingenjör för Capitecs modellplattform. Han är en entreprenör och problemlösningsentusiast. Han tycker om musik och umgås på fritiden.
Sudipta Bagchi är Senior Specialist Solutions Architect på Amazon Web Services. Han har över 12 års erfarenhet av data och analys, och hjälper kunder att designa och bygga skalbara och högpresterande analyslösningar. Utanför jobbet älskar han att springa, resa och spela cricket. Ta kontakt med honom LinkedIn.
Syed Humair är Senior Analytics Specialist Solutions Architect på Amazon Web Services (AWS). Han har över 17 års erfarenhet av företagsarkitektur med fokus på data och AI/ML, och hjälper AWS-kunder globalt att möta deras affärsmässiga och tekniska krav. Du kan få kontakt med honom LinkedIn.
Vuyisa Maswana är Senior Solutions Architect på AWS, baserad i Kapstaden. Vuyisa har ett starkt fokus på att hjälpa kunder att bygga tekniska lösningar för att lösa affärsproblem. Han har stöttat Capitec i deras AWS-resa sedan 2019.
- SEO-drivet innehåll och PR-distribution. Bli förstärkt idag.
- PlatoData.Network Vertical Generative Ai. Styrka dig själv. Tillgång här.
- PlatoAiStream. Web3 Intelligence. Kunskap förstärkt. Tillgång här.
- Platoesg. Kol, CleanTech, Energi, Miljö, Sol, Avfallshantering. Tillgång här.
- PlatoHealth. Biotech och kliniska prövningar Intelligence. Tillgång här.
- Källa: https://aws.amazon.com/blogs/big-data/simplifying-data-processing-at-capitec-with-amazon-redshift-integration-for-apache-spark/
- : har
- :är
- $UPP
- 06
- 1
- 10
- 100
- 12
- 16
- 17
- 19
- 20
- 2019
- 30
- 7
- a
- Able
- tillgång
- tillgänglig
- åstadkommit
- tvärs
- Annat
- ytterligare information
- Dessutom
- adress
- adresser
- vidhäftande
- Antagande
- prisvärd
- AI / ML
- sikta
- Syftet
- tillåta
- tillåter
- också
- amason
- Amazon Web Services
- Amazon Web Services (AWS)
- bland
- an
- analytics
- och
- Apache
- Apache Spark
- Ansökan
- tillämpningar
- applicerar
- tillvägagångssätt
- arkitektur
- ÄR
- områden
- AS
- At
- automatisera
- automatiskt
- AWS
- AWS-lim
- Bank
- Banking
- baserat
- därför att
- beteende
- fördel
- Fördelarna
- BÄST
- Bättre
- mellan
- störst
- ökat
- båda
- bredare
- SLUTRESULTAT
- Byggnad
- byggt
- företag
- by
- KAN
- kapacitet
- cape
- kortet
- katalog
- byte
- klient
- klienter
- kluster
- CO
- koda
- Kolumn
- Kolonner
- kombinera
- komplex
- komponenter
- beräkning
- Kontakta
- anslutning
- konsekvent
- innehåller
- sammanhang
- Konvertering
- omvandling
- skapa
- Skapa
- referenser
- kredit
- kreditkort
- kricket
- avgörande
- beställnings
- Kunder
- dagligen
- datum
- datasjö
- databehandling
- datalagret
- datauppsättningar
- decentraliserad
- Standard
- definierade
- demonstrera
- Designa
- design
- detaljer
- utveckla
- Utvecklare
- utvecklare
- Utveckling
- olika
- Dimensionera
- dimensioner
- diskutera
- diskuteras
- distribueras
- flera
- lätt
- ekosystemet
- effektivt
- effektivitet
- effektivitet
- effektiv
- enkelt
- utslagen
- betonade
- möjliggör
- möjliggör
- ingenjör
- Teknik
- Ingenjörer
- förbättra
- förbättra
- berikad
- berikande
- säkerställa
- säkerställa
- Företag
- entusiast
- Entrepreneur
- Miljö
- väsentlig
- Eter (ETH)
- befintliga
- Bygga ut
- expanderar
- erfarenhet
- främja
- underlättas
- Faktum
- faktor
- fakta
- SNABB
- Leverans
- Funktioner
- Fil
- finansiella
- finansiella tjänster
- fynd
- Fokus
- fokuserade
- fokusering
- efter
- För
- format
- Framåt
- frekvent
- från
- funktioner
- ytterligare
- Få
- generering
- skaffa sig
- GitHub
- Globalt
- Arbetsmiljö
- Har
- he
- hjälpa
- hjälpa
- hjälper
- honom
- hans
- Hur ser din drömresa ut
- html
- http
- HTTPS
- IAM
- Identifiering
- Identitet
- genomföra
- genomföras
- importera
- vikt
- förbättras
- förbättringar
- in
- ingår
- innefattar
- ökat
- informationen
- integrera
- integrering
- integritet
- interaktion
- Gränssnitt
- inre
- in
- problem
- IT
- DESS
- java
- Jobb
- delta
- fogade
- resa
- sjö
- Språk
- Large
- storskalig
- leda
- inlärning
- vänster
- bibliotek
- Bibliotek
- tycka om
- lever
- läsa in
- lån
- platser
- älskar
- Maskinen
- maskininlärning
- upprätthålla
- underhåll
- Framställning
- sätt
- manuellt
- mekanism
- mekanismer
- miljon
- minimerande
- minuter
- ML
- modell
- modeller
- modulära
- övervakning
- månad
- mer
- mer effektiv
- multipel
- Musik
- nödvändigt för
- of
- Erbjudanden
- Oliv
- on
- endast
- öppet
- öppen källkod
- Verksamhet
- optimala
- Optimera
- optimerad
- beställa
- utanför
- över
- övergripande
- pandor
- särskilt
- Lösenord
- för
- prestanda
- Planen
- planer
- plattform
- plato
- Platon Data Intelligence
- PlatonData
- Spela
- i
- spelar
- Populära
- pose
- Möjligheterna
- Inlägg
- praxis
- prediktiva
- föregående
- Principen
- Problem
- problemlösning
- problem
- process
- bearbetning
- Produkt
- Produktion
- produktivitet
- främja
- ge
- förutsatt
- Python
- sökfrågor
- snabbt
- R
- område
- Läsa
- Läsning
- realtid
- post
- register
- återkommande
- Minskad
- hänvisa
- tillförlitlighet
- känd
- kräver
- Obligatorisk
- Krav
- Lös
- Resurser
- resultera
- resulterande
- detaljhandeln
- Detaljhandel
- Roll
- Körning
- rinnande
- lönen
- SC
- Skala
- skalbar
- omfattning
- sDK
- sömlös
- sömlöst
- hemligheter
- §
- se
- vald
- väljer
- selektiv
- senior
- Tjänster
- uppsättningar
- flera
- delas
- visa upp
- signifikant
- Enkelt
- förenkla
- förenkla
- eftersom
- Långsamt
- mjukare
- Snapshot
- So
- umgänge
- lösning
- Lösningar
- LÖSA
- Löser
- Källa
- Källor
- Sourcing
- Söder
- Gnista
- specialist
- spent
- SQL
- igång
- Steg
- förvaring
- lagras
- effektivisera
- strömlinjeformad
- Sträng
- stark
- lämnats
- framgångsrik
- Framgångsrikt
- Som stöds
- Stöder
- system
- bord
- grupp
- Teknisk
- temporär
- Testning
- den där
- Smakämnen
- källan
- deras
- Dem
- sedan
- Dessa
- de
- detta
- Genom
- tid
- till
- tillsammans
- verktyg
- stan
- transaktion
- Traveling
- URL
- användning
- Begagnade
- med hjälp av
- verktyg
- utnyttjas
- Använda
- Värdefulla
- via
- Warehouse
- var
- Sätt..
- we
- webb
- webbservice
- były
- medan
- med
- inom
- Arbete
- jobba tillsammans
- arbetsflöde
- arbetsflöden
- arbetssätt
- skriva
- år
- gav
- dig
- Din
- zephyrnet
- noll-