24 сентября 2018 г.

Азбука хранилища данных

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

Глоссарий состоит из 2 уровней. На первом уровне термины расположены в алфавитном порядка, а на втором – нет. Таким образом, лучший способ использовать этот глоссарий – поиск по странице (Ctrl-F).
Людям свойственно ошибаться, так что я уверен, что в этой статье есть ошибки. Я был бы признателен, если бы вы в чем-то поправили меня, используя комментарии под публикацией или написав мне на vrainardi@gmail.com.
Что меня сподвигло к написанию этой статьи: я заметил, что многие люди, работающие с хранилищем данных, часто не понимают некоторую стандартную терминологию. Даже самый простой термин, такой как «измерение», может быть для них иностранным словом. Мое намерение состоит в том, чтобы обеспечить «быстрый поиск», позволяя им понять термин примерно за 15 секунд или около того.
Почему бы им не использовать интернет-поиск или Википедию? Зачем создавать еще что-то? Потому что:
  1. Для поиска информации в интернете требуется больше времени, особенно если вы новичок.
  2. Страницы результатов поиска могут быть технически неправильными.
  3. Иногда я придерживаюсь своего мнения или предпочитаю иначе расставлять акценты.
Archiving – Архивирование: подход, заключающийся в удалении старых данных из таблицы фактов и хранении их в другой таблице (обычно в другой базе данных). Довольно часто старые данные просто удаляются и больше нигде не хранятся. 


 перевод статьи Vincent Rainardi

17 сентября 2018 г.

Таблица фактов со смешанными гранулами

Таблица фактов со смешанными гранулами – это таблица фактов, в которой у нас есть меры с различной гранулярностью. Например, одна мера является еженедельной, а другая – ежемесячной. В этом посте я хотел бы рассказать о преимуществах и недостатках этого подхода. Kimball Group однозначно заявила, что меры в таблице фактов должны иметь одинаковую гранулярность (см. главу 2 книги Кимбалла – The Data Warehouse Toolkit).
Но всегда проще объяснить на примере:
Это – витрина данных. В ней представлены еженедельные и ежемесячные меры, но отсутствуют ежедневные. Нужно ли нам создавать две таблицы фактов, одну еженедельную и одну ежемесячную, например вот такие (№1):



Или мы должны создать таблицу фактов смешанных гранул, например такую (№2):


В приведенной выше таблице фактов черные строки являются недельными значениями, тогда как красные строки являются месячными. Они обе помещаются в одну и ту же таблицу фактов, но в разных столбцах. В строках, где существует недельная мера, месячная мера равна нулю. И наоборот. Поэтому еженедельные и ежемесячные итоги верны:
select D.Week, sum(F.WeeklyMeasure) from FactMixedGrain F
join DimDate D on F.DimDate = D.DimDate group by D.Week
Результат:

select D.Month, sum(F.MonthlyMeasure) from FactMixedGrain F
join DimDate D on F.DimDate = D.DimDate group by D.Month
Результат:


Обычно основная причина исполнения варианта №2 состоит в необходимости хранить еженедельные и ежемесячные показатели в одной таблице фактов. Это позволяет сэкономить время на разработку, особенно в части ETL. Легче заполнить одну таблицу, чем две.
Это преимущества. Теперь о недостатках. Проблема с вариантом №2 заключается в том, что гранулярность в таблице фактов является смешанной – есть две гранулы. На практике мы имеем другие ключевые столбцы измерения в таблице фактов. И еще у нас есть другие столбцы мер в таблице фактов. Некоторые из этих мер еженедельные, а некоторые – ежемесячные.

9 сентября 2018 г.

Может ли машинное обучение заменить BI?

В течение последних 20 лет компании искали закономерности в данных вручную с помощью срезов данных. Найденные шаблоны применялись для принятия бизнес-решений. Однако в последние 2 года наметилась новая тенденция: внедрение машинного обучения для поиска закономерностей в данных и использование его для интеллектуальной аналитики.

Business Intelligence (Бизнес-аналитика)

Это – пример типичной информационной панели BI для продаж (источник). На панели мониторинга представлены данные о продажах. Сверху – это продажи и прибыль с течением времени и по продукту. А внизу – продажи по продавцам и прибыль по клиентскому сегменту и товарной группе.
На основании этих данных компания может принимать такие бизнес-решения, как:
  1. Увеличить или уменьшить маржинальную прибыль для определенной группы продуктов.
  2. Сосредоточить маркетинговые усилия на конкретном потребительском сегменте, чтобы увеличить продажи.
  3. Реструктурировать отделы продаж, чтобы повысить эффективность продаж.
Таким образом, BI помогает руководству лучше управлять бизнесом, позволяя лучше понимать текущие и прошлые бизнес-ситуации.

Машинное обучение (ML – machine learning)

Примером типичного машинного обучения является выявление мошенничества в банковской сфере. Тысячи транзакций в день (например, кредитные карты или платежи и банковские переводы) анализируются с помощью алгоритма ML, а некоторые, подозрительные, автоматически удерживаются и проверяются вручную. Дата, время, сумма, профиль клиента, получатель и тип транзакции/платежа являются «характеристиками» алгоритма нейронной сети, который оценивает каждую транзакцию. Поэтому транзакции, которые превышают некоторые определенные параметры, удерживаются.

29 августа 2018 г.

PostgreSQL: Linux VS Windows – часть 2!

После проведения моего первого теста я получил интересный отзыв под постом на reddit, который подтолкнул меня сделать еще один эксперимент. 

И я подчеркну это еще раз – это не тест для сравнения Linux и Windows!
Меня не волнует, какая операционная система лучше!
У меня есть клиент с большой инфраструктурой, построенной с использованием Windows (но не Linux) и большим опытом работы с Windows (но не Linux), и я хочу знать, должен ли я посоветовать ему использовать PostgreSQL для Linux.
Поскольку для перехода на Linux ему будет необходимо нанять специалиста, разбирающегося в Linux, набраться собственного опыта, а также пересмотреть свой бюджет.

Последовав совету, я не стал использовать свой прежний инструмент тестирования. Для второго теста «Windows vs Linux для хостинга PostgreSQL» я использовал PgBench.
Следуя этому совету, я проводил тест с данными, превышающими размер памяти и с большой продолжительностью. М4.xlarge на Amazon имеют 16 Гб данных, а при масштабе 2000, PgBench генерирует БД ±30 Гб.
PgBench, для тех, кто не в курсе (как я), делает тоже самое, что и написанное мной приложение для тестирования, но лучше!
Он имеет большое количество опций и тщательно тестируется, в отличие от моего приложения, которое только было протестировано... только мной.
PGBench – это не совсем то, что я хотел, потому что я хотел провести тест с помощью .NET-приложения, которое использует npgsql (PgBench использует libpq), но, как говорится, «в Риме поступайте, как римляне».

Архитектура для тестов совпадает с предыдущей:
«Клиент»
Сервер Windows 2012 R2 на amazon, тип m4.xlarge, со всеми настройками по умолчанию.
Клиентским «приложением» выступает PgBench.
«Сервер Windows Postgresql» (далее – WS)
Сервер Windows 2012 R2 на Amazon, тип m4.xlarge, со всеми настройками по умолчанию и 100 GB SSD.
PostgreSQL 9.4.5 установлен с помощью мастера.
Я изменил listen_addresses на * и внес необходимые изменения в pg_hba.conf для подключения к работе.
«Сервер PostgreSQL для Linux» (далее – LS)
Amazon Linux AMI, тип m4.xlarge, со всеми настройками по умолчанию и 100 GB SSD.
PostgreSQL 9.4.5 установлен с yum.
Я внес те же самые изменения в postgresql.conf и pg_hba.conf, которые я делал для Windows.

Сценарий

15 августа 2018 г.

PostgreSQL: Linux VS Windows!

В сентябре, по приглашению Dalibo, я был в Париже на Postgresql Sessions. Еще раз спасибо за приглашение! Это было событие, которое изменило мою жизнь! 

Во время разговора с некоторыми сотрудниками Dalibo, один из них сделал замечание, которое я воспринял как внутренний вызов. Он сказал, что PostgreSQL на ОС Linux, запущенной в виртуальной машине на Windows, работает быстрее, чем PostgreSQL на той же Windows.
Поскольку я новичок в мире PostgreSQL/Linux, я был озадачен этой информацией, но когда я спросил точные цифры, у него их не было. Тогда я понял, что это была просто шутка (я быстро понимаю шутки, особенно со второго или третьего повтора), и что он просто имел в виду, что PostgreSQL на Linux работает быстрее, чем на Windows.

Архитектура Linux в сравнении с архитектурой Windows

Чтобы понять его заявление о скорости работы, нужно знать основное, в данном случае, различие в архитектуре между Windows и Linux. 

Linux может использовать fork, а Windows – нет!
Но, что, черт возьми, это такое – fork? Если кратко, то fork – это системный вызов, который позволяет процессу создавать дочерние процессы, при этом продолжая работу параллельно с ними. Они могут делиться своей памятью и взаимодействовать друг с другом.Это стандартный метод разработки в среде Unix/Linux, но он не может быть применен в Windows... поскольку fork не существует в Windows.
Fork не поддерживается архитектурой Windows и, чтобы реализовать его функционал, нужно использовать потоки или...

7 августа 2018 г.

Перестаньте думать о хранилищах!

Описываемое здесь – результат размышлений, которые начали беспокоить меня несколько лет назад. В то время я реализовывал проект за проектом, применял ETL-системы, оптимизировал расчеты, занимался разработкой панелей показателей, однако меня не покидало ощущение, что часть моих усилий тратится впустую, но почему – я не понимал. Когда я пытался с кем-то об этом поговорить, то наталкивался на стену непонимания.
Постепенно ко мне начали приходить озарения (я не утверждаю, что они всегда имели смысл, поскольку полностью осознаю, что в тот момент просто помешался на этом!) – что я неправильно подхожу к задачам. И этот небольшой поворот в моем мышлении в дальнейшем приобрел огромное значение: он не только изменил нашу методологию реализации проектов по предоставлению услуг, но и значительно повлиял на разработку и видение продукта Pentaho.

Несколько лет назад в блоге…

Пару лет назад я опубликовал в блоге новость «Kimball устаревает». Она несла в себе одно фундаментальное утверждение: технология развилась до такой степени, что простой взгляд на концепцию корпоративного хранилища данных (EDW) показывает ограниченность такого решения. Пользователей не волнует, с использованием каких технологий хранится информация, им важно, чтобы данные были где-то сохранены, а по-возможности – еще и сделана их резервная копия. Я предложил обратить внимание на эту проблему: возможно, DW Kimball с его организацией в виде схемы звезды, снежинки и прочим – не лучший вариант, и нам следует реализовать что-нибудь другое...

Но я был не совсем прав...

Я все еще (больше, чем когда-либо?) являюсь большим сторонником ...

3 августа 2018 г.

Привет, Hitachi Vantara!

Два года назад компания Pentaho была приобретена корпорацией Hitachi Data Systems и вошла в состав Hitachi Group. Сегодня появилась новая информация о дальнейшем развитии Pentaho
19 сентября 2017 года, произошло важное событие. Родилась новая компания. Знакомьтесь: Hitachi Vantara. Hitachi Vantara объединяет Hitachi Data Systems, Hitachi Insight Group и Pentaho в единый проект.

Что это означает?
Мы всегда стремились к тому, чтобы позволить нашим клиентам строить высокопроизводительные решения, основанные на анализе данных. Я считаю, что у нас это отлично получалось! И теперь мы хотим достичь нового уровня – стать лучшими не только в Big Data и аналитике, но и ведущим игроком в решениях в области Интернета вещей (IoT). А объединение в Hitachi Vantara позволит нам это сделать!

Что изменится?

Очевидно, что Pentaho, как продукт, продолжит существовать. А Pentaho, как компания, будет действовать в составе Hitachi Vantara. Это дает нам огромные возможности для развития продукта: мы сможем сосредоточиться на основной задаче наших решений (обработке и аналитике Big Data), но при этом пользоваться разработками на стыке операционных (ОТ) и информационных технологий (ИТ) других компаний, входящих в Hitachi Vantara.
Также мы займемся улучшением совместимости продуктов. Хотя до объединения в Hitachi Vantara наше отношение к этому было очень скептичным, сейчас стоит добавить одну маленькую деталь: нам нужно больше работать со своими решениями – потому что мы это можем!