Как было устроено хранилище DWH в TELE2

Здравствуйте, дорогие друзья.


Сегодня хочу поделиться историей из жизни, как было устроено хранилище 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 использовать приходилось постоянно. Не было ни дня без зависших либо долгоиграющих сессий, в которых нужно было лезть в план запроса.


image
Структура хранилища 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.


В общем было много всего интересного. Пожалуй, остановлюсь на этом. До скорых встреч.


This article was written by Mkrtich Pudeian

Комментарии 25

    0

    Один железный сервер для всех данных биллинга?
    Регионы это только Россия или весь ЕлеДва?

      +1
      Российский Теле2 с 2013 ничего общего с Tele2 AB не имеет, только историю появления и корни, но про объемы — это скорей всего только Россия и то в то время она не настолько обширная была.
      У меня сложилось впечатление, что рассказ по поводу серверов был на счет 2012 года, а не позже, но и далее как-то странно звучит: «При этом этот инструмент был настолько популярен внутри компании, что за 8 лет на нем было сформировано более полу миллиона отчетов с разной степенью важности.» За 8 лет с какого времени-то?
        0
        Нет. Речь идет только о России. Регионы разбиты на макрорегионы.Под регионами понимается область. Есть 4 больших макрорегиона, условно: «север», «юг»,«сибирь» и «Москва». У каждого биллинга свой сервер. Изначально лет 10 назад был только 1 биллинг но с ростом абонентской базы росли и объемы и появилась необходимость разбивку сделать.
        +1
        Отличная статья, спасибо!

        Но это
        Она считалась на сервере DWH целых 4 дня из-за больших объемов
        нереальный мрак и ужас. Хотя у вас еще и Lotus, но это видимо привет от когда-то существовавших иностранных инвесторов. В XXI веке DWH > 1 tb на Oracle? Вы же не банк… Не было идей на нормальную колоночную MPP перейти? Если уж от Oracle не отвязаться, то и Exadata явно лучше. Или EDW и есть колоночная MPP?
          +1
          Не было раньше бюджета на разворачивание новых систем. Никто из руководства не соглашался выделять бюджет на это. И всех устраивало что ЕФО считается 4 дня. А DWH строилась по остаточному принципу. Делаем из того, что есть. Плюс не было компетенции на Exadata или что-то другое. В основном в ИТ сидели мастера и волшебники Oracle. Плюс функционал расчета ЕФО сейчас настолько большое, сложное и витиеватое что никто не соглашается его портировать.
            0
            А Вы еще работаете в Tele2? Присоединяюсь к комментариям ниже о том, что инфа в статье чувствительная… Я вот даже не деанонимизирую местный профиль, хотя BI-профи и могут просечь где работаю. Успехов Вам в любом случае!
          +1
          Аббревиатура DWH уже включает в себя слово «хранилище», и при этом аббревиатура никак не конкретизирует устройство этого хранилища, т.е. получилось что-то типа «Операционная система OS». :).
            0
            Мишань, а тебе кто-то давал добро на публикацию такой информации?
              +1

              Псто кровавого энтерпрайза

                0
                «Плюс пара систем для предоставления отчетности таких как Crostal Reports и IBM Lotus подключались к DWH через RPT-файлы.»(С)
                Наверное, все же Crystal Reports подключалась по SQL к DWH, генерируя для пользователей отчеты уже в RPT-файлах !?!
                  0

                  Сейчас на работу приедет начальство и скажет вам "Удоли!" )

                    0
                    Да вроде ничего такого
                    0
                    С интересом жду продолжения!
                      0
                      Надеюсь у вас нет никаких NDA в контракте.
                      +1
                      Ребята подскажите насколько оно чувствительное с точки зрения конфиденциальности? Думал еще статью сделать про внедрение EDW, но понимаю что тогда точно СБ придет ко мне.
                      Скажите стоит ли публиковать статьи в таком формате?
                        0
                        Откомментил выше. Добавлю, как человек работающий в соседнем операторе, правда с более продвинутым BI-решением, что информация — чувствительная. Пока не критично, т.к. статья вводно-описательная. Но будете продолжать и дальше — ИБ (если совсем не лохи оно действительно ИБ) придет обязательно. Лучше попробуйте договориться с PR-службой и ИБ заранее и публикуйте дальше. Реально мало такой инфы на Хабре.

                        UPD: правильный ход только что сделали) Но следовало сразу позаботиться…
                          0
                          Да нет, все ок, продолжай, очень интересно!
                            0
                            Приветствую.
                            Сложно сказать, все зависит от NDA и СБ.
                            Мой коллега писал про наш Биллинг, вроде до сиз пор работает…
                            0
                            Сейчас, когда Оракл прекратил поставки железа на SPARK, есть планы миграции?
                            Или работает — ну и ладно?
                              0
                              1. не 'spark' а SPARC (Scalable Processor ARChitecture)
                              2. не прекратил www.oracle.com/ru/servers/sparc
                                0
                                Вендорам рассказали, что с июня этого года спарки сворачиваются, а команду по SPARС ещё в конце 2017 распустили.
                                Спасибо за правку (долго смотрел, что вроде не совсем так пишется, но подвоха не понял)
                                  0
                                  Oracle говорит, что текущий SPARC M8 очень хорош для Oracle DB и Java
                                  У Fujitsu своя реализация SPARC V9 есть
                                  www.fujitsu.com/global/products/computing/servers/unix/sparc/key-reports/roadmap
                                    0
                                    Оракл продавал свои программно-аппаратные комплексы — свой linux, своя java, свой infiniband, свои SPARC.
                                    Процессорную команду разогнал в конце 17, сейчас начинает прикрывать свои SPARC.
                                    А текущие кластры — да, неплохи, во многих банках хвалили.
                              0
                              Спасибо за статью.
                              Замечания
                              1)
                              таких как например, звонковая детализация

                              Могу ошибаться, но думаю правильнее было бы использовать выражение «детализация по звонкам».
                              2) Про «Croystal Reports» уже написали.

                              Было бы неплохо получить продолжение о текущих решениях, но без упоминания имен и названий, во избежание возможных претензий.

                              Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                              Самое читаемое