В последнее время получает распространение идея «свертывания» ИТ-архитектур, то есть максимального упрощения, когда все бизнес-системы работают на единой базе данных. В банке «Тинькофф Кредитные Системы» первый шаг на этом пути сделали — «озеро данных» Hadoop стало единой базой для аналитических систем.

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

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

«С первоначальной задачей мы справились — созданное хранилище успешно используется. С его помощью мы получили возможность смотреть на клиента, на его поведение внутри нашего бизнеса: какие счета открывает, как ведет себя при просрочках и т. п. Это замечательно, но дает видение клиента лишь с одной стороны — не более чем на 180 градусов», — говорит Сотниченко. Как только клиент покидает виртуальные границы банка, про него ничего не известно. Банк не способен понять его мотивацию, предсказывать его действия.

Таким образом, вполне логично пойти дальше — подключить к аналитической системе внешние данные. Их сейчас очень много, и главными являются социальные сети. Что, если добавить в число источников неструктурированные данные, существующие внутри банка, — например, поведение клиента на сайте или логи приложений? Дав возможность анализировать все это, компания приходит к концепции «озера данных».

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

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

Стоимость имеет значение

Что такое «озеро данных» и почему оно позволяет решить поставленные аналитические задачи?

«Идея очень простая: мы все данные грузим в кластер на платформе Hadoop, и все приложения используют эти данные, — объясняет Сотниченко. — Можно использовать и другие платформы, но Hadoop, на наш взгляд, имеет много плюсов, в том числе экономических».

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

Что еще немаловажно, Hadoop реально, а не на словах поддерживается сообществом разработчиков — любую возникшую проблему можно довольно оперативно решить.

«Как ни странно, в проприетарных системах это может стать непростой задачей — у нас есть опыт, когда бизнес-критичная проблема в коммерческом аналитическом решении “живет” уже три года, и мы ничего не можем с ней сделать, несмотря на обращение к руководству вендора. Надеемся, что open source позволит избежать таких ситуаций», — говорит Сотниченко.

Наконец, Hadoop — это не база данных или файловая система, а полноценная аналитическая платформа с несколькими языками программирования и огромными библиотеками к ним. На ее базе возможно реализовать любую задачу. Например, внутри Hadoop можно написать приложение, которое будет, не извлекая данные наружу, проводить расчеты. Эта возможность крайне привлекательна, потому что, когда речь идет об объемах в терабайты и петабайты, выгружать данные нерационально, их проще обрабатывать внутри. Компания, умеющая это делать, получает огромное преимущество.

Не превратить озеро в болото

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

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

«Без модели данных любое озеро мгновенно превращается в болото, мы это прошли на практике», — признается Сотниченко. В хранилище длительное время копилось много данных, которыми никто не пользовался исключительно из-за того, что бизнес-пользователи не понимали, что там лежит. Смысл собираемых данных понимали единицы — те, кто непосредственно занимался их загрузкой, то есть ИТ-специалисты, не имеющие отношения к бизнес-подразделениям. Пользы для бизнеса от этого нет никакой. Нужно, чтобы бизнес-специалисты сами знали ценность этих данных, понимали, где именно их можно применять — например, в целях маркетинга или при создании рисковых моделей.

«Сейчас мы пытаемся активно строить модели, вычленяя из данных полезную для бизнеса составляющую», — говорит Сотниченко. Понятно, что эти модели будут отражать пользу данных не полностью, а содержать лишь часть информации — но это уже что-то, такой подход позволит аналитикам увидеть внешние данные и включить их в свои бизнес-процессы. В данных очень много информации, и выделить ее всю поначалу не получается; все остальное будет добавлено с течением времени, в рамках развития моделей. Разумеется, это накладывает на модели данных определенные требования — как минимум они должны быть гибкими.

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

Хранилища еще пригодятся

Естественным становится вопрос о том, каково место в построенной архитектуре реализованных ранее традиционных хранилищ, базирующихся на дорогостоящих высокопроизводительных системах. «Надо ли выбросить Greenplum и оставить Hadoop? Нет, так делать не стоит. Каким бы хорошим ни был Hadoop, он имеет преимущество лишь при работе с неструктурированными данными. Классические задачи аналитики — например, построение отчетности — эффективнее решаются на четкой реляционной модели», — уверен Сотниченко. Так что поставщики хранилищ данных могут не беспокоиться — их продукты еще долго останутся востребованными.

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

«Для нас Большие Данные — это в первую очередь логи, большой поток событий как извне, так и из бизнес-приложений. Из традиционного хранилища данные также попадают в кластер Hadoop для объединения с моделью внешних данных», — делится подробностями Сотниченко.

Потоки данных внутри Hadoop напоминают потоки в классическом хранилище. Вопрос их реализации является одним из ключевых. Изначально в ТКС эту задачу пытались решать на платформе Java, однако попытки были не очень удачными — получился хаос. «Наводить порядок» пришлось с помощью решений Informatica — вся обработка и трансформация данных внутри Hadoop теперь доверены им.

«Мы верим в выбранный инструментарий — получилась очень эффективная по функционалу и стоимости платформа», — доволен Сотниченко. В подавляющем большинстве случаев расчет данных будет вестись в рамках созданной системы. Более того, на платформу Hadoop будет переводиться и часть традиционных процессов разработки.

Аналитика в той или иной степени нужна для всех банковских бизнес-приложений. Например, когда клиент обращается в контакт-центр, оператору крайне полезно знать не только его платежную дисциплину, прибыльность и т. п., но и прочую информацию о нем — чтобы выбрать подходящий стиль общения. Примерно такие же сценарии встраивания аналитических задач в бизнес-процессы можно привести и для других направлений. Задача ИТ — обеспечить бизнес необходимыми для эффективной работы данными.