Apache Kylin
Последнее изменение этой страницы: 00:45, 22 декабря 2017.
![]() | |
Разработчики: | Apache Software Foundation |
---|---|
Выпущена: | 10 апреля 2017 |
Постоянный выпуск: | 2.2.0 |
Состояние разработки: | Active |
Написана на: | Java |
Операционная система: | Кросс-платформенная |
Локализация: | English |
Лицензия: | Apache License 2.0 |
Веб-сайт | https://flink.apache.org/ |
Apache Kylin является распределенной платформой обработки данных для использования данных в больших приложениях, прежде всего, включая анализ данных, хранящихся в кластерах Hadoop. Изначально разрабатывался eBay, в последствие проект перешел к Apache Software Foundation. [Источник 1].
Содержание
Описание
Apache Kylin предоставляет движок для анализа данных распределенных систем, предоставляя интерфейс поддержки SQL и OLAP для интерактивного анализа данных.
Apache Kylin ™ позволяет вам запрашивать массивные данные, установленные на второй секунде за 3 шага.
- 1) Определите схему звезд на Hadoop.
- 2) Build Cube из идентифицированных таблиц.
- 3) Запрос с ANSI-SQL и получение результатов в пол-секунды через API ODBC, JDBC или RESTful.[Источник 2].
Среди своих преимуществ производители выделяют:
- быстрый OLAP движок, который разработан специально для уменьшения задержки выполнения запросов для кластеров Hadoop с более чем 10 миллионов строк данных;
- поддержка ANSI SQL интерфейса
- бесшовная интеграция с "BI Tools"
- мониторинг и управление заданиями
- поддержка сжатия и кодирования
- понятный веб-интерфейст для настройки и управления
- поддержка LDAP и SAML
Экосистема
Apache Kylin можно разбить на следующие составляющие.
- Kylin Core. Основа из фрейморка Kylin OLAP Engine, который в свою очередь включает Metadata Engine, Query Engine, Job Engine и Storage Engine. Так же в ядро входит REST-сервер для обработки запросов пользователей.
- Расширения. Уровень для поддержки плагинов и дополнительного подключаемого функционала
- Уровень интеграции. Состоит их систем мониторинга и оповещений, ETL-процессов и планировщика заданий
- Пользовательский интерфейс. Поддерживает возможность внесений изменений в пользовательский
- Драйвера. Включают в себя ODBC и JDBC для поддержки сторонних продуктов.
Установка
Apache Kylin поставляется в виде бинарных файлов, которые доступны для загрузки с официального сайта.
Настройка окружения
Прежде чем приступать к установке самого Apache Kylin необходимо удостовериться, что Hadoop установлен, а окружение настроено, включая команды:
- hive
- hbase
- hadoop
- hdfs
А также пользовательская учетная запись имеет все необходимые права для Hadoop-кластера, включая права:
- на запись/чтение
- назначение и подтверждение заданий в планировщике
- на работу с таблицами
Установка пакета Apache Kylin
- Сначала необходимо загрузить дистрибутив с официального сайта и разархивировать его.
- Установитe переменную окружения на папку с дистрибутувом:
Export KYLIN_HOME
- Далее проверьте достаточно ли привилегий для работы. Для теста можно выполнить команду проверки:
bin/check-env.sh
Запуск Apache Kylin
Для запуска необходимо запустить скрипт:
bin/kylin.sh start
После запуска записи журнала будут доступны по пути "logs/kylin.log". Для остановки сервиса необходимо запустить скрипт со следующими параметрами:
bin/kylin.sh stop
RESTful API
Apache Kylin предоставляет также обширный API для настройки и управлению. Включая выполнение запросов, взаимодействие с заданиями, OLAP-кубами, мета-данными и настройку кэширования.
Аутентификаци
Для доступа к API необходимо пройти процедуру аутентификации, которая выполнена в виде HTTP basic. Т.е. параметры аутентификации необходимо передавать в заголовке с использованием хэширования Base64. Чтобы получить доступ к API необходимо отправить запрос:
POST /kylin/api/user/authentication
В качестве ответа отправляется JSON с информацией о пользователе и его правах в случае успешной авторизации:
{
"userDetails":{
"password":null,
"username":"sample",
"authorities":[
{
"authority":"ROLE_ANALYST"
},
{
"authority":"ROLE_MODELER"
}
],
"accountNonExpired":true,
"accountNonLocked":true,
"credentialsNonExpired":true,
"enabled":true
}
}
Пример прохождения аутентификации с использованием curl:
curl -c /path/to/cookiefile.txt -X POST -H "Authorization: Basic XXXXXXXXX" -H 'Content-Type: application/json' http://<host>:<port>/kylin/api/user/authentication
Выполнение запросов
Для взаимодействиями с запросами и их выполнения необходимо отправить запросы на URL:
POST /kylin/api/query
В качестве параметров Apache Kylin принимает JSON. Пример представлен ниже, который выполняет select-запрос с ограничением по число строк ответа:
{
"sql":"select * from TEST_KYLIN_FACT",
"offset":0,
"limit":50000,
"acceptPartial":false,
"project":"DEFAULT"
}
Этот запрос можно также протестировать с помощью curl:
curl -X POST -H "Authorization: Basic XXXXXXXXX" -H "Content-Type: application/json" -d '{ "sql":"select count(*) from TEST_KYLIN_FACT", "project":"learn_kylin" }' http://localhost:7070/kylin/api/query
Данные интерфейс взаимодействия с запросами предоставляет так же возможность получения таблиц и их структуры.
Взаимодействие с кубами
Для взаимодействия с кубами необходимо аналогично отправить запросы на URL:
GET /kylin/api/cubes
API предоставляет функционал:
- получения всех кубов
- получение модификатора куба
- добавление нового
- отключение и подключение существующего по имени
- получение модели данных
- удаление сегментов
В качестве результата, как и для предыдущих команд, API возвращает JSON, пример одного из них представлен ниже:
[
{
"uuid":"1eaca32a-a33e-4b69-83dd-0bb8b1f8c53b",
"last_modified":1407831634847,
"name":"test_kylin_cube_with_slr_empty",
"owner":null,
"version":null,
"descriptor":"test_kylin_cube_with_slr_desc",
"cost":50,
"status":"DISABLED",
"segments":[
],
"create_time":null,
"source_records_count":0,
"source_records_size":0,
"size_kb":0
}
]
Взаимодействие с заданиями
Для взаимодействия с заданиями необходимо обращаться по URL:
GET /kylin/api/jobs/{jobId}
Поддерживаемый функционал:
- получение списка заданий
- отключение и возобновление задания
- получение статуса задания
Возможности интеграции
Apache Kylin имеет широкие возможности по интеграции со сторонним ПО, включая:
- ODBC Driver
- JDBC Driver
- Tableau 8
- Tableau 9
- MS Excel and Power BI
- MicroStrategy
- Apache Flink
В качестве пример рассмотрим интеграцию с использованием JDBC Driver для Java решений. Прежде всего необходимо загрузить сам драйвер, который так же доступен с помощью Maven:
<!-- https://mvnrepository.com/artifact/org.apache.kylin/kylin-jdbc -->
<dependency>
<groupId>org.apache.kylin</groupId>
<artifactId>kylin-jdbc</artifactId>
<version>2.2.0</version>
<scope>test</scope>
</dependency>
Строка подключения имеет следующий вид:
jdbc:kylin://<hostname>:<port>/<kylin_project_name>
Далее представлен пример выполнения запроса:
Driver driver = (Driver) Class.forName("org.apache.kylin.jdbc.Driver").newInstance();
Properties info = new Properties();
info.put("user", "ADMIN");
info.put("password", "KYLIN");
Connection conn = driver.connect("jdbc:kylin://localhost:7070/kylin_project_name", info);
Statement state = conn.createStatement();
ResultSet resultSet = state.executeQuery("select * from test_table");
while (resultSet.next()) {
assertEquals("foo", resultSet.getString(1));
assertEquals("bar", resultSet.getString(2));
assertEquals("tool", resultSet.getString(3));
}
Так же JDBC драйвер предоставляет возможность:
- создавать и выполнять PreparedStatement
- настраивать. метаданные
- управлять кэшированием
Источники
- Apache Kylin//Wikipedia. [2017 - 2017]. Дата обновления: 10.11.2017. URL:https://en.wikipedia.org/wiki/Apache_Kylin (дата обращения: 27.11.2017)
- Официальный сайт//Apache Kylin[2017-2017]. Дата обновления: 17.11.2017. URL:http://kylin.apache.org (дата обращения: 27.11.2017)
- Документация по использованию//Apache Kylin[2017-2017]. Дата обновления: 17.11.2017. URL:http://kylin.apache.org/docs21/ (дата обращения: 17.11.2017)
Примечания
- ↑ Apache Software Foundation. [2001-2017]. Дата обновления: 15.04.2016. URL: https://blogs.apache.org/foundation/entry/the_apache_software_foundation_announces85 ( Дата обращения: 04.11.2017.)
- ↑ APACHE KYLIN™ OVERVIEW [2001-2017]. Дата обновления: 15.04.2016. URL: https://kylin.apache.org/ ( Дата обращения: 04.11.2017.)
ISSN 2542-0356
Следуй за Полисом
Оставайся в курсе последних событий
Лицензия
Если не указано иное, содержание этой страницы доступно по лицензии Creative Commons «Attribution-NonCommercial-NoDerivatives» 4.0, а примеры кода – по лицензии Apache 2.0. Подробнее см. Условия использования.