Как стать автором
Обновить

Комментарии 31

Как ни крути, но бизнес пользователи работаю эффективней с хранилищем данных, чем озером данных

Бизнес-пользователи работают с BI инструментами, а не с хранилищами/озерами. Им (бизнес-пользователям), в большинстве своем, все равно, что там в бекенде…
P.S. устал от вашей рекламы облаков (на канале в том числе), особенно, когда обоснование не проанализировано с финансовой точки зрения на реальных масштабах работы бизнеса…
Точно, я это и имел ввиду, мне кажется BI инструменты лучше работают с DW, чем с Big Data. Безусловно, они все могут подключаться к Hive, Athena и тп, но сложней контролировать производительность. Раз на то пошло, бизнес пользователи могут вообще не понимать разницу между BI,DW,DL. Им просто нужен удобный интерфейс к данным.

Что-то, а рекламы облаков у меня точно нет. Я с ними работаю в Amazon (AWS) и в консалтинге rockyourdata.cloud. Я пишу о том, что происходит вокруг меня в Северной Америке, и я вижу рост популярности облаков и их преимуществ. Можно меня упрекнуть в рекламе Matillion или Tableau как вендоров, но врят ли в рекламе облаков.

Канал я использую для того, чтобы скидывать интересные мне материалы, это мое видение ситуации вокруг аналитики данных и инжиниринга данных.
Так или иначе для нужд бизнеса и аналитиков создаётся staging слой данных, который вполне можно вынести в субд вроде clickhouse. Hive в этих целях можно использовать разве что для каких-то ad-hoc задач и то удовольствие сомнительное.

"Бизнес-пользователи работают с BI инструментами, а не с хранилищами/озерами."
Очень серьёзное заблуждение, особенно надоедает его слышать от новеньких, которые попали в ИТ департамент :)

Вы меня извините, но судя по вашему резюме, в IT я попал чуть-чуть раньше вас, как и в DWH. И я конечно не знаю, как там в ВТБ и Банке Москвы, но я точно знаю, что в банках/телекомах всех бизнес-пользователей на прямую в хранилище уже давно никто не пускает, по многим факторам…

Я рад что у вас такие обширные знания :)
Только сначала следует определить кто такие эти самые бизнес-пользователи, т.к. классификация штука нестабильная, а ad-hoc-и через "настоящее ИТ"…
В принципе ввиду того что бизнес очень быстро меняется классическое деление местами отступает :)

Вопрос про специфику это хороший вопрос. Но в целом у каждого свое мировозрение и восприятие. Когда я говорю, что бизнес пользователи работают с BI/DW я имею ввиду свой опыт работы с бизнес пользователями, которые обычно знают как работает Excel и пытаются всеми средствами выгрузить данные из DW и BI в эксель.

Хороший бизнес пользователь, это тот, кто знает SQL и может сам писать запросы. И тут уже не важно Data Lake (Athena/Spectrum в AWS) или DW. Но самая большая проблема для меня, что Custom SQL отчеты, с кучей подзапросов и непонятной логикой плодятся очень быстро, и никто, кроме бизнес пользователя не сможет сказать, что этот отчет делает, а потом он увольняется и как было недавно, оставляет вам 200 отчетов на SQL, и финансы говорят, на все нужно, хотя никто не понимает чего внутри и какие есть альтернативы (например в DW есть Star Schema со всеми метриками и она подключена к Tableau).

Deep dive — это уже меньше про бизнес пользователей, это про аналитиков, тут может и python понадобиться и Spark, и shell. То есть уже очень продвинутый уровень пользователя. И им вообще все-равно где данные и в каком формате, например JSON и доступ через API.

В любом случае, я за то, что у каждого свое мнение, и оно зависит от среды, в которой мы работает. И правильного ответа возможно и не существует. В посте я написал, главное это польза для бизнеса, а как уже 2ой приоритет, и зависит от нашего опыта технологий.

В вашем описании одновременно несколько проблем, и самая основная — передача знаний, вероятно пока ещё не везде руководство такого "квазибизнеса" (как раз финансы самый лучший пример, т.к. изменения в системах часто происходят без детального учёта их потребностей, а им "это всё" разгребать по факту в сжатые сроки) имеет чёткую картину того, как организовать передачу информации, в т.ч. потому что её намного сложнее формализовать, особенно с учётом того что набор необходимой информации может меняться на ходу (запросы аудиторов это здесь и сейчас иначе мы не уложимся в срок).
и это порождает ситуации когда передаётся функционал а смысл теряется (через 1 уволившегося это уже серьёзная проблема, а требования никто не отменяет, и иногда приходится устраивать опросы вида — "а это ещё кто-то использует" с дополнением вида "а как вы понимаете эти данные".
Про Excel, так сложилось что этот инструмент наиболее распостранён, удобен для передачи людям, и не требует согласования доступа в хранилище "через bi/dw" новому контрагенту для того чтобы он этот отчёт увидел без выгрузки. Также частая проблема место в схемах, т.к. одно дело сохранить метаданные, другое данные чтобы гарантировать неизменность, ведь очень часто доступ дают исключительно на чтение без(или с сильно ограниченной) песочницей.
Но прогресс не стоит на месте, современные bi/dw очень сильно продвинулись, взять тот же oracle то что они сделали за последние годы это очень большой прогресс, также сейчас приходит понимание что по умолчанию доступ(сильно обрезанный) и базовое обучение нужно давать всем, кто хоть как-то работает с данными, что управление доступом должно быть на уровне сейчас запросил, начальник подтвердил через час права(по доступным ролям) получены. И постепенно бизнес будет уходить от excel но только когда альтернатива не будет отнимать в разы больше усилий на простенькую "разовую" задачу :)

Я вот думаю создать вебинары на телеграм канале. Было бы интересно послушать вашу презентацию на этом примере, чтобы и другие смогли поучиться. У каждого человека уникальный опыт, и было бы хорошо им поделиться.

Например миграциия хранилища данных на Oracle в AWS
Простите, что это? Оракл своё облако мигрировал в AWS? С помощью софта оракла (goldengate?) произошла миграция данных в AWS? Экзадаты привезли и поставили на площадку с AWS?
Сравнение DWH / DL тоже не совсем корректно: в озере можно хранить и агрегаты, и при желании — витрины данных (хотя чаще всего витрины перегружают в OLTP или реляционные БД для скорости, случаи, когда витрина лежит в datalake и запросы к ней идут через impala тоже видел в крупных продах), туда же schema on read в datalake: если сохранили в avro — то да, parquet/orc — нет, в этих форматах schema on write.
Tl;DR: для big data существуют только облака, а AWS — их пророк /irony
PS до сих пор не видел ни одного инструмента или гайда, как вытащить свои данные из облака, когда ценник за месяц становится слишком высок и стоимость аренды за год приближается к стоимости покупки своего кластера.
Я имел ввиду миграцию Oracle DW на Amazon Redshift. Oracle изначально был в собственном датацентре, то есть много ресурсов на обслуживание (патчи, бекапы и тп), если погуглить, то этот проект назывался Rolling Stone. Он состял из двух элементов:
1) Это OLTP Oracle -> DynamoDB
2) Oracle DW -> Amazon Redshift (я как раз делал 2ой, и в контексте темы, я это и имел ввиду).

«Tl;DR: для big data существуют только облака, а AWS — их пророк /irony» — мой point, что Big Data легче делать на облаках (и не важно AWS, Azure, GCP. Просто я работал больше с AWS, и пишу про него, можно то же самое расписать про Azure, просто заменить Redshift на Azure SQL DW и тп). В облаках мы используем PaaS и SaaS, это сокращает время на создание инфраструктуры.

Полностью согласен про хранение агрегатов и метрик. В мое случае я использую DW для этого из-за удобства подключения к BI и работы бизнес пользователей.

У меня нет задачи вытаскивать данные из облака, все происходит там. Какой кейс вы имеете ввиду?
Мой поинт про облака — небольшие проекты действительно проще запускать в облаках (попробуйте сейчас на рынке найти Big Data Admin'a/Engeneer'a на старте за вменяемые деньги ) и какие-то тесты с разработкой гонять тоже проще в облаках: залили данные, прогнали тесты, потушили облако для экономии.
Но прод — уже локально держать, или хотя бы в гибридных/приватных облаках — пара кластеров (прод + резерв) на десяток-полтора нод с 1.5-2 Пб хранилищем за 7-10 месяцев в облаках стоят столько же, сколько новый кластер целиком.
Или за такие объемы уже идут облачные скидки?
PS Собственно, кейс — когда ценник за облако уходит к $30000/мес — дешевле купить своё железо и нанять свою команду, а заодно прекратить терроризировать юристов с обоснованием законности трансграничной передачей данных, но при этом нужно как-то выкачать все данные из облака.

У оракла есть всё это(в т.ч. частное облако когда вам ставят в датацентр всё тоже самое что в public, но за вашим firewall-ом), просто кто-то решил переехать на aws

Действительно Амазон не в очень хороших отношения с Oracle. Но самое главное, зачем платить кому-то, если есть собственные решения, которые созданы для этой задачи.

Про цену тоже хороший комментарий, в амазоне все расслабляются, так как скидка на AWS, и косты начинают мониторить, когда речь о МЛН долларов. Так же выбор технологий внутри AWS зависит на 100% от команды. Например, мое предпочтение — это максимально использовать готовые сервисы, и не использовать open source и кастомизацию по возможности из-за time to market и поддержки такого решения.
Действительно Амазон не в очень хороших отношения с Oracle.

А кто в хороших???
Несколько лет назад работал с одной автомобильной компанией. Проекты связанные с read only near real time synchronisation с Oracle в GCP… Видимо, не от хорошей жизни это было придумано.
MS в хороших: объединились и взаимодействуют облаками.
Только надолго ли?
Как правило память для хранения данных в аналитическом хранилище данных не дешевая (например Redshift, BigQuery, Teradata), так как нам надо покупать целый кластер.

Это не совсем правда. Вернее, в случае BigQuery, это ложь.
А можно поподробней, как работает BigQuery? Я думаю всем будет полезно. Я точно знаю про Redshift, Azure DW и Snowflake.
Это очень большая тема. И в одном абзаце не напишешь пожалуй. Там, как и везде наверное, огромное количество нюансов, ограничений и прочих тонкостей.
Если очень обобщённо и упрощённо, то платить нужно за хранение данных и за чтение данных (во время запросов). На самом деле там ещё куча всего, за что нужно платить (и куча всего бесплатно), но эти две вещи на поверхности.
cloud.google.com/bigquery/pricing
Если говорить о хранении данных (тупо, глупо и в лоб), то
cloud.google.com/bigquery/pricing
и
cloud.google.com/storage/pricing
И, взяв первый же вариант (US Multi Region), то хранение будет стоить (в месяц)
BigQuery — $0.020 per GB
Standard Storage — $0.026 per GB
То есть BigQuery как бы дешевле…
Запросы — $5.00 per TB прочитанных данных

У меня получались запросы, которые стоили по несколько десятков долларов, но это редкость.

На тему скорости — если интерактивный запрос выполняется дольше 30 — 40 секунд (независимо от объёма данных), то я бы остановил его и стал бы думать, а что я собственно делаю (не так).

Что касается того, что можно покупать заранее (в BigQuery) — то это слоты (для запросов) — cloud.google.com/bigquery/docs/slots — но это для больших потребителей (сам никогда не использовал, но наверное кто-то использует).

И ещё нужно помнить про ограничения — cloud.google.com/bigquery/quotas

Если у вас более конкретные вопросы — напишите в googlecloud-community.slack #bigquery channel. Я ежедневно его просматриваю, и, если могу помочь, то отвечаю.
Спасибо, полезная информация, пригодиться многим;
А как же хранилище данных?
Мы заменяем хранилище данных на озеро данных или мы его расширяем?
Можно ли все таки обойтись без озера данных?

Если кратко, то мы можем ответить на все вопросы положительно, и будем правы.


Отвечаем положительно, на все три вопроса?

— А как же хранилище данных?
— Да.

— Мы заменяем хранилище данных на озеро данных или мы его расширяем?
— Да.

Серьезно?
Почти как ребус, серьезно. А вообще, хорошее замечание, нужно вопросы перефразировать. Положительно не обязательно «Да» для меня.

-А как же хранилище данных?
-Хранилище нужно, без него никуда. (Это положительный ответ?)

В любом случае смысл я старался заложить, что можно и только с озером данных или только с хранилищем или хранилище + озеро данных.
Ну, проблема в том, что вопрос А как же… не предполагает бинарного ответа. Или не обязательно предполагает. Отсюда и мой вопрос. Да, лучше бы перефразировать немного.
Поправил, спасибо за фидбек.
по большому счету сплошная ерунда в тексте. реально озера вполне себе конкурируют с DWH и все больше задач отгрызают у классики. у нас вот DWH уже просто зеркало реляционных табличек из озера и живо лишь потому что Impala жрет много памяти при большим кол-вое параллельных пользователей. при этом пресловутый GDPR именно облако делает. при этом писать в parquet вполе получается с avro схемой. а еще в последних версиях parquet (delta lake надстройка поверх parquet от датабриксов) и orc вполне и DELETE говорят что работают.

Я ни разу не сказал, что Data Lake это плохо. Я привел примеры что можно использовать только Data Lake, а можно и DW и Data Lake. Я можно только DW, если Snowflake.


Типа данных parquet, был выбран для моего проекта. Цель статья показать не техническим людям, что такое data lake.


Про delta lake я много видел у data bricks, было бы интересно узнать больше. GDPR проблема, эта та, которая сейчас у нас в Алекса с текущим решением на AWS.


"Сплошная ерунда в тексте" — это больше про менталитет людей, из разряда, я самый умный, у меня лучше чем у других и тп. Я написал на основе своего опыта. С удовольствие послушаю дельные советы, и новую информацию, которая будет всем полезна.

у вас странный опыт и более напоминает компиляцию предрассудков из эпохи map reduce.
если хотите дельный совет — почитайте книжку Била Инмона Data Lake Architecture: Designing the Data Lake and Avoiding the Garbage Dump
у него там описывается лейк — четкая противоположность вашим представлениям. особливо вокруг applications pond.
Несмотря на то что ваши комментарии больше напоминают комментарии про фильмы на rutracker, аля «под пиво зайдет» или «тема сисек не раскрыта», все равно спасибо за рекомендацию книги, я ее не читал, но обязательно прочитаю.

Я заметил в вашей публикации от 27 июня 2018 года такую фразу " DWH массово движется в сторону DataLake и Hadoop". Примерно о том же я слышал, когда работал в Терадата в 2011 году, я думаю можно и сейчас написать тоже самое, и найдется аудитория, которая будет кивать головой и которая скажет «по большому счету сплошная ерунда в тексте». Еще я понял что вы топите за Oracle судя по блогу и постам на хабре. Я бы так же топил за Teradata, если так и остался там работать или не работал ни с чем, кроме нее. Я хотел посмотреть где вы работаете, но к сожалению не нашел. Целью спорить с тролями умниками не преследовал. Кстати это поэтому карма такая низкая?

Скоро лето, удачи с озерами и прудами!

«файловое хранилище всех типов сырых данных, которые доступны для анализа кем-угодно в организации» — Мартин Фовлер.

«Если вы думаете, что витрина данных это бутылка воды — очищенной, запакованной и расфасованной для удобного употребления, то озеро данных это у нас огромный резервуар с водой в ее естественном виде. Пользователи, могу набирать воды для себя, нырять на глубину, исследовать» — Джеймс Диксон.

Для этого давно название придумано "Файлопомойка".

Рискуя показаться недалёким, я так и не понял чем озера принципиально отличаются от хранилищ. Тем, что в озёрах хранятся разнотипные данные? Ну так и в хранилище можно поместить что угодно. Может мне кто-то в двух словах пояснить, пожалуйста, уже давно этот вопрос меня беспокоит :-)

Upd. Нашел чудесное определение: A data lake is a vast pool of raw data, the purpose for which is not yet defined. A data warehouse is a repository for structured, filtered data that has already been processed for a specific purpose. ... In fact, the only real similarity between them is their high-level purpose of storing data.

Но что это значит на практике? Если я складываю на жёсткий диск файлики с логами из разных систем с целью "на всякий случай", диск превращается в озеро?

Ещё одно определение: Идея озера данных состоит в том, чтобы хранить необработанные данные в их оригинальном формате до тех пор, пока они не понадобятся. У меня на компе есть папочка /temp/, которая работает ровно по этому принципу. Является ли она маленьким озером?

Да вроде проще:

Хранилище данных = база данных (хранения и обработка в одном лице)

Озеро данных = файловое хранилище + вычислительные мощности. Эти 2 вещи не связаны и могут быть независимы.

Сейчас уже появился lakehouse - продукт смесь 2х вещей сверху. Я часто пишу в своем канале Инжиниринг Данных про это.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации