Компания Arenadata выпустила инструмент для обмена данными между Arenadata DB (аналитической MPP-СУБД на базе Greenplum) и Apache Spark (фреймворком для распределенной обработки данных, входящим в экосистему Hadoop) — ADB-Spark Connector. Продукт предназначен для высокоскоростной и параллельной передачи информации между Spark и Arenadata DB.
До выхода ADB-Spark Connector задачи загрузки и выгрузки данных частично решались при помощи фреймворка Greenplum Platform Extension Framework (PXF).
Коннектор построен с использованием Scala 2.11.x, 2.12.x, Twitter Finagle и ScalikeJDBC. В основе его работы — HTTP сервер, реализующий протокол gpfdist. Этот метод, по сравнению с другими существующими способами обмена с ADB, обеспечивает параллельную запись на сегменты Greenplum без участия Master, возможность гибкого партиционирования при чтении данных из Greenplum в Spark, отсутствие необходимости устанавливать утилиту gpfdist на каждой Spark-ноде и другие преимущества.
Для реализации протокола gpfdist взят фреймворк Finagle, показавший лучшую производительность при наличии множества одновременных сессий от сегментов ADB, — по сравнению с изначально выбранным Akka HTTP.
К основным функциям ADB-Spark Connector относятся:
- чтение данных из Greenplum в Spark с поддержкой различных способов партиционирования;
- запись данных из Spark в Greenplum с помощью нескольких режимов записи: Append, Overwrite, ErrorIfExists;
- поддержка push-down операторов;
- извлечение дополнительных метаданных из Greenplum, включая статистику и схемы распределения данных;
- автоматическое формирование схем данных;
- оптимизация выполнения агрегатной функции count.
Дмитрий Плужников, директор департамента системной архитектуры Arenadata:
«Разработанное нами решение будет полезно для заказчиков, которые при построении своих корпоративных хранилищ комбинируют Arenadata Hadoop и Arenadata DB. ADB-Spark Connector обеспечивает быструю двунаправленную связь между ними, позволяя выполнять чтение и запись данных максимально эффективно».
По сравнению с ближайшим аналогом на рынке — Spark-Greenplum коннектором от компании Pivotal — ADB-Spark Connector обеспечивает более гибкое партиционирование (5 способов вместо 2) и большее число типов данных (в том числе интервалы и массивы), а также предоставляет дополнительные функциональные возможности, включая поддержку Batch-режима в Spark, сбор статистики для построения планов запросов при помощи Catalyst и выполнение произвольных SQL-запросов через Master-ноду ADB.
В настоящий момент ADB-Spark Connector поддерживает версии Spark 2.3.x и 2.4.x. В дальнейших планах по развитию продукта — добавление поддержки Spark 3.x и реализация функционала стриминга.
ссылка на оригинал статьи https://habr.com/ru/articles/568914/
Добавить комментарий