Rambler's Top100
Статьи
Павел КУТАКОВ  16 апреля 2021

Облачная «кладовая» корпоративных данных

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

Что и зачем?

В любой компании, в которой работают более 100 человек, как правило, имеется целый «зоопарк» информационных систем для различных целей – бухгалтерия, CRM, системы логистики, закупок, управления персоналом, производственной деятельностью и т.п. Причина проста: ни одна, даже самая продвинутая информационная система предприятия не может успевать за ростом требований бизнеса, за скоростью изменения рыночных условий. Даже если такая система и существует, то стоит она настолько дорого, что недоступна абсолютному большинству бизнесов. 

Тем не менее руководитель не может и не должен вручную складывать информационный «пазл» из отчетов всех этих систем, чтобы получить полную картину работы всего предприятия. Когда сборка пазла становится непосильной задачей, компания начинает строить единое хранилище, которое обычно называют корпоративным хранилищем данных (КХД, в англоязычных источниках – Data Warehouse, DWH).

«Что нам стоит дом построить»?

К сожалению, построить КХД не так просто, как кажется на первый взгляд. Произвольно взятый «тыжпрограммист» не справится с задачей, время одиночек в ИТ давно прошло. Основные трудности на этом пути следующие:
  • Нехватка квалифицированных кадров. Не секрет, что грамотные ИТ-специалисты сегодня нарасхват. И если крупные компании еще могут привлечь профессионалов масштабностью и сложностью задачи, то средний бизнес оказывается в сложной ситуации.
  • Высокие капитальные затраты. Очевидно, что корпоративное хранилище данных должно содержать информацию из всех информационных систем предприятия. В отдельных случаях достаточно передать из каждой системы только итоговые цифры, но зачастую для дальнейшего полноценного анализа нужна первичная информация. Это означает, что общая емкость КХД будет равна всему текущему объему данных. А скорее, она будет вдвое его превосходить, поскольку объемы данных постоянно растут и необходим прочный запас.
  • Высокая сложность. КХД объединяет данные из разных систем. Следовательно, КХД – это не только еще одна мощная база данных, но и системы подготовки, передачи и трансформации данных. Прежде чем данные лягут в общее хранилище, их придется обработать и, возможно, обогатить. А если задуматься над сложностью унификации данных, когда, например, один и тот же клиент в разных системах записан по-разному, его реквизиты неполны и невозможно понять, один и тот же это клиент или нет, то становится совсем грустно.
Что делать?

Автоматически решить все эти проблемы нельзя, так как в каждой компании ситуация уникальна по-своему. Компания пришла к текущему состоянию своим путем, и потому состав информационных систем, опыт людей, которые их внедряли и эксплуатировали, словом, «информационный ландшафт», у разных предприятий будет существенно различаться.

И все же выход есть! Задача существенно упрощается, если строить КХД в облаке. Конечно, облачный провайдер не сделает за заказчика подготовку и анализ данных, но вот в чем он точно может помочь, так это в предоставлении инфраструктуры и готовых сервисов для построения КХД. Действительно, в облаке можно получить:
  • Отказоустойчивость. Как правило, для построения отказоустойчивых решений у провайдера есть готовые рекомендации и специалисты, которые расскажут, как правильно эти решения применять. 
  • «Бесконечный» объем ресурсов. У любого облачного провайдера запас ресурсов достаточен для того, чтобы заказчик не думал об очередных закупках оборудования и не беспокоился об исчерпании ресурсов, что приведет к остановке работы хранилища.
  • Готовые средства миграции данных «из коробки». Заказчику не придется тестировать множество инструментов. Он сможет взять тот, который мгновенно доступен и тесно интегрирован с другими сервисами.
  • И наконец – специализированные сервисы для организации КХД. Это версии СУБД, спроектированные в расчете именно на обработку огромных массивов данных и сложные аналитические запросы. 
Где будем строить?

Осталось ответить на весьма важный вопрос: где тот облачный провайдер, который обеспечит всеми необходимыми инструментами? Соответствующие решения в своем портфеле сегодня имеют все крупные мировые провайдеры. 
Если говорить о специализированной СУБД, то у АWS это Redshift, у Microsoft – Azure SQL Data Warehouse, у Oracle – Autonomous Data Warehouse. Однако у всех мировых лидеров есть нюанс – их дата-центры расположены за границей и не могут удовлетворять требованиям российского законодательства о персональных данных. А таких данных в КХД будет много. Расстояние до дата-центров тоже имеет большое значение. И вот на российском рынке остается, по сути, один игрок, который предоставляет полный спектр решений для создания КХД, – это платформа SberCloud.Advanced , построенная на технологиях Huawei. 

Предположим, что исходная база данных в текстовом формате CSV имеет размер 200 Гбайт. После импорта в обычную БД PostgreSQL ее размер составит около 400 Гбайт, в Microsoft SQL Server 2017 – около 900 Гбайт, а вот импорт в Data Warehouse Service в формате колоночного хранения для основных таблиц позволяет занять всего 80 Гбайт!
Центральным компонентом облака SberCloud.Advanced для построения корпоративных хранилищ является сервис Data Warehouse Service (DWS). Он представляет собой массивно-параллельную СУБД на базе PostgreSQL, архитектура которой оптимизирована для хранения больших массивов данных и выполнения сложных аналитических запросов. Множество патентованных решений от Huawei позволяют этому сервису обрабатывать гигантские объемы информации – до десятков петабайт. При этом производительность кластера растет линейно с ростом числа его узлов. А колоночное хранение и встроенные механизмы сжатия дают возможность весьма экономно расходовать дисковое пространство.

А как конкретно?

Детальное описание всех технических решений в сервисе DWS может потребовать нескольких статей. Сфокусируемся на том, как сократить затраты при построении КХД. Разумеется, КХД не ограничивается только специальной версией СУБД, «заточенной» для этого вида нагрузки. Важно понять, как сервис интегрирован в общую экосистему облака и какие предлагаются инструменты для миграции и обработки данных. В этом смысле облаку SberCloud.Advanced есть что предложить.

В общем случае КХД представляет собой специализированную СУБД, в которую с помощью средств ETL (Extract -> Transform -> Load – выгрузка -> трансформация -> загрузка) «переливаются» данные из различных информационных систем предприятия (рис. 1).
 
Рис. 1. Упрощенная схема сбора данных в КХД (Data Warehouse)

Схема понятна, но база данных далеко не всегда будет единственным источником, и на практике реализация «магического» блока ETL может быть сколь угодно сложной. Если же несколько конкретизировать возможный набор сервисов и потоков данных, то картина приобретет вид, показанный на рис. 2.

 
Рис. 2. Миграция данных в Data Warehouse Service

Конечной точкой является Data Warehouse Service, а в качестве центрального ETL-средства работает специализированный сервис Cloud Data Migration, входящий в пакет DAYU (Data-as-you-use). Этот сервис позволяет настроить перенос данных из любых источников, включая текстовые файлы и все виды реляционных и нереляционных СУБД. К сожалению, некоторые форматы файлов не поддерживаются напрямую, например, форматы электронных таблиц Excel, сформированных для человека. Прежде чем загрузить данные из такого файла, его требуется предварительно подготовить. В подобных случаях удобно воспользоваться сервисом бессерверных вычислений FunctionGraph, с помощью которого можно быстро написать и запустить код для базовой обработки/подготовки данных. А работа с данными, хранящимися в кластерах Hadoop, поддерживается «из коробки».

Все вышесказанное относится к данным, которые представляют собой готовые таблицы в различных форматах. Но в современных условиях важно обрабатывать данные в режиме, максимально приближенном к режиму реального времени, а значит, необходимо уметь обрабатывать потоковые данные из различных источников. И тут незаменимым окажется сервис Data Lake Insights, который идеально подходит для обработки и агрегации данных, поступающих в реальном времени. Бизнес-пользователи будут видеть ситуацию с задержкой максимум в пару минут!

Таким образом, в облаке SberCloud.Advanced есть все компоненты для организации корпоративного хранилища – как сам сервис специализированной СУБД, так и инфраструктура для переноса данных любых форматов в хранилище из любых источников. Настройка этих компонентов сравнительно проста и может быть выполнена силами разработчиков баз данных провайдера.

Что дальше?

Размещение КХД в облаке позволит в дальнейшем достаточно просто обеспечить интеграцию с корпоративными системами клиентов и партнеров. Все данные уже есть, и облако предоставляет необходимые средства для развертывания современных cloud-native-приложений. К примеру, сервис API Gateway позволит собрать воедино все внутренние приложения и предоставит единый API для интеграции, а управляемая версия Kubernetes упростит развертывание приложений. 

Построение КХД в облаке станет первым шагом настоящей цифровой трансформации предприятия. Ведь цифровая трансформация фактически и означает переход в облака, а такой переход всегда требует «расчистки завалов» прошлых лет, переосмысления архитектур и их миграции на новые распределенные и отказоустойчивые решения.

Павел Кутаков, архитектор облачных решений, Huawei

sbercloud.ru

Заметили неточность или опечатку в тексте? Выделите её мышкой и нажмите: Ctrl + Enter. Спасибо!