Что такое килин? Быстрая проверка данных

Java Большие данные

предисловие

Поиск в WeChat【Java3y】Следуйте за этим человеком с мечтами, ставьте лайки и подписывайтесь - это самая большая поддержка для меня!

Текст был включен в мой GitHub:GitHub.com/Zhongf UC очень…, с более чем 300 оригинальными статьями, недавно опубликованнымиИнтервью и проектыряд!

Сегодня я хочу начать со всеми вамиkylin(Кирин).

В связи с необходимостью работы, некоторое время назадkylinПростая запись, теперь для написания заметок (мой текст может помочь вам начать работу)kylin, по крайней мере, вы должны знать после прочтения этогоkylinЧто это делает).

Не много ББ, давайте начнем

Введение в килин

kylinИменно наши люди ведут и вносят свой вклад вApacheпроект Фонда с открытым исходным кодом, поэтому у нас естьКитайский документучиться:

kylin.apache.org/cn/

Из официального мы можем видеть, чтоkylinВступление к:Apache Kylin™представляет собой распределенное хранилище аналитических данных с открытым исходным кодом, которое обеспечиваетHadoop/SparkвышеSQLинтерфейс запросов иМногомерный анализ (OLAP)способность кПоддержка гипермасштабируемых данных, первоначально разработанный eBay и предоставленный сообществу открытого исходного кода, можно найти вдоля секундыЗапрашивайте огромные таблицы.

Увидев это введение, я могу описать его только двумя словами.kylin: Ниуби 🐂. Что Niubi где это? Скажите следующее

На первый взгляд, некоторые студенты могут не знатьOLAPЧто это, позвольте мне объяснить это вкратце. (Hadoop/Spark/SQL/大数据Вы можете видеть эти слова каждый день, даже если вы не понимаете их принципов, вы знаете, для чего используются эти вещи и для чего они используются, верно? )

ВидетьOLAPЯ должен упомянуть его братаOLTP, давайте просто посмотрим на их полные имена и их китайский перевод:

  • OLTP: онлайнTransactionОбработка (онлайн-транзакция)
  • OLAP: онлайнAnalyticalОбработка (онлайн-аналитическая обработка)

Мы боимся, что не сможем понять китайский перевод, но мы можем обнаружить, что разница между ними заключается в следующем:дела",один"анализировать"

С точки зрения приложения мы можем просто подумать: OLTP в основном используетсябизнес-система, требования к транзакциям относительно высоки, такие как размещение заказов/транзакций (банковские переводы и т. д.). OLAP в основном используется длясистема хранения данных,служба поддержкикомплексные аналитические операции, который фокусируется на поддержку решений и предоставляет интуитивно понятные и простые для понимания результатов запроса.

Я нарисую еще одну ментальную карту на всеобщее обозрение, и вы в принципе поймете:

Смотрите здесь, вы должны быть правыOLAPЕсть базовое понимание. Итак, вернемся к приведенному выше предложению:Многомерный анализ (OLAP)способность кПоддержка гипермасштабируемых данных, какая твоя первая мысль?

Три кривые первая реакция - подуматьHive(HiveНижний слойHDFS: поддержка очень больших данных).

Так как сказаноHive, ты найдешьkylinПервая половина предложения,Hiveкакпочтиможет быть поддержано, за исключением последнего предложения "Это может бытьдоля секундызапросы к огромным таблицам».

Правильно, вы можете узнать здесьkylinиспользуется для:Он может запрашивать огромные таблицы за доли секунды для анализа данных и принятия решений.

каждый пробегHiveНам всем, возможно, придется побегать несколько минут (например, мое плохое написание SQL, обычно работает полчаса), мы надеемся, что от бизнесаданные для анализаможет работать быстрее и поддерживать этот спросkylinЭто в огне.

я используюHiveрасширитьkylin,КромеkylinДругих вариантов нет? Это явно не так.

Когда я впервые пришел в компанию, я жаловалсяHiveРаботая слишком медленно, младший брат по соседству сказал мне: ты используешьprestoА, наша платформа больших данных поддерживает это.

OLAPСуществует еще множество инструментальных фреймворков, давайте кратко рассмотрим их.

Известно, что реализацияHiveна самом деле бежатьMap-ReduceЗадачаHDFSВозьмите данные. Процесс исполнения включает计算и存储.

некоторые люди думаютHiveбегатьMap-ReduceПроцесс вычисления слишком медленный, поэтому нет необходимостиMap-Reduce, Используйте другие механизмы расчета, такие какMPPАрхитектура работает, но хранилище не меняется ...

Некоторые считают, что хранение вHDFSСлишком медленно получать данные, менять место хранения, не изHDFSбрать...

Некоторые думают, что это кусок дерьма,计算и存储Я изменил все это и использую свою структуру, чтобы решить это для вас за одну остановку...

Некоторые люди думают,HadoopЭкология еще возможна.Сначала агрегирую.При проверке можно напрямую получить агрегированные данные,что тоже очень быстро...

Из-за различных бизнес-сценариев и опыта каждой компании каждаяOLAPСильные стороны фреймворка тоже разные, поэтому сейчас их так многоOLAPТехнологии блестят...

Начало работы с Kylin

Мы уже знаем с фронта, почему так многоOLAPтехнология, которая, по сути, является данными, которые мы надеемся проанализировать, позволяет нам найтиБыстрееkylinявляется одной из таких технологий.

Это также видно из приведенного выше рисункаkylinполностью зависитHadoopЭкология тогдаkylinКак это достигаетсяускоритькак насчет? Ответ:преполимеризация

Предположим, мы начинаем сMySQLдата извлечения больше, чем2020-10-20, пока мы встолбец датыС добавлением индекса можно быстро найти нужные данные.

но если мы начнем сMySQLдата извлечения больше, чем2020-10-20все данныеИ сколько денег потратил каждый пользователь за этот период и xxxxПока объем данных велик, независимо от того, как вы строите индекс, запрос не будет удовлетворительным.

то если я нажмуСначала выполняется измерение каждого пользователя, а статистика каждого пользователя записывается в таблицу.Когда пользователь извлекает по дате, будет ли это очень быстро (потому что я уже нажалПосле агрегирования данных один раз количество этой таблицы будет значительно уменьшено по сравнению с исходной исходной таблицей)

kylinпросто используйтепреполимеризацияЭта идея улучшить скорость запроса, чтобы его можно было использовать вдоля секундыРеализовать ответ на запрос.

тогда мы используемkylinКакие шаги? Чиновник помог нам ответить:

  1. Определите модель звезды или снежинки в наборе данных
  2. построить на определенной datatablecube
  3. использовать стандартSQLпройти черезODBC,JDBCилиRESTFUL APIЗапрос и получение результатов запроса с временем отклика менее секунды

В приведенных выше шагах некоторые слова, которые вы, возможно, плохо знаете, следующие:星形模型、雪花模型、cube, поясню кратко:

В мире хранилищ данных наша главная таблица называетсятаблица фактов, таблица, на которой зависит внешний ключ таблицы фактов, называетсяТаблица измерения.

"звездная схема”: Все таблицы измеренийпрямая связьна таблицу факта. (выше)

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

существуетkylinЗдесь перспектива анализа данных называется «измерение», анализируемый показатель называется «мера"

Хорошо, давайте посмотримcubeЧто это означает:

Куб называется OLAP-кубом.: Вышеуказанные двумерные таблицы мы можем сформироватьКуб данных, куб данныхCube

ОдинCubeможет состоять из разныхуголГлядя на него, может показаться, что эти многочисленные ракурсы взяты из полногоCubeвыделить, например:

Объединяя сказанное выше:CubeПо сути, это куб, построенный из набора данных через разные измерения (хотя картинки все трехмерные, но вы строитеCubeможет выйти далеко за рамки 3D)

kylinтолько что вCubeЭтот куб для получения данных, из официального заявления тоже очень понятно, можно пройтиJDBC/RESTfulспособ получения данных.

ТотkylinГде хранятся агрегированные данные (должно быть место для их хранения)? существуетHBaseначальство. Если вы не изучили HBase, вы можете сначала прочитать мои предыдущие статьи:Начало работы с HBase

использоватьkylinшаг:

  • Сначала у вас должны быть данные (обычно изHive/Kafka),существуетKylinОпределите соответствующую модель данных (структуру) на
  • пройти черезkylinКонфигурация системы требует агрегирования и статистических полей (это измерение и мера, упомянутые выше), а затем строитCube(Это произведениеkylinпредварительное агрегирование, определить измерения, которые необходимо подсчитать, и рассчитать заранее)
  • kylinданные будут храниться вHBaseна, вы можете пройтиJDBC/RESTfulспособ запроса данных

использовать килин

Наиболее распространенные QA также перечислены на официальном сайте.можно замочить на .apache.org/capable/docs/individual…

Несмотря на то чтоkylinМожет поддерживать многомерную агрегацию, но мы строимCubeв целом правильноCubeпровестиобрезка(т.е. уменьшить генерацию Cuboid)

Допустим у нас 10 измерений, то без всякой оптимизацииCubeбудет существовать2的十次方 =1000+个Кубовидный.

Максимальное количество физических измерений куба (исключая производные измерения) равно 63, но не рекомендуется использовать кубы с более чем 30 измерениями, так как это приведет к сбою измерения.

Обычно используемый метод сокращения реализуется конфигурацией группы агрегации, а в группе агрегации больше используется Mandatory (обязательный параметр).

Например, у меня естьA、B、CТри измерения, если я не буду оптимизировать, моя комбинация должна иметь 7, которые(A)(B)(C)(AB)(ABC)(AC)(BC), если я укажуAРазмер является обязательным размером, тогда окончательная комбинация является только(A)(AB)(ABC)(AC). Принудительная индексация означает:Указанное поле должно быть включено в условие запроса

В дополнение к обязательному измерению (Обязательное) существуют также иерархические измерения (Иерархия) и объединенные измерения (Совместное), которые помогут намобрезка(то есть, уменьшая генерацию Cuboid), как правило, обязательные размеры и размеры соединений используются больше.


давай проверимkylinКогда данные собраны и сохранены вHBase, так что запрос выполняется довольно быстро, но создаетCubeЭтот процесс на самом деле довольно медленный (обычно от десяти минут до получаса).

Это вносит задержку (CubeТребуется время, чтобы построить, но не может запросить построить второй этапCube) Так это терпимо? Это означает, что последние данные должны ждатьCubeЗадача запланирована иCubeДанные можно найти только после завершения строительства

Голос за кадром: Кубы обычно строятся путем запроса API Кайлина в виде задач на время.

Kylin не имеет встроенной степени планирования. Вы можете инициировать временную сборку Cube из внешней службы планирования через REST API, например команду Linux.crontab, Apache Airflow и т. Д.

но в новомkylinВерсия уже поддерживаетсяrealtime_olapв настоящее время,kylinСохраняет данные в реальном времени, а также данные HBasemergeПосле возвращения понялrealtime

Наконец

Эта статья оkylinЯ сделал простую запись, детали еще должны сказать мне, какая сеть (доступно на китайском языке, лучше читать, документ также сделан очень хорошо). Подробности позже, если нужно, я вернусь, чтобы добавить достаточно (:

Использованная литература:

Санвай организовал все [Знания интервью в Дачане], [Шаблон резюме] и [Оригинальную статью] в электронную книгу, содержащую в общей сложности 1263 страницы! нажмите нижеСсылка на сайтПросто возьмите это прямо

Содержимое PDF-документоввсе вручную, если вы ничего не понимаете, вы можете напрямуюспросите меня