Сравнение Python и SQL для построения конвейеров данных
Дата публикации Feb 16, 2019
Ворвавшись в рабочую силу в качестве веб-разработчика, мое первое взаимодействие с базами данных и SQL было с использованием объектно-реляционной модели (ORM). Я использовал API наборов запросов Django и имел отличный опыт использования интерфейса. После этого я перешел на должность инженера по обработке данных и стал более активно использовать наборы данных для создания ИИ. В мои обязанности входило брать данные из пользовательского приложения и превращать их во что-то, что можно использовать Data Scientists, процесс, широко известный как ETL.
Как гласит история, данные в производственной системе были беспорядочными и требовали значительных преобразований, прежде чем кто-либо смог построить ИИ из этого. Были столбцы JSON, которые имели разные схемы на строку, столбцы содержали смешанные типы данных, а некоторые строки имели ошибочные значения. Кроме того, необходимо рассчитать такие функции, как продолжительность пребывания пользователя в качестве клиента и продолжительность ожидания между посещениями. Разрабатывая функции очистки, агрегирования и разработки данных, я попытался решить, какой язык лучше всего подойдет для этой задачи. Придя с работы, где я использовал Python весь день каждый день, я знал, что он может сделать эту работу. Однако из этого опыта я узнал, что только то, что python может выполнять эту работу, не означает, что она должна.
Первый раз, когда я неверно оценил SQL, я предположил, что SQL не может выполнять сложные преобразования
Мы работаем с набором данных временного ряда, в котором мы хотим отслеживать конкретных пользователей с течением времени. Законы о конфиденциальности не позволяют нам знать конкретные даты посещений пользователей, поэтому мы решили, что мы нормализуем дату записи для первого посещения пользователей (т. Е. Через 5 дней после их первого посещения и т. Д.). Для нашего анализа было важно знать время с момента последнего посещения, а также время с момента их первого посещения. У A было два образца наборов данных: один с приблизительно 7,5 миллионами строк размером 6,5 ГБ, а другой с 550 000 строк размером 900 МБ.
Используя код Python и SQL, показанный ниже, я использовал меньший набор данных, чтобы сначала проверить преобразования. Python и SQL выполнили задачу за 591 и 40,9 секунд соответственно. Это означает, что SQL смог обеспечить ускорение примерно в 14,5 раз!
Это преобразование SQL было не только быстрее, но и более читабельным, и, следовательно, более легким в обслуживании. Здесь я использовал функции lag и first_value, чтобы найти конкретные записи в истории пользователей (называемые разделами). Затем я использовал функцию возраста, чтобы определить разницу во времени между посещениями.
Второй раз, когда я неправильно оценил SQL, я подумал, что он не может сгладить неправильный json
С другой стороны, половина json в моем образце набора данных не является допустимой json и, следовательно, сохраняется в виде текста. В этом случае у меня был выбор, я мог либо перекодировать данные, чтобы сделать их действительными, либо я мог просто отбросить строки, которые не следовали правилам. Для этого я создал новую функцию SQL с именем is_json, которую затем мог бы использовать для определения допустимого json в предложении WHERE.
Эта функция смогла успешно сгладить мой json и довольно легко решить мой худший кошмар.
Существует идиома, которая объявляет Python вторым лучшим языком для выполнения практически любых задач. Я считаю, что это правда, и в некоторых случаях обнаружил, что разница в производительности между Python и «лучшим» языком незначительна. Однако в этом случае python не смог конкурировать с SQL. Эти осознания наряду с чтениями, которые я делал, полностью изменили мой подход к ETL. Сейчас я работаю в парадигме «Не перемещайте данные в код, а перемещайте код в свои данные». Python перемещает ваши данные в код, а SQL действует на месте. Более того, я знаю, что только поцарапал поверхность возможностей sql и postgres. Я с нетерпением жду более удивительной функциональности и возможности получить ускорение благодаря использованию аналитического хранилища.
SQL, R или Python: какой язык учить аналитику данных?
Сегодня каждая уважающая себя крупная компания собирает и хранит огромные массивы данных, надеясь извлечь из них коммерческую пользу. Эксперты, которые разбираются в этих массивах и способны показать эффективный результат, могут рассчитывать на быструю карьеру с впечатляющими окладами. Рассказываем, какие инструменты нужно выбрать, чтобы стать успешным аналитиком данных.
Единственная сложность для начинающих аналитиков данных заключается в том, что даже базовые позиции этой сферы предполагают уверенное владение компьютерными языками. Как правило, в объявлениях о вакансиях упоминаются SQL, R и Python. В чем их отличия?
Что популярнее?
Интересное исследование на эту тему в 2019 году провела специалистка по аналитике данных Женевьева Хейс (Genevieve Hayes). Она проанализировала 100 актуальных объявлений о работе в Data Science, подобрав компании самого разного размера с позициями самого разного уровня. Вакансии руководителей ее не интересовали, только те должности, где нужно работать «руками». В 15% случаев объявления адресовались начинающим специалистам, 44% пришлись на средние позиции, 41% — на старших экспертов.
Во всех трех категориях на первом месте по популярности оказался Python. SQL занял вторую строчку, R — третью. Главный тренд, который отметила Хейс, — это падение позиций SQL с повышением позиции сотрудника. Среди вакансий для начинающих сотрудников этот язык упоминался в 73% случаев, а в самой опытной категории цифра упала до 45%.
Эти результаты говорят о том, что начинающие специалисты должны знать, как сформулировать запрос базе и интерпретировать ответ, понимать принципы обмена данных между хранилищами и т.д. Очевидно, те компании, которые в исследовании Яндекса активно ищут младших экспертов по Data Science, во многом преследуют именно эти цели — наладить грамотную работу с базами, а дальше действовать по ситуации.
С другой стороны, R и Python позволяют работать с данными глубже, чем на уровне базовых запросов и операций. В серьезном статанализе и машинном обучении без этих языков делать нечего — поэтому с повышением должности эксперта от него ждут сильных навыков в этой области.
Тем, кто хочет стать веб-разработчиком с нуля, знание SQL дает отличное понимание работы с бэкендом. Python, в свою очередь, объединяет множество удобных инструментов веб-разработки, позволяющих быстро разворачивать функциональные сайты и мощные порталы. Наконец, R применяется для узких задач — у этого языка довольно специфичная природа, о которой мы расскажем подробнее ниже.
С чего начать?
Итак, именно R и Python можно считать главными языками для эксперта по Data Science. Настоящий профессионал сможет работать и с тем, и с другим, но нужно ли новичку браться сразу за все? Исследование Хейс показало, что вне зависимости от уровня сотрудника, главное требование — это знание Python. Это и неудивительно, ведь этот язык достаточно доступен для понимания новичков и невероятно функционален для применения в самых сложных рабочих задачах. Именно поэтому начинающим специалистам стоит начать именно с него, тем более что Python из года в год получает звание лучшего языка для первого знакомства с программированием.
Когда молодой аналитик овладеет базовым набором операций и поймет общую логику работы с данными, ему будет проще перенести ее на другой инструментарий. Так постепенно можно расширять свои компетенции, причем каждый новый язык будет даваться все легче.
Освойте 100% инструментов, необходимых junior-аналитику: от Google-таблиц до Python и Power BI.
R vs Python
Чтобы разобраться со многими вопросами выбора, стоит получше разобраться, что из себя представляют главные рабочие лошадки аналитика. У R и Python много общего, а различия в деталях и определяют специфику каждого языка.
Появление Python и R разделяет два года — первый увидел свет в 1991 году, второй в 1993-м. Оба языка создавались с таким расчетом, чтобы будущие разработчики могли расширять набор их функций с помощью подключаемых библиотек. С этим связано и использование открытого кода — ничто не мешает энтузиастам развивать, дополнять, достраивать и перестраивать.
Главная аудитория Python — это разработчики ПО и веб-разработчики. Именно для этих экспертов создается большинство функциональных модулей, позволяющих загружать данные, проводить с ними сложные операции, моделировать и анализировать. Чтобы стать хорошим веб-разработчиком достаточно собрать набор из десятка библиотек, с помощью которых можно закрыть основной круг базовых задач при сайтостроительстве.
С другой стороны, R вырос из языка S, с которым активно работают специалисты по статистике. Таким образом, его главная сила в сложных статистических функциях, которые используются в академических и высокопрофессиональных задачах.
С точки зрения аналитиков данных и экспертов по Data Science R и Python обладают схожими возможностями. Первый язык чаще выбирают специалисты, которым нужно работать с огромными массивами информации, на втором останавливаются создатели нейросетей и экспериментаторы в области машинного обучения. Следовательно, если вы уже знаете, какая область вам более интересна, вы можете планировать свое профессиональное образование.
«Group By» в SQL и Python: сравнение
Изучение перекрывающихся функций SQL и Python может помочь тем из нас, кто знаком с одним языком, лучше освоить другой. И, обладая глубоким пониманием того и другого, мы все можем принимать более взвешенные решения о том, как комбинировать и использовать каждый из них, упрощая выбор правильного инструмента для каждой задачи.
Например; многие функции написаны более кратко на Python. Но если преимущество краткости перевешивается ценностью наличия всего аналитического кода на одном языке, вы все равно захотите использовать SQL. С другой стороны, Python включает много сложных функций, которые не осуществимы в SQL, и ценность подхода, основанного только на SQL, может быть перевешена более широким набором операций, которые становятся доступными при совместном использовании обоих языков. Только узнав о функциональном совпадении аналитических языков, мы сможем эффективно принимать эти решения.
Чтобы увидеть, все примеры, упомянутые в этом посте, реализованы на практике, посмотрите этот пример отчета. Этот пост структурирован так, что вы можете пропустить его на основе ваших текущих знаний.
Функции агрегации
Когда мы применяем операцию группировки к набору данных в SQL, мы разделяем набор данных на отдельные «группы». На практике тип функции, наиболее часто применяемой к группе данных, – это функция агрегирования. На высоком уровне процесс агрегирования данных может быть описан как применение функции к ряду строк для создания меньшего подмножества строк. На практике это часто выглядит как вычисление общего количества строк в наборе данных или вычисление суммы всех строк в определенном столбце.
По умолчанию агрегатные функции SQL, например, count() применяются ко всем строкам в наборе данных и возвращают одно значение. Например, следующий запрос возвращает общее количество строк в таблице sf_bike_share_trip:
Интересно, что агрегатная функция count() имеет другую, часто упускаемую из вида функциональность. Если вы укажете столбец внутри функции count(), он вернет количество строк с ненулевыми экземплярами этого столбца вместо абсолютного общего количества строк. Например, если мы хотим рассчитать количество поездок, когда поле zip_code не равно нулю, мы могли бы использовать следующий запрос:
Применение функций агрегирования ко всем наборам данных является полезной функциональностью, но, как упоминалось ранее, мы часто хотим применять эту функцию отдельно для отдельных групп данных в наборе данных. Здесь начинается операция group by.
Group By
На высоком уровне предложение group by в SQL позволяет независимо применять функции агрегирования к отдельным группам данных в наборе данных.
Возвращаясь к нашему предыдущему запросу, давайте посчитаем количество поездок на велосипеде ( count(*)) по станции, с которой они начали ( start_station_name). Мы делаем это, добавляя start_station_name к списку выбранных столбцов и добавляя предложение group by, явно указывающее SQL для группировки count(*)агрегации по столбцу start_station_name:
Что, если мы также хотели бы указать среднюю, минимальную и максимальную продолжительность поездки на начальную станцию? SQL позволяет добавить к этому запросу произвольное количество функций агрегирования:
SQL также позволяет нам добавлять произвольное количество столбцов в наше предложение group by. Например, если мы хотим рассчитать количество поездок и среднюю, минимальную и максимальную продолжительность поездки для каждой комбинации начальных и конечных станций, мы можем сделать это с помощью следующего запроса:
Как видите, мы добавили столбец end_station_name как в наш список select, так и в наше предложение group by. Большинство платформ SQL предлагают некоторый синтаксический сахар для этой операции, что позволяет вам использовать порядковый номер столбца в selectвыражении вместо явной ссылки на имена столбцов. На практике это будет выглядеть так:
Примечание: не все платформы SQL позволяют ссылаться на столбцы по их порядковому положению в операторе select. Например, в базах данных Oracle и SQL Server вам нужно будет явно ссылаться на столбцы по имени в group byпредложении.
Что если мы хотим строго отфильтровать значения, возвращаемые этим запросом, чтобы начать комбинации станций и конечных станций с более чем 1000 поездок? Поскольку предложение where в SQL поддерживает только фильтрацию записей, а не результатов функций агрегирования, нам нужно найти другой способ. Вот где оператор having вступает в силу.
having
Предложение having позволяет пользователям фильтровать значения, возвращаемые из сгруппированного запроса, на основе результатов функций агрегирования.
Как упоминалось ранее, мы хотим отфильтровать значения, возвращаемые в нашем запросе, для комбинаций начальной и конечной станций с более чем 1000 рейсов. Мы можем достичь этого, используя следующий запрос:
На данный момент мы изучили многое из того, что SQL может делать с функциональностью group by. Давайте посмотрим, как эта же реализация будет выглядеть в Python, используя библиотеку pandas.
Python
Как обычно, SQL и pandas довольно сильно различаются по синтаксису, но имеют много общего в функциональном отношении. SQL может быть более простым вариантом, имея под рукой только более простые задачи, но предел функциональности группировки в SQL только поверхностно затрагивает функциональность группировки Python с использованием панд.
В pandas, «groups» данные создаются с помощью python метода называется groupby(). Метод groupby() может быть вызван непосредственно на объект Dataframe в pandas.
В качестве примера мы собираемся использовать выходные данные SQL-запроса, названные Python в качестве входных данных для нашего Dataframe( df) в нашей записной книжке Python. Обратите внимание, что этот Dataframe не имеет функций агрегирования, вычисляемых с помощью SQL. Он просто использует SQL, чтобы выбрать необходимые поля для нашего анализа, а мы будем использовать панды, чтобы сделать все остальное. Дополнительным преимуществом выполнения этой операции в Python является то, что рабочая нагрузка перемещается из хранилища данных.
В нашей записной книжке Python мы собираемся использовать метод groupby(), чтобы сгруппировать наш Dataframe по столбцу start_station_name и присвоить этот результат новой переменной с именем grouped_single:
Применение метода groupby() к нашему Dataframe объекта возвращает объект GroupBy, который затем присваивается переменной grouped_single. Важная вещь, которую следует отметить в отношении объекта GroupBy для Pandas, заключается в том, что в момент создания объекта не происходило разбиение Dataframe. Объект GroupBy просто содержит всю необходимую ему информацию о характере группировки. Агрегирование не будет происходить, пока мы явно не вызовем функцию агрегирования для объекта GroupBy.
В отличие от SQL, метод groupby() в pandas не имеет понятия порядковых ссылок на позиции. Таким образом, вам нужно будет явно ссылаться на ключи группировки по имени.
Теперь, когда у нас есть объект GroupBy, созданный с соответствующими группировками, мы можем применить к нему методы агрегирования. По умолчанию pandas будет применять любой метод агрегации, который вы вызываете для объекта GroupBy, ко всем столбцам, не требующим вмешательства. Поскольку нас интересует только применение методов агрегирования к одному столбцу ( trip_duration_seconds), мы выберем только этот столбец из нашего нового объекта GroupBy. То, как вы выбираете отдельные столбцы в объекте GroupBy, аналогично тому, как вы делаете это с объектом Dataframe:
Pandas позволяет выбрать любое количество столбцов, используя эту операцию. Pandas будет возвращать сгруппированные серии, когда вы выбираете один столбец, и сгруппированные кадры данных, когда вы выбираете несколько столбцов. Теперь, когда у нас есть один столбец, выбранный из нашего объекта GroupBy, мы можем применить к нему соответствующие методы агрегирования. Есть несколько способов сделать это. Мы можем присвоить переменную объекту GroupBy и затем вызвать метод агрегирования для этой переменной:
Или мы можем использовать метод цепочки:
Мы можем повторить этот процесс для каждого из агрегатов, которые мы рассчитываем:
Вы можете увидеть, как это может запутаться, если вы вычисляете большое количество агрегатов. К счастью, pandas предлагает способ вычисления нескольких агрегатов для одного объекта GroupBy. Метод agg() может принимать принимать список методов агрегирования для отдельных столбцов:
Вы также можете связать метод rename() в pandas, чтобы переименовать новые столбцы агрегации в нужные вам имена:
Теперь мы реплицировали наш SQL-запрос до момента фильтрации наших групп на основе результата функции агрегирования. В pandas вы можете использовать стандартное индексирование для возврата подмножества исходного объекта на основе результата функции агрегирования. Например, если мы хотим отфильтровать наш результирующий набор только для комбинаций начальной станции и конечной станции с более чем 1000 поездок, мы могли бы использовать следующий оператор:
Blur The Line
Глубокое понимание функций группировки в SQL и Python может помочь вам определить, какой язык следует использовать для какой функции и в какое время. Если у вас нет сложных требований к группировке, вы, вероятно, захотите работать в SQL, чтобы вы могли хранить всю свою работу на одном языке. Но если ваш анализ включает более тяжелые групповые операции, подобные упомянутым выше, перемещение всех групповых операций в записную книжку Python позволит вам воспользоваться преимуществами более сложной функциональности, доступной в pandas.
Это преимущество возможности использования нескольких языков анализа данных; Вы можете настроить гибридный подход в соответствии с вашими потребностями по мере их развития.
Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.
Tableau, SQL, Power BI, Python. Почему в этих словах придется разбираться бухгалтеру. И уже в 2020 году
Если 10 лет назад знания Excel для бухгалтера считались высшим пилотажем, то сейчас, извините, нет.
Бывали на совещаниях, где сидят маркетологи и айтишники? Тоже поражались, откуда они набрались всех этих слов? Никуда не денешься, надо понимать, о каких таких «метриках», на увеличение которых направили бюджет на «охватные кампании в соцсетях», толкуют SMMщик и продакт.
Большинству бухгалтеров и финансистов (если это не финдир Газпрома) названия Tableau, SQL, Power BI, Python кажутся набором букв. Можно подумать, что эти инструменты относятся к компетенции программистов и маркетологов, но никак не бухгалтеров.
Относятся, и еще как.
И мы вместе с Еленой Герасимовой, руководителем факультета «Data Science и аналитика» онлайн-университета «Нетология » рассказываем, почему.
Не хочется, но придется
Раньше никто не жаловался. Все работали в привычном Excel, об инструментах Tableau, SQL, Power BI, Python мало кто знал, но это не отменяло их существование.
Но профессии трансформируются. Рынок труда уходит от мышления профобязанностями к мышлению компетенциями.
«Приходя на курсы, человек обнаруживает, что не соответствует современным определениям профессии из-за незнания новых компетенций», — рассказывает Елена Герасимова.
Кризис дает о себе знать. Компании сокращают штат или отдают работу на аутсорсинг. К оставшимся сотрудникам в штате начинают предъявлять большие требования.
Бухгалтер недоумевает: зачем узнавать новое, если все и так нормально получается в Excel? Да потому что это видимость, что Excel покрывает все потребности финслужбы. А директор, который сходил на модную конференцию про автоматизацию, не преминет об этом сказать.
А когда директор поговорит с молодым специалистом, который не признает привычный Excel, шансов у бухгалтера, работающего по старинке, становится еще меньше. Молодой специалист еще и стоит дешевле.
Вывод один: бухгалтер должен уметь запрашивать (и делать ее понятной руководству) аналитику самостоятельно, не привлекая программистов.
Системы аналитики и визуализации TABLEAU И POWER BI
Визуализация — это самый доступный способ доказать ваше мнение. Ну, все же знаем, что лучше один раз увидеть, чем сто раз прочитать в непонятном управленческом отчете.
И вот как раз Tableau специализируется на анализе данных через визуализацию. В нем легко создавать интерактивные дашборды, которые позволяют изучить динамику, тренды и структуру данных.
Проще говоря — Tableau — отличный инструмент, чтобы показать директору, куда уходят его деньги и как их больше заработать.
Tableau больше подойдет человеку, который готов больше развиваться в визуализации, настраивать свое рабочее окружение и нарабатывать себе портфолио (Tableau позволяет делиться своим публичным профилем эксперта).
Бухгалтеры, которые сегодня начнут изучать визуализацию, уже завтра смогут пройти собеседование в крупные зарубежные компании, чьи офисы есть в России. В любой зарубежной компании «говорят» с помощью визуализации, и требуют от сотрудников знаний на три головы выше, чем в российской компании, где бухгалтер — сугубо сервисная роль.
Power BI— это облачная служба бизнес-аналитики от Microsoft, которая позволяет визуализировать и анализировать данные. Быстро, эффективно и с более высоким уровнем доступности.
Интерфейс был создан, чтобы расширить функционал MS Excel и прокачать его до требований времени.
Плюсы:
В Power BI может разобрать человек с любыми минимальными навыками, особенно тот, кто знает Excel. У систем визуализации есть работающие интеграции с SQL и Python — и не надо ручками ничего выгружать и перекладывать, можно сразу по назначению направлять.
Совет. Если вы работаете на Microsoft, то обучайтесь сразу в Power BI, а не Tableau.
Языки работы с данными SQL И PYTHON
«Эй, „Нетология“, постой, при чем тут программирование? Это же статья для бухгалтеров!», — скажете вы. Погодите, без паники.
Рассказываем, почему самый популярный набор инструментов у аналитиков, это, пожалуй, Python SQL.
SQL— это не язык программирования, хотя и существует такое устоявшееся заблуждение. На самом деле, он больше похож на самую обычную английскую речь и является языком запросов к базам данным — то есть, по сути, таблицам (да, прямо как в Excel — теперь уже не так страшно? :-). Если у вас плохо с английским, не отчаивайтесь.
SQL— мощный инструмент для анализа и преобразования данных, который позволяет обращаться к различным базам данных внутри своей экосистемы. Так вам скажет какой-нибудь айтишник. Но, если честно, все равно ничего не понятно.
Переводим на русский. SQL — это Excel «на стероидах», а обработка таблицы объемов в 100 000 строк для него — обычное дело. Но если еще точнее, то подготовка данных — это к SQL, а дальнейшие преобразования лучше делать в Python.
Например, есть некий набор данных (грубо говоря, табличка Excel). И из этого набора надо выбрать какие-то данные или посчитать итоги по известным критериям. В Excel это делается автофильтрами, автосуммами или можно написать макрос, который сам пролистает строки и нужное посчитает.
Но у Excel возможности ограничены — он плохо подходит для многопользовательской работы и для очень больших объёмов данных.
Здесь можно сделать выборку или базовый подсчёт с помощью SQL-запроса.
Для комфортной работы достаточно выучить около двадцати команд и научиться доставать данные без участия программистов.
И кстати, в SQL есть команды, которые заменяют конструкции из 5-6 сложных функций Excel — например, JOIN, позволяющие одновременно соединять таблицы, делать сводные и отсекать значения по нужным вам критериям (попробуйте сделать то же самое в Excel — намучаетесь с индексами, сложносочиненными ключами и последующей фильтрацией).
Если же нужна глубже зарыться в преобразование данных, можно достать и подготовить все с помощью SQL-запросов, а дальнейшие вычисления предоставить шустрому Python с его готовыми скриптами и библиотеками.
Python— с амый популярный язык программирования для обработки данных. Он хорош для всего, что хочется сделать быстро, но чтобы при этом не пришлось придумывать решение с нуля — в этом бонус входа в сообщества поклонников Python, ведь вашу задачу наверняка уже решил кто-то другой.
«Не нужно забивать микроскопом гвозди, Python дает площадку для лучшего применения профессиональных заслуг человека, которые он приобрел в этой области. Для финансистов и бухгалтеров Python способен сделать огромное количество вещей, которые люди делают сейчас руками», — уверяет Елена Герасимова.
Возьмем, к примеру, трейдинг и фондовые рынки. Это золотые кейсы для Python. Совсем недавно этот вид деятельности был по плечу лишь институциональным инвесторам с миллионными бюджетами, однако сегодня при наличии ноутбука и интернета фактически любой может этим заниматься. Во многом благодаря Python трейдинг стал доступным. Торговать в автоматическом режиме можно почти любыми финансовыми инструментами: акциями, валютами, сырьем или кредитными продуктами.
Благодаря Python можно, к примеру:
Любой человек, который чувствует, что его работу скоро начнут автоматизировать, может смело выбирать Python. Тогда вы будете на несколько ступеней выше по принципу «не можешь победить — возглавь».
«С помощью Python то, что раньше делали три дня в Excel, можно сделать за 6 секунд и это не преувеличение, а слова наших выпускников», — рассказывает Елена.
Так что в итоге?
Финансист будущего — это специалист на стыке финансов и программирования.
С каждым даже не годом, а месяцем работодатели все больше будут ценить тех, кто умеет обращаться с базами данных, доставать оттуда нужные данные и визуализировать их сами, без разработчиков.
А самое главное, что овладев новыми компетенциями, вы всегда будете в выигрыше и не только на своем месте работы. Благодаря аналитике и визуализации развитие финансиста и бухгалтера перестает быть тупиковым. Раньше штатный финансист мог претендовать на финдира, а с новыми ключевыми знаниями в его сфере открывается широкая линейка ролей. Например смело можно идти в сферу аналитики BI.
Не бойтесь учиться. Если не станете программистом, то, как минимум, поймете, что айтишники не небожители и сможете быть более эффективным, говоря с ними на одном языке.







