Топ-65 вопросов по SQL с собеседований, к которым вы должны подготовиться в 2019 году. Часть I / Блог компании OTUS / Хабр

Топ-65 вопросов по SQL с собеседований, к которым вы должны подготовиться в 2019 году. Часть I / Блог компании OTUS / Хабр Аналитика

Курс 5
основы программирования на python

Платформа: «Курсера».

Организатор: ВШЭ.

Длительность: 9 недель. Я занимался в мае — июне 2021 года, но застопорился на седьмой неделе и не стал проходить дальше.

Что я получил: курс был очень сложным, но интересным. Я потренировался решать задачи математически, а потом писать алгоритм решения кодом на Python. Так я понял, что мне нужно еще больше знаний по математике и алгоритмам.

Минусы: многие задачи были такими сложными, что пригодилась бы помощь преподавателя, а ее не было. Пришлось самому копаться в интернете и искать решения. Еще у нас был форум студентов. Там мы обсуждали задачи, а иногда нам отвечали администраторы курса. Но это все равно не то.

На курсе было слишком много высшей математики и теории вероятностей. И сложность заключалась не в написании кода, как я хотел, а в том, что я не умел решать олимпиадные задачи по математике.

Полезность: 8 из 10.

Почему я выбрал онлайн-обучение

Чтобы устроиться на работу, мне нужны были сертификаты, которые подтвердят мои знания. Я мог читать статьи о программировании и смотреть ролики на «Ютубе», но за это не дают сертификатов. Можно получить их в вузах — там бывает очная магистратура по компьютерным наукам и анализу данных. А можно пройти онлайн-курсы. Я выбрал второй вариант, и вот почему.

А онлайн-курсы были в основном недорогие. Вот «Основы программирования на Python» на «Курсере» стоили 5000 Р. А были и вообще бесплатные, например «Введение в базы данных» на платформе «Стэпик». В общем, я понял, что онлайн-обучение точно обойдется дешевле.

Проще бросить. Я допускал, что учеба может мне не понравиться, а курсы и магистратуру в вузах нужно оплачивать вперед. Я боялся, что будет сложно вернуть деньги, и рассуждал, что за курс потеряю меньше, чем за магистратуру. Забегая вперед, скажу, что я дважды возвращал деньги в процессе обучения, проблем с этим не было.

Легко совмещать с работой. Я хотел и дальше трудиться в продажах, а параллельно учиться. Планировал заниматься по вечерам, в выходные и праздники. Еще на работе у меня бывали «окна» в течение дня: в это время я собирался учиться, а если что, переключаться на срочные задачи. С офлайн-обучением такой график был бы невозможен.

Курс 11
introduction to python for data science

Платформа и организатор: «Дата-кэмп».

Длительность: подписка была на год, но я занимался только в феврале — апреле 2020 года.

Стоимость: 80 $ (6152

Р

) — подписка на год.

Минусы: курсы короткие, есть даже всего по 10 часов. Поэтому сначала мне казалось, что они недостаточно информативные. Чтобы глубоко понять какую-то тему в комплексе, нужно пройти десяток курсов.

Полезность: 10 из 10.

По каждому из 10 курсов я получил сертификат

Data analyst

Если вы хотите описывать данные за прошедший период или текущий момент и презентовать стейкхолдерам ключевые результаты поиска, полную визуализацию изменений и тенденций, значит, вам подходит позиция аналитика данных. У упомянутых должностей есть общие черты, которые я описывал в другой

, охватывающей сходства и различия между необходимыми для этих позиций навыками. Сейчас же я хочу показать, как роль аналитика данных в сравнении с ролью исследователя данных ощущается. Очень важно понимать, чего ждать этим специалистам в их повседневной работе.

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

Ниже вы найдете ответы на самые частые вопросы о том, с чем сталкиваются аналитики данных.

В основном со стейкхолдерами компании, которые запрашивают обобщение данных, визуализацию выводов и отчеты по результатам. Общение, как правило, устное или через цифровые каналы: электронную почту, Slack и Jira. По моему опыту, вам предстоит тесно взаимодействовать с человеческой и аналитической составляющими бизнеса, а не инженерной и производственной.

Вероятнее всего, вышеупомянутым стейкхолдерам. Однако если у вас есть менеджер, вы отчитываетесь перед ним, а он уже передает данные стейкхолдерам. Не исключен и вариант, когда вы собираете пул запросов, составляете по ним отчет и презентуете стейкхолдерам.

Для составления отчетов у вас могут быть такие инструменты, как Tableau, Google Data Studio, Power BI и Salesforce, которые обеспечивают легкий доступ к данным, например к файлам CSV. Другие инструменты требуют больше технических усилий — составления расширенных запросов к базам данных с помощью SQL.

Значительно выше, чем у исследователей данных. Вы можете подготавливать несколько пулов данных (запросов) или отчетов ежедневно и крупные презентации с выводами еженедельно. Поскольку вы не строите модели и не составляете прогнозы (обычно), а результаты скорее описательные и ситуативные, работа идет быстрее.

Data scientist

Исследователи данных довольно сильно отличаются от аналитиков данных. Они могут использовать одинаковые инструменты и языки, но исследователю приходится работать с другими людьми, над более крупными проектами (такими как создание и внедрение модели машинного обучения) и тратить на это больше времени.

Аналитики данных обычно работают над своими проектами самостоятельно: например, использовать панель Tableau для презентации результатов может и один человек. Исследователи данных вправе привлекать нескольких инженеров и менеджеров по продукту для эффективного выполнения бизнес-задач с использованием правильных инструментов и качественных решений.

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

Вы можете делиться ими со стейкхолдерами, а также с инженерами, которым важно иметь представление о готовом продукте, чтобы, например, разработать UI (пользовательский интерфейс) в соответствии с вашими прогнозами.

Вероятно, самая большая разница в восприятии и функционировании этих должностей заключается в количестве времени на каждый проект. Скорость работы аналитиков данных довольно высока, а исследователям данных могут потребоваться недели или даже месяцы для завершения проекта.

Где учиться

Для самостоятельного обучения с нуля используйте книги. Сначала изучите математический анализ, математическую статистику. Затем прочитайте учебники о дискретной математике, изучите программирование на Python.

Где учиться, если вы хотите получить информацию в полном объеме и быстро войти в профессию? Обратите внимание на специальные курсы!

Курс «Data Scientist» предполагает год обучения (с марта 2020-го по февраль 2021 года) с онлайн-вебинарами и очными лекциями в Москве. Студенты научатся строить и обучать предиктивные модели при помощи нейросетей и алгоритмов машинного обучения. Выпускники получат диплом о профессиональной переподготовке, помощь в составлении резюме. Им предложат вакансии и подготовят к собеседованию.

Цена: 190 000 рублей. Подробнее >>>

Курс «Профессия Data Scientist» – это 300 часов онлайн-обучения и работа с реальными данными в практических заданиях. Авторы курса гарантируют помощь в трудоустройстве с тремя собеседованиями у компаний-партнеров. Выпускники получат два диплома: подтверждение знаний в машинном обучении и аналитике больших данных.

Курс рассчитан на самостоятельное обучение, которое в среднем занимает около года.

Стоимость – 3900 рублей в месяц. При этом первый платеж необходимо сделать лишь после 6 месяцев обучения, можно взять кредит до трех лет. Подробнее >>>

Как проходит онлайн-обучение дата-аналитике

Я учился на 11 онлайн-курсах по дата-аналитике. Один из них проходил напрямую у создателя — Высшей школы бизнес-информатики. Остальные нашел на образовательных платформах «Курсера», «Стэпик», «Скиллбокс», «Дата-кэмп» и «Яндекс-практикум».

На всех платформах я выбирал отдельные курсы. Только на «Дата-кэмпе» оплатил сразу годовую подписку и мог проходить по ней любые курсы.

У каждого курса на «Стэпике» было не только описание с планом, но и отзывы с оценками. Так мне было легче понять, стоит ли вообще его проходить. Каталоги курсов на других платформах были устроены аналогично

Кто преподавал. Курс в Высшей школе бизнеса вели преподаватели самой школы, а в «Яндекс-практикуме» — аналитики «Яндекса». На других платформах курсы создали преподаватели университетов, колледжей и бизнес-школ и сотрудники крупных успешных компаний.

«Скиллбокс» сам набирает команду преподавателей. На курсе «Профессия Data Scientist: анализ данных» лекции читали сотрудники «Рамблера», «Профи-ру», Сбера и самого «Скиллбокса».

В Высшей школе бизнес-информатики преподавали директора крупных компаний. Но курс по аналитике это не спасло, мне он не понравился. Расскажу про это дальше в статье

Формат занятий. Курсы включали в себя теорию в виде лекций — текстовых или в формате видео. И практику — тесты и домашние задания. Смотреть лекции и сдавать тесты я мог в любое время, хоть ночью. Главное — успевать все делать в пределах модуля. На «Яндекс-практикуме» модуль длился 2 недели, на остальных платформах — неделю.

За тесты мне начисляли баллы. Потом из них складывалась итоговая оценка. В основном тесты проверяли преподаватели, только на Data Science Professional Certificate на «Курсере» это делали такие же студенты, как и я. Мне это не понравилось.

Так выглядел тренажер «Яндекс-практикума». Аналогичный был на «Дата-кэмпе»

Качество. Некоторые курсы были очень качественно сделанными, с хорошим планом занятий и интересными практическими заданиями. Например, на «Курсере» мне понравился курс «Основы программирования на Python». Другие курсы были непродуманными: они не казались цельными, потому что из раза в раз менялся формат лекций. Таким был курс «Профессия Data Scientist: анализ данных» на «Скиллбоксе».

Сертификаты. Если я проходил обучение до конца, то получал электронный сертификат. В нем было мое имя, название курса и итоговая оценка. Потом я прикрепил все сертификаты к резюме.

Сертификат курса IBM, который я прошел на «Курсере»

Я оценю полезность каждого курса по шкале от 1 до 10 баллов, где 1 — совсем бесполезно, а 10 — очень полезно, интересно и применимо в новой работе.

Как стать аналитиком данных

Традиционно для IT-профессий, у человека, желающего освоить одну из них, есть три очевидных пути, каждый из которых обладает своими особенностями:

  1. Самоучка. Благодаря интернету не составит труда найти литературу и видеоматериалы, позволяющие изучить различные аспекты работы аналитика данных. Но на фоне единственного преимущества в том, что этот способ бесплатный, у него есть множество недостатков, связанных с отсутствием систематичности, сложностью с оценкой актуальности усваиваемой информации, невозможностью впоследствии доказать получение специальных знаний и пр.
  2. ВУЗ. Если поступить в высшее учебное заведение, то в этом случае можно получить весь необходимый объем знаний. Проблема в том, что информации будет слишком много, т. к. первые 2-3 года студентам дают множество дисциплин, напрямую не связанных с выбранной профессией. То есть программа обучения сильно растягивается по времени, а стоимость этого самого обучения совсем не маленькая. Причем в вузах обычно мало практики, а лишь пустая теория, да компетентность отдельных преподавателей порой под большим вопросом.
  3. Курсы – идеальный баланс между самообучением и вузом. С одной стороны, обучение происходит в довольно короткие сроки и стоит значительно дешевле, чем в вузе. С другой стороны, студент последовательно получает весь необходимый ему объем знаний и тут же усваивает их на практике, работая над реальными проектами, а по окончании получает сертификат, с которым не составит труда найти хорошую работу.
Дополнительный анализ:  Липецкий филиал - Итоги VIII Международной научной олимпиады молодых бухгалтеров, аналитиков и аудиторов

Хотите пойти по пути курсов? Хорошее решение. Вот подборка лучших образовательных программ: 

Познакомившись со спецификой работы аналитика данных и путей освоения этой профессии, напишите в комментариях, чем вам нравится или не нравится Data Analyst и какой путь ее освоения вы бы выбрали для себя?

Как сформировать первое портфолио и найти работу

Карьерный путь аналитика начинается со стажировки в отделе аналитики. Чтобы получить работу, нужно хорошо понимать методы анализа, инструменты для работы и сферу в целом. Так как зачастую должность системного и бизнес-аналитика в небольших компаниях занимает один и тот же человек, вам нужно будет научиться базово владеть языком программирования, например, Python, а также языком запросов к базам данных SQL.

Новичкам самостоятельно освоить большой объем информации бывает непросто даже при высоком уровне мотивации, не говоря уже про сложность получения практических навыков. Более эффективный путь – получить инструкцию по изучению профессии от специалистов, которые могут подсказать вектор развития, – это поможет более качественно обучаться самостоятельно.

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

Одной из таких программ обучения является «Факультет системной и бизнес-аналитики» от онлайн-университета GeekBrains, гарантирующего трудоустройство и год практического опыта в резюме по завершении программы.

Как я нашел работу

В конце зимы — начале весны 2020 года я составил резюме на «Хедхантере», описал свои навыки и приложил сертификаты. Откликался на вакансии, где полностью подходил по требованиям или где чувствовал, что потом освою навыки.

Об опыте нигде не расспрашивали, но уточняли, знаю ли я тот или иной инструмент. Иногда присылали на почту тестовые задания по SQL или Python. А вот сертификаты даже не смотрели. Только иногда интересовались, каково было учиться в «Яндекс-практикуме» и «Дата-кэмпе».

В резюме я немного приукрасил свои навыки. Например, указал, что уже применял SQL в работе, пусть на базовом уровне. И написал, что уже обрабатывал данные с помощью Python. В остальном резюме было честным и открытым

В апреле, в разгар карантина, я устроился аналитиком в банк. Python там пока не применяю, а вот SQL — плотно и постоянно. Основное направление моей работы — это клиентская и CRM-аналитика. У моего банка есть два подразделения: одно отвечает за клиентов из малого бизнеса, другое — из среднего.

Они дают мне задания: например, сделать выборку людей, которые могут заинтересоваться кредитом или сберегательным депозитом. Я проверяю транзакции всех клиентов и смотрю, какие продукты они оплачивали в других банках. Так и узнаю, что наш продукт им тоже может быть интересен.

Как освоить новую профессию онлайн

  1. Подумайте, в какой сфере хотите работать, и изучите, какие там есть профессии. Почитайте о них в интернете и посмотрите на требования в вакансиях. Выбирайте то, что вам интересно и где зарплата на старте вас устраивает.
  2. Составьте список скиллов, которые нужны работодателям. Отметьте, что вы уже знаете, а что придется освоить. Подумайте, что предстоит изучить в первую очередь. Остальное наметите в процессе.
  3. Найдите в интернете курсы по нужным направлениям. Сравните программы, цены, расписание и отзывы бывших студентов, если они есть.
  4. Занимайтесь каждый день.
  5. Если курс явно бесполезен, не тратьте на него время. А если он еще и платный, требуйте вернуть деньги.
  6. Когда вы освоите больше половины навыков из вакансий, составьте резюме. Опишите все, что умеете, и приложите сертификаты.
  7. Ответственно выполняйте тестовые задания: если получится хорошо, вас примут на работу даже без опыта.

Кто такой аналитик данных?

Data Analyst – это специалист, который занимается анализом данных, прочем не только структурированных и выраженных в цифровом измерении. Это может быть информация за прошлые периоды или в режиме реального времени. Задача аналитика – выявить закономерности и понять как это можно использовать в дальнейшем, а в каких то случаях даже автоматизировать некоторые решения.

Аналитик данных может работать в любой сфере – промышленное предприятие, банковское дело, страхование, научно-исследовательские учреждения, ритейл и многие другие. Особенно важна эта работа сейчас, когда многие перевели свой бизнес в интернет. Специалист должен уметь анализировать и понимать любые данные, делать правильные выводы.

Казалось бы как все просто – собрал данные, систематизировал и сделал выводы. Но на самом деле работа аналитика достаточно сложная и трудоемкая. Иногда, чтобы сделать вывод нужно перелопатить очень большой объем информации и не всегда решения лежат на поверхности.

Но результат того стоит: аналитик не только помогает найти лучшие решения для развития бизнеса, но и найти слабые места, которые впоследствии можно устранить. А если вы ведете свой бизнес в интернете, аналитика поможет  оценить потребности вашей целевой аудитории. Здесь без грамотного специалиста точно не обойтись.

Курс 1
data science professional certificate

Платформа: «Курсера».

Организатор: IBM — американский производитель программного обеспечения.

Длительность: 1—9 месяцев. Программа состояла из 9 курсов по дата-сайенс, но я прошел только 4: по языкам программирования Python и SQL, визуализации данных и машинному обучению. Учился в январе — апреле 2021 года.

Что я получил: на курсе интересно рассказали про азы языков Python и SQL.

Минусы: многие модули были поверхностными. Например, на модуле по машинному обучению нас просто знакомили с темой, но не раскрывали ее до конца. Быстро переходили от теории к примерам программного кода, но не описывали его полностью, а предлагали скопировать готовые части в окошко ответа и посмотреть результат. Я не всегда понимал, как все работает и почему код именно такой.

Проверяли задания такие же студенты, как и я. Например, я каждый раз проверял минимум два задания двух других учеников. Было бы лучше, если бы это делали преподаватели и давали обратную связь.

Полезность: 5 из 10. Для новичка курс хороший, но для работы знаний бы не хватило. Я глубже изучил Python и SQL на других курсах. Так что считаю, что мог бы без него обойтись.

Курс 10
профессия — аналитик данных

Платформа и организатор: «Яндекс-практикум».

Преподаватели: аналитики «Яндекса».

Длительность обучения: 6 месяцев, январь — июль 2020 года.

Что я получил: я окончательно разобрался в основах дата-аналитики. Хорошо понял библиотеки Python, которые нужны, чтобы анализировать и визуализировать данные. Это, например, библиотеки Pandas, Matplotlib, Seaborn. Сейчас я активно пользуюсь ими в работе.

Минусы: все модули стартовали ровно раз в 2 недели, утром в понедельник. И если я заканчивал модуль раньше, не мог сразу начать другой.

Еще в работе мне пока не пригодились две дисциплины — автоматизация рутинных задач и машинное обучение.

Полезность: 10 из 10. Материал был логично структурирован, его отлично подавали. Вместо невнятных видеолекций предлагали занимательный, юморной, интерактивный текст. А все примеры были живые и понятные — из работы сервисов и продуктов «Яндекса».

Курс 8
информационная бизнес-аналитика

Где: в Высшей школе бизнес-информатики.

Организатор: ВШБИ — это отдельный институт ВШЭ.

Длительность: 8 месяцев. Я занимался 2,5 месяца, в ноябре — декабре 2021 года, а потом бросил. Это единственный курс, где занятия проходили не онлайн, а в аудиториях по вечерам. Их сделали дистанционными, когда в 2020 году объявили пандемию коронавируса.

Что я получил: ничего.

Минусы: в курсе было много теории, но в этой сфере она быстро устаревает и почти не нужна, потому что практика важнее.

В курс впихнули все подряд: и бизнес-анализ производств, и анализ информационных систем и финансовой структуры предприятия, и вопросы менеджмента. Получилось обо всем и ни о чем конкретно.

Было много кейсов из сфер, которые не связаны с аналитикой. Например, нам рассказывали про работу какой-то фотостудии в Москве и про логистику цветочного магазина. Эти знания были мне не нужны: я хотел заниматься только аналитикой. Я так и не понял, каких специалистов планировали выпустить после окончания курса.

Полезность: 3 из 10 — исключительно за громкое название, красивую историю на дне открытых дверей и удобное расписание занятий. Я учился 2 будних дня по вечерам и почти весь день в субботу.

Из нас пытались сделать что-то среднее между руководителем, аналитиком и менеджером. Не представляю, как и кем бы я работал, если бы прошел только этот курс

Курс 9
профессия data scientist: анализ данных

Платформа и организатор: «Скиллбокс».

Длительность: 9 месяцев, но я бросил через 2 недели в январе 2020 года.

Стоимость: 40 800 Р, но мне полностью вернули деньги.

Что я получил: ничего.

Минусы: курс состоял из записей скучных вебинаров. Преподаватель монотонно что-то рассказывал и одновременно писал примеры кода в командной строке, которая отображалась на экране.

Когда я сделал первое домашнее задание, в оценке неизвестный проверяющий написал: «Все ок». Хотя я сам знал, что задачу можно было решить лучше. Такая обратная связь меня не устраивала.

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

Полезность: 2 из 10.

В рекламе этого курса меня привлекло обещание трудоустройства. Но я решил, что найду курс получше и устроюсь работать без чьей-либо помощи

Личные качества

Чтобы успешно справляться с профессиональными обязанностями, нужно обладать следующими качествами:

  1. Комфортно чувствовать себя в одиночестве и любить тишину. Работа требует взаимодействия с компьютером, а не с другими людьми. Аналитику, если только он не возглавляет подразделение, приходится мало общаться с коллегами, а с клиентами обычно и вовсе не нужно контактировать. Поскольку рабочий день состоит в обработке данных и проведении времени за монитором, то лицам, которые не могут без общения, профессия Data Analyst не подойдет.
  2. Логика. Нужно уметь мыслить логически, чтобы структурировать получаемую информацию и находить закономерности в потоках данных. Это поможет докопаться до истины в большинстве случаев.
  3. Терпение и усидчивость. Анализ данных нельзя отнести к творческим профессиям, т. к. работа требует монотонного повторения рутинных действий по сбору, анализу и оценке информации. Для понимания ее сути стоит провести аналогию с пазлами. Если нравится часами сидеть, собирая общую целостную картину из разрозненных и кажущихся поначалу бессмысленных деталей, то это работа для вас.
  4. Концентрация ума и скрупулезность. Аналитик зачастую оперирует точными параметрами: цифры, алгоритмы, данные. При составлении запросов ему нужно допускать как можно меньшее количество ошибок из-за невнимательности, поэтому он должен быть педантичным и с легкостью выдерживать умственное напряжение, необходимое для спокойной вдумчивой работы.
Дополнительный анализ:  Учитывать ли инвестиционные рекомендации аналитиков? — вопросы от читателей Т—Ж

Нужен ли sql и python бизнес-аналитику

За 10 с лишним лет практической работы в бизнес-анализе мне ни разу не потребовалось самостоятельно писать SQL-запрос или скрипт на Python. Однако, проецировать личный опыт в глобальном масштабе – это ошибка выжившего. Поэтому, чтобы объективно ответить на вопрос «должен ли бизнес-аналитик знать SQL и Python», обратимся к профстандартам и ситуации на рынке труда.

Начнем с последнего: сегодня большинство объявлений о вакансиях на должность системного аналитика включают базовые знания SQL в состав обязательных требований к компетенциям кандидата. А многие работодатели и HR-менеджеры до сих пор путают профессии системного и бизнес-аналитика, о различиях которых мы говорили в этой статье, или стремятся сэкономить ФОТ, получив 2-в-1.

Поэтому такое пожелание можно встретить и в вакансиях бизнес-аналитика. Но, в случае системного аналитика знание SQL действительно является must-have компетенцией для разработки требований к информационным и автоматизированным системам, а также их интеграции между собой.

Классический бизнес-аналитик, согласно российскому профстандарту и руководству BABOK®Guide, работает с требованиями совсем на другом уровне абстракции, фокусируя внимание на оптимальной организации процессов и их экономике. Поэтому знание SQL и теории баз данных – это hard skills системного аналитика.

Впрочем, если бизнес-аналитик умеет писать или хотя бы может читать SQL-запросы, это будет приятным бонусом к его базовым компетенциям, которые мы разбирали здесь и здесь. Если вы не до конца поняли отличия системного и бизнес-аналитика, читайте нашу новую статью с наглядным примером.

Что касается Python, то умение писать код на этом языке программирования является обязательным требованием к продуктовым аналитикам, веб-аналитикам, маркетинговым аналитикам и аналитикам данных. Несмотря на то, что компетенции всех этих специалистов частично пресекаются в части анализа больших объемов данных, в т.ч.

с помощью Python и того же SQL, их рабочие задачи отличаются друг от друга. Тем не менее, в связи с отсутствием профстандартов на эти новые и весьма востребованные специализации, работодатели сами часто не понимают, кто именно нужен, а потому перечисляют их всех в своих вакансиях.

Впрочем, несмотря на наличие или отсутствие официальных стандартов, каждая компания в праве выдвигать собственные требования к компетенциям кандидата, что и наблюдается на сегодняшнем рынке труда. А с учетом всеобщей цифровизации и стремлению к data-driven менеджменту, компетенции в области анализа данных пригодятся также системному и бизнес-аналитику.

Не случайно международный институт бизнес-анализа (IIBA®), под эгидой которого выходит BABOK®Guide, в 2020 году выпустил отдельное руководство по бизнес-аналитике данных (Guide to Business Data Analytics). В этот документ, структура которого похожа на BABOK, вошли задачи и техники анализа данных для получения инсайтов, ценных с точки зрения практического бизнеса.

SQL и Python упоминаются в нем как рабочие инструменты реализации некоторых техник, таких как разведочный анализ данных (Exploratory Data Analysis) и ETL-процессы (Extract-Transform-Load). Поэтому вполне вероятно, что уже в обозримом будущем SQL с Python будут входить в набор профессиональных компетенций системного и бизнес-аналитика.

Обязанности и требования аналитика данных

Аналитика – специфическая сфера, где от работников требуется определенный набор личностных качеств и знаний.

Обычно алгоритм работы специалиста по анализу больших данных выглядит так:

  1. Сбор информации. Изучение политики работы с данными, целей и стратегии компании.
  2. Ознакомление с параметрами набора. Речь идет о типах данных и видах их сортировки.
  3. Предварительная обработка информации со структурированием и исправлением ошибок.
  4. Анализ данных и решение поставленной задачи.
  5. Формирование вывода.
  6. Визуализация результата для подтверждения/опровержения гипотезы и принятия решения.

Знания, необходимые системному аналитику:

  • Инструменты доступа и обработки данных, электронные таблицы (SQL, СУБД, хранилища данных, ETL).
  • Языки программирования: R, SAS, C , Python.
  • BI-аналитика, аналитика данных, Data Scientist.
  • Статистика и математика (высшая математика, математическая логика, линейная алгебра, теория вероятности и др.).
  • Машинное и глубокое обучение – умение настроить или обучить с нуля нейросеть.
  • Data Engineering – организация получения, хранения и доступа к информации.
  • Data Science в продакшн. Знание инструментов для поиска лучшего в каждом отдельном случае. Это может быть внедрение SQL-запросов или машинного обучения, построение базы данных.

В таблице показаны скиллы аналитика начального и продвинутого уровня. 

Переменные

Изучение любого из языков программирования, практически всегда начинается со знакомства с переменными.

Переменная — это ячейка в памяти компьютера, используемая для временного хранения какой-либо информации (чисел, строк, дат и т.п.).

У переменной есть три важных атрибута:

  • Имя (чтобы можно было к ней обратиться);
  • Тип данных (чтобы понимать, что с этой переменной можно делать);
  • Область видимости (чтобы понимать, где она будет использоваться).

Также в SQL у переменной есть три фазы:

  1. Объявление переменной при помощи инструкции DECLARE;
  2. Инициализация при помощи SET или SELECT;
  3. Использование переменной при помощи подстановки ее имени в нужное место вашего скрипта.

Давайте создадим переменную:

-- Объявляем переменную с именем 'StartDate' и задаем тип данных date
DECLARE @StartDate date

-- Инициализируем переменную и присваиваем ей значение '2021-09-30'
-- Если нужно объявить сразу несколько переменных, то можно воспользоваться инструкцией SELECT (пример будет ниже)
SET @StartDate = '2021-09-30'

-- Используем переменную в запросе
SELECT *
FROM Orders
WHERE OrderDate = @StartDate

Как переменные могут помочь аналитику?

Первое что приходит на ум — это создание отчета с динамическими периодами, чтобы не редактировать каждый раз даты отчета в условии WHERE:

-- Объявляем переменные с именем 'StartDate' и 'EndDate'
DECLARE @StartDate date
      , @EndDate date

-- Инициализируем переменные и присваиваем для 'StartDate' значение '2021-09-30', а для @EndDate используем специальную функцию возвращающую текущую дату GETDATE()
SELECT @StartDate = '2021-09-30', @EndDate = GETDATE()

-- Используем переменную в запросе
SELECT *
FROM Orders
WHERE OrderDate BETWEEN @StartDate AND @EndDate

Что касается области видимости, то нужно запомнить, что переменная видима с момента ее объявления до конца скрипта, после чего она уничтожается.

Представление

При решении какой-либо задачи, наши запросы могут стать достаточно большими и их контекст сложно постоянно держать в голове. И как только такая ситуация возникнет — лучшим решением будет использование функционала представлений.

Представление — это сохраненный в базе запрос с которым можно работать так, как будто бы это готовая таблица.

У представления есть несколько ограничений:

  1. В качестве представления можно сохранить не любой запрос, а только SELECT;
  2. В запросе не должно быть сортировки;
  3. Все столбцы должны иметь имена.

Синтаксис:

  • Ключевое слово CREATE VIEW использующееся для создания представления;
  • Ключевое слово AS, после которого должен идти текст запроса.

При создании представления сервер не выполняет запрос, а сохраняет его в базе для последующего использования.

Давайте разберем на примере:

-- Создаем представление с именем SalesReport
CREATE VIEW SalesReport
AS 
-- Далее указываем наш большой и сложный запрос, текст которого мы хотим сохранить на сервере
SELECT 
  [date]
, cost
, impressions
, clicks
, sessions
, orders
, revenue
FROM Orders
WHERE medium = 'cpc'

И теперь, чтобы получить результат выполнения запроса, нам достаточно выполнить следующий код:

SELECT *
FROM SalesReport

Чем это полезно аналитику?

Использование представлений позволяет абстрагироваться от сложностей появляющихся при написании запроса, что крайне актуально, когда ваш запрос не помещается в один экран.

И теперь можно дальше усложнять запрос, используя представления как строительные блоки для конечного отчета.

Процедуры

Как и в случае представления, процедура представляет собой сохраненный в базе запрос, но процедура не является таблицей и поэтому на нее не накладываются такие строгие ограничения, как в представлении.

Основное назначение процедур — это сохранение программных сценариев для выполнения определенных действий в базе данных (UPDATE, DELETE, INSERT и тп.), в том числе для вызова других процедур и функций.

Но у процедуры есть ограничения:

  1. Процедуру нельзя использовать в SELECT-е;
  2. Процедуру нельзя усложнять «снаружи», то есть ее нельзя JOIN-ть, отфильтровать, группировать и тп.

Синтаксис:

  • Ключевое слово CREATE PROCEDURE использующееся для создания процедуры;
  • В процедурах можно использовать параметры, название которых указывается после знака @;
  • Ключевое слово AS, после которого должен идти программный код;
  • Для вызова процедуры используется ключевое слово EXECUTE вместе с ее названием.

Пример:

-- Создаем процедуру с именем HumanResourcesProc
CREATE PROCEDURE HumanResourcesProc
-- Указываем параметры процедуры, которые будут выступать в качестве переменных
    @FirstName nvarchar(50),  
    @LastName nvarchar(50)  
AS 
-- Далее идет текст скрипта
SELECT 
  FirstName
, LastName
, Department  
FROM HumanResources
WHERE FirstName = @FirstName AND LastName = @LastName

И теперь, чтобы вызвать процедуру, достаточно выполнить следующий код:

-- Запускаем выполнение скрипта процедуры для вывода информации по определенному сотруднику
EXECUTE HumanResourcesProc 'Иван', 'Иванов'

Чем процедуры могут помочь аналитику?

Функционал процедур можно задействовать для построения на основе вашей базы данных полноценного ETL-решения — то есть процесса по извлечению данных из внешних источников, их трансформации и очистке, а также загрузке в хранилище.

А подключая к хранилищу Python или R-скрипты, вы сможете обучать, оценивать и развертывать модели машинного обучения прямо в базе данных.

Работа аналитиком sql в санкт-петербурге

По возможностям и интересам привлекаем к задачам других стримов: ассортимент, промо, ценообразование, спрос, гео, клиентская аналитика, диджитал-аналитика, А/Б…

Умение обрабатывать данные (Hadoop, Databricks, Azure, Spark, SQL). Писать эффективный код на Python. Опыт работы с базовыми библиотеками машинного обучения…

§

…BigQuery, Jupyter Notebooks, OLAP-отчетов). Формирование дашбордов с помощью Google BigQuery, Google Data Studio. Участие в построении сквозной кроссплатформенной аналитики.

…продуктовой аналитики. Будет плюсом знание инструментов Hotjar, Google Data Studio, Google BigQuery, Jupyter, Яндекс.Директ, Google Ads. Желательно знакомство с SQL…

§

Выполнение указанных обязанностей в 2-3 функциональных областях. Сбор, анализ, формализация, документирование и согласование требований к системам в своей функциональной…

Дополнительный анализ:  Тексты, лозунги для свадебных плакатов — лучшая подборка для запоминающегося праздника

Знание этапов процесса разработки ПО, современных технологий, процесса тестирования, процесса сбора требований. Умение работать с технической документацией. Базовые знания SQL.

§

…Oracle в различных вариантах разных версий, Oracle Reports и не только). Доработка существующего функционала по техническим заданиям аналитиков и консультантов.

Java 6/8, JavaScript/HTML (уровень IE 6). Oracle PL/SQL. SQL, XML, JSON, Webservices (REST, SOAP), JasperReports.

Системный аналитик и бизнес-аналитик: кто это такие и каков спрос?

Бизнес-аналитик – это специалист, который выявляет и анализирует проблемы в бизнесе заказчика. Результат его работы – систематизация бизнес-требований в документе о концепции и границах. В нем описаны бизнес-цели, которых нужно достичь в рамках текущего проекта или отдельной его итерации.

К примеру, нужно разобраться в абстрактной проблеме клиента: «низкая прибыль». Для начала аналитик изучает бизнес-процессы компании. Анализ позволяет сформировать финансовую цель – сэкономить X рублей в год, которые сейчас расходуются на содержание офиса. Вариант решения: внедрение нового бизнес-процесса – перевода сотрудников на удаленную работу.

Системный аналитик занимается анализом требований, сформированных бизнес-аналитиком, написанием технических документов, спецификации требований к ПО, описанием его функций и возможностей, вариантов использования, действий пользователя, при которых тот достигает необходимого результата. То есть системный аналитик – это специалист, который выступает промежуточным звеном между бизнесом и разработкой.

Обе профессии крайне значимы для бизнеса, которому нужны специалисты, умеющие принимать взвешенные бизнес-решения. Функцию системного аналитика и бизнес-аналитика в компании зачастую исполняет один человек, однако в крупных компаниях эти две должности разделены и идут рука об руку при подготовке проекта.

Табличное выражение

Чтобы создавать представления, у вас должны быть права администратора к базе данных. Но что делать когда таких прав нет, но возможности представлений использовать хочется?

Специально для этого был придуман функционал табличного выражения.

Табличное выражение — это представление которое не сохраняется в базе, а существует только в момент выполнения SELECT-а и после самоликвидируется.

Синтаксис:

  • Ключевое слово WITH использующееся для создания табличного выражения;
  • Ключевое слово AS, после которого должен идти псевдоним;
  • В скобочках () указывается текст запроса, который будет выполняться при обращении к псевдониму;
  • После табличного выражения должен идти одиночный SELECT.

Пример:

-- Создаем табличное выражение с именем Cost
WITH Cost
AS (
-- Далее в скобках указываем наш запрос
    SELECT 
    [date]
  , sourceMedium
  , campaign
  , cost
  , impressions
  , clicks
    FROM Advertising
   )

-- Выводим результат выполнения запроса
SELECT *
FROM Cost

Пока не очень понятно в чем польза и чем это отличается от представления?

Давайте разберем пример из практики практически любого digital-аналитика:

  1. Перед вами поставили задачу — создать отчет для отдела контекстной рекламы с доходом и расходом по рекламным кампаниям.
  2. Данные по расходам хранятся в одной базе, а данные по заказам в другой.
  3. Ключами позволяющими связать данные между собой являются UTM-метки.

Для нас теперь это раз плюнуть, вооружимся табличными выражениями и напишем запрос:

-- Запрашиваем расходы
WITH Cost
AS (
    SELECT 
    [date]
  , sourceMedium
  , campaign
  , cost
  , impressions
  , clicks
    FROM Advertising
   )
-- Запрашиваем заказы
, Orders
AS (
    SELECT 
    [date]
  , sourceMedium
  , campaign
  , orders
  , revenue
    FROM Crm
   )
-- Создаем итоговый отчет
, Report
AS (
    SELECT 
    Cost.[date]
  , Cost.sourceMedium
  , Cost.campaign
  , SUM(Cost.cost) AS 'cost'
  , SUM(Cost.impressions) AS 'impressions'
  , SUM(Cost.clicks) AS 'clicks'
  , SUM(Orders.orders) AS 'orders'
  , SUM(Orders.revenue) AS 'revenue'
    FROM Cost
-- Соединяем данные между собой по дате и UTM-меткам
    LEFT JOIN Orders 
    ON  Cost.[date] = Orders.[date]
    AND Cost.sourceMedium = Orders.sourceMedium
    AND Cost.campaign = Orders.campaign
    GROUP BY Cost.[date], Cost.sourceMedium, Cost.campaign
   )

-- Выводим результат
SELECT *
FROM Report

Да, конечно, эту задачу можно было решить гораздо меньшим количеством кода.

Но моей целью было показать вам суть табличных выражений — они помогают разбить задачу на маленькие подзадачи, структурировать и упорядочить ваш код, что особенно актуально при написании больших и сложных отчетов.

Условные операторы

Практически все языки программирования предоставляют возможность использовать условные операторы и SQL не исключение.

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

Синтаксис:

  • Ключевое слово IF;
  • Условие, в соответствии с которым будет происходить проверка;
  • Необязательное ключевое слово ELSE, указывающее на то, что делать если условие не выполнилось.

Давайте разберем на примере:

-- Объявляем переменную с именем @var и сразу присваиваем ей значение (так тоже можно)
DECLARE @var int = 4

-- Простая форма, если условие не выполняется, то ничего не происходит
IF 2   2 = @var
   SELECT 'Верно'
   
-- Сложная форма, если условие не выполняется, говорим что делать
IF 2   2 = @var
   SELECT 'Верно'
ELSE
   SELECT 'Ошибка'

Чаще всего на практике требуются более сложные составные условия, содержащие различные логические связки.

Зачем это аналитику?

Логический оператор IF, сам по себе нельзя использовать в обычном SELECT-е, однако он активно применяется при создании программных модулей, таких как функции и хранимые процедуры о которых мы поговорим ниже.

Но есть логический оператор, который можно использовать внутри запроса и речь идет о операторе CASE он же оператор множественного выбора.

Оператор множественного выбора в зависимости от указанных условий позволяет вернуть одно из множества возможных значений, то есть CASE работает как несколько IF-ов.

Синтаксис:

  • Ключевое слово CASE;
  • Ключевое слово WHEN, после которого идет условие проверки;
  • Ключевое слово THEN, после которого идет действие к выполнению;
  • Необязательное ключевое слово ELSE, указывающее на то, что делать если ни одно из условий не выполнилось;
  • Ключевое слово END.

На практике все гораздо проще:

-- CASE работает только внутри SELECT
SELECT
-- При помощи CASE разобьем все товары на 4 группы в зависимости от цены
CASE
  WHEN price <= 99 THEN 'Дешевые товары'
  WHEN price BETWEEN 100 AND 500 THEN 'Средняя ценовая группа'
  WHEN price > 500 THEN 'Дорогие товары'
  ELSE 'Бесплатно'
END
FROM Orders

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

Для примера давайте создадим новую группу каналов, ведь часто в отчетах бизнес-пользователи хотят видеть более понятные названия вместо smm_cpc, cpc или organic.

Функции

Зачастую нам нужно повторять одно и то же действие во многих частях программы или даже в разных отчетах. И чтобы не писать один и то же код в разных местах были придуманы функции.

Функции — это конструкции, содержащие исполняемый код и являющиеся основными строительными блоками программы.

В некоторых языках программирования нет деления на функции и процедуры, так в чем же отличия?

Их несколько:

  1. Функция может быть усложнена как «внутри», так и «снаружи», то есть она поддается сортировке, группировке и JOIN-у.
  2. Функция всегда возвращает результат определенного типа, например, встроенная функция SUM — всегда вернет число. Процедура же может выполниться и ничего не вернуть или вернуть число, строку, дату и даже таблицу в зависимости от того, как она запрограммирована.

И как тогда определиться что использовать? Все просто.

Процедуру стоит использовать, если вы собираетесь менять базу или для оформления конечного результата, не требующего дополнительной обработки, во всех остальных случаях используйте функции.

Синтаксис:

  • Ключевое слово CREATE FUNCTION использующееся для создания функции;
  • Параметры функции указываются в скобках () и после знака @;
  • Ключевое слово RETURNS указывает на тип возвращаемых функцией данных;
  • Ключевое слово AS, после которого должен идти программный код;
  • Ключевое слово RETURN, сообщающее функции, что нужно вернуть значение.

Давайте переделаем процедуру из предыдущего примера в функцию:

-- Создаем функцию с именем HumanResourcesFunc
CREATE FUNCTION HumanResourcesFunc (
-- В скобочках указываем параметры функции, которые будут выступать в качестве переменных
                                    @FirstName nvarchar(50),
                                    @LastName nvarchar(50)  
                                    )
-- Указываем что в данном случае функция должна вернуть нам таблицу
RETURNS TABLE 
AS 
RETURN
-- Далее идет текст скрипта
SELECT 
  FirstName
, LastName
, Department  
  FROM HumanResources
  WHERE FirstName = @FirstName AND LastName = @LastName

Для вызова созданной функции используем следующий код:

-- Запускаем выполнение скрипта функции для вывода информации по определенному сотруднику
SELECT * FROM HumanResourcesFunc ('Иван', 'Иванов')

Как функции могут облегчить жизнь аналитику?

Помните, чуть выше в блоке про оператор множественного выбора, мы разбирали пример с новой группой каналов?

А теперь, представьте, что это действие — присваивание понятного названия канала, нам нужно сделать не один раз в одном месте, а много и в нескольких отчетах.

Чтобы не повторять один и тот же код, можно написать функцию, которая заменит CASE:

Этапы работы и инструменты системного и бизнес-аналитика

Работу бизнес-аналитика можно представить в виде следующей последовательности:

После этого бизнес-аналитик передает документ о концепции и границах для дальнейшего составления функциональных требований системным аналитиком. В свою очередь, работа системного аналитика развивается следующим образом:

  • анализ бизнес-требований;
  • формирование функциональных требований к ПО. Здесь используются CASE-инструменты проектирования программного обеспечения: средства анализа, создания структуры программы, документирования требований, генерации заготовок кода;
  • анализ подходящих существующих решений и технологий, которые будут использоваться при разработке. На этом этапе системный аналитик обычно анализирует GitHub, определяя, какие из готовых решений можно повторно использовать;
  • описание архитектуры ПО и баз данных. Из инструментов используются UML для создания схем связей между структурами баз данных или программы, SQL – язык для создания, модификации и управления данными в реляционных базах данных, CASE-средства проектирования;
  • постановка задачи на создание ПО с помощью Jira и Confluence – командные средства для постановки задач и составления документации.
Оцените статью
Аналитик-эксперт
Добавить комментарий

Adblock
detector