Dette innlegget er skrevet sammen med Preshen Goobiah og Johan Olivier fra Capitec.
Apache Spark er et mye brukt distribuert behandlingssystem med åpen kildekode kjent for å håndtere store dataarbeidsmengder. Den finner hyppig bruk blant Spark-utviklere som jobber med Amazon EMR, Amazon SageMaker, AWS Lim og tilpassede Spark-applikasjoner.
Amazon RedShift tilbyr sømløs integrasjon med Apache Spark, slik at du enkelt kan få tilgang til Redshift-dataene dine på både Amazon Redshift-klargjorte klynger og Amazon Redshift Serverløs. Denne integrasjonen utvider mulighetene for AWS-analyse- og maskinlæringsløsninger (ML), og gjør datavarehuset tilgjengelig for et bredere spekter av applikasjoner.
Med Amazon Redshift-integrasjon for Apache Spark, kan du raskt komme i gang og enkelt utvikle Spark-applikasjoner ved å bruke populære språk som Java, Scala, Python, SQL og R. Appene dine kan sømløst lese fra og skrive til ditt Amazon Redshift-datavarehus samtidig som du opprettholder optimal ytelse og transaksjonskonsistens. I tillegg vil du dra nytte av ytelsesforbedringer gjennom pushdown-optimaliseringer, noe som ytterligere forbedrer effektiviteten til driften din.
Capitec, Sør-Afrikas største detaljhandelsbank med over 21 millioner privatkunder, har som mål å tilby enkle, rimelige og tilgjengelige finansielle tjenester for å hjelpe sørafrikanere til å banke bedre slik at de kan leve bedre. I dette innlegget diskuterer vi den vellykkede integreringen av Amazon Redshift-koblingen med åpen kildekode av Capitecs funksjonsplattform-team for delte tjenester. Som et resultat av bruken av Amazon Redshift-integrasjonen for Apache Spark, økte utviklerproduktiviteten med en faktor 10, funksjonsgenereringspipelines ble strømlinjeformet, og dataduplisering redusert til null.
Forretningsmuligheten
Det er 19 prediktive modeller med mulighet for å bruke 93 funksjoner bygget med AWS Glue på tvers av Capitecs Retail Credit-divisjoner. Funksjonsposter er beriket med fakta og dimensjoner lagret i Amazon Redshift. Apache PySpark ble valgt til å lage funksjoner fordi den tilbyr en rask, desentralisert og skalerbar mekanisme for å krangle data fra forskjellige kilder.
Disse produksjonsfunksjonene spiller en avgjørende rolle for å muliggjøre sanntidslånsøknader, kredittkortsøknader, månedlig overvåking av kredittatferd og daglig lønnsidentifikasjon i bedriften.
Datakildeproblemet
For å sikre påliteligheten til PySpark-datapipelines, er det viktig å ha konsistente data på rekordnivå fra både dimensjons- og faktatabeller lagret i Enterprise Data Warehouse (EDW). Disse tabellene blir deretter slått sammen med tabeller fra Enterprise Data Lake (EDL) under kjøring.
Under funksjonsutvikling krever dataingeniører et sømløst grensesnitt til EDW. Dette grensesnittet lar dem få tilgang til og integrere de nødvendige dataene fra EDW i datarørledningene, noe som muliggjør effektiv utvikling og testing av funksjoner.
Tidligere løsningsprosess
I den forrige løsningen brukte produktteamets dataingeniører 30 minutter per kjøring for manuelt å eksponere Redshift-data til Spark. Trinnene inkluderte følgende:
- Konstruer en predikert spørring i Python.
- Send inn en LESSE spørring via Amazon Redshift Data API.
- Katalogdata i AWS Glue Data Catalog via AWS SDK for Pandaer ved bruk av sampling.
Denne tilnærmingen skapte problemer for store datasett, krevde regelmessig vedlikehold fra plattformteamet, og var komplisert å automatisere.
Aktuell løsningsoversikt
Capitec var i stand til å løse disse problemene med Amazon Redshift-integrasjonen for Apache Spark innen funksjonsgenerering. Arkitekturen er definert i følgende diagram.
Arbeidsflyten inkluderer følgende trinn:
- Interne biblioteker er installert i AWS Glue PySpark-jobben via AWS CodeArtifact.
- En AWS Glue-jobb henter Redshift-klyngelegitimasjon fra AWS Secrets Manager og setter opp Amazon Redshift-tilkoblingen (injiserer klyngelegitimasjon, losseplasseringer, filformater) via det delte interne biblioteket. Amazon Redshift-integrasjonen for Apache Spark støtter også bruk AWS identitets- og tilgangsadministrasjon (IAM) til hente legitimasjon og koble til Amazon Redshift.
- Spark-spørringen oversettes til en Amazon Redshift-optimalisert spørring og sendes til EDW. Dette oppnås av Amazon Redshift-integrasjonen for Apache Spark.
- EDW-datasettet lastes ut til et midlertidig prefiks i en Amazon enkel lagringstjeneste (Amazon S3) bøtte.
- EDW-datasettet fra S3-bøtten lastes inn i Spark-utførere via Amazon Redshift-integrasjonen for Apache Spark.
- EDL-datasettet lastes inn i Spark-utførere via AWS Glue Data Catalog.
Disse komponentene jobber sammen for å sikre at dataingeniører og produksjonsdatapipelines har de nødvendige verktøyene for å implementere Amazon Redshift-integrasjonen for Apache Spark, kjøre spørringer og lette utlastingen av data fra Amazon Redshift til EDL.
Bruker Amazon Redshift-integrasjonen for Apache Spark i AWS Glue 4.0
I denne delen demonstrerer vi nytten av Amazon Redshift-integrasjonen for Apache Spark ved å berike en lånesøknadstabell som ligger i S3-datasjøen med klientinformasjon fra Redshift-datavarehuset i PySpark.
De dimclient
tabellen i Amazon Redshift inneholder følgende kolonner:
- Klientnøkkel – INT8
- ClientAltKey – VARCHAR50
- PartyIdentifierNumber – VARCHAR20
- ClientCreateDate - DATO
- Er kansellert – INT2
- RowIsCurrent – INT2
De loanapplication
Tabellen i AWS Glue Data Catalog inneholder følgende kolonner:
- RecordID – STORT
- Loggdato – TIDSSTIMPEL
- PartyIdentifierNumber – STRING
Redshift-tabellen leses via Amazon Redshift-integrasjonen for Apache Spark og bufres. Se følgende kode:
Lånesøknadsposter leses inn fra S3-datasjøen og berikes med dimclient
tabell på Amazon Redshift informasjon:
Som et resultat blir lånesøknadsposten (fra S3-datasjøen) beriket med ClientCreateDate
kolonne (fra Amazon Redshift).
Hvordan Amazon Redshift-integrasjonen for Apache Spark løser datakildeproblemet
Amazon Redshift-integrasjonen for Apache Spark løser effektivt datakildeproblemet gjennom følgende mekanismer:
- Just-in-time lesing – Amazon Redshift-integrasjonen for Apache Spark-koblingen leser Redshift-tabeller på en just-in-time måte, og sikrer konsistensen av data og skjema. Dette er spesielt verdifullt for Type 2 sakte skiftende dimensjon (SCD) og tidsrom som akkumulerer øyeblikksbilder. Ved å kombinere disse Redshift-tabellene med kildesystemet AWS Glue Data Catalog-tabeller fra EDL innenfor produksjons PySpark-rørledninger, muliggjør koblingen sømløs integrasjon av data fra flere kilder samtidig som dataintegriteten opprettholdes.
- Optimaliserte Redshift-spørringer – Amazon Redshift-integrasjonen for Apache Spark spiller en avgjørende rolle i å konvertere Spark-spørringsplanen til en optimalisert Redshift-spørring. Denne konverteringsprosessen forenkler utviklingsopplevelsen for produktteamet ved å følge datalokalitetsprinsippet. De optimaliserte spørringene bruker egenskapene og ytelsesoptimaliseringene til Amazon Redshift, og sikrer effektiv datainnhenting og prosessering fra Amazon Redshift for PySpark-rørledningene. Dette bidrar til å strømlinjeforme utviklingsprosessen samtidig som det forbedrer den generelle ytelsen til datainnhentingsoperasjonene.
Får den beste ytelsen
Amazon Redshift-integrasjonen for Apache Spark bruker automatisk predikat- og spørrings-pushdown for å optimalisere ytelsen. Du kan oppnå ytelsesforbedringer ved å bruke standard parkettformat som brukes for lossing med denne integrasjonen.
For ytterligere detaljer og kodeeksempler, se Nytt – Amazon Redshift-integrasjon med Apache Spark.
Løsningsfordeler
Adopsjonen av integrasjonen ga flere betydelige fordeler for teamet:
- Forbedret utviklerproduktivitet – PySpark-grensesnittet levert av integrasjonen økte utviklerproduktiviteten med en faktor på 10, noe som muliggjorde jevnere interaksjon med Amazon Redshift.
- Eliminering av dataduplisering – Dupliserte og AWS Glue-katalogiserte Redshift-tabeller i datasjøen ble eliminert, noe som resulterte i et mer strømlinjeformet datamiljø.
- Redusert EDW-belastning – Integrasjonen muliggjorde selektiv dataavlasting, og minimerte belastningen på EDW ved å trekke ut de nødvendige dataene.
Ved å bruke Amazon Redshift-integrasjonen for Apache Spark, har Capitec banet vei for forbedret databehandling, økt produktivitet og et mer effektivt økosystem for funksjonsteknologi.
konklusjonen
I dette innlegget diskuterte vi hvordan Capitec-teamet vellykket implementerte Apache Spark Amazon Redshift-integrasjonen for Apache Spark for å forenkle arbeidsflytene deres for funksjonsberegning. De understreket viktigheten av å bruke desentraliserte og modulære PySpark-datapipelines for å lage prediktive modellfunksjoner.
For øyeblikket brukes Amazon Redshift-integrasjonen for Apache Spark av 7 produksjonsdatapipelines og 20 utviklingspipelines, som viser effektiviteten i Capitecs miljø.
Fremover planlegger funksjonsplattformteamet for delte tjenester hos Capitec å utvide bruken av Amazon Redshift-integrasjonen for Apache Spark i forskjellige forretningsområder, med sikte på å forbedre databehandlingsevnene ytterligere og fremme effektiv funksjonsteknikk.
For ytterligere informasjon om bruk av Amazon Redshift-integrasjonen for Apache Spark, se følgende ressurser:
Om forfatterne
Preshen Goobiah er Lead Machine Learning Engineer for Feature Platform hos Capitec. Han er fokusert på å designe og bygge Feature Store-komponenter for bedriftsbruk. På fritiden liker han å lese og reise.
Johan Olivier er senior maskinlæringsingeniør for Capitecs modellplattform. Han er en gründer og problemløsende entusiast. Han liker musikk og sosialt samvær på fritiden.
Sudipta Bagchi er Senior Specialist Solutions Architect hos Amazon Web Services. Han har over 12 års erfaring innen data og analyse, og hjelper kunder med å designe og bygge skalerbare og høyytende analyseløsninger. Utenom jobben elsker han å løpe, reise og spille cricket. Ta kontakt med ham videre Linkedin.
Syed Humair er Senior Analytics Specialist Solutions Architect hos Amazon Web Services (AWS). Han har over 17 års erfaring innen bedriftsarkitektur med fokus på data og AI/ML, og hjelper AWS-kunder globalt med å møte deres forretningsmessige og tekniske krav. Du kan få kontakt med ham Linkedin.
Vuyisa Maswana er Senior Solutions Architect ved AWS, basert i Cape Town. Vuyisa har et sterkt fokus på å hjelpe kunder med å bygge tekniske løsninger for å løse forretningsproblemer. Han har støttet Capitec i deres AWS-reise siden 2019.
- SEO-drevet innhold og PR-distribusjon. Bli forsterket i dag.
- PlatoData.Network Vertical Generative Ai. Styrk deg selv. Tilgang her.
- PlatoAiStream. Web3 Intelligence. Kunnskap forsterket. Tilgang her.
- PlatoESG. Karbon, CleanTech, Energi, Miljø, Solenergi, Avfallshåndtering. Tilgang her.
- PlatoHelse. Bioteknologisk og klinisk etterretning. Tilgang her.
- kilde: https://aws.amazon.com/blogs/big-data/simplifying-data-processing-at-capitec-with-amazon-redshift-integration-for-apache-spark/
- : har
- :er
- $OPP
- 06
- 1
- 10
- 100
- 12
- 16
- 17
- 19
- 20
- 2019
- 30
- 7
- a
- I stand
- adgang
- tilgjengelig
- oppnådd
- tvers
- Ytterligere
- Tilleggsinformasjon
- I tillegg
- adresse
- adresser
- fester seg
- Adopsjon
- rimelig
- AI / ML
- Sikter
- mål
- tillate
- tillater
- også
- Amazon
- Amazon Web Services
- Amazon Web Services (AWS)
- blant
- an
- analytics
- og
- Apache
- Apache Spark
- Søknad
- søknader
- gjelder
- tilnærming
- arkitektur
- ER
- områder
- AS
- At
- automatisere
- automatisk
- AWS
- AWS Lim
- Bank
- Banking
- basert
- fordi
- atferd
- nytte
- Fordeler
- BEST
- Bedre
- mellom
- Biggest
- styrket
- både
- bredere
- bygge
- Bygning
- bygget
- virksomhet
- by
- CAN
- evner
- cape
- kort
- katalog
- endring
- kunde
- klienter
- Cluster
- CO
- kode
- Kolonne
- kolonner
- kombinere
- komplekse
- komponenter
- beregningen
- Koble
- tilkobling
- konsistent
- inneholder
- kontekst
- Konvertering
- konvertering
- skape
- Opprette
- Credentials
- kreditt
- kredittkort
- cricket
- avgjørende
- skikk
- Kunder
- daglig
- dato
- Data Lake
- databehandling
- datalager
- datasett
- desentralisert
- Misligholde
- definert
- demonstrere
- utforming
- utforme
- detaljer
- utvikle
- Utvikler
- utviklere
- Utvikling
- forskjellig
- Dimensjon
- dimensjoner
- diskutere
- diskutert
- distribueres
- diverse
- lett
- økosystem
- effektivt
- effektivitet
- effektivitet
- effektiv
- uanstrengt
- eliminert
- understreket
- muliggjør
- muliggjør
- ingeniør
- Ingeniørarbeid
- Ingeniører
- forbedre
- styrke
- anriket
- berikende
- sikre
- sikrer
- Enterprise
- entusiast
- Gründer
- Miljø
- avgjørende
- Eter (ETH)
- eksisterende
- Expand
- utvides
- erfaring
- legge til rette
- tilrettelagt
- Faktisk
- faktor
- fakta
- FAST
- Trekk
- Egenskaper
- filet
- finansiell
- finansielle tjenester
- funn
- Fokus
- fokuserte
- fokusering
- etter
- Til
- format
- Forward
- hyppig
- fra
- funksjoner
- videre
- Gevinst
- generasjonen
- få
- GitHub
- Globalt
- Håndtering
- Ha
- he
- hjelpe
- hjelpe
- hjelper
- ham
- hans
- Hvordan
- HTML
- http
- HTTPS
- IAM
- Identifikasjon
- Identitet
- iverksette
- implementert
- importere
- betydning
- forbedret
- forbedringer
- in
- inkludert
- inkluderer
- økt
- informasjon
- integrere
- integrering
- integritet
- interaksjon
- Interface
- intern
- inn
- saker
- IT
- DET ER
- Java
- Jobb
- bli medlem
- ble med
- reise
- innsjø
- språk
- stor
- storskala
- føre
- læring
- venstre
- bibliotekene
- Bibliotek
- i likhet med
- leve
- laste
- lån
- steder
- elsker
- maskin
- maskinlæring
- opprettholde
- vedlikehold
- Making
- måte
- manuelt
- mekanisme
- mekanismer
- millioner
- minimere
- minutter
- ML
- modell
- modeller
- modulære
- overvåking
- månedlig
- mer
- mer effektivt
- flere
- musikk
- nødvendig
- of
- Tilbud
- Olive
- on
- bare
- åpen
- åpen kildekode
- Drift
- optimal
- Optimalisere
- optimalisert
- rekkefølge
- utenfor
- enn
- samlet
- pandaer
- spesielt
- Passord
- for
- ytelse
- fly
- planer
- plattform
- plato
- Platon Data Intelligence
- PlatonData
- Spille
- spiller
- spiller
- Populær
- poserte
- muligheter
- Post
- praksis
- prediktiv
- forrige
- prinsipp
- Problem
- problemløsning
- problemer
- prosess
- prosessering
- Produkt
- Produksjon
- produktivitet
- fremme
- gi
- forutsatt
- Python
- spørsmål
- raskt
- R
- område
- Lese
- Lesning
- sanntids
- rekord
- poster
- gjentakende
- Redusert
- referere
- pålitelighet
- Kjent
- krever
- påkrevd
- Krav
- løse
- Ressurser
- resultere
- resulterende
- detaljhandel
- Detaljhandel
- Rolle
- Kjør
- rennende
- lønn
- SC
- Skala
- skalerbar
- omfang
- SDK
- sømløs
- sømløst
- hemmeligheter
- Seksjon
- se
- valgt
- velge
- selektiv
- senior
- Tjenester
- sett
- flere
- delt
- utstillingsvindu
- signifikant
- Enkelt
- forenkle
- forenkle
- siden
- Sakte
- jevnere
- Snapshot
- So
- sosialisere
- løsning
- Solutions
- LØSE
- løser
- kilde
- Kilder
- Sourcing
- Sør
- Spark
- spesialist
- brukt
- SQL
- startet
- Steps
- lagring
- lagret
- effektivisere
- strømlinjeformet
- String
- sterk
- innsendt
- vellykket
- vellykket
- Støttes
- Støtter
- system
- bord
- lag
- Teknisk
- midlertidig
- Testing
- Det
- De
- Kilden
- deres
- Dem
- deretter
- Disse
- de
- denne
- Gjennom
- tid
- til
- sammen
- verktøy
- byen
- transaksjonell
- Traveling
- URL
- bruke
- brukt
- ved hjelp av
- verktøyet
- benyttes
- utnytte
- Verdifull
- av
- Warehouse
- var
- Vei..
- we
- web
- webtjenester
- var
- mens
- med
- innenfor
- Arbeid
- arbeide sammen
- arbeidsflyt
- arbeidsflyt
- arbeid
- skrive
- år
- ga
- du
- Din
- zephyrnet
- null