25 июля 2018 г.

Большие данные или хранилище данных: что выбрать?

Предположим, что у нас есть 100 файлов, каждый из которых содержит 10 миллионов строк, и нам нужно загрузить их в репозиторий для того, чтобы мы могли проанализировать данные. Как лучше всего поступить? Воспользоваться Hadoop (HDFS) или реляционной СУБД (RDBMS)?
На прошлой неделе я обозначил разницу между большими данными и хранилищем данных: большие данные – это Hadoop, а хранилище данных – это РСУБД. Подробности можно прочитать в моей статье. Сегодня я хотел бы проиллюстрировать на примерах, в каких случаях предпочтителен Hadoop, а в каких – хранилище данных.
Рассмотрим 4 фактора:
  1. Структура данных.
  2. Объем данных.
  3. Неструктурированные данные.
  4. Schema-on-Read (схема при чтении).

1. Структура данных: простая или сложная

Если все 100 файлов имеют одинаковую структуру, например, все они состоят из одних и тех же 10 столбцов, то лучше поместить их в Hadoop. Затем мы сможем использовать Hive, Spark, Presto, R или Python * для анализа данных – например, для поиска закономерностей в данных, выполнения статистического анализа или создания прогнозов. Время разработки будет короче, потому что это только 1 слой.
* или Phoenix, Impala, BigSQL, Stinger, Drill
Если 100 файлов содержат 100 разных таблиц, лучше поместить их в базу данных, создать хранилище данных и использовать аналитический BI-инструмент, такой как Pentaho или MicroStrategy * для анализа данных. Например, чтобы получить срезы данных, найти процент или аномалии и провести анализ временных рядов. Да, нам будет необходимо создать 3 слоя (staging, 3NF, star schema), но это позволит анализировать каждый показатель по различным параметрам.
* или Looker, PowerBI, Tableau, QlikView, BusinessObjects, Cognos BI, Birt, Pentaho, Roambi, SAS, Sisense или другие инструменты BI
Поэтому, если структура данных простая, поместите их в Hadoop, а если сложная – в хранилище данных. Это общее правило, но иногда из него бывают исключения. Можно ли поместить данные с простой структурой в хранилище данных? Конечно можно. Могут ли данные со сложной структурой быть помещены в Hadoop? Несомненно.
Используя Hadoop и Hive/Spark/Presto, мы также можем получить срезы данных, вычислить процент или аномалии, провести анализ временных рядов. Используя хранилище данных, мы можем выполнять машинное обучение и интеллектуальный анализ данных для поиска в них закономерностей, статистический анализ и создавать прогнозы. Таким образом, независимо от того, где мы храним данные – в Hadoop или в хранилище данных, мы все равно можем провести полный анализ.
Проблема заключается в хранении. Связывание 100 таблиц в Hadoop – сложно и неестественно. РСУБД, такие как SQL Server или Oracle, предназначены именно для этой задачи: связывания и объединения таблиц. Построение модели данных, связывающей 100 таблиц, очень подходит для РСУБД. Можем ли мы спроектировать модель данных, связывающую 100 файлов с различными структурами в Hadoop? Конечно, мы можем это сделать. Но это гораздо сложнее. Во-первых, это Schema-on-Read, поэтому столбцы в файлах не имеют типов данных. Schema-on-Read означает, что мы не пытаемся определить взаимосвязь между файлами при их загрузке в Hadoop. Так что да, мы можем загрузить 100 файлов в Hadoop, но мы сохраняем их как отдельные файлы, без связей между ними. То же самое происходит и в Data Lake, где также используется Schema-on-Read и HDFS.

2. Объем данных: маленький или большой

100 файлов, содержащих 10 миллионов строк каждый, составляют 1 миллиард строк в день. Если все 100 файлов имеют одинаковую структуру (скажем, все они состоят из одних тех же 10 столбцов), то у нас будет ... Читать далее

14 июля 2018 г.

15 примеров визуализации данных

Визуализация данных становится все более востребованной из-за быстрого роста количества данных и их широкого применения в различных сферах жизнедеятельности. Информация должна быть представлена в структурированном виде, чтобы пользователи могли использовать ее для выявления трендов, анализа и принятия решений.
Сейчас широко применяются 2 различных метода визуализации данных: исследование, которое позволяет понять смысл и цель ваших данных, и объяснение, которое пересказывает историю данных пользователям. Для того, чтобы удовлетворить большинство ожиданий вашей аудитории, вы должны рассмотреть оба метода. К счастью, существует множество практических и интересных способов наглядного представления данных.