Русский
Русский
English
Статистика
Реклама

Озеро данных

Как АНБ и ЦРУ используют дата-центры и облака

23.12.2020 14:04:12 | Автор: admin

Дата-центр АНБ в Юте на картах Google Maps

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

Благодаря Сноудену мы представляем, как работают программы глобальной массовой слежки типа PRISM. Теперь давайте посмотрим, какие вычислительные мощности для этого задействуются.

Дата-центры




Главный дата-центр АНБ в штате Юта под кодовым названием Bumblehive (Шмель) введён в строй в сентябре 2013 г. Ориентировочная стоимость строительства на площади почти 10 га оценивается в $1,5 млрд.

Объём дискового хранилища Шмеля в 2013 году оценивали в 5 зеттабайт (510). Для сравнения, в 2020 году мировой объём IP-трафика оценивается примерно в 250 эксабайт в месяц (Statista), то есть примерно 3 зеттабайта в год. С подводных межконтинентальных кабелей АНБ уже в 2013 году снимало 2 петабайта в час, а сейчас гораздо больше.

Поэтому АНБ наверняка пришлось сделать апгрейд дисковых накопителей в последние годы, если они по-прежнему хотят сохранять копию всего мирового интернет-трафика.





На схеме показаны:

  • четыре помещения для серверов общей площадью 9290 м;
  • офис для технического и административного персонала;


  • генераторы резервного питания и баки с топливом, которого хватает на трое суток работы дата-центра;


    Запасы воды и топлива
  • резервуары с водой и насосы, пропускная способность 6,4 млн л в сутки;


  • холодильники и теплообменники, через которые проходит вода, всего около 60 тыс. тонн охлаждающего оборудования;
  • электрическая подстанция;
  • отдел охраны, где установлены центр системы видеонаблюдения, система обнаружения проникновения и другие подсистемы общей стоимостью $10 млн.

Площадь всех административных и технических зданий 83 613 м.

Другую техническую информацию по дата-центру Шмель см. здесь.

Место в Юте выбрано не случайно. Оказывается, крупнейшие американские ЦОД располагаются у 41-й параллели северной широты.



По стечению обстоятельств такой маршрут взяли для первой трансконтинентальной железной дороги, строительство которой завершилось в 1869 г. Вдоль неё непрерывная полоса отчуждения шириной 60 м, под которой сейчас оптические каналы связи.

Другие дата-центры АНБ не такие впечатляющие. Есть суперкомпьютер в Форт-Миде, где находится штаб-квартира. Он нужен для оперативной деятельности. Также в строю ЦОД в Сан-Антонио (Техас), криптологические центры в Джорджии стоимостью $286 млн и Сант-Антонио (Техас) стоимостью $300 млн, которые используются для взлома шифров.


Внутри куполов скрыты радиоантенны для прослушки спутниковой связи по программе шпионажа FORNSAT

Из документов Сноудена выяснилось, что у АНБ есть небольшой ЦОД даже в Великобритании. Дата-центр на станции Menwith Hill (Field Station 8613) была секретно построен в период с 2009 по 2012 годы с бюджетом $40 млн.



Menwith Hill Station занимается хранением и анализом трафика, собранного в этой местности, обрабатывая более 300 млн телефонных звонков и электронных сообщений в сутки. Данные нужны в реальном времени для операций по захвату и уничтожению террористов, которые ЦРУ проводит по всему миру.

Но в целом Шмель стал центральным звеном в инфраструктуре АНБ, как показано на диаграмме. Шмель сам по себе стал облаком.



Дата-майнинг


После утечки данных от Сноудена стало понятно, что АНБ занимается массовой слежкой и собирает данные на всех граждан ДО совершения преступлений, а не на конкретных подозреваемых ПОСЛЕ преступления. Видимо, второй подход считают устаревшим и не таким эффективным.





Вот список некоторых целей по сбору данных АНБ. Каждый тип данных нуждается в классификации, индексировании и отдельном анализе:

  • поисковые запросы;

    пример базы данных с поисковыми запросами государственных служащих с указанием места работы и IP-адреса сотрудника:


  • посещённые сайты;
  • полученная и отправленная почта;
  • активность в соцсетях (Facebook, Twitter и др.)
  • активность в блогах: опубликованные и прочитанные посты, оставленные комментарии (патент АНБ на технологию определения темы текста путём анализа существительных);
  • звукозаписи телефонных переговоров с биометрической идентификацией личности по голосу (патент АНБ);
  • видеозвонки через Zoom, Google Meet и др.;
  • ДНК;
  • и многое другое.

Объём растёт в экспоненциальной прогрессии. Например, в последние годы добавились видеозаписи с камер наблюдения.

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

В дата-центре Шмель установлен суперкомпьютер Cray XC30. В каждую стойку Cray XC30 входит до 384 процессоров Intel Xeon E5-2600 либо Intel Xeon E5-2600 V2.


Cray XC30


Распаковка суперкомпьютера Cray XC30 (источник)

Конструктивно стойка содержит три блейд-шасси, по 16 лезвий в каждом. В свою очередь, в каждом блейде четыре двухпроцессорных вычислительных узла.





На узел устанавливается 32-128 ГБ памяти с пропускной способностью до 117 ГБ/с. Для связи между узлами применяется фирменная шина интерконнекта Aries.

Суперкомпьютеры XC30 работают под управлением операционной среды Cray Linux Environment, в состав которой входит SUSE Linux Enterprise Server.

Облачные сервисы


Дата-центр в Юте стал последним крупным проектом по строительству инфраструктуры для американских спецслужб. Как и многие другие заказчики, они посчитали более выгодным арендовать мощности облачных провайдеров, а не заниматься техническим обслуживанием собственных дата-центров.

Сейчас ЦРУ и АНБ постепенно отказываются от собственных ЦОД и переходят в облако, причём частично используют инфраструктуру обычных провайдеров, начиная с AWS.

Агентства вроде ЦРУ и АНБ самые жирные заказчики для облачных провайдеров. Бюджеты не ограничены, объёмы данных колоссальные.

Commercial Cloud Enterprise


В ноябре 2020 года стало известно, что ЦРУ заключило мультиоблачный контракт Commercial Cloud Enterprise (C2E) сразу с пятью облачными провайдерами: Amazon Web Services, Microsoft, Google, Oracle и IBM, в то время как с 2013 года она эксклюзивно пользовалась только AWS по десятилетнему контракту на $600 млн на 2013-2023 годы. Теперь ЦРУ переходит в гибридное облако и будет выбирать наиболее подходящего поставщика облачных услуг для конкретных рабочих нагрузок.

Финансовые условия нового контракта не разглашаются, но документация для тендера от 2019 говорит, что бюджет может составлять десятки миллиардов долларов на следующие пятнадцать лет.

ЦРУ специализируется на деятельности исключительно иностранных организаций и граждан. Другое дело АНБ. Вот уже эта структура осуществляет прослушку электронных коммуникаций и за границей, и внутри страны, охватывая всё местное население. Объёмы данных у них на порядок больше, чем у ЦРУ.

Intelligence Community GovCloud


По примеру других разведывательных агентств, к 2018 году АНБ тоже перенесло бльшую часть своих данных в облако. Но совсем другое облако это Intelligence Community GovCloud, которое работает на инфраструктуре АНБ (on-premise), на стандартном железе, но с использованием множества уникальных наработок АНБ по аппаратной и программной части.

Commercial Cloud Enterprise и Intelligence Community GovCloud от ЦРУ и АНБ в каком-то смысле два конкурента. Каждое из 16-ти агентств, которые входят в Разведывательное сообщество, может выбрать C2E или GovCloud.

Кроме того, есть ещё инфраструктура Джедай (Joint Enterprise Defense Infrastructure, JEDI) Минобороны США, которое заключило эксклюзивный контракт с Azure в октябре 2019 года, но до сих пор правомерность сделки оспаривается в суде компанией Amazon.

С точки зрения логической архитектуры Intelligence Community GovCloud это общий центр, единая среда для удобной работы с множеством разрозненных источников данных. Оно описывается как озеро данных (data lake), которое запрашивает данные из внешних хранилищ АНБ и других ведомств.

Информационный директор АНБ Грег Смитбергер рассказывал, что благодаря GovCloud стало проще применять алгоритмы машинного обучения. Вся информация, поступающие в озеро, помечается тегами с указанием источника и уровня доступа у кого есть право работать с этими данными. Это должно защитить в том числе от таких масштабных утечек, как в случае с Эдвардом Сноуденом. Ведь он работал в консалтинговой компании Booz Allen Hamilton (подрядчик АНБ) и формально не должен был получить доступ к секретным файлам, которые вынес из здания операционного центра АНБ на Гавайях.


Кадр из фильма Сноуден

АНБ сейчас тоже смотрит в сторону гибридного облака на публичной инфраструктуре. О проекте Hybrid Compute Initiative (HCI) рассказал информационный директор Разведывательного сообщества США Джон Шерман на конференции AFCEA NOVA. Он говорит, что это будет своего рода эволюционное развитие GovCloud.

HCI и C2E будут работать параллельно. АНБ допускает, что при наличии специфических задач со всплесками нагрузки они тоже могут воспользоваться услугами црушного проекта. Хотя ведомства конкурируют между собой, но готовы сотрудничать по некоторым взаимовыгодным направлениям.

Гибридная платформа HCI будет работать в дата-центрах сторонних облачных провайдеров, но АНБ считает важным, чтобы географически они размещались как можно ближе к её собственной инфраструктуре для скорости. В некоторых приложениях АНБ сетевая задержка является критичным фактором.



На правах рекламы


Виртуальные серверы с новейшим железом, защитой от DDoS-атак и огромным выбором операционных систем. Максимальная конфигурация 128 ядер CPU, 512 ГБ RAM, 4000 ГБ NVMe.

Подробнее..

Как построить современное аналитическое хранилище данных на базе Cloudera Hadoop

28.04.2021 12:07:29 | Автор: admin

Привет.

В конце прошлого года GlowByte и Газпромбанк сделали большой совместный доклад на конференции Big Data Days, посвященный созданию современного аналитического хранилища данных на базе экосистемы Cloudera Hadoop. В статье мы детальнее расскажем об опыте построения системы, о сложностях и вызовах с которыми пришлось столкнуться и преодолеть и о тех успехах и результатах, которых мы достигли..


Появление технологии Hadoop десятилетние назад вызвало на рынке интеграции данных небывалый ажиотаж и оптимизм. Индустрия задалась вопросом а готова ли технология вытеснить традиционные системы обработки данных?. За прошедшую декаду было сломано немало копий в этой битве. Кто-то успел разочароваться, кто-то добился локальных успехов, а тем временем сама экосистема прошла короткий, но стремительный эволюционный путь, который позволяет уверенно сказать, что в настоящий момент не существует задачи и вызова в области обработки и интеграции данных, которую не способен решить Hadoop.

В этой статье мы попытаемся дать ответ на главный вопрос как создать современное аналитическое хранилище данных на базе экосистемы Cloudera на примере проекта, реализованного нами в Газпромбанк АО. Попутно расскажем как мы справились с основными вызовами при решении задачи.

Газпромбанк АО один их ведущих системообразующих финансовых институтов РФ. Он входит в топ-3 банков по активам России и всей Восточной Европы и имеет разветвленную сеть дочерних филиалов.

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

Розничный банковский сектор является высококонкурентным в РФ и для реализации стратегии Газпромбанку потребовалось создание новой технологической платформы, которая должна удовлетворять современным требованиям, так как основой интенсивного роста на конкурентном рынке могут быть только data driven процессы.

На тот момент в Банке уже было несколько платформ интеграции данных. Основная платформа КХД занята классическими, но критичными с точки зрения бизнеса задачами: управленческой, финансовой и регуляторной отчетности. Внесение изменения в текущую архитектуру КХД несло серьезные риски и финансовые затраты. Поэтому было принято решение разделить задачи и создавать аналитическую платформу с нуля.

Верхнеуровнево задачи ставились следующие:

  • Создание озера данных (как единой среды, в которой располагаются все необходимые для анализа данные);

  • Консолидации данных из озера в единую модель;

  • Создание аналитический инфраструктуры;

  • Интеграция с бизнес-приложениями;

  • Создание витрин данных;

  • Внедрение Self-service инструментов;

  • Создание Data Science окружения.

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

Бизнес-требования

  • Обеспечение данными бизнес-приложений: аналитический CRM, Real Time Offer, Next Best Offer, розничный кредитный конвейер;

  • Возможность работы с сырыми данными из систем-источников as is (функция Data Lake);

  • Среда статистического моделирования;

  • Быстрое подключение новых систем источников к ландшафту;

  • Возможность обработки данных за всю историю хранения;

  • Единая модель консолидированных данных (аналитическое ядро);

  • Графовая аналитика;

  • Текстовая аналитика;

  • Обеспечение качества данных.

Требования ИТ

  • Высокая производительность при дешевом горизонтальном масштабировании;

  • Отказоустойчивость и высокая доступность;

  • Разделяемая нагрузка и гарантированный SLA;

  • ELT обработка и трансформация данных;

  • Совместимость с имеющимися Enterprise решениями (например, SAP Business Objects, SAS);

  • Ролевая модель доступа и полное обеспечение требований информационной безопасности.

Кроме этого, система должна быть линейно масштабируемой, основываться на open source технологиях, и самое главное соотношение стоимость\производительность должно быть самым конкурентным из всех предложений на рынке.

Для создания единой аналитической платформы розничного бизнеса мы выбрали стек Hadoop на базе дистрибутива Cloudera Data Hub

Архитектура решения

Рассмотрим архитектуру решения.

Рис. Архитектура

Система разделена на два кластера Cloudera Data Hub. Кластер регламентных процессов и Лаборатория данных

1. Кластер регламентных процессов

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

В настоящий момент к Hadoop подключено свыше 40-ка систем-источников с регламентом от t-1 день до t-15 минут для batch загрузки, а также real-time интеграция с процессинговым центром. Регламентный контур поставляет данные во все системы розничного бизнеса:

  • Аналитический CRM;

  • Розничный кредитный конвейер;

  • Антифрод система;

  • Система принятия решений;

  • Collection;

  • MDM;

  • Система графовой аналитики;

  • Система текстовой аналитики;

  • BI отчетность

2. Кластер пользовательских экспериментов Лаборатория данных

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

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

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

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

Система мониторинга и управления кластерами, загрузками, ETL, реализована на дополнительных виртуальных машинах, не включенных напрямую в кластера Cloudera.

Сейчас версия дистрибутива CDH 5.16.1. В архитектурный подход закладывалась ситуация выхода из строя двух любых узлов без последующей остановки системы.

Характеристики Data узлов следующие: CPU 2x22 Cores 768Gb RAM SAS HDD 12x4Tb. Все собрано в HPE DL380 в соответствии с рекомендациями Cloudera Enterprise Reference Architecture for Bare Metal Deployments. Такой необычный, как кому-то может показаться, сайзинг связан с выбором подхода по ETL и процессингового движка для работы с данными. Об этом немного ниже. Необычность его в том, что вместо 100500 маленьких узлов, мы выбираем меньше узлов, но сами узлы жирнее.

Основные технические вызовы

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

  • Выбор основного процессингового движка в Hadoop;

  • Подход по трансформации данных (ETL);

  • Репликация данных Система-источник > Hadoop и Hadoop > Hadoop;

  • Изоляция изменений и консистентность данных;

  • Управление конкурентной нагрузкой;

  • Обеспечение требований информационной безопасности

Далее рассмотрим каждый из этих пунктов детально.

Выбор основного процессингового движка

Горький опыт первых попыток некоторых игроков реализовать ХД в Hadoop 1.0 показал, что нельзя построить систему обработки данных руками java программистов, не имеющих опыта построения классических ХД за плечами, не понимающих базовых понятий жизненного цикла данных, не способных отличить дебит от кредита или рассчитать просрочку. Следовательно, для успеха нам надо сформировать команду специалистов по данным, понимающих нашу предметную область и использовать язык структурированных запросов SQL.

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

Для нас это означало что необходимо выбрать правильный SQL движок для работы с данными в Hadoop. Остановили свой выбор на движке Impala так как он имеет ряд конкурентных преимуществ. Ну и собственно ориентация на Impala во многом и предопределила выбор в пользу Cloudera как дистрибутива Hadoop для построения аналитического хранилища.

Чем же Impala так хороша?

Impala движок распределенных вычислений, работающий напрямую с данными HDFS, а не транслирующий команды в другой фреймворк вроде MapReduce, TEZ или SPARK.

Impala движок который большинство всех операций выполняет в памяти.

Impala читает только те блоки Parquet, которые удовлетворяют условиям выборки и соединений (bloom фильтрация, динамическая фильтрация), а не поднимает для обработки весь массив данных. Поэтому в большинстве аналитических задач на практике Impala быстрее чем другие традиционные MPP движки вроде Teradata или GreenPlum.

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

Движок не разделяет общие ресурсы Hadoop с другими сервисами так как не использует YARN и имеет свой ресурсный менеджмент. Это обеспечивает предсказуемую высоко конкурентную нагрузку.

Синтаксис SQL настолько близок к традиционным движкам, что на подготовку разработчика или аналитика, имеющего опыт другой SQL системы, уходит не больше 3-4х часов.

Вот как работа с Hadoop выглядит глазами аналитика:

Рис. Работа с Impala SQL в Hue

Это работа в веб-ноутбуке Hue, который идет вместе с Cloudera. Не обделены и те пользователи, кто предпочитает работать с классическими толстыми SQL клиентами или сводными таблицами Excel.

Рис. SQL доступ к Hadoop в локальном толстом клиенте.

Многие кто читал рекомендации Cloudera могут задаться вопросом а почему Impala не рекомендована как ETL движок, а только как движок пользовательского ad-hoc или BI доступа? Ответ на самом деле прост - Impala не имеет гарантии исполнения запроса чтобы не стало в отличие от Hive. Eсли падает запрос или узел, то запрос автоматически не перезапустится и поднимать его надо вручную.

Это проблема легко решаема ETL поток или запрос в приложении должны уметь перезапускаться в таких ситуациях.

ETL потоки в нашем решении перезапускаются без вмешательства администратора автоматически:

  • При падении запроса происходит автоматический анализ причины;

  • При необходимости автоматически подбираются параметры конкретного запроса или параметры сессии чтобы повторный перезапуск отработал без ошибок;

  • Выполняется сбор статистической информации по ошибкам для дальнейшего анализа и настройки потока чтобы в будущем по данному запросу или jobу таких ситуаций не возникало.

У нас на проекте сложилась парадоксальная ситуация - команда аналитиков и инженеров по данным, работающих над проектом, знала про Hadoop только то, что на логотипе есть желтый слоник. Для них Hadoop - это привычный SQL. Уже после уборки урожая (завершения разработки аналитического слоя, о котором речь пойдет ниже), ребята попросили провести для них обучение по Hadoop чтобы быть в теме.

Подход по трансформации данных

В разработке трансформации данных важно не только выбрать правильный движок, но и принять правильные стандарты разработки. У нас давно сформировался подход к таким задачам как metadata driven E-L-T при котором трансформация данных отрисовывается в диаграмме ETL инструмента, который в свою очередь генерирует SQL и запускает его в среде исполнения. При этом SQL должен быть максимально оптимальным с точки зрения конкретной среды исполнения. На рынке не так много ETL инструментов, позволяющих управлять генерацией SQL. В данном внедрении использовался инструмент SAS Data Integration.

Весь регламентный ETL выполнен в подходе metadata driven ELT. Никаких ручных скриптов с планировкой на airflow!

Такой подход позволяет

  • Автоматизировать процессы управления метаданными;

  • Автоматизировать процесс построения lineage данных как средствами самого ETL инструмента, так и средствами доступа к API;

  • Повысить качество процессов внесения изменений и управления данными т.к. вся информация о зависимостях всех объектов и всех jobв хранится в метаданных ETL инструмента.

  • Использовать CI/CD процессы в разработке

Рис. Примеры диаграмм ETL процессов

SAS DI позволяет визуализировать граф зависимостей в штатном функционале или можно выгрузить метаданные через API и использовать их для анализа в других средах.

Рис. Граф зависимостей объектов.

Репликация данных

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

Для этой функции был разработан специализированный инструмент Data Replicator. Инструмент позволяет в очень короткие сроки подключать системы источники и настраивать загрузку данных в Hadoop.

Из возможностей

  • Синхронизация метаданных с источника;

  • Встроенные механизмы контроля качества загруженных данных;

  • Загрузка в различных режимах работы в т.ч. полная копия, извлечение и загрузка инкремента (по любой скалярной детерминированной функции), архивация данных источника и т.д.

Решение имеет гибкие настройки позволяющие приоритизировать задания загрузки, балансировку, контроль многопоточности. Это позволяет бережно относится к источнику при извлечении данных, но в то же время гарантировать SLA доступности данных в Hadoop.

Другая очень важная функция Data Replicatorа - автоматическая репликация данных с регламентного кластера Hadoop на DR кластер. Данные, загружаемые из систем-источников реплицируются автоматически, для деривативных данных существует API. Все регламентные ETL процессы, при обновлении целевой таблицы вызывают API которое запускает процесс мгновенного копирования изменений на резервный контур. Таким образом, DR кластер, который так же выполняет роль пользовательской песочницы, всегда имеет свежие данные.

Нами реализовано множество конфигураций для различных СУБД используемых как источники в ГПБ, также для других процессинговых движков Hadoop (для случаев когда другой кластер Hadoop является источником данных для системы) и есть возможность обрабатывать данные, загруженные в систему другими инструментами, например kafka, flume, или промышленный ETL tool.

Изоляция изменений и консистентность

Любой кто работал в Hadoop сталкивался с проблемой конкурентного доступа к данным. Когда пользователь читает таблицу, а другая сессия пытается туда записать данные, то происходит блокировка таблицы (в случае Hive) либо пользовательский запрос падает (в случае Impala).

Самое распространенное решение на практике выделение регламентных окон на загрузку во время которых не допускается работа пользователей, либо каждая новая порция загрузки записывается в новую партицию. Для нас первый подход неприемлем тк мы должны гарантировать доступность данных 24х7 как по загрузке так и по доступу. Второй подход не применим т.к. он предполагает секционирование данных только по дате\порции загрузке, что неприемлемо если требуется отличное секционирование (по первичному ключу, по системе источнику и т.д.). Так же второй метод приводит к избыточному хранению данных.

Забегая вперед хочется отметить, что в настоящее время в HIVE 3 проблемы решена путем добавления поддержки ACID транзакционности, но, в нашей версии дистрибутива у нас далеко не третий Hive (да еще и на Map Reduce), а хотим получить высокую производительность и конкурентную нагрузку и поэтому нам пришлось реализовать ACID для Impala в Hadoop самостоятельно.

В нашем решении изоляция выполнена с применением подхода HDFS snapshot и разделения слоя хранения и доступа к данным через VIEW.

Когда данные записываются в HDFS, сразу, мгновенно создается снапшот на который переключается VIEW.

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

Все что остается делать это переключать VIEW на новые HDFS снапшоты, число которых определяется максимальной длительностью пользовательских запросов и частотой обновления данных в Hadoop. Те в сухом остатке мы получаем аналог UNDO в Oracle, retention период которого зависит от количества снапшотов и регламента загрузки данных.

Основной секрет в том, что как только процессинговый движок определил какие данные из HDFS он должен прочитать, после этого DDL VIEW или таблицы может быть изменен т.к. оптимизатор больше не будет обращаться к словарю metastore. Т.е. можно выполнить переключение VIEW на другую директорию.

Функционал HDFS Snapshot настолько легковесный и быстрый что позволяет создавать сотни снапшотов в минуту и никак не влияет на производительность системы.

Изоляции изменений в нашем решении также является функцией DataReplictorа. Все загружаемые данные изолируются автоматически, причем на обеих контурах системы, а производные ETL данные изолируются через вызов API. Каждое изменение целевого объекта, которое происходит в рамках ETL процесса завершается вызовом API по созданию снапшота и переключению VIEW.

Благодаря такому решению, все загрузки и все данные доступны в режиме 24х7 без регламентных окон. HDFS снапшоты не приводят к большому избыточному хранению данных в HDFS. Наш опыт показал, что для часто меняющихся регламентных данных хранение снапшотов за трое суток приводит к увеличению размера максимум на 25%.

Управление конкурентной нагрузкой

Следующий большой блок требований управление конкурентной нагрузкой.

На практике это означает что нужно обеспечить

  • Предсказуемую работу регламентных процессов;

  • Приоритизация пользователей в зависимости от принадлежности к ресурсной группе;

  • Отсутствие, минимизация или управление отказами в обслуживании;

Как это обеспечено на практике

  • Настроено разделение ресурсов между сервисами Hadoop на уровне ОС через cgroups;

  • Правильное распределение памяти между нуждами ОС и Hadoop;

  • Правильное распределение памяти внутри кластера между служебными сервисами Hadoop, YARN приложениями и Impala;

  • Выделение ресурсных пулов Impala отдельным пользовательским группам для гарантии обслуживания и приоритизация запросов

Результат предсказуемая высококонкурентная нагрузка десятков пользователей одновременно и десятков тысяч ETL запросов в сутки без влияния на другие составляющие экосистемы Cloudera.

Ри. Количество SQL запросов, завершающихся каждую секунду.

В настоящий момент на кластере регламентных расчетов в сутки регистрируется и успешно выполняется в среднем 900 тыс SQL запросов по трансформации и загрузке данных. В дни массовых загрузок и расчетов эта цифра поднимается до полутора миллионов.

Рис. Средняя утилизация CPU за сутки

При этом мы видим, что остается внушительный запас по производительности с тз возможностей повышения конкурентной работы. Есть понимание что это может быть и 1,5 млн и 2 млн запросов. Это означает что выбранный подход оказался верным и пропускная способность системы как и ее предсказуемость под нагрузкой показывает выдающиеся результаты.

Информационная безопасность

В финансовом секторе традиционно вопросы информационной безопасности являются одними из самых ключевых тк приходится работать с данными, которые не только подлежат защите с тз федерального законодательства, но и с требованиями, которые периодически ужесточаются госрегулятором. При выборе дистрибутива Hadoop стоит особое внимание уделять этим требованиям, так как большинство не вендорских сборок, либо сборок, спроектированных на базе популярных open source дистрибутивов (например Apache Big Top) не позволяют закрывать часть требований и при выводе системы в промышленную эксплуатацию можно столкнуться с неприятными сюрпризами недопуска системы от службы ИБ.

В кластере Cloudera нами были реализованные следующие требования:

  • Ролевая модель доступа к данным

    • Все пользователи включены в группы Active Directory (AD) каталога;

    • Группы AD зарегистрированы в Sentry;

    • В Sentry выполнено разграничение доступа для баз Impala и директорий HDFS;

    • Каждый Target слой данных имеет ролевые слои VIEW с ограничениями на чувствительные данные в соответствии с ролевой моделью доступа;

  • Кластеры керберизированы;

  • Подключение клиентских приложений только с применением SSL шифрования. Также шифрование используется при передачи данных внутри кластера.

  • Выполняется парсинг и приведение всех журналов сервисов Hadoop к единому реляционному формату стандартного журнала ИБ (единая точка интеграции для системы сбора данных ИБ)

    • Пользовательские запросы;

    • Запросы ETL;

    • Точки интеграции Hadoop с другими системами;

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

Единый аналитический слой данных

Наличие общего слоя консолидированных данных основное требование аналитического ХД.

Без этого Hadoop (как и любое другое ХД) озеро данных, которое пользователи начинают превращать со временем в неуправляемое болото. Поэтому важно иметь общую версию правды над этим озером чтобы все задачи решались в единой системе координат.

Был разработан единый аналитический слой консолидированных данных. Источником для него является копия детального слой КХД, которая регулярно реплицируется в среду Hadoop, а также дополнительные источники, подключаемые напрямую, минуя КХД.

Модель ориентирована на пользовательский ad-hoc доступ и проектировалась с учетом требований типовых задач клиентской аналитики, риск моделей, скоринга.

Реализованы все области данных, необходимые для решения задач розничного бизнеса и моделирования такие как:

  • Аккредитивы

  • Депозиты

  • Залоги

  • Заявки

  • Карты

  • Контрагенты

  • MDM

  • Кредиты

  • Сегмент клиента

  • Рейтинги

  • Агрегаты

  • Справочники

  • Счета

  • Эквайринг

  • Векселя

  • РЕПО

  • Резервы

В настоящий момент слой состоит из 177 целевых объектов и порядка 2350 бизнес-атрибутов. В snappy сжатии объем данных порядка 20 Тб (не менее 100 Тб в RAW).

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

Реализованный единый слой - источник данных для производных прикладных витрин под бизнес-приложения, отчетность и модели. Сейчас у нас около 40 производных регламентных витрин, состоящих из 550 целевых таблиц и примерно 13200 атрибутов.

Надежность

Часто приходится слушать о ненадежности решений, спроектированных на Hadoop. За два года эксплуатации Cloudera Data Hub у нас практически не было каких-либо проблем, связанных с простоем системы. Случилось буквально пара инцидентов, повлиявших не регламентные процессы.

Один раз у нас забилось место, выделенное под БД metastore (недостатки мониторинга).

В другой раз была попытка выгрузить несколько сотен миллионов транзакций через Impala. В результате прилег координатор и другие пользователи и процессы не могли подключиться на этот координатор. Как результат выработали правило каждый отдельный вид процессов (загрузка данных, ETL, пользователи, приложения) подключается к своему координатору, который еще имеет дублера для балансировки. Ну и конечно большие выгрузки данных в системы потребители лучше делать через sqoop export. Ну и в последних релизах Impala уже без проблем может отдавать десятки миллионов записей на подключение.

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

Итоги

В настоящий момент система является фабрикой данных всех розничных процессов Банка и аналитических приложений. Платформой ежедневно пользуется 36 департаментов и примерно 500 пользователей для самостоятельного решения задач по аналитике и моделированию.

Реализованный нами проект стал финалистом номинации Cloudera Data Impact 2020 в категории Data For Enterprise AI.

Выводы

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

Об успехах в цифрах можно посмотреть в записи нашего совместно доклада.

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

Наш архитектурный подход позволяет ускорить внедрение нового функционала и как следствие улучшить time to market новых продуктов, основанных на data driven процессах.

В современных аналитических задачах не существует понятий горячих и холодных данных. Ситуация прилета пачки проводок, за диапазон t - 3-5 лет - это каждодневная регламентная ситуация. И для такого случая вы должны пересчитать остатки, обороты, просрочки и предоставить данные для модели или определения сегмента клиента в аналитическом CRM. Как я уже писал выше, чем глубже в истории данные, тем точнее ваши модели. Такие задачи можно решить только если все данные в одном месте и в одной системе. Наш принцип - все данные горячие!

Для успешной реализации проектной команде недостаточно опыта знания технологии Hadoop. Hadoop это всего лишь инструмент. Необходимо применять подходы проектирования классического ХД на базе SQL MPP, иначе ваша система навсегда останется помойкой под архивные данные, нарисованной внизу слоеного пирога как хранилище неструктурированных и холодных данных на архитектурной картинке.

Наши ближайшие планы

В настоящий момент мы находимся в завершающей стадии миграции на новую платформу Cloudera Data Platform 7.1. Вполне вероятно, что на момент публикации мы уже на CDP и в ближайшее время тут будут опубликованы результаты. Пока, можно с уверенностью сказать, что после проведенных тестов, мы ожидаем ряд оптимизационных улучшений, связанных с Impala 3.4, появлением страничных индексов в parquet, наличием Zstd компрессии. Новые сервисы вроде Atlas и Cloudera Data Flow позволят закрывать функции управления данными и потоковой аналитики из коробки. В ближашее время мы также планируем пилотировать родной для Cloudera BI инструмент - Cloudera Data Visualization.

Что еще мы еще сделали в нашем ландшафте Hadoop

  • Real-time интеграция системы с процессинговым центром с использованием Kudu (real-time клиентские данные, доступные для работы с минимальной задержкой наступления события). Горячие данные в Kudu, холодные в Parquet, общий склеивающий интерфейс доступа для пользователей через SQL Impala. Результат - данные в реальном времени о состоянии карточных транзакций и остатков по карточному счету открывают для бизнеса новые возможности.

  • Историзируемый слой ODS

Построение слоя ODS с использованием Oracle Golden Gate с сохранением истории изменения источника с возможностью задания гранулярности истории по каждому объекту репликации, а также архивированием в Hadoop с возможностью схлопывания интервалов холодных данных.

  • Графовая аналитика

    • Построение витрины property графа в Hadoop;

    • Загрузка в графовую БД Arango;

    • Интерфейс работы с графом для андерайтеров над Arango;

    • Графовые модели (анализ окружения клиента при скоринге);

  • Текстовая аналитика

    • Работа моделей по распознаванию первичных документов клиента и поиска в них аномалий (контроль фронта, антифрод, автоматизация работы с заявкой);

    • Анализ новостных лент, тематических форумов

  • Геоаналитика

    • Анализ удаленности и проходимости офисов от основных пешеходных маршрутов, автомобильных проездов и парковок;

    • Оптимизация курьерских маршрутов

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

  • Контейнеризация пользовательских приложений и моделей с использованием окружения K8S

Каждый пункт из этого списка достоин отдельной развернутой статьи, которые обязательно появятся в будущем. Следите за обновлениями, задавайте ваши вопросы и делитесь своим опытом.

Авторы:

Евгений Вилков, Глоубайт.

Колесникова Елена, Газпромбанк (АО).

Подробнее..

Категории

Последние комментарии

  • Имя: Макс
    24.08.2022 | 11:28
    Я разраб в IT компании, работаю на арбитражную команду. Мы работаем с приламы и сайтами, при работе замечаются постоянные баны и лаги. Пацаны посоветовали сервис по анализу исходного кода,https://app Подробнее..
  • Имя: 9055410337
    20.08.2022 | 17:41
    поможем пишите в телеграм Подробнее..
  • Имя: sabbat
    17.08.2022 | 20:42
    Охренеть.. это просто шикарная статья, феноменально круто. Большое спасибо за разбор! Надеюсь как-нибудь с тобой связаться для обсуждений чего-либо) Подробнее..
  • Имя: Мария
    09.08.2022 | 14:44
    Добрый день. Если обладаете такой информацией, то подскажите, пожалуйста, где можно найти много-много материала по Yggdrasil и его уязвимостях для написания диплома? Благодарю. Подробнее..
© 2006-2024, personeltest.ru