предисловие
Поиск в WeChat【Java3y】Следуйте за этим человеком с мечтами, ставьте лайки и подписывайтесь - это самая большая поддержка для меня!
Текст был включен в мой GitHub:GitHub.com/Zhongf UC очень…, с более чем 300 оригинальными статьями, недавно опубликованнымиИнтервью и проектыряд!
Сегодня я хочу начать со всеми вамиkylin
(Кирин).
В связи с необходимостью работы, некоторое время назадkylin
Простая запись, теперь для написания заметок (мой текст может помочь вам начать работу)kylin
, по крайней мере, вы должны знать после прочтения этогоkylin
Что это делает).
Не много ББ, давайте начнем
Введение в килин
kylin
Именно наши люди ведут и вносят свой вклад вApache
проект Фонда с открытым исходным кодом, поэтому у нас естьКитайский документучиться:
Из официального мы можем видеть, что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
Какие шаги? Чиновник помог нам ответить:
- Определите модель звезды или снежинки в наборе данных
- построить на определенной datatable
cube
- использовать стандарт
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-документоввсе вручную, если вы ничего не понимаете, вы можете напрямуюспросите меня