Найти тему
mybi connect

SQL - основа для работы с данными

Как многие наверное уже знают, mybi connect является ETL-сервисом, основная задача которого это извлечение данных из различных онлайн-источников (сервисов) и загрузка их в единое хранилище. Только, к сожалению, не все ясно представляют что такое это "хранилище", и, как результат, мы встречаем множество пользователей, которые считают mybi connect какой-то "примочкой" к Power BI, а это не так.

Давайте рассмотрим, что же такое это "хранилище"…

По большому счету, это обычная реляционная база данных (БД), и этим все сказано. Вдаваться в подробности что такое БД мы не будем, если кто-то этого не знает, то сможет прочитать об этом в той же Wikipedia. Наша же цель показать что, несмотря на существование множества различных систем управления базами данных (СУБД), большинство из них придерживаются определенных стандартов.

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

-2

Найти такие альтернативы не составило особого труда, так как MySQL и PostgreSQL существуют на рынке много лет и пользуются заметным спросом. Вопрос был только в масштабировании и возможности дальнейшего использования баз данных под управлением этих СУБД. Поэтому мы решили попробовать их все, и какое-то время в нашем сервисе пользователь мог на свое усмотрение выбрать ту или иную СУБД. Тот факт, что мы одновременно могли поддерживать загрузку данных в базы данных под управлением разных СУБД говорит лишь о том, что они имеют хорошую совместимость. Если не вдаваться в специфику технической реализации, то основным элементом совместимости является язык SQL (Structured Query Language), не просто так эта аббревиатура присутствует в их названиях.

SQL - универсальный язык для разных СУБД
SQL - универсальный язык для разных СУБД

Исходя из приведенной выше схемы видно, что SQL позволяет работать с различными СУБД, это конечно правда... но не совсем полная. Несмотря на все попытки унификации, у каждой СУБД по тем или иным причинам появились собственные диалекты SQL, но если не касаться процедурных решений, то они очень похожи. Если вы научитесь работать с SQL к примеру в PostgreSQL, то адаптация к специфике MySQL не займет много времени, а при выполнении простых запросов многие даже и не заметят разницы.

Если же вернуться к нашему сервису, то в нем для работы с базами данных используется дополнительный уровень абстракции в виде ORM (Object-Relational Mapping), который имеет поддержку различных диалектов SQL и автоматически генерирует запрос в том виде, который соответствует используемой СУБД. Именно подобный подход позволяет как нашему сервису, так и многим другим инструментам прозрачно работать с различными СУБД.

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

MS Power BI и SQL
MS Power BI и SQL

Пользователь запускает PBI, создает новый запрос к базе данных и выбирает таблицу, в которую по мере необходимости вносит изменения на уровне импорта данных в Power Query (PQ), после чего данные импортируются в PBI и с ними можно работать дальше. На первый взгляд все довольно просто и никакого SQL особо и не видно... но если немного задуматься, ведь SQL по сути это единственный способ работы с БД, и если присмотреться внимательней, то окажется, что ключевым результатом работы PQ как раз и является генерация SQL-запроса для получения необходимых данных:

Power Query формирует SQL запрос для получения данных
Power Query формирует SQL запрос для получения данных

В результате мы имеем следующую схему применимую к Power BI:

SQL участвует на нескольких этапах работы с данными
SQL участвует на нескольких этапах работы с данными

Ну окей, мы показали, что Power BI использует SQL для получения данных, и что дальше?

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

Мы не призываем пользователей PBI писать все запросы самостоятельно на SQL, но контролировать то, что делает Power Query и иногда вносить корректуры просто необходимо. На текущий момент не существует таких инструментов, которые в полной мере могли бы заменить специалиста. При этом не стоит думать, что рассмотренная ситуация касается только Power BI - все инструменты, созданные чтобы упростить работу человека подвержены различным ошибкам, которые необходимо понимать и вовремя устранять. Из всего вышесказанного можно сделать вывод, что все, кто работают с данными и в особенности используют в своей работе базы данных должны знать базовую теорию и уметь правильно работать с SQL. Возможно, вам и не придется на нем часто писать запросы, но это однозначно поможет в решении критических ситуаций в работе с вашими инструментами.

-7

Конечно, SQL вам может пригодиться не только для проверки запросов, которые генерируются автоматически. Нередко к нам обращаются пользователи с вопросами о том, что данные в их отчетах совсем не похожи на правду. В 99% случаев проблема скрывается где-то на уровне модели данных или расчетов в том инструменте, который используется. А как это проверить? Ну, конечно, с помощью SQL, как вы догадались.

В mybi connect присутствует функционал для обработки данных "Редактор SQL", интегрированный в интерфейс личного кабинета. Этот редактор не только обеспечивает возможность просмотра и вычислений загруженных данных, но и позволяет проводить обработку данных прямо внутри сервиса без необходимости установки каких-либо сторонних приложений. Таким образом, для поиска ошибок или каких-то потерянных данных, мы рекомендуем применять его - обратиться к первоисточнику, к нашей базе, с помощью SQL и проверить корректность данных в отчете.

Редактор SQL в интерфейсе mybi connect
Редактор SQL в интерфейсе mybi connect

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

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

-9

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

-10