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


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


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

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


  1. slimlv
    11.08.2019 20:49

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


    1. RamusAkaRami
      11.08.2019 21:52
      +1

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


    1. mpudeyan
      11.08.2019 23:05

      Нет. Речь идет только о России. Регионы разбиты на макрорегионы.Под регионами понимается область. Есть 4 больших макрорегиона, условно: «север», «юг»,«сибирь» и «Москва». У каждого биллинга свой сервер. Изначально лет 10 назад был только 1 биллинг но с ростом абонентской базы росли и объемы и появилась необходимость разбивку сделать.


  1. McKinseyBA
    11.08.2019 21:00

    Отличная статья, спасибо!

    Но это

    Она считалась на сервере DWH целых 4 дня из-за больших объемов
    нереальный мрак и ужас. Хотя у вас еще и Lotus, но это видимо привет от когда-то существовавших иностранных инвесторов. В XXI веке DWH > 1 tb на Oracle? Вы же не банк… Не было идей на нормальную колоночную MPP перейти? Если уж от Oracle не отвязаться, то и Exadata явно лучше. Или EDW и есть колоночная MPP?


    1. mpudeyan
      11.08.2019 23:12

      Не было раньше бюджета на разворачивание новых систем. Никто из руководства не соглашался выделять бюджет на это. И всех устраивало что ЕФО считается 4 дня. А DWH строилась по остаточному принципу. Делаем из того, что есть. Плюс не было компетенции на Exadata или что-то другое. В основном в ИТ сидели мастера и волшебники Oracle. Плюс функционал расчета ЕФО сейчас настолько большое, сложное и витиеватое что никто не соглашается его портировать.


      1. McKinseyBA
        12.08.2019 11:07

        А Вы еще работаете в Tele2? Присоединяюсь к комментариям ниже о том, что инфа в статье чувствительная… Я вот даже не деанонимизирую местный профиль, хотя BI-профи и могут просечь где работаю. Успехов Вам в любом случае!


  1. napa3um
    11.08.2019 22:02
    +1

    Аббревиатура DWH уже включает в себя слово «хранилище», и при этом аббревиатура никак не конкретизирует устройство этого хранилища, т.е. получилось что-то типа «Операционная система OS». :).


  1. AnViar
    11.08.2019 22:28

    Мишань, а тебе кто-то давал добро на публикацию такой информации?


  1. Rukuki_Ake
    12.08.2019 00:11

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


  1. StepanovMD
    12.08.2019 09:01

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


  1. Barabek
    12.08.2019 10:09

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


    1. BigD
      12.08.2019 11:27

      Да вроде ничего такого


  1. BigD
    12.08.2019 11:27

    С интересом жду продолжения!


  1. LeoKudrik
    12.08.2019 11:33

    Надеюсь у вас нет никаких NDA в контракте.


    1. diego_milito Автор
      12.08.2019 11:38

      .


  1. diego_milito Автор
    12.08.2019 11:39
    +1

    Ребята подскажите насколько оно чувствительное с точки зрения конфиденциальности? Думал еще статью сделать про внедрение EDW, но понимаю что тогда точно СБ придет ко мне.
    Скажите стоит ли публиковать статьи в таком формате?


    1. McKinseyBA
      12.08.2019 11:47

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

      UPD: правильный ход только что сделали) Но следовало сразу позаботиться…


    1. Rud161
      12.08.2019 11:54

      Да нет, все ок, продолжай, очень интересно!


    1. antonitpro
      12.08.2019 23:01

      Приветствую.
      Сложно сказать, все зависит от NDA и СБ.
      Мой коллега писал про наш Биллинг, вроде до сиз пор работает…


  1. DrunkBear
    12.08.2019 12:29

    Сейчас, когда Оракл прекратил поставки железа на SPARK, есть планы миграции?
    Или работает — ну и ладно?


    1. imotorin
      12.08.2019 15:03

      1. не 'spark' а SPARC (Scalable Processor ARChitecture)
      2. не прекратил www.oracle.com/ru/servers/sparc


      1. DrunkBear
        12.08.2019 15:11

        Вендорам рассказали, что с июня этого года спарки сворачиваются, а команду по SPARС ещё в конце 2017 распустили.
        Спасибо за правку (долго смотрел, что вроде не совсем так пишется, но подвоха не понял)


        1. imotorin
          12.08.2019 15:30

          Oracle говорит, что текущий SPARC M8 очень хорош для Oracle DB и Java
          У Fujitsu своя реализация SPARC V9 есть
          www.fujitsu.com/global/products/computing/servers/unix/sparc/key-reports/roadmap


          1. DrunkBear
            12.08.2019 16:26

            Оракл продавал свои программно-аппаратные комплексы — свой linux, своя java, свой infiniband, свои SPARC.
            Процессорную команду разогнал в конце 17, сейчас начинает прикрывать свои SPARC.
            А текущие кластры — да, неплохи, во многих банках хвалили.


  1. OasisInDesert
    12.08.2019 13:41

    Спасибо за статью.
    Замечания
    1)

    таких как например, звонковая детализация

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

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