[SQL, Microsoft SQL Server, Visual Basic for Applications, Data Engineering] И снова про MS Excel

Автор Сообщение
news_bot ®

Стаж: 6 лет 9 месяцев
Сообщений: 27286

Создавать темы news_bot ® написал(а)
06-Июл-2021 20:31

Однажды в моем инстаграме появились сразу несколько блоков рекламы об ознакомительных презентациях нескольких Российских онлайн-школ на тему "Аналитика данных на Python для чайников". Подумав о том, что можно с пользой для себя провести несколько часов и прокачать свои навыки по анализу, я записался и посетил данные курсы. Самое забавное, что практически все что я видел начиналось словами: "Давайте выбросим MS Excel (далее с вашего позволения просто - "эксель") и начнем работать на Python". Возмущению моему не было предела. В разумных рамках. Пройдя свой путь от разработчика (до черти как это назвать) и постоянно работая с данными, могу только привести в ответ фразу знаменитого персонажа Alf - "Вы просто не умеете их готовить".
картинка взята с keddr.comДа, да, да. Можно хранить в "экселе" миллионы строк, пытаясь использовать его вместо базы данных (к слову говоря в одной из организаций по-началу мне пришлось воспользоваться этой "фичей"). Можно строить сложные вычисления на формулах (один из проектов доставшихся мне высчитывал Scheme Fee процентовку на "экселе"). Можно даже не изобретая "ардуино проекты" - написать код на VBA для эмуляции движения мыши. А можно просто использовать его там где он силен - в представлении табличных данных для анализа человеком. Об этом я и попытаюсь вкратце (в очередной 100500 раз) рассказать.Прежде всего хочу начать с простого описания самих проблем когда приходится брать в руки швейцарские часы и забивать ими гвозди:
  • Ограниченность программных продуктов на рабочем месте
  • Необходимость для аналитиков в изучении новых продуктов (Power BI, Tableau и т.д.)
  • Простота использования - Нажми на кнопку и получишь результат (С) Технология
В тех страховых и финансовых компаниях которых я работал, не существовало возможности установить дополнительно программное обеспечение на компьютер или тонкий клиент. Вообще. Совсем. На последнем месте было невозможно запустить даже cmd. Но везде и всегда был установлен нелюбимый многими  M$ Офис. Если бы мне раньше сказали что после Delphi/C#/Java/JavaScrip я скачусь до VBA, то возможно я бы плюнул человеку в глаза. Но жизнь расставила фишечки по-другому. Перейдя в сферу анализа данных, волшебных пузырьков отчетов после работы с Jasper Reports/Crystal reports/Business Objects и еще другими подобными продуктами я понял как устал выбирать пиксели рисуя красивые отчеты, чтобы будучи экспортированными в Excel у таблиц в буквальном смысле не "плыла крыша". Попав в одно из подразделений страхового брокера AON, мне предстояло анализировать ежемесячные выгрузки филиальных данных, на которых в последствии должен быть построен дашборд и продан как продукт другим страховщикам. Нас было трое. 4 потока новых ежемесячных страховых полюсов с 4х разных стран, использующих абсолютно разные программные продукты, нам нужно было проанализировать до следующего экстракта и после причесания данных (ETL) загрузить в корпоративное хранилище. Были выданы "ложка-вилка-нож" в виде SQL Server Management Studio и оно понеслось. Начав разгребать данные, у меня со временем появились свои наработки в виде SQL скриптов, но задалбывало копировать результаты выполнения в "эксельку" для анализа. В итоге начали появляться наброски кода на VBA + SQL для анализа. Уходя из компании через 2 года и оставляя законченный продукт в виде XLSM, 4 аналитика уже "шерстили" 28 ежемесячных выгрузок данных за 2 недели. Следующим этапом в новой компании (мировой платежный провайдер) была автоматизация загрузок счетов от Visa & MasterCard. Представьте что в вашей компании имеются 40 банковских счетов. по каждому счету каждый день MasterCard выставляет счет. Специальная "тетенька" с высшим образованием в начале каждого месяца заходила на сайт компании и путем задания фильтра по счетам и различных кликов мышой скачивала 1200 документов. Которые в последствии нужно было агрегировать в один документ. И в данном случае снова на помощь пришел "эксель". Пока компания решала какой из серверов БД будет использоваться, пришлось сначала сливать и делать анализ в самих "экселевских" файлах, а затем был найден чудесным образом установленный на тонком клиенте - SQL CE. В последствии все перекочевало на нормальный SQL Server 2008R2 с небольшой доработкой VBA кода. А далее был продлен контракт с очень интересным для меня проектом.Обрабатывая многомиллионные ежедневные транзакционные данные, нужно было посчитать Scheme Fee (микро платежи в пользу Visa/MasterCard начисляемые по различным параметрам как например - за каждые 1000 платежей по магнитной полоске, бесконтактно или Chip&Pin. За использование заморской карты в данном регионе и т.д.) и по результатам месячный активности выставить счета потребителям услуг (H&M, Tesco, Emirates Airlines, Apple, AliExpress etc). Вся забава начиналась тогда, когда тот или иной клиент запрашивал дополнительные данные по месячному срезу - например разбивку по типам карт или по дневному трафику. Вот тогда пошли в дело шаблоны на "эксельках". Для каждого клиента рисовался отдельный шаблон, который заполнялся из нужного датасета в процессе обработке на первой неделе каждого месяца. Хотите график? Без проблем! Что мы имели на выходе? XLS или PDF файл который направлялся менеджеру по работе с клиентом после предварительного просмотра девчатами из нашего отдела. Все что требовалось от них в случае изменения "% ставки клиента" - выгрузить таблицу в "эксельку", подправить данные, загрузить обратно и сгенерить новый счет нажав большую красивую кнопку и указав часть имени клиента по которому были произведены изменения. Все.К чему такой длинный короткий опус? Когда мне говорят, что нужно "выбросить эксельку и взяться за анализ данных на Python купив наш курс" - я начинаю рыдать. Тащить миллионы строк данных на Python нет смысла - лучше обрабатывать это все на самом сервере (об этом кстати может быть отдельный опус с примерами "как я пытался перенести и оптимизировать расчет Scheme Fee с SQL Server на Python"). А презентацию конечных данных лучше производить уже в тот, живой формат с которым будут работать пользователи - XLSМожно пытаться долго и красиво описать что я делал, но все это наверняка будет не совсем понятно без живого примера. Недавно я начал воссоздавать старый код в библиотеку "для сэбэ" для коммерческого использования. В качестве же подопытного кролика, я решил взять библиотеку sp_Blitz написанную Brent Ozar и его товарищами. Библиотека представляет набор хранимых процедур для SQL Server DBA. Меня начало напрягать - запускать хранимку и вытаскивать из кучи датасетов нужное. Поэтому в двух видео ниже показано как красиво (а для кого-то возможно и не очень) можно представлять данные по клику, используя "эксельку".Извините, данный ресурс не поддреживается. :( Извините, данный ресурс не поддреживается. :( Про планы писать не буду, чтобы не удивлять. Но основываясь на собственном опыте, как мне кажется потенциал имеется.
===========
Источник:
habr.com
===========

Похожие новости: Теги для поиска: #_sql, #_microsoft_sql_server, #_visual_basic_for_applications, #_data_engineering, #_sql, #_excel, #_vba, #_data, #_analytics, #_sql, #_microsoft_sql_server, #_visual_basic_for_applications, #_data_engineering
Профиль  ЛС 
Показать сообщения:     

Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы

Текущее время: 22-Ноя 13:33
Часовой пояс: UTC + 5