Здравствуйте, дорогие друзья.
Сегодня хочу поделиться историей из жизни, как было устроено хранилище DWH в Tele2 до внедрения КХД (EDW).
Поступил я в ИТ подразделение Tele2 в 2012 в отдел по системам отчетности. На тот момент в компании уже было создано хранилище DWH, на котором уже крутилось много процессов по предоставлению отчетности и не только.
Немного по поводу технического стека, который там использовался на тот момент. Для хранилища использовалась Оракловая база объемом 60-100 Тб сервер T4-4 c оперативой под 1 Тб. Туда загружались данные из различных источников. Но основными из них были 4 оракловые биллинговые базы, которые были по сути платформой тарификации. И был отдел, который занимался поддержкой этих баз и предоставлением сервисов. Разделение этих баз было по макрорегионам. Причина: слишком большие объемы. Т.е если абонент звонит, скажем, из Московской сим-карты то и расчет стоимости звонка производится в соответствующем биллинге.
Самое топовое железо всегда доставалась биллинговым базам, а на остальные системы выделялось ресурсов по остаточному принципу. Обычно для DWH всегда доставался сервер немного слабее. Т.е. у биллинга стоит железка Т5-4, то у DWH — Т4-4 в наследство.
Но этих ресурсов всегда хватало на покрытие текущих задач и сворачивание отчетности. Данные из биллинга загружались по DB-link-ам. Были настроены классические ETL-процессы, когда ежедневно проходила ночная загрузка данных с небольшими преобразованиями (например, добавление суррогатных ключей). ETL был 2-х видов: полная загрузка для небольших объемов и инкрементальная для больших таблиц таких как например, звонковая детализация, начисления, платежи и т.д. Также еще был такой большой источник, как текстовые файлы которые загружают звонковую информацию и интернет-трафик из коммутаторов и базовых станций. Данные загружаются в виде текстовых файлов с помощью загрузчиков oracle sql loader. Приращение к базе обычно составляло 10-20 Гб в день.
Партиционирование таблиц, индексы, оптимизация планов запросов, хинты в DWH использовать приходилось постоянно. Не было ни дня без зависших либо долгоиграющих сессий, в которых нужно было лезть в план запроса.
Структура хранилища DWH в Tele2 до внедрения EDW.
Также одним из основных задач DWH было формирование ежемесячной финансовой отчетности (ЕФО). Она считалась на сервере DWH целых 4 дня из-за больших объемов. Для представления что это такое, скажу что это пакет Oracle в 5 тыс. строк кода на PL/SQL со сложной витиеватой логикой и все это сворачивается в динамике. А потом отчет выгружается на FTP либо на сетевую шару в виде CSV файлов. И все это без использования коробочных решений. Т.е. руками написанный, годами оптимизированный и автоматизированный функционал.
Но база DWH использовалась не только для предоставления регулярной отчетности но и как операционное хранилище. Например, на нем крутился процесс предоставления разной информации абонентам из личного кабинета на сайте Tele2.
Также стоит отдельно рассказать про систему Oracle Application Express (APEX) которое имеет особое место для предоставления отчетности. APEX — это среда для быстрой разработки WEB-интерфейсов, либо для предоставления отчетности либо для того, чтобы настроить какой-либо бизнес-процесс. На нем было создан, руками написанный функционал "Выгрузка отчета", где пользователи могли сами себе создать отчет. Т.е. человек заходит, выбирает набор полей для своего отчета, при желании может притянуть первоисточник в виде excel файла, и потом ему приходит отчет на почту в виде заархивированного csv файла. А внутри DWH написано огромное количество PL/SQL процедур и функций которые было по сути встроенным скриптогенератором для отчетов. При этом этот инструмент был настолько популярен внутри компании, что за 8 лет на нем было сформировано более полу миллиона отчетов с разной степенью важности.
Также в APEX было разработано еще много чего интересного. Например, руками написанный функционал для документооборота и система автоматизации маркетинга. В первом персонал визироавал документы. А во-втором отдел маркетинга проводил различные мероприятия для клиентов. Например, выполнял массовую смс-рассылку абонентам о новых тарифах и услугах. И все это проходило через DWH и была интеграция с смс-каналом.
Плюс пара систем для предоставления отчетности таких как Crostal Reports и IBM Lotus подключались к DWH через RPT-файлы.
На приложенной схеме выше можно посмотреть старую структуру хранилища DWH и движение потоков данных на 2012 год. Со структурой в настоящее время, не имеет ничего общего.
Все это более ли менее успешно работало до того момента, пока бизнес не понял что предоставление отчетности уже недостаточно и приняли решение внедрять КХД, BI-системы и BigData.
В общем было много всего интересного. Пожалуй, остановлюсь на этом. До скорых встреч.
Комментарии (25)
McKinseyBA
11.08.2019 21:00Отличная статья, спасибо!
Но этоОна считалась на сервере DWH целых 4 дня из-за больших объемов
нереальный мрак и ужас. Хотя у вас еще и Lotus, но это видимо привет от когда-то существовавших иностранных инвесторов. В XXI веке DWH > 1 tb на Oracle? Вы же не банк… Не было идей на нормальную колоночную MPP перейти? Если уж от Oracle не отвязаться, то и Exadata явно лучше. Или EDW и есть колоночная MPP?mpudeyan
11.08.2019 23:12Не было раньше бюджета на разворачивание новых систем. Никто из руководства не соглашался выделять бюджет на это. И всех устраивало что ЕФО считается 4 дня. А DWH строилась по остаточному принципу. Делаем из того, что есть. Плюс не было компетенции на Exadata или что-то другое. В основном в ИТ сидели мастера и волшебники Oracle. Плюс функционал расчета ЕФО сейчас настолько большое, сложное и витиеватое что никто не соглашается его портировать.
McKinseyBA
12.08.2019 11:07А Вы еще работаете в Tele2? Присоединяюсь к комментариям ниже о том, что инфа в статье чувствительная… Я вот даже не деанонимизирую местный профиль, хотя BI-профи и могут просечь где работаю. Успехов Вам в любом случае!
napa3um
11.08.2019 22:02+1Аббревиатура DWH уже включает в себя слово «хранилище», и при этом аббревиатура никак не конкретизирует устройство этого хранилища, т.е. получилось что-то типа «Операционная система OS». :).
StepanovMD
12.08.2019 09:01«Плюс пара систем для предоставления отчетности таких как Crostal Reports и IBM Lotus подключались к DWH через RPT-файлы.»(С)
Наверное, все же Crystal Reports подключалась по SQL к DWH, генерируя для пользователей отчеты уже в RPT-файлах !?!
diego_milito Автор
12.08.2019 11:39+1Ребята подскажите насколько оно чувствительное с точки зрения конфиденциальности? Думал еще статью сделать про внедрение EDW, но понимаю что тогда точно СБ придет ко мне.
Скажите стоит ли публиковать статьи в таком формате?McKinseyBA
12.08.2019 11:47Откомментил выше. Добавлю, как человек работающий в соседнем операторе, правда с более продвинутым BI-решением, что информация — чувствительная. Пока не критично, т.к. статья вводно-описательная. Но будете продолжать и дальше — ИБ (если
совсем не лохионо действительно ИБ) придет обязательно. Лучше попробуйте договориться с PR-службой и ИБ заранее и публикуйте дальше. Реально мало такой инфы на Хабре.
UPD: правильный ход только что сделали) Но следовало сразу позаботиться…
antonitpro
12.08.2019 23:01Приветствую.
Сложно сказать, все зависит от NDA и СБ.
Мой коллега писал про наш Биллинг, вроде до сиз пор работает…
DrunkBear
12.08.2019 12:29Сейчас, когда Оракл прекратил поставки железа на SPARK, есть планы миграции?
Или работает — ну и ладно?imotorin
12.08.2019 15:031. не 'spark' а SPARC (Scalable Processor ARChitecture)
2. не прекратил www.oracle.com/ru/servers/sparcDrunkBear
12.08.2019 15:11Вендорам рассказали, что с июня этого года спарки сворачиваются, а команду по SPARС ещё в конце 2017 распустили.
Спасибо за правку (долго смотрел, что вроде не совсем так пишется, но подвоха не понял)imotorin
12.08.2019 15:30Oracle говорит, что текущий SPARC M8 очень хорош для Oracle DB и Java
У Fujitsu своя реализация SPARC V9 есть
www.fujitsu.com/global/products/computing/servers/unix/sparc/key-reports/roadmapDrunkBear
12.08.2019 16:26Оракл продавал свои программно-аппаратные комплексы — свой linux, своя java, свой infiniband, свои SPARC.
Процессорную команду разогнал в конце 17, сейчас начинает прикрывать свои SPARC.
А текущие кластры — да, неплохи, во многих банках хвалили.
OasisInDesert
12.08.2019 13:41Спасибо за статью.
Замечания
1)таких как например, звонковая детализация
Могу ошибаться, но думаю правильнее было бы использовать выражение «детализация по звонкам».
2) Про «Croystal Reports» уже написали.
Было бы неплохо получить продолжение о текущих решениях, но без упоминания имен и названий, во избежание возможных претензий.
slimlv
Один железный сервер для всех данных биллинга?
Регионы это только Россия или весь ЕлеДва?
RamusAkaRami
Российский Теле2 с 2013 ничего общего с Tele2 AB не имеет, только историю появления и корни, но про объемы — это скорей всего только Россия и то в то время она не настолько обширная была.
У меня сложилось впечатление, что рассказ по поводу серверов был на счет 2012 года, а не позже, но и далее как-то странно звучит: «При этом этот инструмент был настолько популярен внутри компании, что за 8 лет на нем было сформировано более полу миллиона отчетов с разной степенью важности.» За 8 лет с какого времени-то?
mpudeyan
Нет. Речь идет только о России. Регионы разбиты на макрорегионы.Под регионами понимается область. Есть 4 больших макрорегиона, условно: «север», «юг»,«сибирь» и «Москва». У каждого биллинга свой сервер. Изначально лет 10 назад был только 1 биллинг но с ростом абонентской базы росли и объемы и появилась необходимость разбивку сделать.