Forwarded from Simulative
This media is not supported in your browser
VIEW IN TELEGRAM
Forwarded from Simulative
🎓 Как наши студенты «входят в аналитику с ноги» — истории, которые вдохновляют
Каждый пришёл в аналитику своим путём. Кто-то из маркетинга, кто-то из образования, кто-то вообще из другой сферы. Но всех объединяет одно — желание разобраться в данных и построить новую карьеру.
На нашем вебинаре вы услышите реальные истории студентов Simulative, которые начинали с нуля и уже работают аналитиками. А пока — ловите короткие истории первых героев (в кружочках выше)👆
Ждем вас на вебинаре, чтобы услышать полные версии!
📅 Сегодня, 11 ноября, 19:00 МСК
🎁 Среди участников — розыгрыш сертификатов на обучение!
До встречи!
Каждый пришёл в аналитику своим путём. Кто-то из маркетинга, кто-то из образования, кто-то вообще из другой сферы. Но всех объединяет одно — желание разобраться в данных и построить новую карьеру.
На нашем вебинаре вы услышите реальные истории студентов Simulative, которые начинали с нуля и уже работают аналитиками. А пока — ловите короткие истории первых героев (в кружочках выше)👆
Ждем вас на вебинаре, чтобы услышать полные версии!
📅 Сегодня, 11 ноября, 19:00 МСК
🎁 Среди участников — розыгрыш сертификатов на обучение!
До встречи!
Всем привет!
На этой неделе новости такие: Мне выдали (пока что в электронном виде) мой диплом о переквалификации).
Получается, я уже теперь точно дипломированный и профессиональный аналитик данных.
Бумажный вариант пришлют скоро)
Я очень рад, что всё-таки решил пойти учиться. Узнал много нового и очень хорошо закрепил полученные знания на практических кейсах из реального бизнеса.
Кстати, это один из трёх шагов (дипломов) на пути становления Fullstack-аналитика данных
@nullpp #обучение #диплом
На этой неделе новости такие: Мне выдали (пока что в электронном виде) мой диплом о переквалификации).
Получается, я уже теперь точно дипломированный и профессиональный аналитик данных.
Бумажный вариант пришлют скоро)
Я очень рад, что всё-таки решил пойти учиться. Узнал много нового и очень хорошо закрепил полученные знания на практических кейсах из реального бизнеса.
Кстати, это один из трёх шагов (дипломов) на пути становления Fullstack-аналитика данных
@nullpp #обучение #диплом
🔥9👏4
Всем привет!
Это пост-проверка. Я всё-таки решил добавить комментарии в канал, чтобы можно было что-то тут обсудить (желательно по теме, ахахах). В старых постах, как я понимаю, не будет обсуждений, ну и ладно)
@nullpp #обсуждение
Это пост-проверка. Я всё-таки решил добавить комментарии в канал, чтобы можно было что-то тут обсудить (желательно по теме, ахахах). В старых постах, как я понимаю, не будет обсуждений, ну и ладно)
@nullpp #обсуждение
🔥3❤1👍1
Всем привет!
Когда я делал свой дипломный проект и арендовал виртуальный сервер, при первичной настройке выполнения скриптов по расписанию, я не мог понять почему они не выполняются в нужное время.
Мне подсказали, что нужно бы проверить таймзону самого сервера - и действительно, оказалось, что она была UTC+0 вместо привычной для меня UTC+3. Это я к чему?
К тому, что у СУБД таймзона может как совпадать с сервером, так и отличаться. Да и вообще, при работе с датой-временем надо иметь в виду, что таймзоны могут повлиять на результаты не только работы, но и аналитических выводов, которые можно получить, если мы неправильно их будем интерпретировать из-за этого.
В PostgreSQL есть два основных типа для работы со временем:
-
-
Опять же многое будет зависеть от параметров как на самом сервере, так и от параметров СУБД.
Для определённой сессии можно задать таймзону так:
(кстати, на это нужны определённые права для учётки PostgreSQL.
И при выполнении запросов, например
мы получим данные вида
Мы можем преобразовать таймзону вручную при конкретном запросе (для этого не нужно особых прав):
В результате получим результат вида:
С
Результат:
Результат:
Сменим таймзону:
Выдаст такой же результат:
А вот
Даст нам:
Как видите
Если применить к
Если применить к
Что делать?
1. Храните всё в UTC. Настройте часовой пояс сервера на UTC. Это стандарт де-факто для backend-разработки и избегает путаницы.
2. Используйте тип TIMESTAMPTZ. Позволяет PostgreSQL делать всю грязную работу по конвертации.
3. Преобразование в локальное время делайте на уровне приложения. Ваше приложение лучше знает, в каком часовом поясе находится пользователь. Передавайте данные в UTC, а финальное отображение делайте на клиенте.
#SQL #PostgreSQL #timezone @nullpp
Когда я делал свой дипломный проект и арендовал виртуальный сервер, при первичной настройке выполнения скриптов по расписанию, я не мог понять почему они не выполняются в нужное время.
Мне подсказали, что нужно бы проверить таймзону самого сервера - и действительно, оказалось, что она была UTC+0 вместо привычной для меня UTC+3. Это я к чему?
К тому, что у СУБД таймзона может как совпадать с сервером, так и отличаться. Да и вообще, при работе с датой-временем надо иметь в виду, что таймзоны могут повлиять на результаты не только работы, но и аналитических выводов, которые можно получить, если мы неправильно их будем интерпретировать из-за этого.
В PostgreSQL есть два основных типа для работы со временем:
-
TIMESTAMP(или TIMESTAMP WITHOUT TIME ZONE) - хранит только дату и время, без привязки к часовому поясу. Это просто число, означающее "настенные часы в определённый момент". При сохранении 2023-10-25 15:30:00 база не знает, было это в Лондоне, в Москве или в Токио.-
TIMESTAMPTZ (или TIMESTAMP WITH TIME ZONE) - рекомендуемый к использованию тип. Он не хранит пояс отдельно внутри себя. Вместо этого он конвертирует переданное значение в время по UTC (Всемирное координированное время) для хранения. При извлечении данных он преобразует это UTC-время в часовой пояс текущей сессии.Опять же многое будет зависеть от параметров как на самом сервере, так и от параметров СУБД.
Для определённой сессии можно задать таймзону так:
SET timezone = 'Europe/Moscow';
(кстати, на это нужны определённые права для учётки PostgreSQL.
И при выполнении запросов, например
SELECT doc_dt FROM ticket;
мы получим данные вида
2025-05-12 09:23:48.000 в том случае, если типом поля doc_dt является TIMESTAMP. Впрочем, такой ответ мы получили бы и не устанавливая таймзону перед этим. То есть СУБД принимает "на веру" то, что TIMESTAMP всегда в том часовом поясе, который указан в параметрах.Мы можем преобразовать таймзону вручную при конкретном запросе (для этого не нужно особых прав):
SELECT doc_dt::TIMESTAMP AT TIME ZONE 'Europe/Moscow' FROM ticket;
В результате получим результат вида:
2025-05-12 09:23:48.000 +0300. Как видите, в самом конце будет указан часовой пояс, причём такой, какой указан в настройках. Точнее, он его просто "припишет".С
TIMESTAMPZ ситуация иначе. Смещение во времени автоматически записывается в БД. И тогда при применении AT TIME ZONE к полю TIMESTAMPZ, он наоборот преобразует в нужный временной пояс.SET timezone = 'Europe/Moscow';
SELECT doc_dt FROM ticket;
Результат:
2025-05-12 09:23:48.000 +0300SELECT doc_dt::TIMESTAMP AT TIME ZONE 'Europe/Moscow' FROM ticket;
Результат:
2025-05-12 09:23:48.000 +0300Сменим таймзону:
SET timezone = 'UTC';
SELECT doc_dt FROM ticket;
Выдаст такой же результат:
2025-05-12 09:23:48.000 +0300
А вот
SELECT doc_dt::TIMESTAMP AT TIME ZONE 'Europe/Moscow' FROM ticket;
Даст нам:
2025-05-12 06:23:48.000 +0300
Как видите
AT TIME ZONE - мощный оператор для явного преобразования.Если применить к
TIMESTAMPTZ, он "снимает" пояс и возвращает TIMESTAMP в указанной зоне.Если применить к
TIMESTAMP (без пояса), он "надевает" на него указанный пояс и возвращает TIMESTAMPTZ.Что делать?
1. Храните всё в UTC. Настройте часовой пояс сервера на UTC. Это стандарт де-факто для backend-разработки и избегает путаницы.
2. Используйте тип TIMESTAMPTZ. Позволяет PostgreSQL делать всю грязную работу по конвертации.
3. Преобразование в локальное время делайте на уровне приложения. Ваше приложение лучше знает, в каком часовом поясе находится пользователь. Передавайте данные в UTC, а финальное отображение делайте на клиенте.
#SQL #PostgreSQL #timezone @nullpp
👍5🤔2
Всем привет!
Мой дашборд разместили в DataLens Gallery =) Йээээ
https://datalens.ru/gallery/gx1h48lns7le1
Мой дашборд разместили в DataLens Gallery =) Йээээ
https://datalens.ru/gallery/gx1h48lns7le1
🔥10👏1
Всем привет!
Поделюсь небольшим, так сказать, успехом в учёбе на курсе Дата инженера.
Удалось собрать
@nullpp #генерация_данных #Python #docker #docker_compose #nginx
Поделюсь небольшим, так сказать, успехом в учёбе на курсе Дата инженера.
Удалось собрать
docker compose, гдеДокер 1 с питоном, запускает скрипт по генерации данных, а затем записывает их в Докер 2, где крутится PostgreSQL. А затем Докер 3 отображает это через Nginx по localhost в виде простой таблички@nullpp #генерация_данных #Python #docker #docker_compose #nginx
🔥4👏1
Всем привет!
Я тут немного подумал, чем бы можно было бы разнообразить контент на канале.
Как на счёт того, чтобы выкладывать некоторые задачки (и их решения) на подумать?
Например типа такого:
Задача:
Решение в PostgreSQL:
#Задача #SQL #PostgreSQL #Авиаперелеты
Я тут немного подумал, чем бы можно было бы разнообразить контент на канале.
Как на счёт того, чтобы выкладывать некоторые задачки (и их решения) на подумать?
Например типа такого:
Задача:
Вывести информацию в какие города можно улететь из Парижа (Paris) и сколько времени это займёт?
Решение в PostgreSQL:
SELECT
town_to,
TIMEDIFF(time_in, time_out) as flight_time
FROM
Trip
WHERE
town_from = 'Paris';
#Задача #SQL #PostgreSQL #Авиаперелеты
🔥4❤3
Всем привет!
Сегодня будет ещё одна задачка по той же БД
Задача:
Решение будет в первом комменте
#Задача #SQL #PostgreSQL #Авиаперелеты
Сегодня будет ещё одна задачка по той же БД
Задача:
Выведите пассажиров с самым длинным ФИО. Пробелы, дефисы и точки считаются частью имени.
Решение будет в первом комменте
#Задача #SQL #PostgreSQL #Авиаперелеты
🔥3
NULL++
Всем привет! На этой неделе новости такие: Мне выдали (пока что в электронном виде) мой диплом о переквалификации). Получается, я уже теперь точно дипломированный и профессиональный аналитик данных. Бумажный вариант пришлют скоро) Я очень рад, что всё-таки…
Всем привет!
А вот и второй диплом мне прислали в электронном виде. Теперь я дважды дипломированный аналитик. Посмотрим, как это мне поможет в будущем xD
П.С. Первый диплом я уже получил в бумажном виде. Всё как положено: корочка, вкладыши, +1 к ЧСВ
#Диплом
А вот и второй диплом мне прислали в электронном виде. Теперь я дважды дипломированный аналитик. Посмотрим, как это мне поможет в будущем xD
П.С. Первый диплом я уже получил в бумажном виде. Всё как положено: корочка, вкладыши, +1 к ЧСВ
#Диплом
🔥6🍾1🤓1
Всем привет!
Хочу немного поговорить сегодня о функции
1. Самый простой пример использования - это подсчёт общего количества строк:
Так можно посчитать все строки, включая те, которые содержат
2. Если вместо
то запрос посчитает количество не-
3. Если нужно посчитать уникальные значения, то внутри нужно добавить
Данный способ работает в PostgreSQL, в других СУБД частенько используются другие функции.
А что, если нам необходимо посчитать количество уникальных строк по двум и более параметрам?
Тут нам поможет функция
- Иногда
- Обычно используют какой-то спецсимвол для соединения, чтобы случайно не пропустить что-нибудь.
Например, если взять просто
4. А ещё можно считать количество по условиям:
Или вот так тоже можно:
А ещё, нужно помнить, что функция
В качестве примера, посмотрим распределение покупки товаров по половому признаку:
В результате получим такую таблицу:
#SQL #PostgreSQL #агрегация #count
Хочу немного поговорить сегодня о функции
COUNT в SQL. Данную функцию используют для подсчёта количества строк в таблице/вьюшке/результате запроса.1. Самый простой пример использования - это подсчёт общего количества строк:
SELECT
COUNT(*)
FROM table;
Так можно посчитать все строки, включая те, которые содержат
NULL.2. Если вместо
* вставить название колонки:SELECT
COUNT(col1)
FROM table;
то запрос посчитает количество не-
NULL значений.3. Если нужно посчитать уникальные значения, то внутри нужно добавить
DISTINCT:SELECT
COUNT(DISTINCT col1)
FROM table;
Данный способ работает в PostgreSQL, в других СУБД частенько используются другие функции.
А что, если нам необходимо посчитать количество уникальных строк по двум и более параметрам?
Тут нам поможет функция
CONCAT():SELECT COUNT(DISTINCT CONCAT(col1, ' | ', col2))
FROM table;
- Иногда
col1 и col2 нужно привести к формату строки.- Обычно используют какой-то спецсимвол для соединения, чтобы случайно не пропустить что-нибудь.
Например, если взять просто
CONCAT(col1, col2), то конкатенация значений ab и c будет равна конкатенации значений a и bc: abc. То есть DISTINCT решит, что это одинаковые значения.4. А ещё можно считать количество по условиям:
SELECT
COUNT(CASE WHEN gender = 'F' THEN 1 END) AS F,
COUNT(CASE WHEN gender = 'M' THEN 1 END) AS M
FROM project_data;
Или вот так тоже можно:
SELECT
COUNT(*) FILTER (WHERE gender = 'F') AS F,
COUNT(*) FILTER (WHERE gender = 'M') AS M
FROM project_data;
А ещё, нужно помнить, что функция
COUNT() является агрегирующей, а это значит, что если мы хотим посчиать количество в разрезе како-нибудь параметра (значений столбца), то надо не забывать про GROUP BY.В качестве примера, посмотрим распределение покупки товаров по половому признаку:
SELECT
product_id,
COUNT(CASE WHEN gender = 'F' THEN 1 END) AS F,
COUNT(CASE WHEN gender = 'M' THEN 1 END) AS M
FROM project_data
GROUP BY product_id ;
В результате получим такую таблицу:
product_id|f |m |
----------+---+---+
536| 77| 96|
7004| 81| 75|
19812| 73| 79|
47778| 74| 72|
34354| 79| 89|
4035| 80| 82|
44342| 73| 89|
...|...|...|
#SQL #PostgreSQL #агрегация #count
🔥7
Всем привет!
Ну вот и Новый год! Поздравляю всех с наступающим (у кого-то уже наступившим) Новым 2026 Годом!
Хочу подвести свои итоги года)
В уходящем году я решился сменить свой род деятельности. С начала года начал учиться на Аналитика данных: каждый день по чуть-чуть (когда-то по 20 минут, когда и по 3-4 часа) я очень много изучал SQL, Python (включая всякие интересные библиотеки по анализу и визуализации данных), продуктовые метрики, методы аналитики, различные BI-системы, с трудом вспоминал давнозабытую математическую статистику и даже изучил Excel на совершенно другом уровне)
Попутно я уволился со своей старой работы в "никуда", но пока был в отпуске, нашёл новую работу на позицию BI-аналитика, где уже почти полгода (когда праздники кончатся, уже будет, считай) работаю. И мне очень нравится то, чем я сейчас занимаюсь!
Что ещё? Сдал экзамен по DataLens и получил сертификат. Получил два диплома государственного образца о переквалификации по Аналитике данных и BI-аналитике.
За весь 2025 год я посетил огромную тучу различных вебинаров, наверное, штук 100, не меньше. Там были темы и по аналитике, и по BI, и по ML, и даже по 1С =)
В следующем году я обязательно продолжу развиваться как первоклассный специалист по BI (в первую очередь), аналитике данных и совсем немного в инженерии данных. Может даже захвачу немного DS и ML, тут уж как сложится =)
А ещё, я вчера прошёл собес в компанию, где мне сделали оффер с зп на треть повыше, но компания не в реестре IT... И теперь я в раздумьях: сменить место работы или продолжить свой путь на текущем месте? Может кто что посоветует? =)
Поэтому я хочу пожелать всем моим подписчикам: не бойтесь своих стремлений и желаний, если идти к цели, то вы её обязательно достигнете!
В комментариях, можете поделиться, кто чего достиг в этом году и что планируете в следующем)
@nullpp #поздравления #достижения
Ну вот и Новый год! Поздравляю всех с наступающим (у кого-то уже наступившим) Новым 2026 Годом!
Хочу подвести свои итоги года)
В уходящем году я решился сменить свой род деятельности. С начала года начал учиться на Аналитика данных: каждый день по чуть-чуть (когда-то по 20 минут, когда и по 3-4 часа) я очень много изучал SQL, Python (включая всякие интересные библиотеки по анализу и визуализации данных), продуктовые метрики, методы аналитики, различные BI-системы, с трудом вспоминал давнозабытую математическую статистику и даже изучил Excel на совершенно другом уровне)
Попутно я уволился со своей старой работы в "никуда", но пока был в отпуске, нашёл новую работу на позицию BI-аналитика, где уже почти полгода (когда праздники кончатся, уже будет, считай) работаю. И мне очень нравится то, чем я сейчас занимаюсь!
Что ещё? Сдал экзамен по DataLens и получил сертификат. Получил два диплома государственного образца о переквалификации по Аналитике данных и BI-аналитике.
За весь 2025 год я посетил огромную тучу различных вебинаров, наверное, штук 100, не меньше. Там были темы и по аналитике, и по BI, и по ML, и даже по 1С =)
В следующем году я обязательно продолжу развиваться как первоклассный специалист по BI (в первую очередь), аналитике данных и совсем немного в инженерии данных. Может даже захвачу немного DS и ML, тут уж как сложится =)
А ещё, я вчера прошёл собес в компанию, где мне сделали оффер с зп на треть повыше, но компания не в реестре IT... И теперь я в раздумьях: сменить место работы или продолжить свой путь на текущем месте? Может кто что посоветует? =)
Поэтому я хочу пожелать всем моим подписчикам: не бойтесь своих стремлений и желаний, если идти к цели, то вы её обязательно достигнете!
В комментариях, можете поделиться, кто чего достиг в этом году и что планируете в следующем)
@nullpp #поздравления #достижения
🎄9❤1👍1
Всем привет!
Давно не было постов, да... Отдыхал, думал, снова учился... В общем то и писать пока что особо не о чём.
Год заканчивался тем, что мой голос совсем пропал, болело горло и я бесконечно чихал =)
Но уже к 3му января, я уже почти вернулся в норму и сейчас чувствую себя хорошо.
Сходил всей семьёй в кино... дважды... на русские фильмы... На Чебурашку 2 (вообще гадость) и Простоквашино (так плохо, что даже хорошо, ахаха). Видели цены??? Я ваще офигел от 450 руб за билет (а их мне надо 4 штуки)... И это на утренние сеансы. А по вечерам цены доходили до 2000 за билет...
А ещё, я не принял оффер, который мне был сделан. Моя чуйка сказала "не надо", а я ей как-то доверяю =) Может и зря, конечно, время покажет.
По учёбе я доделал проект по Apache Airflow: github.com/mishandri/airflow_project
И мне уже дали отличный фидбек на него. Если вкратце, то проект генерирует даг динамически на основе Python-словаря, лежащего в S3-хранилище. Это позволяет достаточно легко изменять работу дага без фактического изменения его кода.
Да, получилось, я считаю, очень интересно. Я постарался применить всё, чему меня научили + ещё кое-что, чего не было рассказано и было изучено самостоятельно.
И приступил к изучению PL/SQL, чтобы уметь писать всякие функции, триггеры, ветвления и циклы.
А у вас было что-то интересное за эти длинные выходные?
@nullpp #SQL #PostgreSQL #Python #Airflow #истории
Давно не было постов, да... Отдыхал, думал, снова учился... В общем то и писать пока что особо не о чём.
Год заканчивался тем, что мой голос совсем пропал, болело горло и я бесконечно чихал =)
Но уже к 3му января, я уже почти вернулся в норму и сейчас чувствую себя хорошо.
Сходил всей семьёй в кино... дважды... на русские фильмы... На Чебурашку 2 (вообще гадость) и Простоквашино (так плохо, что даже хорошо, ахаха). Видели цены??? Я ваще офигел от 450 руб за билет (а их мне надо 4 штуки)... И это на утренние сеансы. А по вечерам цены доходили до 2000 за билет...
А ещё, я не принял оффер, который мне был сделан. Моя чуйка сказала "не надо", а я ей как-то доверяю =) Может и зря, конечно, время покажет.
По учёбе я доделал проект по Apache Airflow: github.com/mishandri/airflow_project
И мне уже дали отличный фидбек на него. Если вкратце, то проект генерирует даг динамически на основе Python-словаря, лежащего в S3-хранилище. Это позволяет достаточно легко изменять работу дага без фактического изменения его кода.
Да, получилось, я считаю, очень интересно. Я постарался применить всё, чему меня научили + ещё кое-что, чего не было рассказано и было изучено самостоятельно.
И приступил к изучению PL/SQL, чтобы уметь писать всякие функции, триггеры, ветвления и циклы.
А у вас было что-то интересное за эти длинные выходные?
@nullpp #SQL #PostgreSQL #Python #Airflow #истории
GitHub
GitHub - mishandri/airflow_project
Contribute to mishandri/airflow_project development by creating an account on GitHub.
👍3😁2🤔2