Цей пост написано спільно з Прешеном Гуобіа та Йоханом Олів’є з Capitec.
Apache Spark — широко розповсюджена система розподіленої обробки з відкритим вихідним кодом, відома своєю обробкою великих навантажень даних. Він часто знаходить застосування серед розробників Spark, з якими працюють Amazon EMR, Amazon SageMaker, Клей AWS і спеціальні програми Spark.
Амазонська червона зміна пропонує безперебійну інтеграцію з Apache Spark, дозволяючи вам легко отримувати доступ до своїх даних Redshift як у кластерах Amazon Redshift, так і Amazon Redshift без сервера. Ця інтеграція розширює можливості аналітики AWS і рішень машинного навчання (ML), роблячи сховище даних доступним для ширшого кола програм.
З Інтеграція Amazon Redshift для Apache Spark, ви можете швидко розпочати роботу та без зусиль розробляти програми Spark за допомогою таких популярних мов, як Java, Scala, Python, SQL і R. Ваші програми можуть безперешкодно читати та записувати в сховище даних Amazon Redshift, зберігаючи оптимальну продуктивність і узгодженість транзакцій. Крім того, ви отримаєте вигоду від покращення продуктивності завдяки оптимізації pushdown, що ще більше підвищить ефективність ваших операцій.
Capitec, найбільший у Південній Африці роздрібний банк із понад 21 мільйоном роздрібних банківських клієнтів, прагне надавати прості, доступні та доступні фінансові послуги, щоб допомогти південноафриканцям покращити банки, щоб вони могли жити краще. У цій публікації ми обговорюємо успішну інтеграцію з’єднувача Amazon Redshift з відкритим кодом командою Capitec, що працює над функціями платформи спільних служб. В результаті використання інтеграції Amazon Redshift для Apache Spark продуктивність розробників зросла в 10 разів, конвеєри створення функцій були спрощені, а дублювання даних зведено до нуля.
Можливість для бізнесу
Існує 19 прогнозних моделей для використання 93 функцій, створених за допомогою AWS Glue у підрозділах Retail Credit компанії Capitec. Записи функцій збагачуються фактами та параметрами, які зберігаються в Amazon Redshift. Для створення функцій було обрано Apache PySpark, оскільки він пропонує швидкий, децентралізований і масштабований механізм для обробки даних із різних джерел.
Ці виробничі функції відіграють вирішальну роль у забезпеченні в режимі реального часу заявок на позику з фіксованим терміном, заявок на кредитні картки, пакетного щомісячного моніторингу кредитної поведінки та пакетного визначення щоденної зарплати в бізнесі.
Проблема джерела даних
Щоб гарантувати надійність конвеєрів даних PySpark, важливо мати узгоджені дані на рівні записів як з розмірних, так і з таблиць фактів, які зберігаються в Enterprise Data Warehouse (EDW). Потім ці таблиці об’єднуються з таблицями з Enterprise Data Lake (EDL) під час виконання.
Під час розробки функцій розробникам даних потрібен безперебійний інтерфейс до EDW. Цей інтерфейс дозволяє їм отримувати доступ та інтегрувати необхідні дані з EDW у конвеєри даних, забезпечуючи ефективну розробку та тестування функцій.
Процес попереднього рішення
У попередньому рішенні інженери групи продукту витрачали 30 хвилин на запуск, щоб вручну надати Spark дані Redshift. Кроки включали наступне:
- Створіть прогнозований запит у Python.
- Надіслати РОЗвантажити запит через API даних Amazon Redshift.
- Дані каталогу в каталозі даних AWS Glue через AWS SDK для Pandas із використанням вибірки.
Цей підхід створював проблеми для великих наборів даних, вимагав постійного обслуговування з боку команди платформи та був складним для автоматизації.
Огляд поточного рішення
Capitec вдалося вирішити ці проблеми за допомогою інтеграції Amazon Redshift для Apache Spark у конвеєрах створення функцій. Архітектура визначена на наступній діаграмі.
Робочий процес включає наступні кроки:
- Внутрішні бібліотеки встановлюються в завдання AWS Glue PySpark через Артефакт коду AWS.
- Завдання AWS Glue отримує облікові дані кластера Redshift Менеджер секретів AWS і налаштовує з’єднання Amazon Redshift (впроваджує облікові дані кластера, розташування вивантаження, формати файлів) через спільну внутрішню бібліотеку. Інтеграція Amazon Redshift для Apache Spark також підтримує використання Управління ідентифікацією та доступом AWS (IAM) до отримати облікові дані та підключитися до Amazon Redshift.
- Запит Spark перекладається на оптимізований запит Amazon Redshift і надсилається до EDW. Це досягається завдяки інтеграції Amazon Redshift для Apache Spark.
- Набір даних EDW вивантажується в тимчасовий префікс у an Служба простого зберігання Amazon (Amazon S3) відро.
- Набір даних EDW із сегмента S3 завантажується у виконавці Spark через інтеграцію Amazon Redshift для Apache Spark.
- Набір даних EDL завантажується у виконавці Spark через каталог даних AWS Glue.
Ці компоненти працюють разом, щоб гарантувати, що розробники даних і конвеєри виробничих даних мають необхідні інструменти для реалізації інтеграції Amazon Redshift для Apache Spark, виконання запитів і полегшення вивантаження даних з Amazon Redshift до EDL.
Використання інтеграції Amazon Redshift для Apache Spark в AWS Glue 4.0
У цьому розділі ми демонструємо корисність інтеграції Amazon Redshift для Apache Spark, доповнюючи таблицю заявки на позику, що міститься в озері даних S3, інформацією про клієнта зі сховища даних Redshift у PySpark.
Команда dimclient
Таблиця в Amazon Redshift містить такі стовпці:
- ClientKey – INT8
- ClientAltKey – VARCHAR50
- PartyIdentifierNumber – VARCHAR20
- ClientCreateDate - ДАТА
- Скасовано – INT2
- RowIsCurrent – INT2
Команда loanapplication
Таблиця в каталозі даних AWS Glue містить такі стовпці:
- RecordID – ВЕЛИКИЙ
- LogDate – ПОМІТКА ЧАСУ
- PartyIdentifierNumber – STRING
Таблиця Redshift зчитується через інтеграцію Amazon Redshift для Apache Spark і кешується. Перегляньте наступний код:
Записи заявки на позику зчитуються з озера даних S3 і збагачуються dimclient
таблиця інформації про Amazon Redshift:
У результаті запис заявки на позику (з озера даних S3) збагачується ClientCreateDate
(з Amazon Redshift).
Як інтеграція Amazon Redshift для Apache Spark вирішує проблему джерела даних
Інтеграція Amazon Redshift для Apache Spark ефективно вирішує проблему джерела даних за допомогою таких механізмів:
- Читання вчасно – Інтеграція Amazon Redshift для конектора Apache Spark зчитує таблиці Redshift своєчасно, забезпечуючи узгодженість даних і схеми. Це особливо цінно для Тип 2 повільно мінливий розмір (SCD) і проміжок часу накопичення моментальних фактів. Поєднуючи ці таблиці Redshift із таблицями AWS Glue Data Catalog вихідної системи з EDL у робочих конвеєрах PySpark, з’єднувач забезпечує плавну інтеграцію даних із кількох джерел, зберігаючи цілісність даних.
- Оптимізовані запити Redshift – Інтеграція Amazon Redshift для Apache Spark відіграє вирішальну роль у перетворенні плану запиту Spark на оптимізований запит Redshift. Цей процес перетворення спрощує процес розробки для команди продукту, дотримуючись принципу локальності даних. Оптимізовані запити використовують можливості й оптимізацію продуктивності Amazon Redshift, забезпечуючи ефективне отримання й обробку даних із Amazon Redshift для конвеєрів PySpark. Це допомагає оптимізувати процес розробки, одночасно підвищуючи загальну продуктивність операцій джерела даних.
Отримання найкращої продуктивності
Інтеграція Amazon Redshift для Apache Spark автоматично застосовує предикати та запити для оптимізації продуктивності. Ви можете покращити продуктивність, використовуючи стандартний формат Parquet, який використовується для вивантаження за допомогою цієї інтеграції.
Додаткову інформацію та приклади коду див Нове – інтеграція Amazon Redshift з Apache Spark.
Переваги рішення
Прийняття інтеграції дало кілька значних переваг для команди:
- Підвищена продуктивність розробника – Інтерфейс PySpark, наданий інтеграцією, підвищив продуктивність розробника в 10 разів, забезпечивши більш плавну взаємодію з Amazon Redshift.
- Усунення дублювання даних – Дублікати та таблиці Redshift, каталогізовані AWS Glue, в озері даних було видалено, що призвело до більш оптимізованого середовища даних.
- Знижене навантаження на EDW – Інтеграція сприяла вибірковому вивантаженню даних, мінімізуючи навантаження на EDW шляхом вилучення лише необхідних даних.
Використовуючи інтеграцію Amazon Redshift для Apache Spark, Capitec проклав шлях до покращеної обробки даних, підвищення продуктивності та більш ефективної екосистеми розробки функцій.
Висновок
У цій публікації ми обговорили, як команда Capitec успішно реалізувала інтеграцію Apache Spark Amazon Redshift для Apache Spark, щоб спростити робочі процеси обчислення функцій. Вони підкреслили важливість використання децентралізованих і модульних конвеєрів даних PySpark для створення функцій прогнозної моделі.
Наразі інтеграція Amazon Redshift для Apache Spark використовується в 7 конвеєрах виробничих даних і 20 конвеєрах розробки, що демонструє її ефективність у середовищі Capitec.
У подальшому команда Capitec із розробки платформи функцій спільних служб планує розширити застосування інтеграції Amazon Redshift для Apache Spark у різних бізнес-сферах, маючи на меті подальше покращення можливостей обробки даних і просування ефективних методів розробки функцій.
Щоб отримати додаткову інформацію про використання інтеграції Amazon Redshift для Apache Spark, зверніться до таких ресурсів:
Про авторів
Прешен Гуобія є провідним інженером з машинного навчання функціональної платформи в Capitec. Він зосереджений на розробці та створенні компонентів Feature Store для корпоративного використання. У вільний час любить читати та подорожувати.
Йохан Олів'є є старшим інженером з машинного навчання Capitec Model Platform. Він підприємець і ентузіаст вирішення проблем. Він любить музику та спілкування у вільний час.
Судіпта Багчі є старшим спеціалістом-архітектором рішень в Amazon Web Services. Він має понад 12 років досвіду роботи з даними та аналітикою та допомагає клієнтам проектувати та створювати масштабовані та високоефективні аналітичні рішення. Поза роботою він любить бігати, подорожувати та грати в крикет. Зв'яжіться з ним на LinkedIn.
Саїд Хумайр є старшим спеціалістом із аналітики, архітектором рішень Amazon Web Services (AWS). Він має понад 17 років досвіду в корпоративній архітектурі, зосередженій на даних та AI/ML, допомагаючи клієнтам AWS у всьому світі відповідати їхнім бізнес- і технічним вимогам. Ви можете зв'язатися з ним на LinkedIn.
Вуїса Масвана є старшим архітектором рішень в AWS, що базується в Кейптауні. Компанія Vuyisa зосереджена на допомозі клієнтам створювати технічні рішення для вирішення бізнес-проблем. Він підтримує Capitec у їхній подорожі до AWS з 2019 року.
- Розповсюдження контенту та PR на основі SEO. Отримайте посилення сьогодні.
- PlatoData.Network Vertical Generative Ai. Додайте собі сили. Доступ тут.
- PlatoAiStream. Web3 Intelligence. Розширення знань. Доступ тут.
- ПлатонЕСГ. вуглець, CleanTech, Енергія, Навколишнє середовище, Сонячна, Поводження з відходами. Доступ тут.
- PlatoHealth. Розвідка про біотехнології та клінічні випробування. Доступ тут.
- джерело: https://aws.amazon.com/blogs/big-data/simplifying-data-processing-at-capitec-with-amazon-redshift-integration-for-apache-spark/
- : має
- :є
- $UP
- 06
- 1
- 10
- 100
- 12
- 16
- 17
- 19
- 20
- 2019
- 30
- 7
- a
- Здатний
- доступ
- доступною
- виконано
- через
- Додатковий
- Додаткова інформація
- Додатково
- адреса
- адреси
- дотримуючись
- Прийняття
- доступний
- AI / ML
- прицілювання
- Цілі
- Дозволити
- дозволяє
- Також
- Amazon
- Amazon Web Services
- Веб-служби Amazon (AWS)
- серед
- an
- аналітика
- та
- Apache
- Apache Spark
- додаток
- застосування
- застосовується
- підхід
- архітектура
- ЕСТЬ
- області
- AS
- At
- автоматизувати
- автоматично
- AWS
- Клей AWS
- Банк
- Banking
- заснований
- оскільки
- поведінка
- користь
- Переваги
- КРАЩЕ
- Краще
- між
- найбільший
- Підвищений
- обидва
- ширше
- будувати
- Створюємо
- побудований
- бізнес
- by
- CAN
- можливості
- накидка
- карта
- каталог
- заміна
- клієнт
- клієнтів
- кластер
- CO
- код
- Колонка
- Колони
- об'єднання
- комплекс
- Компоненти
- обчислення
- З'єднуватися
- зв'язку
- послідовний
- містить
- контекст
- Перетворення
- перетворення
- створювати
- створення
- Повноваження
- кредит
- кредитна картка
- крикет
- вирішальне значення
- виготовлений на замовлення
- Клієнти
- щодня
- дані
- Озеро даних
- обробка даних
- сховище даних
- набори даних
- Децентралізований
- дефолт
- певний
- демонструвати
- дизайн
- проектування
- деталі
- розвивати
- Розробник
- розробників
- розробка
- різний
- Розмір
- розміри
- обговорювати
- обговорювалися
- розподілений
- Різне
- легко
- екосистема
- фактично
- ефективність
- ефективність
- ефективний
- легко
- усувається
- підкреслив
- дозволяє
- дозволяє
- інженер
- Машинобудування
- Інженери
- підвищувати
- підвищення
- Збагачений
- збагачення
- забезпечувати
- забезпечення
- підприємство
- ентузіаст
- Підприємець
- Навколишнє середовище
- істотний
- Ефір (ETH)
- існуючий
- Розширювати
- розширюється
- досвід
- фасилітувати
- полегшений
- факт
- фактор
- Факти
- ШВИДКО
- особливість
- риси
- філе
- фінансовий
- фінансові послуги
- знахідки
- Сфокусувати
- увагу
- фокусування
- після
- для
- формат
- Вперед
- частий
- від
- Функції
- далі
- Отримувати
- покоління
- отримати
- GitHub
- Глобально
- Обробка
- Мати
- he
- допомога
- допомогу
- допомагає
- його
- його
- Як
- HTML
- HTTP
- HTTPS
- IAM
- Ідентифікація
- Особистість
- здійснювати
- реалізовані
- імпорт
- значення
- поліпшений
- поліпшення
- in
- включені
- includes
- збільшений
- інформація
- інтегрувати
- інтеграція
- цілісність
- взаємодія
- інтерфейс
- внутрішній
- в
- питання
- IT
- ЙОГО
- Java
- робота
- приєднатися
- приєднався
- подорож
- озеро
- мови
- великий
- масштабний
- вести
- вивчення
- залишити
- libraries
- бібліотека
- як
- жити
- загрузка
- позику
- місць
- любить
- машина
- навчання за допомогою машини
- збереження
- обслуговування
- Робить
- манера
- вручну
- механізм
- механізми
- мільйона
- мінімізація
- протокол
- ML
- модель
- Моделі
- модульний
- моніторинг
- щомісячно
- більше
- більш ефективний
- множинний
- музика
- необхідно
- of
- Пропозиції
- Олівія
- on
- тільки
- відкрити
- з відкритим вихідним кодом
- операції
- оптимальний
- Оптимізувати
- оптимізований
- порядок
- поза
- над
- загальний
- панди
- особливо
- Пароль
- для
- продуктивність
- план
- плани
- платформа
- plato
- Інформація про дані Платона
- PlatoData
- Play
- ігри
- відіграє
- популярний
- поставлений
- можливостей
- пошта
- практики
- інтелектуального
- попередній
- принцип
- Проблема
- вирішення проблем
- проблеми
- процес
- обробка
- Product
- Production
- продуктивність
- сприяти
- забезпечувати
- за умови
- Python
- запити
- швидко
- R
- діапазон
- Читати
- читання
- реального часу
- запис
- облік
- повторювані
- Знижений
- послатися
- надійність
- Знаменитий
- вимагати
- вимагається
- Вимога
- рішення
- ресурси
- результат
- в результаті
- роздрібна торгівля
- Роздрібне банкінг
- Роль
- прогін
- біг
- заробітна плата
- SC
- масштаб
- масштабовані
- сфера
- Sdk
- безшовні
- плавно
- секрети
- розділ
- побачити
- обраний
- вибирає
- селективний
- старший
- Послуги
- набори
- кілька
- загальні
- демонстрація
- значний
- простий
- спростити
- спрощення
- з
- Повільно
- більш гладкий
- Знімок
- So
- спілкування
- рішення
- Рішення
- ВИРІШИТИ
- Вирішує
- Source
- Джерела
- Про
- Південь
- Іскритися
- спеціаліст
- відпрацьований
- SQL
- почалася
- заходи
- зберігання
- зберігати
- раціоналізувати
- обтічний
- рядок
- сильний
- представлений
- успішний
- Успішно
- Підтриманий
- Опори
- система
- таблиця
- команда
- технічний
- тимчасовий
- Тестування
- Що
- Команда
- Джерело
- їх
- Їх
- потім
- Ці
- вони
- це
- через
- час
- до
- разом
- інструменти
- місто
- транзакційний
- Подорож
- URL
- використання
- використовуваний
- використання
- утиліта
- використовувати
- використовує
- Цінний
- через
- Склад
- було
- шлях..
- we
- Web
- веб-сервіси
- були
- в той час як
- з
- в
- Work
- працювати разом
- робочий
- Робочі процеси
- робочий
- запис
- років
- дали
- ви
- вашу
- зефірнет
- нуль