Arenadata выпустила новый продукт для обмена данными между Greenplum и Spark — ADB-Spark Connector

Компания Arenadata выпустила инструмент для обмена данными между Arenadata DB (аналитической MPP-СУБД на базе Greenplum) и Apache Spark (фреймворком для распределенной обработки данных, входящим в экосистему Hadoop) — ADB-Spark Connector.

ADB-Spark Connector предназначен для высокоскоростной и параллельной передачи информации между Spark и Arenadata DB. До выхода нового продукта задачи загрузки и выгрузки данных частично решались при помощи фреймворка 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 и реализация функционала стриминга.

Тематики: Интеграция

Ключевые слова: облачные услуги