Dette indlæg er skrevet sammen med Preshen Goobiah og Johan Olivier fra Capitec.
Apache Spark er et udbredt open source distribueret behandlingssystem, der er kendt for at håndtere store dataarbejdsbelastninger. Det finder hyppig anvendelse blandt Spark-udviklere, der arbejder med Amazon EMR, Amazon SageMaker, AWS Lim og brugerdefinerede Spark-applikationer.
Amazon rødforskydning tilbyder problemfri integration med Apache Spark, så du nemt kan få adgang til dine Redshift-data på både Amazon Redshift-provisionerede klynger og Amazon Redshift Serverløs. Denne integration udvider mulighederne for AWS-analyse- og maskinlæringsløsninger (ML), hvilket gør datavarehuset tilgængeligt for en bredere vifte af applikationer.
Med Amazon Redshift-integration til Apache Spark, kan du hurtigt komme i gang og ubesværet udvikle Spark-applikationer ved hjælp af populære sprog som Java, Scala, Python, SQL og R. Dine applikationer kan problemfrit læse fra og skrive til dit Amazon Redshift-datavarehus, mens du opretholder optimal ydeevne og transaktionskonsistens. Derudover vil du drage fordel af ydeevneforbedringer gennem pushdown-optimeringer, hvilket yderligere forbedrer effektiviteten af dine operationer.
Capitec, Sydafrikas største detailbank med over 21 millioner detailbankkunder, sigter mod at levere enkle, overkommelige og tilgængelige finansielle tjenester for at hjælpe sydafrikanere med at banke bedre, så de kan leve bedre. I dette indlæg diskuterer vi den vellykkede integration af open source Amazon Redshift-stikket af Capitecs Shared Services Feature Platform-team. Som et resultat af brugen af Amazon Redshift-integrationen til Apache Spark, steg udviklerproduktiviteten med en faktor 10, funktionsgenereringspipelines blev strømlinet, og dataduplikering reduceret til nul.
Forretningsmuligheden
Der er 19 prædiktive modeller, der kan bruge 93 funktioner bygget med AWS Glue på tværs af Capitecs detailkreditdivisioner. Funktionsposter er beriget med fakta og dimensioner, der er gemt i Amazon Redshift. Apache PySpark blev udvalgt til at skabe funktioner, fordi det tilbyder en hurtig, decentraliseret og skalerbar mekanisme til at skændes med data fra forskellige kilder.
Disse produktionsfunktioner spiller en afgørende rolle i at muliggøre tidsbegrænsede låneansøgninger i realtid, kreditkortansøgninger, månedlig batch-kreditadfærdsovervågning og batch-daglig lønidentifikation i virksomheden.
Datakildeproblemet
For at sikre pålideligheden af PySpark-datapipelines er det vigtigt at have konsistente data på rekordniveau fra både dimensions- og faktatabeller gemt i Enterprise Data Warehouse (EDW). Disse tabeller sammenføjes derefter med tabeller fra Enterprise Data Lake (EDL) under kørsel.
Under funktionsudvikling kræver dataingeniører en sømløs grænseflade til EDW. Denne grænseflade giver dem mulighed for at få adgang til og integrere de nødvendige data fra EDW i datapipelines, hvilket muliggør effektiv udvikling og test af funktioner.
Tidligere løsningsproces
I den tidligere løsning brugte produktteamets dataingeniører 30 minutter pr. kørsel på manuelt at eksponere Redshift-data for Spark. Trinene omfattede følgende:
- Konstruer en prædikeret forespørgsel i Python.
- Indsend en LOSSE forespørgsel via Amazon Redshift Data API.
- Katalogdata i AWS Glue Data Catalog via AWS SDK for pandaer ved hjælp af sampling.
Denne tilgang gav problemer for store datasæt, krævede tilbagevendende vedligeholdelse fra platformsteamet og var kompleks at automatisere.
Aktuel løsningsoversigt
Capitec var i stand til at løse disse problemer med Amazon Redshift-integrationen til Apache Spark inden for funktionsgenereringspipelines. Arkitekturen er defineret i følgende diagram.
Arbejdsgangen omfatter følgende trin:
- Interne biblioteker installeres i AWS Glue PySpark-jobbet via AWS CodeArtifact.
- Et AWS Glue-job henter Redshift-klyngelegitimationsoplysninger fra AWS Secrets Manager og opsætter Amazon Redshift-forbindelsen (injicerer klyngelegitimationsoplysninger, losseplaceringer, filformater) via det delte interne bibliotek. Amazon Redshift-integration til Apache Spark understøtter også brug AWS identitets- og adgangsstyring (IAM) til hente legitimationsoplysninger og oprette forbindelse til Amazon Redshift.
- Spark-forespørgslen oversættes til en Amazon Redshift-optimeret forespørgsel og sendes til EDW. Dette opnås af Amazon Redshift-integrationen til Apache Spark.
- EDW-datasættet udlæses til et midlertidigt præfiks i en Amazon Simple Storage Service (Amazon S3) spand.
- EDW-datasættet fra S3-bøtten indlæses i Spark-eksekutorer via Amazon Redshift-integrationen til Apache Spark.
- EDL-datasættet indlæses i Spark-eksekutorer via AWS Glue Data Catalog.
Disse komponenter arbejder sammen for at sikre, at dataingeniører og produktionsdatapipelines har de nødvendige værktøjer til at implementere Amazon Redshift-integrationen til Apache Spark, køre forespørgsler og lette udlæsningen af data fra Amazon Redshift til EDL.
Brug af Amazon Redshift-integration til Apache Spark i AWS Glue 4.0
I dette afsnit demonstrerer vi nytten af Amazon Redshift-integrationen til Apache Spark ved at berige en låneansøgningstabel i S3-datasøen med klientoplysninger fra Redshift-datavarehuset i PySpark.
dimclient
tabel i Amazon Redshift indeholder følgende kolonner:
- Client Key – INT8
- ClientAltKey – VARCHAR50
- PartyIdentifierNumber – VARCHAR20
- ClientCreateDate – DATO
- Er annulleret – INT2
- RowIsCurrent – INT2
loanapplication
tabel i AWS Glue Data Catalog indeholder følgende kolonner:
- RecordID – STORT
- LogDato - TIDSSTEMPEL
- PartyIdentifierNumber – STRING
Redshift-tabellen læses via Amazon Redshift-integrationen til Apache Spark og cachelagres. Se følgende kode:
Låneansøgningsposter læses ind fra S3-datasøen og beriges med dimclient
tabel på Amazon Redshift information:
Som et resultat er låneansøgningsposten (fra S3-datasøen) beriget med ClientCreateDate
kolonne (fra Amazon Redshift).
Hvordan Amazon Redshift-integrationen til Apache Spark løser datakildeproblemet
Amazon Redshift-integrationen til Apache Spark løser effektivt datakildeproblemet gennem følgende mekanismer:
- Just-in-time læsning – Amazon Redshift-integrationen til Apache Spark-stikket læser Redshift-tabeller på en just-in-time måde, hvilket sikrer konsistensen af data og skema. Dette er særligt værdifuldt for Type 2 langsomt skiftende dimension (SCD) og tidsrum, der akkumulerer øjebliksbilledefakta. Ved at kombinere disse Redshift-tabeller med kildesystemet AWS Glue Data Catalog-tabeller fra EDL inden for produktions PySpark-pipelines, muliggør forbindelsen problemfri integration af data fra flere kilder, samtidig med at dataintegriteten bevares.
- Optimerede Redshift-forespørgsler – Amazon Redshift-integrationen til Apache Spark spiller en afgørende rolle i at konvertere Spark-forespørgselsplanen til en optimeret Redshift-forespørgsel. Denne konverteringsproces forenkler udviklingsoplevelsen for produktteamet ved at overholde datalokalitetsprincippet. De optimerede forespørgsler bruger Amazon Redshifts muligheder og ydeevneoptimeringer, hvilket sikrer effektiv datahentning og behandling fra Amazon Redshift til PySpark-pipelines. Dette hjælper med at strømline udviklingsprocessen, samtidig med at den overordnede ydeevne af datakildeoperationerne forbedres.
At opnå den bedste præstation
Amazon Redshift-integrationen til Apache Spark anvender automatisk prædikat- og forespørgsels-pushdown for at optimere ydeevnen. Du kan opnå ydeevneforbedringer ved at bruge standardparketformatet, der bruges til aflæsning med denne integration.
For yderligere detaljer og kodeeksempler henvises til Nyt – Amazon Redshift-integration med Apache Spark.
Løsningsfordele
Vedtagelsen af integrationen gav flere væsentlige fordele for teamet:
- Forbedret udviklerproduktivitet – PySpark-grænsefladen leveret af integrationen øgede udviklerproduktiviteten med en faktor 10, hvilket muliggjorde en jævnere interaktion med Amazon Redshift.
- Eliminering af dataduplikering – Duplikerede og AWS Glue-katalogiserede Redshift-tabeller i datasøen blev elimineret, hvilket resulterede i et mere strømlinet datamiljø.
- Reduceret EDW-belastning – Integrationen lettede selektiv dataaflæsning og minimerede belastningen på EDW ved kun at udtrække de nødvendige data.
Ved at bruge Amazon Redshift-integrationen til Apache Spark har Capitec banet vejen for forbedret databehandling, øget produktivitet og et mere effektivt funktionsteknologisk økosystem.
Konklusion
I dette indlæg diskuterede vi, hvordan Capitec-teamet med succes implementerede Apache Spark Amazon Redshift-integration til Apache Spark for at forenkle deres funktionsberegningsarbejdsgange. De understregede vigtigheden af at bruge decentraliserede og modulære PySpark-datapipelines til at skabe prædiktive modelfunktioner.
I øjeblikket bruges Amazon Redshift-integrationen til Apache Spark af 7 produktionsdatapipelines og 20 udviklingspipelines, hvilket viser dens effektivitet i Capitecs miljø.
Fremover planlægger Shared Services Feature Platform-teamet hos Capitec at udvide anvendelsen af Amazon Redshift-integrationen til Apache Spark i forskellige forretningsområder med det formål at forbedre databehandlingskapaciteten yderligere og fremme effektiv funktionsteknik.
For yderligere oplysninger om brug af Amazon Redshift-integration til Apache Spark, se følgende ressourcer:
Om forfatterne
Preshen Goobiah er Lead Machine Learning Engineer for Feature Platform hos Capitec. Han er fokuseret på at designe og bygge Feature Store-komponenter til virksomhedsbrug. I sin fritid holder han af at læse og rejse.
Johan Olivier er senior maskinlæringsingeniør for Capitecs modelplatform. Han er iværksætter og problemløsningsentusiast. Han nyder musik og socialt samvær i sin fritid.
Sudipta Bagchi er Senior Specialist Solutions Architect hos Amazon Web Services. Han har over 12 års erfaring med data og analyse og hjælper kunder med at designe og bygge skalerbare og højtydende analyseløsninger. Uden for arbejdet elsker han at løbe, rejse og spille cricket. Forbind med ham LinkedIn.
Syed Humair er Senior Analytics Specialist Solutions Architect hos Amazon Web Services (AWS). Han har over 17 års erfaring i virksomhedsarkitektur med fokus på data og AI/ML, der hjælper AWS-kunder globalt med at imødekomme deres forretningsmæssige og tekniske krav. Du kan forbinde med ham på LinkedIn.
Vuyisa Maswana er Senior Solutions Architect hos AWS med base i Cape Town. Vuyisa har et stærkt fokus på at hjælpe kunder med at bygge tekniske løsninger til at løse forretningsproblemer. Han har støttet Capitec i deres AWS-rejse siden 2019.
- SEO Powered Content & PR Distribution. Bliv forstærket i dag.
- PlatoData.Network Vertical Generative Ai. Styrk dig selv. Adgang her.
- PlatoAiStream. Web3 intelligens. Viden forstærket. Adgang her.
- PlatoESG. Kulstof, CleanTech, Energi, Miljø, Solenergi, Affaldshåndtering. Adgang her.
- PlatoHealth. Bioteknologiske og kliniske forsøgs intelligens. Adgang her.
- Kilde: https://aws.amazon.com/blogs/big-data/simplifying-data-processing-at-capitec-with-amazon-redshift-integration-for-apache-spark/
- :har
- :er
- $OP
- 06
- 1
- 10
- 100
- 12
- 16
- 17
- 19
- 20
- 2019
- 30
- 7
- a
- I stand
- adgang
- tilgængelig
- gennemført
- tværs
- Yderligere
- yderligere information
- Derudover
- adresse
- adresser
- klæber
- Vedtagelse
- overkommelige
- AI / ML
- sigter
- målsætninger
- tillade
- tillader
- også
- Amazon
- Amazon Web Services
- Amazon Web Services (AWS)
- blandt
- an
- analytics
- ,
- Apache
- Apache Spark
- Anvendelse
- applikationer
- gælder
- tilgang
- arkitektur
- ER
- områder
- AS
- At
- automatisere
- automatisk
- AWS
- AWS Lim
- Bank
- Bank
- baseret
- fordi
- adfærd
- gavner det dig
- fordele
- BEDSTE
- Bedre
- mellem
- Største
- Hjulpet
- både
- bredere
- bygge
- Bygning
- bygget
- virksomhed
- by
- CAN
- kapaciteter
- cape
- kort
- katalog
- skiftende
- kunde
- kunder
- Cluster
- CO
- kode
- Kolonne
- Kolonner
- kombinerer
- komplekse
- komponenter
- beregning
- Tilslut
- tilslutning
- konsekvent
- indeholder
- sammenhæng
- Konvertering
- konvertering af
- skabe
- Oprettelse af
- Legitimationsoplysninger
- kredit
- kreditkort
- cricket
- afgørende
- skik
- Kunder
- dagligt
- data
- Data Lake
- databehandling
- datalager
- datasæt
- decentral
- Standard
- definerede
- demonstrere
- Design
- designe
- detaljer
- udvikle
- Udvikler
- udviklere
- Udvikling
- forskellige
- Dimension
- størrelse
- diskutere
- drøftet
- distribueret
- forskelligartede
- nemt
- økosystem
- effektivt
- effektivitet
- effektivitet
- effektiv
- ubesværet
- elimineret
- understreget
- muliggør
- muliggør
- ingeniør
- Engineering
- Ingeniører
- forbedre
- styrke
- beriget
- berigende
- sikre
- sikring
- Enterprise
- entusiast
- Entrepreneur
- Miljø
- væsentlig
- Ether (ETH)
- eksisterende
- Udvid
- udvider
- erfaring
- lette
- lettes
- Faktisk
- faktor
- fakta
- FAST
- Feature
- Funktionalitet
- File (Felt)
- finansielle
- finansielle tjenesteydelser
- fund
- Fokus
- fokuserede
- fokusering
- efter
- Til
- format
- Videresend
- hyppig
- fra
- funktioner
- yderligere
- Gevinst
- generation
- få
- GitHub
- Globalt
- Håndtering
- Have
- he
- hjælpe
- hjælpe
- hjælper
- ham
- hans
- Hvordan
- HTML
- http
- HTTPS
- IAM
- Identifikation
- Identity
- gennemføre
- implementeret
- importere
- betydning
- forbedret
- forbedringer
- in
- medtaget
- omfatter
- øget
- oplysninger
- integrere
- integration
- integritet
- interaktion
- grænseflade
- interne
- ind
- spørgsmål
- IT
- ITS
- Java
- Job
- deltage
- sluttede
- rejse
- sø
- Sprog
- stor
- storstilet
- føre
- læring
- til venstre
- biblioteker
- Bibliotek
- ligesom
- leve
- belastning
- lån
- placeringer
- elsker
- maskine
- machine learning
- opretholdelse
- vedligeholdelse
- Making
- måde
- manuelt
- mekanisme
- mekanismer
- million
- minimering
- minutter
- ML
- model
- modeller
- modulær
- overvågning
- månedligt
- mere
- mere effektiv
- flere
- Musik
- nødvendig
- of
- Tilbud
- Olive
- on
- kun
- åbent
- open source
- Produktion
- optimal
- Optimer
- optimeret
- ordrer
- uden for
- i løbet af
- samlet
- pandaer
- især
- Adgangskode
- per
- ydeevne
- fly
- planer
- perron
- plato
- Platon Data Intelligence
- PlatoData
- Leg
- spiller
- spiller
- Populær
- stillet
- muligheder
- Indlæg
- praksis
- forudsigende
- tidligere
- princippet
- Problem
- problemløsning
- problemer
- behandle
- forarbejdning
- Produkt
- produktion
- produktivitet
- fremme
- give
- forudsat
- Python
- forespørgsler
- hurtigt
- R
- rækkevidde
- Læs
- Læsning
- realtid
- optage
- optegnelser
- tilbagevendende
- Reduceret
- henvise
- pålidelighed
- Kendt
- kræver
- påkrævet
- Krav
- løse
- Ressourcer
- resultere
- resulterer
- detail
- Detailbankvirksomhed
- roller
- Kør
- kører
- løn
- SC
- Scala
- skalerbar
- rækkevidde
- SDK
- sømløs
- problemfrit
- hemmeligheder
- Sektion
- se
- valgt
- udvælgelse
- selektiv
- senior
- Tjenester
- sæt
- flere
- delt
- fremvisning
- signifikant
- Simpelt
- forenkle
- forenkle
- siden
- langsomt
- glattere
- Snapshot
- So
- socialisering
- løsninger
- Løsninger
- SOLVE
- Løser
- Kilde
- Kilder
- Sourcing
- Syd
- Spark
- specialist
- brugt
- SQL
- påbegyndt
- Steps
- opbevaring
- opbevaret
- strømline
- strømlinet
- String
- stærk
- indsendt
- vellykket
- Succesfuld
- Understøttet
- Understøtter
- systemet
- bord
- hold
- Teknisk
- midlertidig
- Test
- at
- The Source
- deres
- Them
- derefter
- Disse
- de
- denne
- Gennem
- tid
- til
- sammen
- værktøjer
- Byen
- transaktionsbeslutning
- Traveling
- URL
- brug
- anvendte
- ved brug af
- nytte
- udnyttet
- Ved hjælp af
- Værdifuld
- via
- Warehouse
- var
- Vej..
- we
- web
- webservices
- var
- mens
- med
- inden for
- Arbejde
- arbejde sammen
- workflow
- arbejdsgange
- arbejder
- skriver
- år
- gav efter
- dig
- Din
- zephyrnet
- nul