Dieser Beitrag wurde gemeinsam mit Preshen Goobiah und Johan Olivier von Capitec verfasst.
Apache Spark ist ein weit verbreitetes verteiltes Open-Source-Verarbeitungssystem, das für die Bewältigung umfangreicher Daten-Workloads bekannt ist. Es findet häufige Anwendung unter Spark-Entwicklern, die damit arbeiten Amazon EMR, Amazon Sage Maker, AWS-Kleber und benutzerdefinierte Spark-Anwendungen.
Amazon RedShift bietet eine nahtlose Integration mit Apache Spark, sodass Sie sowohl auf den von Amazon Redshift bereitgestellten Clustern als auch problemlos auf Ihre Redshift-Daten zugreifen können Amazon Redshift ohne Server. Diese Integration erweitert die Möglichkeiten für AWS-Analyse- und Machine-Learning-Lösungen (ML) und macht das Data Warehouse für ein breiteres Spektrum von Anwendungen zugänglich.
Mit der Amazon Redshift-Integration für Apache Sparkkönnen Sie schnell loslegen und mühelos Spark-Anwendungen mit gängigen Sprachen wie Java, Scala, Python, SQL und R entwickeln. Ihre Anwendungen können nahtlos aus Ihrem Amazon Redshift Data Warehouse lesen und in dieses schreiben und dabei optimale Leistung und Transaktionskonsistenz gewährleisten. Darüber hinaus profitieren Sie von Leistungsverbesserungen durch Pushdown-Optimierungen, wodurch die Effizienz Ihrer Abläufe weiter gesteigert wird.
Capitec, Südafrikas größte Privatkundenbank mit über 21 Millionen Privatkunden, hat sich zum Ziel gesetzt, einfache, erschwingliche und zugängliche Finanzdienstleistungen anzubieten, um den Südafrikanern bessere Bankgeschäfte zu ermöglichen und ihnen ein besseres Leben zu ermöglichen. In diesem Beitrag diskutieren wir die erfolgreiche Integration des Open-Source-Amazon-Redshift-Connectors durch das Shared-Services-Feature-Platform-Team von Capitec. Durch die Nutzung der Amazon-Redshift-Integration für Apache Spark stieg die Entwicklerproduktivität um den Faktor 10, die Pipelines zur Feature-Generierung wurden rationalisiert und die Datenduplizierung auf null reduziert.
Die Geschäftsmöglichkeit
Für die Nutzung von 19 mit AWS Glue erstellten Funktionen in den Retail Credit-Abteilungen von Capitec stehen 93 Prognosemodelle zur Verfügung. Feature-Datensätze werden mit in Amazon Redshift gespeicherten Fakten und Dimensionen angereichert. Apache PySpark wurde für die Erstellung von Funktionen ausgewählt, da es einen schnellen, dezentralen und skalierbaren Mechanismus zur Verarbeitung von Daten aus verschiedenen Quellen bietet.
Diese Produktionsfunktionen spielen eine entscheidende Rolle bei der Ermöglichung von Echtzeitanträgen für befristete Kredite, Kreditkartenanträgen, einer monatlichen Batch-Überwachung des Kreditverhaltens und einer Batch-Tagesgehaltsidentifizierung innerhalb des Unternehmens.
Das Problem der Datenbeschaffung
Um die Zuverlässigkeit der PySpark-Datenpipelines sicherzustellen, ist es wichtig, konsistente Daten auf Datensatzebene sowohl aus Dimensions- als auch aus Faktentabellen zu haben, die im Enterprise Data Warehouse (EDW) gespeichert sind. Diese Tabellen werden dann zur Laufzeit mit Tabellen aus dem Enterprise Data Lake (EDL) verknüpft.
Während der Feature-Entwicklung benötigen Dateningenieure eine nahtlose Schnittstelle zum EDW. Über diese Schnittstelle können sie auf die erforderlichen Daten aus dem EDW zugreifen und diese in die Datenpipelines integrieren, was eine effiziente Entwicklung und Prüfung von Funktionen ermöglicht.
Vorheriger Lösungsprozess
Bei der vorherigen Lösung verbrachten die Dateningenieure des Produktteams 30 Minuten pro Lauf damit, Redshift-Daten manuell für Spark bereitzustellen. Die Schritte umfassten Folgendes:
- Erstellen Sie eine prädizierte Abfrage in Python.
- Submit ENTLADEN Abfrage über die Amazon Redshift-Daten-API.
- Katalogisieren Sie Daten im AWS Glue Data Catalog über das AWS SDK for Pandas mithilfe von Stichproben.
Dieser Ansatz stellte bei großen Datensätzen Probleme dar, erforderte wiederkehrende Wartungsarbeiten durch das Plattformteam und war komplex in der Automatisierung.
Aktuelle Lösungsübersicht
Capitec konnte diese Probleme mit der Amazon-Redshift-Integration für Apache Spark in Feature-Generierungs-Pipelines lösen. Die Architektur ist im folgenden Diagramm definiert.
Der Workflow umfasst die folgenden Schritte:
- Interne Bibliotheken werden über im AWS Glue PySpark-Job installiert AWS CodeArtifact.
- Ein AWS Glue-Job ruft Redshift-Cluster-Anmeldeinformationen ab AWS Secrets Manager und richtet die Amazon Redshift-Verbindung über die gemeinsam genutzte interne Bibliothek ein (fügt Cluster-Anmeldeinformationen, Entladeorte und Dateiformate ein). Die Amazon Redshift-Integration für Apache Spark unterstützt auch die Verwendung AWS Identity and Access Management and (Ich bin auch Rufen Sie Anmeldeinformationen ab und stellen Sie eine Verbindung zu Amazon Redshift her.
- Die Spark-Abfrage wird in eine für Amazon Redshift optimierte Abfrage übersetzt und an das EDW übermittelt. Dies wird durch die Amazon-Redshift-Integration für Apache Spark erreicht.
- Der EDW-Datensatz wird in ein temporäres Präfix in einem entladen Amazon Simple Storage-Service (Amazon S3) Eimer.
- Der EDW-Datensatz aus dem S3-Bucket wird über die Amazon-Redshift-Integration für Apache Spark in Spark-Ausführer geladen.
- Der EDL-Datensatz wird über den AWS Glue Data Catalog in Spark-Ausführer geladen.
Diese Komponenten arbeiten zusammen, um sicherzustellen, dass Dateningenieure und Produktionsdatenpipelines über die notwendigen Tools verfügen, um die Amazon-Redshift-Integration für Apache Spark zu implementieren, Abfragen auszuführen und das Entladen von Daten von Amazon Redshift in die EDL zu erleichtern.
Verwendung der Amazon Redshift-Integration für Apache Spark in AWS Glue 4.0
In diesem Abschnitt demonstrieren wir den Nutzen der Amazon-Redshift-Integration für Apache Spark, indem wir eine Kreditantragstabelle im S3-Data-Lake mit Kundeninformationen aus dem Redshift-Data-Warehouse in PySpark anreichern.
Das dimclient
Die Tabelle in Amazon Redshift enthält die folgenden Spalten:
- ClientKey – INT8
- ClientAltKey – VARCHAR50
- PartyIdentifierNumber – VARCHAR20
- ClientCreateDate - DATUM
- Ist storniert – INT2
- RowIsCurrent – INT2
Das loanapplication
Die Tabelle im AWS Glue-Datenkatalog enthält die folgenden Spalten:
- Datensatz-ID – BIGINT
- LogDate – ZEITSTEMPEL
- PartyIdentifierNumber – STRING
Die Redshift-Tabelle wird über die Amazon-Redshift-Integration für Apache Spark gelesen und zwischengespeichert. Siehe den folgenden Code:
Kreditantragsdatensätze werden aus dem S3-Datensee eingelesen und mit dem angereichert dimclient
Tabelle zu Amazon Redshift-Informationen:
Dadurch wird der Kreditantragsdatensatz (aus dem S3-Datensee) mit dem angereichert ClientCreateDate
Spalte (von Amazon Redshift).
Wie die Amazon-Redshift-Integration für Apache Spark das Datenbeschaffungsproblem löst
Die Amazon-Redshift-Integration für Apache Spark löst das Datenbeschaffungsproblem effektiv durch die folgenden Mechanismen:
- Just-in-time-Lesung – Die Amazon-Redshift-Integration für den Apache Spark-Connector liest Redshift-Tabellen just-in-time und stellt so die Konsistenz von Daten und Schema sicher. Dies ist besonders wertvoll für Typ 2 langsam ändernde Dimension (SCD) und Zeitspanne, in der Snapshot-Fakten gesammelt werden. Durch die Kombination dieser Redshift-Tabellen mit den AWS Glue Data Catalog-Tabellen des Quellsystems aus der EDL innerhalb der Produktions-PySpark-Pipelines ermöglicht der Connector eine nahtlose Integration von Daten aus mehreren Quellen bei gleichzeitiger Wahrung der Datenintegrität.
- Optimierte Redshift-Abfragen – Die Amazon Redshift-Integration für Apache Spark spielt eine entscheidende Rolle bei der Umwandlung des Spark-Abfrageplans in eine optimierte Redshift-Abfrage. Dieser Konvertierungsprozess vereinfacht die Entwicklungserfahrung für das Produktteam durch die Einhaltung des Prinzips der Datenlokalität. Die optimierten Abfragen nutzen die Funktionen und Leistungsoptimierungen von Amazon Redshift und gewährleisten so einen effizienten Datenabruf und eine effiziente Datenverarbeitung von Amazon Redshift für die PySpark-Pipelines. Dies trägt dazu bei, den Entwicklungsprozess zu rationalisieren und gleichzeitig die Gesamtleistung der Datenbeschaffungsvorgänge zu verbessern.
Die beste Leistung erzielen
Die Amazon-Redshift-Integration für Apache Spark wendet automatisch Prädikat- und Abfrage-Pushdown an, um die Leistung zu optimieren. Sie können Leistungsverbesserungen erzielen, indem Sie mit dieser Integration das Standard-Parquet-Format verwenden, das zum Entladen verwendet wird.
Weitere Details und Codebeispiele finden Sie unter Neu – Amazon Redshift-Integration mit Apache Spark.
Lösungsvorteile
Die Einführung der Integration brachte dem Team mehrere wesentliche Vorteile:
- Erhöhte Entwicklerproduktivität – Die durch die Integration bereitgestellte PySpark-Schnittstelle steigerte die Entwicklerproduktivität um den Faktor 10 und ermöglichte eine reibungslosere Interaktion mit Amazon Redshift.
- Eliminierung von Datenduplizierungen – Doppelte und mit AWS Glue katalogisierte Redshift-Tabellen im Data Lake wurden eliminiert, was zu einer optimierten Datenumgebung führte.
- Reduzierte EDW-Belastung – Die Integration erleichterte das selektive Entladen von Daten und minimierte die Belastung des EDW, indem nur die erforderlichen Daten extrahiert wurden.
Durch den Einsatz der Amazon-Redshift-Integration für Apache Spark hat Capitec den Weg für eine verbesserte Datenverarbeitung, höhere Produktivität und ein effizienteres Feature-Engineering-Ökosystem geebnet.
Zusammenfassung
In diesem Beitrag haben wir besprochen, wie das Capitec-Team die Apache Spark-Amazon-Redshift-Integration für Apache Spark erfolgreich implementiert hat, um seine Arbeitsabläufe zur Feature-Berechnung zu vereinfachen. Sie betonten die Bedeutung der Nutzung dezentraler und modularer PySpark-Datenpipelines für die Erstellung prädiktiver Modellfunktionen.
Derzeit wird die Amazon-Redshift-Integration für Apache Spark von sieben Produktionsdatenpipelines und 7 Entwicklungspipelines genutzt, was ihre Wirksamkeit in der Capitec-Umgebung unter Beweis stellt.
Für die Zukunft plant das Shared-Services-Feature-Platform-Team von Capitec, die Einführung der Amazon-Redshift-Integration für Apache Spark in verschiedenen Geschäftsbereichen auszuweiten, mit dem Ziel, die Datenverarbeitungsfunktionen weiter zu verbessern und effiziente Feature-Engineering-Praktiken zu fördern.
Weitere Informationen zur Verwendung der Amazon-Redshift-Integration für Apache Spark finden Sie in den folgenden Ressourcen:
Über die Autoren
Preshen Goobiah ist der leitende Ingenieur für maschinelles Lernen für die Feature-Plattform bei Capitec. Sein Schwerpunkt liegt auf dem Entwerfen und Erstellen von Feature Store-Komponenten für den Einsatz in Unternehmen. In seiner Freizeit liest und reist er gerne.
Johan Olivier ist Senior Machine Learning Engineer für die Modellplattform von Capitec. Er ist Unternehmer und Problemlösungsbegeisterter. In seiner Freizeit genießt er Musik und geselliges Beisammensein.
Sudipta Bagchi ist Senior Specialist Solutions Architect bei Amazon Web Services. Er verfügt über mehr als 12 Jahre Erfahrung in den Bereichen Daten und Analyse und unterstützt Kunden beim Entwurf und Aufbau skalierbarer und leistungsstarker Analyselösungen. Außerhalb der Arbeit liebt er Laufen, Reisen und Cricket. Verbinde dich mit ihm LinkedIn.
Syed Humair ist Senior Analytics Specialist Solutions Architect bei Amazon Web Services (AWS). Er verfügt über mehr als 17 Jahre Erfahrung in der Unternehmensarchitektur mit Schwerpunkt auf Daten und KI/ML und unterstützt AWS-Kunden weltweit bei der Erfüllung ihrer geschäftlichen und technischen Anforderungen. Sie können sich über ihn mit ihm verbinden LinkedIn.
Vuyisa Maswana ist Senior Solutions Architect bei AWS mit Sitz in Kapstadt. Vuyisa konzentriert sich stark darauf, Kunden bei der Entwicklung technischer Lösungen zur Lösung geschäftlicher Probleme zu unterstützen. Seit 2019 unterstützt er Capitec auf seiner AWS-Reise.
- SEO-gestützte Content- und PR-Distribution. Holen Sie sich noch heute Verstärkung.
- PlatoData.Network Vertikale generative KI. Motiviere dich selbst. Hier zugreifen.
- PlatoAiStream. Web3-Intelligenz. Wissen verstärkt. Hier zugreifen.
- PlatoESG. Kohlenstoff, CleanTech, Energie, Umwelt, Solar, Abfallwirtschaft. Hier zugreifen.
- PlatoHealth. Informationen zu Biotechnologie und klinischen Studien. Hier zugreifen.
- Quelle: https://aws.amazon.com/blogs/big-data/simplifying-data-processing-at-capitec-with-amazon-redshift-integration-for-apache-spark/
- :hast
- :Ist
- $UP
- 06
- 1
- 10
- 100
- 12
- 16
- 17
- 19
- 20
- 2019
- 30
- 7
- a
- Fähig
- Zugang
- zugänglich
- erreicht
- über
- Zusätzliche
- Zusätzliche Angaben
- zusätzlich
- Adresse
- Adressen
- haften
- Adoption
- Ranking
- AI / ML
- Anvisieren
- Ziel
- Zulassen
- erlaubt
- ebenfalls
- Amazon
- Amazon Web Services
- Amazon Web Services (AWS)
- unter
- an
- Analytik
- und
- Apache
- Apache Funken
- Anwendung
- Anwendungen
- gilt
- Ansatz
- Architektur
- SIND
- Bereiche
- AS
- At
- automatisieren
- Im Prinzip so, wie Sie es von Google Maps kennen.
- AWS
- AWS-Kleber
- Bank
- Bankinggg
- basierend
- weil
- Verhalten
- Nutzen
- Vorteile
- BESTE
- Besser
- zwischen
- Größte
- Boosted
- beide
- breiteres
- bauen
- Building
- erbaut
- Geschäft
- by
- CAN
- Fähigkeiten
- Kap
- Karte
- Katalog
- Ändern
- Auftraggeber
- Kunden
- Cluster
- CO
- Code
- Kolonne
- Spalten
- Vereinigung
- Komplex
- Komponenten
- Berechnung
- Vernetz Dich
- Verbindung
- konsistent
- enthält
- Kontext
- Umwandlung (Conversion)
- Umwandlung
- erstellen
- Erstellen
- Referenzen
- Kredit
- Kreditkarte
- Kricket
- wichtig
- Original
- Kunden
- Unterricht
- technische Daten
- Datensee
- Datenverarbeitung
- Data Warehouse
- Datensätze
- dezentralisiert
- Standard
- definiert
- zeigen
- Design
- Entwerfen
- Details
- entwickeln
- Entwickler:in / Unternehmen
- Entwickler
- Entwicklung
- anders
- Abmessungen
- Größe
- diskutieren
- diskutiert
- verteilt
- verschieden
- leicht
- Ökosystem
- effektiv
- Wirksamkeit
- Effizienz
- effizient
- mühelos
- eliminiert
- betont
- ermöglicht
- ermöglichen
- Ingenieur
- Entwicklung
- Ingenieure
- zu steigern,
- Eine Verbesserung der
- angereichert
- bereichernd
- gewährleisten
- Gewährleistung
- Unternehmen
- Enthusiast
- Unternehmer
- Arbeitsumfeld
- essential
- Äther (ETH)
- vorhandenen
- Erweitern Sie die Funktionalität der
- dehnt sich aus
- ERFAHRUNGEN
- erleichtern
- erleichtert
- Tatsache
- Faktor
- Fakten
- FAST
- Merkmal
- Eigenschaften
- Reichen Sie das
- Revolution
- Finanzdienstleistungen
- findet
- Setzen Sie mit Achtsamkeit
- konzentriert
- Fokussierung
- Folgende
- Aussichten für
- Format
- vorwärts
- häufig
- für
- Funktionen
- weiter
- Gewinnen
- Generation
- bekommen
- GitHub
- Global
- Handling
- Haben
- he
- Hilfe
- Unternehmen
- hilft
- ihm
- seine
- Ultraschall
- HTML
- http
- HTTPS
- IAM
- Login
- Identitätsschutz
- implementieren
- umgesetzt
- importieren
- Bedeutung
- verbessert
- Verbesserungen
- in
- inklusive
- Dazu gehören
- hat
- Information
- integrieren
- Integration
- Integrität
- Interaktion
- Schnittstelle
- intern
- in
- Probleme
- IT
- SEINE
- Javac
- Job
- join
- beigetreten
- Reise
- See
- Sprachen
- grosse
- großflächig
- führen
- lernen
- links
- Bibliotheken
- Bibliothek
- Gefällt mir
- leben
- Belastung
- Darlehen
- Standorte
- liebt
- Maschine
- Maschinelles Lernen
- Aufrechterhaltung
- Wartung
- Making
- Weise
- manuell
- Mechanismus
- Mechanismen
- Million
- minimieren
- Minuten
- ML
- Modell
- für
- modulare
- Überwachung
- monatlich
- mehr
- effizienter
- mehrere
- Musik
- notwendig,
- of
- Angebote
- Olive
- on
- einzige
- XNUMXh geöffnet
- Open-Source-
- Einkauf & Prozesse
- optimal
- Optimieren
- optimiert
- Auftrag
- aussen
- übrig
- Gesamt-
- Pandas
- besonders
- Passwort
- für
- Leistung
- Plan
- Pläne
- Plattform
- Plato
- Datenintelligenz von Plato
- PlatoData
- Play
- spielend
- spielt
- Beliebt
- gestellt
- Möglichkeiten
- Post
- Praktiken
- prädiktive
- früher
- Prinzip
- Aufgabenstellung:
- Problemlösung
- Probleme
- Prozessdefinierung
- Verarbeitung
- Produkt
- Produktion
- PRODUKTIVITÄT
- fördern
- die
- vorausgesetzt
- Python
- Abfragen
- schnell
- R
- Angebot
- Lesen Sie mehr
- Lesebrillen
- Echtzeit
- Rekord
- Aufzeichnungen
- wiederkehrend
- Reduziert
- siehe
- Zuverlässigkeit
- Berühmt
- erfordern
- falls angefordert
- Voraussetzungen:
- lösen
- Downloads
- Folge
- was zu
- Einzelhandel
- Privatkundengeschäft
- Rollen
- Führen Sie
- Laufen
- Gehalt
- SC
- Scala
- skalierbaren
- Umfang
- Sdk
- nahtlos
- nahtlos
- Abschnitt
- sehen
- ausgewählt
- Auswahl
- selektiv
- Senior
- Lösungen
- Sets
- mehrere
- von Locals geführtes
- präsentiert
- signifikant
- Einfacher
- vereinfachen
- Vereinfachung
- da
- Langsam
- glatter
- Schnappschuss
- So
- Geselligkeit
- Lösung
- Lösungen
- LÖSEN
- Löst
- Quelle
- Quellen
- Sourcing
- Süd
- Spark
- Spezialist
- verbrachte
- SQL
- begonnen
- Shritte
- Lagerung
- gelagert
- rationalisieren
- gestrafft
- Schnur
- stark
- eingereicht
- erfolgreich
- Erfolgreich
- Unterstützte
- Unterstützt
- System
- Tabelle
- Team
- Technische
- vorübergehend
- Testen
- zur Verbesserung der Gesundheitsgerechtigkeit
- Das
- Die Quelle
- ihr
- Sie
- dann
- Diese
- vom Nutzer definierten
- fehlen uns die Worte.
- Durch
- Zeit
- zu
- gemeinsam
- Werkzeuge
- Stadt
- Transaktion
- Reise
- URL
- -
- benutzt
- Verwendung von
- Nutzen
- seit
- Verwendung
- wertvoll
- Warehouse
- wurde
- Weg..
- we
- Netz
- Web-Services
- waren
- während
- mit
- .
- Arbeiten
- zusammenarbeiten
- Arbeitsablauf.
- Workflows
- arbeiten,
- schreiben
- Jahr
- ergab
- U
- Ihr
- Zephyrnet
- Null