Splice Machine

Материал из Национальной библиотеки им. Н. Э. Баумана
Последнее изменение этой страницы: 17:57, 30 января 2019.
Splice Machine
Splice-logo.png
Создатели: John Leach
Разработчики: SpliceMachine Inc
Выпущена: 2014 года
Постоянный выпуск: 2.5
Состояние разработки: Активное
Написана на: Java
Операционная система: Linux, OS X, Windows, Solaris
Тип ПО: RDBMS (Relational Database Management System)
Лицензия: GNU AGPL v3.0
Веб-сайт splicemachine.com

Splice Machine - это реляционная система управления базами данных с открытым исходным кодом. Продукт базируется на двух открытых технологиях: реляционной СУБД Apache Derby и платформе распределённых вычислений Apache HBase /Apache Hadoop. Автоматическое разделение базы данных по серверам, реализованное в HBase, позволяет использовать недорогие серверы для работы с петабайтами данных. Кроме того, Splice Machine отличается отказоустойчивостью и простотой использования[Источник 1].

Введение

Splice Machine - это масштабируемая СУБД SQL, специально разработанная для поддержки прогнозируемых приложений. Прогнозирующие приложения используют аналитику и машинное обучение, а также требуют потоковой передачи и традиционных транзакционных возможностей для работы в режиме реального времени. Splice Machine позволяет легко разрабатывать и создавать современные масштабируемые приложения в реальном времени или переносить рабочие и аналитические рабочие нагрузки из дорогих систем Oracle Database, Teradata и IBM Netezza. Типичные случаи использования: ETL[1], оперативная отчетность или приложения в реальном времени. Splice Machine также является масштабируемой СУБД SQL, хранилищем данных и платформой машинного обучения в одном, которая объединяет потоковую передачу, аналитику и транзакции в единой системе реляционных баз данных, устраняя задержки, затраты и сложность благодаря поддержке современных приложений для работы с большими данными. Компании в сфере финансовых услуг, здравоохранения, розничной торговли, производства и логистики используют Splice Machine для повышения эффективности своей работы и устранения ненужных затрат. Spice Machine доступна как полностью управляемая облачная служба, а также может быть развернута в собственных кластерах клиента или в облаке.

Особенности и преимущества

Простота использования

Используя Splice Machine Cloud Manager который предоставлет интуитивно понятный интерфейс можно с легостью управлять СУБД, например настроить новый кластер, задать единицы вычислений для обработки OLTP[2] и OLAP[3], выделить хранилище и запланировать частоту резервного копирования и хранения. Интерфейс Splice Machine Cloud Manager представлен на рисунке 1.

Рисунок 1 – Интерфейс Splice Machine Cloud Manager

Полная поддержка ANSI-SQL

Приложения взаимодействующие со Splice Machine по соединениям JDBC (Java DataBase Connectivity) или ODBC (Open Database Connectivity), используют полную реализацию ANSI SQL. Полная поддержка ANSI-SQL делают его идеальной платформой для миграции приложений из традиционных баз данных СУБД в более масштабируемую и экономичную платформу данных. Также Splice Machine предлагает поддержку PL / SQL для того чтобы облегчить перенос данных из приложений, которые используют это расширение языка SQL.

Гибридная база данных

Splice Machine является гибридной базой данных которая предоставляет возможность одновременного выполнения транзакционных и аналитических рабочих нагрузок. Это технология называется HTAP (гибридная транзакционно-аналитическая обработка). Возможность одновременного выполнения рабочих нагрузок OLTP и OLAP дает архитекторам приложений и программного обеспечения большую гибкость при обновлении существующих приложений или создании новых приложений.

Изолирование вычислительных ресурсов

Splice Machine изолирует ресурсы, выделенные HBase и Spark друг от друга, поэтому каждый из них может функционировать независимо от рабочей нагрузки другого. В сочетании с механизмом блокировки MVCC[4] это обеспечивает высокий уровень производительности транзакционных рабочих нагрузок, даже если выполняются большие отчеты или аналитические процессы[Источник 2].

Обзор архитектуры

Splice Machine предоставляет стандартную базу данных SQL в распределенной вычислительной инфраструктуре, которую можно масштабировать горизонтально. Это позволяет создавать как операционные (OLTP), так и аналитические (OLAP) приложения, которые можно легко масштабировать для обработки большего количества данных. Архитектура Splice Machine состоит из двумях ядер, одно для запуска запросов OLAP на Spark, а другой-для выполнения запросов на OLTP в HBase/Hadoop. Это означает, что OLAP и OLTP-нагрузок являются изолированными и могут выполняться параллельно с минимальным воздействием друг на друга[Источник 3].


Apache Derby

Apache Derby- это полнофункциональная база данных ANSI-SQL на базе Java. Splice Machine заменяет слой хранения данных Derby на HBase, сохраняет парсер Derby и использует свои собственные, переработанные компоненты planner, optimizer и executor для использования вычислительного механизма HBase.

Apache HBase/Hadoop

Apache HBase- это распределенная база данных с открытым исходным кодом, являющаяся одним из ключевых компонентов Splice Machine. Он обеспечивает масштабируемость до десятков петабайт и поддерживает автоматическое сегментирование, репликацию данных и обновления в реальном времени. HBase обеспечивает очень быстрое чтение и запись, но не предоставляет интерфейс SQL или ключевые функции СУБД, такие как соединения, вторичные индексы или транзакции ACID. Hadoop соткрытым исходным кодом является распределенной платформой для хранения и обработки больших наборов данных. Это помогает контролировать большие затраты на обработку данных, распределяя вычисления между серверами вместо использования дорогих специализированных серверов. Распреденные вычисления рассматриваются как более масштабируемое решение, посколькуприобретение дополнительных дорогостоящих высокопроизводительных серверов для поддержки роста объема больших данных быстро становится непомерно дорогостоящим.

Apache Spark

Apache Spark- это платформа кластерных вычислений с открытым исходным кодом для крупномасштабной обработки данных. В отличие от двухэтапной дисковой парадигмы MapReduce в Hadoop, многоступенчатые примитивы Spark обеспечивают очень большое повышение производительности для приложений: вы можете загружать данные в память кластера, а затем запрашивать их очень эффективно и многократно. Spark требует наличия диспетчера кластеров и распределенной системы хранения. Spark может взаимодействовать с широким спектром систем, включая распределенную файловую систему Hadoop HDFS (Hadoop Distributed Filesystem). Spark также поддерживает псевдо-распределенный локальный режим, обычно используемый только для целей разработки или тестирования, где распределенное хранилище не требуется, и вместо этого может использоваться локальная файловая система; в таком сценарии, включая автономную версию Splice Machine, Spark запускается на одной машине с одним исполнителем на ядро процессора.

Установка

В этом разделе описывается загрузка, установка и начало работы с использованием автономной версии Splice Machine на Ubuntu Linux.

Конфигурация Ubuntu Linux для Splice Machine

Установка Java SE Development Kit:

$ sudo add-apt-repository ppa:webupd8team/java$ sudo apt-get update$ sudo apt-get install oracle-java8-installer 
$ sudo apt install oracle-java8-set-default

Проверка переменной $JAVA_HOME :

$ sudo update-alternatives --config java

Копируем полученный путь в буфер обмена и открываем /etc/environment:

$ sudo vi /etc/environment

Добавляем команду JAVA_HOME="/usr/lib/jvm/java-8-oracle" экспорта в конец файла /etc/environment, далее проверка на корректности настройки:

$ echo $JAVA_HOME

Установка дополнительны библиотек: Для запуска машины Splice Machine необходимо установить следующие пакеты:

  • curl;
  • nscd;
  • ntp;
  • openssh;
  • openssh-clients;
  • openssh-server;
  • patch;
  • rlwrap;
  • wget.

Для установки пакетов используем следующую команду:

$ sudo apt-get install <packagename>

Установка Splice Machine

  1. Загрузить установщик Splice Machine по ссылке Splice Machine install;
  2. Скопируйте скачанный архив (.GZ файл) в каталог на вашем компьютере, в котором вы хотите установить Splice Machine;
  3. Распакуйте загруженный файл tarball gz.

Начало использования Splice Machine

Сделайте каталог установки текущим каталогом:

cd splicemachine

Запустите скрипт запуска Splice Machine:

./start-splice.sh

Инициализация базы данных может занять несколько минут. Splice Machine готов к использованию, когда вы увидите это сообщение:

Splice Server is ready

Для начала использования консоли интерпретатора Splice Machine запустите следующий скрипт:

./sqlshell.sh

После запуска консоли интерпретатора Splice Machine рекомендуется проверить, все ли в порядке, выполнив несколько команд:

splice> show tables;

Вы увидите имена таблиц, которые уже определены в базе данных Splice Machine, а именно системные таблицы. После этого вы будите знать, что Splice Machine корректо установилась на вашем компьютере. Вы можете использовать следующую команду, чтобы перечислить все доступные команды:

splice> help;

Для выхода из Splice Machine используйте следующую команду:

splice>splice> exit;

Примечания

  1. ETL – аббревиатура от Extract, Transform, Load. Один из основных процессов в управлении хранилищами данных
  2. OLTP (англ. Online Transaction Processing), транзакционная система — обработка транзакций в реальном времени.
  3. OLAP (англ. online analytical processing, интерактивная аналитическая обработка) — технология обработки данных, заключающаяся в подготовке суммарной (агрегированной) информации на основе больших массивов данных, структурированных по многомерному принципу
  4. Управление параллельным доступом с помощью многоверсионности (англ. MVCC — MultiVersion Concurrency Control) — один из механизмов обеспечения параллельного доступа к БД

Источники

  1. Why Splice Machine? // Splice Machine [2014-2019]. Дата обновления 13.12.18. URL:https://www.splicemachine.com/product/why-splice/ (дата обращения: 16.01.2019).
  2. Splice Machine features and benefits // Splice Machine [2014-2019]. Дата обновления 13.12.18.URL: https://www.splicemachine.com/product/features/ (дата обращения: 16.01.2019)
  3. Splice Machine how it works? // Splice Machine [2014-2019]. Дата обновления 13.12.18.URL: https://www.splicemachine.com/product/how-it-works/ (дата обращения: 16.01.2019)