(кликабельно)
(кликабельно)
Плюсы : PowerQuery - один из самых сильных инструментов, имеющий с одной стороны широкую функциональность для анализа, с другой стороны достаточно сложен в освоении, и используется в основном аналитиками. Работает как с табличными моделями, так и с многомерными. Умеет подключать дополнительные источники
Минусы : Не годится для «обычных» пользователей, сложен в освоении, достаточно медлителен. Нет возможности разделения доступа, ограничения на размер файлов/записей etc.
Дополнительные материалы
Основные возможности:
Пример с запросами и объединением источников: комбинирование источников из Нью-Йоркской фондовой биржи и финансового индекса S&P 500.
(кликабельно)
Плюсы : новый современный продукт, дружелюбный интерфейс, легок в освоении, онлайн решение.
Минусы : решение «сырое» (некоторые компоненты могут работать нестабильно), не работает с OLAP кубами, урезанный функционал в сравнении с конкурентами.
Дополнительные материалы:
Вводное видео:
(youtube-канал Pyramid Analytics)
Платформа обладает возможностью совместной аналитики и моделирования данных , а так же рядом других полезных возможностей:
PyramidAnalytics - самый мощный инструмент из используемых нами.
Плюсы : легок в освоении, работает с огромным количеством источников, очень широкая функциональность.
Минусы : цена.
SQL Server Integration Services - миграция и интеграция данных. Подробнее .
SQL Server Analysis Services OLAP и data mining внутри SQL сервера. Подробнее .
Datazen - это мульти-платформенное решение, позволяющее построить отчетность, независимо от платформы (PC, iOS, Android, Windows Phone). Отличительной чертой продукта является широкая интеграция и возможность полноценной работы аналитической платформы через мобильные устройства.
Плюсы : поддерживает широкий спектр платформ, поддерживается и развивается MS, работает с большим количеством источников.
Минусы : Не работает с OLAP напрямую (необходимо создавать запросы MDX самостоятельно), имеет ряд ограничений (начиная от возможностей интерфейса и заканчивая настройкой функциональности), не продается отдельно, идет в комплекте с MS SQL Enterprise Edition.
В следующей статье мы рассмотрим Datazen и Pyramid Analytics в деталях, а также разберемся как на их основе создавать отчетность.
Анализ данных на языке SQL
Язык SQL – самый мощный инструмент для обработки данных, придуманный человеком. Этот простой и выразительный язык запросов поддерживается всеми современными базами данных (в том числе Microsoft, Oracle, IBM) и инструментами анализа и программирования (в том числе Excel).
На данном курсе Вы познакомитесь с базами данных языком запросов SQL. Цель курса – научиться свободно и уверенно пользоваться современными базами данных, в том числе анализировать данные и строить отчёты.
Аудитория курса: аналитики и разработчики отчётов, работающие с базами данных.
По окончании курса Вы будете уметь:
Специалисты, обладающие этими знаниями и навыками, в настоящее время крайне востребованы. Большинство выпускников наших курсов делают успешную карьеру и пользуются уважением работодателей.
Продолжительность курса - 24 ак. ч.
Модуль 1. Реляционные базы данных
Модуль 2. Простые операции с одной таблицей
Модуль 3. Трансформация таблицы
Модуль 4. Модификация данных
Модуль 5. Операции с несколькими таблицами
Модуль 6. Построение отчётов
Модуль 7. Работа с хранилищами и витринами данных
По окончании обучения на курсе проводится итоговая аттестация. Аттестация проводится в виде теста на последнем занятии или на основании оценок практических работ, выполняемых во время обучения на курсе.
Если вы хотите стать специалистом по обработке и анализу данных, без SQL не обойтись. Пользоваться этим языком могут не только аналитики или учёные, но и все, кто может потратить несколько дней на изучение SQL запросов :
SQL расшифровывается как Structured Query Language , что переводится как «язык структурированных запросов ».
Но я люблю другое описание: это Excel на стероидах. Вот как выглядит один и тот же набор данных в Excel и SQL :
Как мы видим, SQL и Excel довольно похожи. Оба представляют данные в виде двухмерной таблицы со столбцами и строками. Оба предельно структурированы и просты для понимания.
Но между ними есть и ряд отличий:
Когда вы освоите SQL запросы для начинающих , то поймёте, что работа с ним прозрачнее и эффективнее, чем с Excel. Кроме этого, в SQL намного удобнее автоматизировать свою работу и использовать предыдущие наработки.
При анализе данных вы будете использовать SQL для довольно простых задач: суммирования, объединения массивов данных, простых статистических и математических методов. Но с SQL ваша работа станет эффективнее, и вы сможете использовать более крупные массивы данных, чем раньше.
Когда вы начнёте использовать эти языки для анализа данных, то поймёте, что Python и R хороши для одного, а SQL для другого. Основное различие этих языков - в синтаксисе, «функциях » и производительности. Ну а теперь давайте перейдём к практической части!
Я буду использовать postgreSQL . Есть и другие виды СУБД SQL . Но все они похожи, поэтому если выучить postgreSQL , адаптация к другому языку займёт всего несколько часов (или даже минут).
На данный момент у вас должно быть три вещи:
Примечание : в качестве инструмента для работы с SQL я буду использовать SQL Workbench .
Сначала нужно получить доступ к базе данных из командной строки. Я покажу, как это сделать, и в дальнейшем вам нужно будет действовать аналогичным образом:
В моём случае я ввожу:
ssh tomi@[мой_ip_адрес]
psql -U tomi -d postgres
psql это сама команда, -U указывает на имя пользователя (в моём случае это “tomi” ), а -d указывает название базы данных (в моём случае postgres , как и у вас ). Приглашение командной строки должно измениться на следующее:
Готово! Теперь у вас есть полный доступ к базе данных SQL .
На экране появится список всех таблиц данных. Пока что она только одна. Но скоро это изменится:
Примечание : базы данных SQL также называют «реляционными базами данных ».
В этом разделе мы будем работать с небольшим набором данных под названием zoo («зоопарк »). Можете скачать его отсюда в текстовом формате .tsv .
Но давайте продолжим с SQL запроса примера :
1) Создайте таблицу :
CREATE TABLE zoo (animal varchar(10), uniq_id integer PRIMARY KEY, water_need integer);
2) Проверьте, что таблица точно была создана :
У нас есть новая таблица данных: zoo!
3) Загружаем данные!
Скопируйте запрос:
INSERT INTO zoo (animal,uniq_id,water_need) VALUES ("elephant",1001,500), ("elephant",1002,600), ("elephant",1003,550), ("tiger",1004,300), ("tiger",1005,320), ("tiger",1006,330), ("tiger",1007,290), ("tiger",1008,310), ("zebra",1009,200), ("zebra",1010,220), ("zebra",1011,240), ("zebra",1012,230), ("zebra",1013,220), ("zebra",1014,100), ("zebra",1015,80), ("lion",1016,420), ("lion",1017,600), ("lion",1018,500), ("lion",1019,390), ("kangaroo",1020,410), ("kangaroo",1021,430), ("kangaroo",1022,410);
Если всё прошло успешно, вы получите следующее сообщение:
Настало время изучить главный оператор языка запросов SQL . Вот он:
SELECT * FROM имя_таблицы;
Мы будем пользоваться SELECT каждый раз, когда нужно будет прочитать, отфильтровать, преобразовать и суммировать данные. Для начала выберем (английское слово select переводится именно «выбрать» ) всё, что есть в таблице zoo .
SELECT * FROM zoo;
Оператор вернул мне всю таблицу.
SELECT * FROM zoo;
SELECT
- основной оператор, сообщающий SQL
, что мы хотим прочитать данные из таблицы.
*
- указывает на то, что мы хотим выбрать все столбцы.
FROM
сообщает SQL
, что мы собираемся указать таблицу для чтения данных.
zoo
это название таблицы. Его можно заменить на любое другое, если у вас есть несколько таблиц.
;
это синтаксис, обязательный для SQL
. Каждый запрос должен заканчиваться точкой с запятой. Если случайно её пропустить, SQL
будет ждать продолжения запроса, и ничего не выведет на экран.
Рассмотренное выше выражение мы будем регулярно использовать при работе со сложными запросами SQL .
Знак * можно заменить на названия столбцов. Рассмотрим в качестве примера следующий запрос:
SELECT animal, water_need FROM zoo;
Получаем именно то, что ожидали: на экране есть столбцы “animal” и “water_need” , но уже нет “uniq_id” .
Аналогичным образом можно выбирать любые столбцы, достаточно указать их имена, разделённые запятой. Можно сделать и что-то вроде этого:
SELECT animal, animal, animal FROM zoo;
Один и тот же столбец повторится несколько раз… Но так как смысла в этом мало, делать так не стоит.
На данный момент мы работаем с таблицей данных, состоящей, из 22 строк. Чтобы ограничить выборку несколькими первыми строками, воспользуемся инструкцией LIMIT – небольшим «расширением » к базовому запросу:
SELECT * FROM zoo LIMIT 10;
На экран будет выведено только 10 первых строк.
Используя инструкцию WHERE , можно выбрать конкретные строки, основываясь на их значениях. SQL запроса пример:
SELECT * FROM zoo –»
это «базовый запрос
»
WHERE –»
говорит SQL
, что вы хотите что-то отфильтровать.
animal = ‘elephant’ –»
animal
- это название столбца, в котором мы ищем нужное значение, а elephant
– само значение. В SQL
всегда необходимо добавлять столбец, в котором мы ищем нужное значение.
; –»
Не забываем про точку с запятой!
Это вводная статья, поэтому первое задание тоже будет довольно простым:
Выберите первых трёх зебр (zebra ) из таблицы zoo .
Если вы хотите стать специалистом по обработке и анализу данных, без SQL не обойтись. Пользоваться этим языком могут не только аналитики или учёные, но и все, кто может потратить несколько дней на изучение SQL запросов :
SQL расшифровывается как Structured Query Language , что переводится как «язык структурированных запросов ».
Но я люблю другое описание: это Excel на стероидах. Вот как выглядит один и тот же набор данных в Excel и SQL :
Как мы видим, SQL и Excel довольно похожи. Оба представляют данные в виде двухмерной таблицы со столбцами и строками. Оба предельно структурированы и просты для понимания.
Но между ними есть и ряд отличий:
Когда вы освоите SQL запросы для начинающих , то поймёте, что работа с ним прозрачнее и эффективнее, чем с Excel. Кроме этого, в SQL намного удобнее автоматизировать свою работу и использовать предыдущие наработки.
При анализе данных вы будете использовать SQL для довольно простых задач: суммирования, объединения массивов данных, простых статистических и математических методов. Но с SQL ваша работа станет эффективнее, и вы сможете использовать более крупные массивы данных, чем раньше.
Когда вы начнёте использовать эти языки для анализа данных, то поймёте, что Python и R хороши для одного, а SQL для другого. Основное различие этих языков - в синтаксисе, «функциях » и производительности. Ну а теперь давайте перейдём к практической части!
Я буду использовать postgreSQL . Есть и другие виды СУБД SQL . Но все они похожи, поэтому если выучить postgreSQL , адаптация к другому языку займёт всего несколько часов (или даже минут).
На данный момент у вас должно быть три вещи:
Примечание : в качестве инструмента для работы с SQL я буду использовать SQL Workbench .
Сначала нужно получить доступ к базе данных из командной строки. Я покажу, как это сделать, и в дальнейшем вам нужно будет действовать аналогичным образом:
В моём случае я ввожу:
ssh tomi@[мой_ip_адрес]
psql это сама команда, -U указывает на имя пользователя (в моём случае это “tomi” ), а -d указывает название базы данных (в моём случае postgres , как и у вас ). Приглашение командной строки должно измениться на следующее:
Postgres=>
Готово! Теперь у вас есть полный доступ к базе данных SQL .
На экране появится список всех таблиц данных. Пока что она только одна. Но скоро это изменится:
Примечание : базы данных SQL также называют «реляционными базами данных ».
В этом разделе мы будем работать с небольшим набором данных под названием zoo («зоопарк »). Можете скачать его отсюда в текстовом формате .tsv .
Но давайте продолжим с SQL запроса примера :
1) Создайте таблицу :
CREATE TABLE zoo (animal varchar(10), uniq_id integer PRIMARY KEY, water_need integer);
2) Проверьте, что таблица точно была создана :
У нас есть новая таблица данных: zoo!
3) Загружаем данные!
Скопируйте запрос:
INSERT INTO zoo (animal,uniq_id,water_need) VALUES ("elephant",1001,500), ("elephant",1002,600), ("elephant",1003,550), ("tiger",1004,300), ("tiger",1005,320), ("tiger",1006,330), ("tiger",1007,290), ("tiger",1008,310), ("zebra",1009,200), ("zebra",1010,220), ("zebra",1011,240), ("zebra",1012,230), ("zebra",1013,220), ("zebra",1014,100), ("zebra",1015,80), ("lion",1016,420), ("lion",1017,600), ("lion",1018,500), ("lion",1019,390), ("kangaroo",1020,410), ("kangaroo",1021,430), ("kangaroo",1022,410);
Если всё прошло успешно, вы получите следующее сообщение:
INSERT 0 22
Настало время изучить главный оператор языка запросов SQL . Вот он:
SELECT * FROM имя_таблицы;
Мы будем пользоваться SELECT каждый раз, когда нужно будет прочитать, отфильтровать, преобразовать и суммировать данные. Для начала выберем (английское слово select переводится именно «выбрать» ) всё, что есть в таблице zoo .
SELECT * FROM zoo;
Оператор вернул мне всю таблицу.
SELECT * FROM zoo;
SELECT
- основной оператор, сообщающий SQL
, что мы хотим прочитать данные из таблицы.
*
- указывает на то, что мы хотим выбрать все столбцы.
FROM
сообщает SQL
, что мы собираемся указать таблицу для чтения данных.
zoo
это название таблицы. Его можно заменить на любое другое, если у вас есть несколько таблиц.
;
это синтаксис, обязательный для SQL
. Каждый запрос должен заканчиваться точкой с запятой. Если случайно её пропустить, SQL
будет ждать продолжения запроса, и ничего не выведет на экран.
Рассмотренное выше выражение мы будем регулярно использовать при работе со сложными запросами SQL .
Знак * можно заменить на названия столбцов. Рассмотрим в качестве примера следующий запрос:
SELECT animal, water_need FROM zoo;
Получаем именно то, что ожидали: на экране есть столбцы “animal” и “water_need” , но уже нет “uniq_id” .
Аналогичным образом можно выбирать любые столбцы, достаточно указать их имена, разделённые запятой. Можно сделать и что-то вроде этого:
SELECT animal, animal, animal FROM zoo;
Один и тот же столбец повторится несколько раз… Но так как смысла в этом мало, делать так не стоит.
На данный момент мы работаем с таблицей данных, состоящей, из 22 строк. Чтобы ограничить выборку несколькими первыми строками, воспользуемся инструкцией LIMIT – небольшим «расширением » к базовому запросу:
SELECT * FROM zoo LIMIT 10;
На экран будет выведено только 10 первых строк.
Используя инструкцию WHERE , можно выбрать конкретные строки, основываясь на их значениях. SQL запроса пример:
SELECT * FROM zoo WHERE animal = "elephant";
SELECT * FROM zoo –»
это «базовый запрос
»
WHERE –»
говорит SQL
, что вы хотите что-то отфильтровать.
animal = "elephant" –»
animal
- это название столбца, в котором мы ищем нужное значение, а elephant
– само значение. В SQL
всегда необходимо добавлять столбец, в котором мы ищем нужное значение.
; –»
Не забываем про точку с запятой!
Это вводная статья, поэтому первое задание тоже будет довольно простым:
Выберите первых трёх зебр (zebra ) из таблицы zoo .
Решение этой задачи будет, по сути, итогом сегодняшней статьи.
Готовы?
Вот моё решение:
SELECT * FROM zoo WHERE animal = "zebra" LIMIT 3;
Согласитесь, SQL - это просто .
Как-то не очень… Вот так будет лучше:
Postgres=> SELECT * FROM zoo;
работает так же, как и
Select * from zoo;
Чувствительность к регистру имён таблиц, столбцов и их значений зависит от настроек. В нашей ситуации (при использовании postgreSQL ) имена таблиц и столбцов не чувствительны к регистру, в отличие от значений полей. Например:
SELECT * FROM zoo WHERE animal = "elephant"; –» РАБОТАЕТ SELECT * FROM ZOO WHERE ANIMAL = ‘elephant’; –» РАБОТАЕТ SELECT * FROM ZOO WHERE ANIMAL = "ELEPHANT"; –» НЕ РАБОТАЕТ
Обратите внимание, что большинство людей в языке запросов SQL пишут ключевые слова заглавными буквами (SELECT, WHERE, LIMIT, etc… ), что повышает читаемость кода.
Мы сделали первый шаг к использованию SQL для анализа данных! Поздравляю! Теперь вы можете писать основные запросы. Но это только начало!
Перевод статьи “SQL for Data Analysis – Tutorial for Beginners – ep1 ” был подготовлен дружной командой проекта Сайтостроение от А до Я.