Первые шаги для OLAP в мире больших данных

Во-первых, в настоящее время я могу быть дезинформирован о возможностях BigData. Так что не стесняйтесь поправлять меня, если я слишком оптимистичен.

Обычно я работаю с обычными KPI, например, покажите мне: количество новых клиентов, где они соответствуют определенным сложным условиям (присоединение к нескольким таблицам фактов) для каждого менеджера в течение определенного месяца.

Эти запросы довольно динамичны, поэтому нет возможности предсказать предварительно вычисленные данные. Мы используем OLAP и MDX для динамической отчетности. Цена динамических расчетов — производительность. Пользователи обычно ждут результата больше минуты.

Вот я и добрался до BigData. Я прочитал некоторые статьи, форумы, документы, которые привели меня к неоднозначным выводам. BigData предоставляет инструменты для обработки данных за считанные секунды, однако они плохо подходят для задач BI, таких как соединения, предварительное агрегирование. Нет классического СХД поверх концепции хауп и так далее.

Тем не менее, это теория. Я нашел Kylin, который заставляет меня попробовать его на практике. Чем больше копаю, тем больше вопросов появляется. Некоторые из них:

  1. Нужны ли мне знания программирования (Java, Scala, Python)?
  2. Нужны ли мне графические инструменты, достаточно ли доступа по ssh?
  3. Какие аппаратные требования соответствуют моим потребностям в 100-200 гигабайтных БД (также количество аппаратного обеспечения)?
  4. Какая файловая система лучше (ext4), меня это вообще должно волновать?
  5. Как я могу перенести данные из СУБД, есть ли умные ETL?
  6. Какие технологии я должен изучить и использовать в первую очередь (pig, spark и т. д.)?

На самом деле я могу задавать неправильные вопросы и совершенно неправильно понимать концепцию, но надеясь на хорошие наводки. Не стесняйтесь давать любые советы, которые вы считаете полезными по поводу консолидации BI и Bigdata.

Я знаю о http://kylin.apache.org/docs15/index.html, но Я не чувствую себя комфортно, чтобы попробовать это без backend backgroung.


person user1464922    schedule 20.09.2016    source источник


Ответы (3)


Если вы знакомы с Apache Spark, это тоже хорошее начало. В ActiveViam мы используем Spark для обработки больших данных, и нам также нужно было выполнять интерактивные запросы OLAP к тем же данным. Поэтому мы создали расширение под названием Sparkube, которое предоставляет набор данных Spark в виде многомерного куба.

Как только ваш набор данных будет представлен таким образом, вы получите доступ ко всем функциям OLAP MDX непосредственно поверх Spark, без перемещения данных, без развертывания программного обеспечения, без настройки, непосредственно из Excel или Tableau.

Вот, например, как вы монтируете содержимое CSV-файла в память и предоставляете его как многомерный куб:

// Load a file into a Spark dataset.
// Here we load a CSV file, get the column names from
// the CSV headers, and use Spark automatic type inference.
var ds = spark.read
  .format("csv")
  .option("header","true")
  .option("inferSchema","true")
  .load("path/to/file.csv")

// Import the sparkube library (the sparkube jar must be in the classpath)
import com.activeviam.sparkube._

// Expose the dataset as a multidimensional cube.
// You can start visualizing the cube right away at http://localhost:9090/ui
// or connect from Excel with the XMLA protocol at http://localhost:9090/xmla
new Sparkube().fromDataset(ds)
  .withName("My first cube")
  .expose()
person Antoine CHAMBILLE    schedule 30.04.2018
comment
Прохладно. Как вы определяете структуру OLAP? - person Danylo Korostil; 02.05.2018
comment
Структура куба выводится из набора данных Spark. Таким образом, вы можете мгновенно перейти от Spark к OLAP. Столбцы набора данных становятся одноуровневыми иерархиями и отдельными мерами подсчета, числовые столбцы становятся мерами (SUM, AVG, MIN, MAX, STD...) - person Antoine CHAMBILLE; 04.05.2018
comment
Кстати, живая демонстрация sparkube только что была записана на Devoxx FR ( youtube.com/watch? v=CbfQiMhfaJk ). Хотя это на французском языке, вы можете увидеть, как это работает. - person Antoine CHAMBILLE; 04.05.2018

Apache Kylin — это правильный инструмент, если вам нужен многомерный анализ. Он обеспечивает предварительное вычисление соединений и агрегаций, поэтому запросы SQL/MDX могут возвращаться не более чем через несколько секунд.

Чтобы использовать Apache Kylin, у вас есть две роли: администратор и аналитик. Как администратор, вам нужно подготовить кластер Hadoop и развернуть на нем Kylin. Для этого требуются знания о оболочках Hadoop и Linux. Размер и аппаратное обеспечение кластера зависит от вашего объема данных.

После установки вы как аналитик можете построить модель, куб и запустить SQL в Kylin. Для этого требуются знания о реляционной модели, OLAP и SQL. Программирование не требуется. Kylin поддерживает интерфейс ODBC/JDBC, вы можете подключить знакомые инструменты BI для визуализации данных в Kylin.

Обычно пользователь впервые пробует Apache Kylin в песочнице Hadoop. Это избавляет от многих сложностей Hadoop и экономит время.

person Li Yang    schedule 25.09.2016

Bigdata означает большой объем данных. Вы можете обрабатывать данные любого типа с помощью bigdata hadoop. Но OLAP обычно работает с меньшими данными. OLAP-доступ к наборам данных Hadoop с использованием Hive и HBase.

person Ruchi Chouhan    schedule 01.02.2018
comment
Больше похоже на комментарий. - person Sunil; 01.02.2018