five-cornerstones-of-using-big-data-to-make-business-decisions (2)

Недавно я участвовал в проекте, на котором мы разрабатывали систему обработки больших данных — от сбора необработанных CSV до дашбордов которые увидят пользователи. Вот её схема:

Scheme-1-rus-

Схема обработки больших данных

Здесь много процессов, но я хотел бы рассказать о тех из них, которые напрямую влияют на ваши расходы и качество полученных данных:

1. Выбор вендоров

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

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

2. Обработка данных

Данные приходят в разных форматах, на нашем проекте, например, мы работали с такими:

  • CSV
  • Базы данных
  • Бинарные данные
  • .pdf и .txt или файлы Word, Excel и Powerpoint
  • Данные из API

Чтобы работать с ними дальше нужно привести их к общему формату — для этого мы разработали специальные драйверы для каждого типа данных. Чем больше форматов — тем дороже выходит обработка.

Чтобы доставить данные к нужному драйверу мы используем программу Driver Selector. После обработки они отправляются в базу данных MS SQL, а оттуда на верификацию.

3. Верификация данных

Ошибки встречаются во всех данных, не важно насколько надёжен источник. Чтобы отфильтровать информацию с ошибками и показывать пользователю только нужные ему данные их надо верифицировать. Этот процесс можно частично автоматизировать.

Например, если мы получаем данные из одной конкретной страны, то смотрим на территориальное деление этой страны. Если, скажем, мы работаем с данными из России и видим такую категорию, как «штаты» мы отклоняем эти данные — они явно относятся не к России, а к США.

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

  1. Данные проверяются автоматическими тестами.
  2. Система генерирует отчеты, которые проверяются вручную
  3. Данные проверяют аналитики заказчика, специализирующиеся на конкретных типах данных и источниках.
Scheme-2-rus

Процесс верификации данных в Itransition

Наша система автоматической верификации включала в себя три уровня: проверка непротиворечивости данных, автоматизированное распознавание и корректировка.

У системы есть список допустимых значений для каждого параметра. Если поступившее значение есть в списке, то данные валидны и они выводятся для ручных проверок. Иначе система отклоняет их автоматически. Иногда система встречает запись, похожую на правильную, но не из списка — в первый раз она, конечно, отклоняет её. Но если такое значение будет появляться всё чаще, система потребует обновить список допустимых значений.

Например, система проверяет данные по названию страны.  На входе три записи: в двух из них указана страна South Africa, а в третьей — S. Afr. South Africa есть в списке системы, поэтому первый две записи будут помечены как валидные. А вот третью нужно верифицировать. Если клиент подтверждает, что «S. Afr» означает «South Africa», третья запись добавляется в систему и теперь автоматически определяется как валидное.

Scheme-3-rus

Пример верификации данных

4. Визуализация данных

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

Вот данные до и после обработки — сравните с чем удобнее работать:

Scary-Data

CSV до обработки

CSV визуализированные

 5. Выбор стратегии

Чаще всего будете работать с несколькими вендорами данных, поэтому вам нужно будет выбрать: использовать отдельные системы обработки данных или написать одну большую и кастомизировать её под каждого вендора. На бумаге первое проще и дешевле, но на практике вам придётся фиксить одни и те же баги в каждой системе. Системы станут сложнее, баги будут появляться чаще — куча времени уйдёт на поддержку. Единую систему поддерживать дешевле и удобнее. Так что если вы используйте данные из нескольких источников, то сразу пишите единую систему.