NULL++
Так) Я вчера обещал статью... Но в телегу она не сильно влезает. А точнее - совсем не влезает. А премиум для такого я нехочу покупать, ахахах) Поэтому оформил на линкедин: https://www.linkedin.com/pulse/%25D0%25B3%25D0%25B5%25D0%25BD%25D0%25B5%25D1%2580%…
А для тех, кому лень заморачиваться с доступом, я продублирую в telegra.ph. Только картинки там чото не грузятся...
Upd. Вроде грузятся
https://telegra.ph/Generaciya-sinteticheskih-dannyh-10-10
Upd. Вроде грузятся
https://telegra.ph/Generaciya-sinteticheskih-dannyh-10-10
Telegraph
Генерация синтетических данных
Зачем вообще генерировать данные? Всем привет! :) Как часто вам приходится генерировать какие-то данные? Бывает так, что создание синтетических данных просто необходимо. Например, для заполнения пропусков в датасете. Кто-то скажет, что лучше удалить все пропуски…
🔥6
А ещё я принял активное участие в написании наших (Денвика) статей по созданию интересных визуализаций в DataLens. Сегодня их как раз опубликовали в общем доступе)
Чарты с использованием функций AGO() и AT_DATE()
https://vk.cc/cQfqKe
Добавление всплывающей подсказки в чарт-таблицу
https://vk.cc/cQfqMD
#Яндекс #Yandex #DataLens #Денвик
Чарты с использованием функций AGO() и AT_DATE()
https://vk.cc/cQfqKe
Добавление всплывающей подсказки в чарт-таблицу
https://vk.cc/cQfqMD
#Яндекс #Yandex #DataLens #Денвик
👍2🔥2
Всем привет!
Наконец-то я занялся финальным проектом в своём обучении. Сначала создал БД и таблицы в ней для будущей выгрузки.
Написал на Python сбор данных от предоставленного API с последующей выгрузкой полученных данных в PostgreSQL.
Создал пока что первую страницу дашборда, которая должна дать общую картину состояния бизнеса, показать ключевые метрики и их динамику во времени. Это "дашборд для руководителя", который отвечает на вопрос "Как идут наши продажи в целом?"
Когда я доделаю всё, и работу оценят, я выложу исходники + ссылку на дашборд)
@nullpp #Python #PostgreSQL #Учеба
Наконец-то я занялся финальным проектом в своём обучении. Сначала создал БД и таблицы в ней для будущей выгрузки.
Написал на Python сбор данных от предоставленного API с последующей выгрузкой полученных данных в PostgreSQL.
Создал пока что первую страницу дашборда, которая должна дать общую картину состояния бизнеса, показать ключевые метрики и их динамику во времени. Это "дашборд для руководителя", который отвечает на вопрос "Как идут наши продажи в целом?"
Когда я доделаю всё, и работу оценят, я выложу исходники + ссылку на дашборд)
@nullpp #Python #PostgreSQL #Учеба
🔥9👍3
NULL++
Всем привет! Наконец-то я занялся финальным проектом в своём обучении. Сначала создал БД и таблицы в ней для будущей выгрузки. Написал на Python сбор данных от предоставленного API с последующей выгрузкой полученных данных в PostgreSQL. Создал пока что первую…
На прошлой неделе я доделал финальный проект и сдал его. Но пока что фидбэка не было)
А значит, я пока покажу вам скриншоты дашборда, как это выглядит. Я честно постарался, чтобы любое исследование по этим данным можно было провести прямо в DataLens. Такой подход, я считаю, показывает самодостаточность созданного дашборда для полноценного анализа ситуации и принятия решений.
@nullpp #Python #PostgreSQL #Учеба
А значит, я пока покажу вам скриншоты дашборда, как это выглядит. Я честно постарался, чтобы любое исследование по этим данным можно было провести прямо в DataLens. Такой подход, я считаю, показывает самодостаточность созданного дашборда для полноценного анализа ситуации и принятия решений.
@nullpp #Python #PostgreSQL #Учеба
🔥4
NULL++
На прошлой неделе я доделал финальный проект и сдал его. Но пока что фидбэка не было) А значит, я пока покажу вам скриншоты дашборда, как это выглядит. Я честно постарался, чтобы любое исследование по этим данным можно было провести прямо в DataLens. Такой…
А давайте я немного поясню, что происходит)
Вторая вкладка "Анализ продаж маркетплейса" позволяет понять портрет и поведение клиентской базы. Ответить на вопросы "Кто наши клиенты?" и "Насколько они лояльны?". На ней, кроме индикаторов (которые и так понятны), присутствует ещё несколько табличек.
В списках Топ покупателей по количеству заказов и по сумме затрат можно менять количество значений с помощью селектора.
Таблица RFM-анализа формируется "на лету" по SQL-запросу к БД, учитывая параметры ПЕРИОДА, и выдаёт актуальный результат на заданный период в дашборде.
Когортный анализ формируется "на лету" по SQL-запросу, учитывая параметры ПЕРИОДА. Анализ строит помесячные когорты, так как покупки сами по себе дорогие и нечастые. Показывает % уникальных клиентов от первого периода.
LTV также формируется "на лету" по SQL-запросу, учитывая параметры ПЕРИОДА. Сам анализ строит помесячные когорты, так как покупки сами по себе дорогие и нечастые. Показывает среднюю выручку на уникального клиента.
Вторая вкладка "Анализ продаж маркетплейса" позволяет понять портрет и поведение клиентской базы. Ответить на вопросы "Кто наши клиенты?" и "Насколько они лояльны?". На ней, кроме индикаторов (которые и так понятны), присутствует ещё несколько табличек.
В списках Топ покупателей по количеству заказов и по сумме затрат можно менять количество значений с помощью селектора.
Таблица RFM-анализа формируется "на лету" по SQL-запросу к БД, учитывая параметры ПЕРИОДА, и выдаёт актуальный результат на заданный период в дашборде.
Когортный анализ формируется "на лету" по SQL-запросу, учитывая параметры ПЕРИОДА. Анализ строит помесячные когорты, так как покупки сами по себе дорогие и нечастые. Показывает % уникальных клиентов от первого периода.
LTV также формируется "на лету" по SQL-запросу, учитывая параметры ПЕРИОДА. Сам анализ строит помесячные когорты, так как покупки сами по себе дорогие и нечастые. Показывает среднюю выручку на уникального клиента.
🔥4
NULL++
На прошлой неделе я доделал финальный проект и сдал его. Но пока что фидбэка не было) А значит, я пока покажу вам скриншоты дашборда, как это выглядит. Я честно постарался, чтобы любое исследование по этим данным можно было провести прямо в DataLens. Такой…
Третья вкладка "Анализ товаров" позволяет оценить эффективность товарного ассортимента. Ответить на вопросы "Какие товары продаются хорошо?", "На каких товарах мы больше всего зарабатываем?" и "Какие товары неликвидны?".
В списках Топ и Антитоп можно менять количество значений с помощью соответствующего селектора.
Особенность таблицы ABC/XYZ-анализа в том, что она (как и на предыдущей вкладке было) формируется "на лету" по SQL-запросу к БД, учитывая параметры ПЕРИОДА и МАСШТАБА. То есть выдаёт актуальный результат на заданный период в дашборде.
+ Есть градация по цвету для ABC/XYZ (зелёный-жёлтый-красный) для быстрого понимания результата.
P.S. на второй вкладке по цветам также сделан RFM-анализ
В списках Топ и Антитоп можно менять количество значений с помощью соответствующего селектора.
Особенность таблицы ABC/XYZ-анализа в том, что она (как и на предыдущей вкладке было) формируется "на лету" по SQL-запросу к БД, учитывая параметры ПЕРИОДА и МАСШТАБА. То есть выдаёт актуальный результат на заданный период в дашборде.
+ Есть градация по цвету для ABC/XYZ (зелёный-жёлтый-красный) для быстрого понимания результата.
P.S. на второй вкладке по цветам также сделан RFM-анализ
🔥4
Всем привет!
Мою работу проверили и дали отличный фидбек. Все советы и замечания я уже поправил, поэтому могу представить на общее обозрение)
Гит: https://github.com/mishandri/DA-final-project
Сам дашборд (светлая тема): https://datalens.yandex/6eiukr5xyukyr?_theme=light
Сам дашборд (тёмная тема): https://datalens.yandex/6eiukr5xyukyr?_theme=dark
А ещё я очень рад, что завершил данный курс обучения. Это было очень классно, познавательно и очень-очень интересно.
В планах у меня теперь завершить курс по "BI-аналитике" (остались финальные задания), а затем я приступлю к курсу "Инженер данных", который тоже обещает быть не менее клёвым
Мою работу проверили и дали отличный фидбек. Все советы и замечания я уже поправил, поэтому могу представить на общее обозрение)
Гит: https://github.com/mishandri/DA-final-project
Сам дашборд (светлая тема): https://datalens.yandex/6eiukr5xyukyr?_theme=light
Сам дашборд (тёмная тема): https://datalens.yandex/6eiukr5xyukyr?_theme=dark
А ещё я очень рад, что завершил данный курс обучения. Это было очень классно, познавательно и очень-очень интересно.
В планах у меня теперь завершить курс по "BI-аналитике" (остались финальные задания), а затем я приступлю к курсу "Инженер данных", который тоже обещает быть не менее клёвым
GitHub
GitHub - mishandri/DA-final-project: Проект реализует полный цикл автоматизированного сбора данных по API, их загрузку в БД PostgreSQL…
Проект реализует полный цикл автоматизированного сбора данных по API, их загрузку в БД PostgreSQL и визуализацию ключевых метрик через Yandex DataLens. Цель - обеспечить стабильный поток данных дл...
🔥5👏1
Всем привет!
Ведёте ли вы записи того, что возможно потом пригодится?
Перед тем, как я начал учиться на аналитика данных, я просто сохранял все найденные интересные страницы в закладках, а интересные посты в ВК или в ТГ просто в избранном. И там до сох пор большущая куча неразобранных статей, до которых уже очень долгое время не доходят руки, чтобы всё разобрать и каталогизировать.
Я стал задаваться вопросом: а как бы поудобнее всё это начать хранить, чтобы потом ещё и искать было легко.
Простое гугление предлагало использовать всякие сервисы по типу OneNote (в общем-то я его уже использовал, но он слишком тормознутый и глючный как по мне), Evernote (тоже как-то было дело, но отказался из-за ограничений в бесплатной версии) или Notion, который ушёл из России и судя по новостям начал удалять все данные даже тех, у кого была подписка...
Были предложены и другие сервисы, но практически все они либо были платными, либо бесплатные версии были настолько ограничены, что ими было бы невозможно пользоваться.
К тому же, ситуация с Notion показала, как можно потерять все свои записи по желанию их создателей.
И я наткнулся на Obsidian, который умел всё, что мне было необходимо + все данные можно хранить локально в формате MarkDown.
Что мне очень понравилось:
+ Гибкая настройка практически всего, чего можно. Очень много всяких настроек.
+ Приятный и интуитивный интерфейс + куча готовых цветовых схем на любой вкус.
+ Возможность устанавливать всякие расширения.
+ Использование тегов для каталогизации документов.
+ Создание и использование нескольких хранилищ.
Но не обошлось и без минусов... И самый главный - это платная синхронизация между устройствами.
Все советовали создать приватный репозиторий на гитхабе и выгружать всё в него. Но это надо было постоянно делать лишние действия пуши перед редактированием и пуллы после...
Но тут я решил пойти более простым путём и реализовать это всё "своими силами") Почему в кавычках? Потому что это делает за меня Я.Диск =)
Я просто создал папку в Я.Диске, в которой у меня хранятся все мои хранилища данных.
Например, если я правлю документ на компьютере, он сразу же выгружается на мой Я.Диск, а затем синхронизируется с Я.Диском на ноуте. И наоборот. Работает идеально!
На телефоне сделал аналогичную штуку: в Я.Диске можно настроить автоматическую синхронизацию помеченных папок.
К тому же, Я.Диск позволяет восстанавливать удалённые или изменённые файлы, то есть я имею возможность работать с резервными копиями, если вдруг что.
+ в браузере есть расширение
@nullpp #обучение #obsidian #записи
Ведёте ли вы записи того, что возможно потом пригодится?
Перед тем, как я начал учиться на аналитика данных, я просто сохранял все найденные интересные страницы в закладках, а интересные посты в ВК или в ТГ просто в избранном. И там до сох пор большущая куча неразобранных статей, до которых уже очень долгое время не доходят руки, чтобы всё разобрать и каталогизировать.
Я стал задаваться вопросом: а как бы поудобнее всё это начать хранить, чтобы потом ещё и искать было легко.
Простое гугление предлагало использовать всякие сервисы по типу OneNote (в общем-то я его уже использовал, но он слишком тормознутый и глючный как по мне), Evernote (тоже как-то было дело, но отказался из-за ограничений в бесплатной версии) или Notion, который ушёл из России и судя по новостям начал удалять все данные даже тех, у кого была подписка...
Были предложены и другие сервисы, но практически все они либо были платными, либо бесплатные версии были настолько ограничены, что ими было бы невозможно пользоваться.
К тому же, ситуация с Notion показала, как можно потерять все свои записи по желанию их создателей.
И я наткнулся на Obsidian, который умел всё, что мне было необходимо + все данные можно хранить локально в формате MarkDown.
Что мне очень понравилось:
+ Гибкая настройка практически всего, чего можно. Очень много всяких настроек.
+ Приятный и интуитивный интерфейс + куча готовых цветовых схем на любой вкус.
+ Возможность устанавливать всякие расширения.
+ Использование тегов для каталогизации документов.
+ Создание и использование нескольких хранилищ.
Но не обошлось и без минусов... И самый главный - это платная синхронизация между устройствами.
Все советовали создать приватный репозиторий на гитхабе и выгружать всё в него. Но это надо было постоянно делать лишние действия пуши перед редактированием и пуллы после...
Но тут я решил пойти более простым путём и реализовать это всё "своими силами") Почему в кавычках? Потому что это делает за меня Я.Диск =)
Я просто создал папку в Я.Диске, в которой у меня хранятся все мои хранилища данных.
Например, если я правлю документ на компьютере, он сразу же выгружается на мой Я.Диск, а затем синхронизируется с Я.Диском на ноуте. И наоборот. Работает идеально!
На телефоне сделал аналогичную штуку: в Я.Диске можно настроить автоматическую синхронизацию помеченных папок.
К тому же, Я.Диск позволяет восстанавливать удалённые или изменённые файлы, то есть я имею возможность работать с резервными копиями, если вдруг что.
+ в браузере есть расширение
Markdown Web Clipper, которое в один клик делает из страницы md-файлик, готовый для размещения в Obisdian.@nullpp #обучение #obsidian #записи
🔥8👍2
Forwarded from Simulative
Итоговый проект нашего студента по курсу «Аналитик данных»
Сегодня хотим поделиться работой студента Михаила, который успешно завершил курс и получил отличный фидбек от кураторов 🙌
Ссылки на проект:
👩💻 GitHub
📊 Дашборды в светлой теме и тёмной теме
Гордимся такими результатами и рады видеть, как наши студенты продолжают развиваться в аналитике. Желаем Михаилу успехов в следующих шагах — впереди у него курсы по BI-аналитике и инженеру данных💪
📊 Simulative
Сегодня хотим поделиться работой студента Михаила, который успешно завершил курс и получил отличный фидбек от кураторов 🙌
Проект реализует полный цикл автоматизированного сбора данных по API, их загрузку в PostgreSQL и визуализацию ключевых метрик через Yandex DataLens. Цель — обеспечить стабильный поток данных для аналитики клиентской активности, продаж и ассортиментной матрицы.
Ссылки на проект:
Гордимся такими результатами и рады видеть, как наши студенты продолжают развиваться в аналитике. Желаем Михаилу успехов в следующих шагах — впереди у него курсы по BI-аналитике и инженеру данных
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2🔥1
Всем привет!)
Пригласили меня в эфир =) Поделиться своим опытом обучения, и не только
Пригласили меня в эфир =) Поделиться своим опытом обучения, и не только
🔥4
Forwarded from Simulative
Вебинар: как студенты Simulative входят в аналитику с ноги с нуля
Сложно понять, как построить свой карьерный путь? На вебинаре предложим несколько стратегий, которые помогут вам определиться с выбором профессии.
В программе — истории, как маркетолог перешёл в аналитику и вышел на работу в крупную IT компанию, как студенты находят работу ещё до окончания курса, и как преподаватель с восьмилетним опытом стал аналитиком.
➡️ Зарегистрироваться на вебинар
❗️ Встречаемся 11 ноября в 19:00 МСК
🎁 На мероприятии мы разыграем денежные сертификаты на обучение в Simulative. Регистрируйтесь, чтобы узнать, как принять участие в розыгрыше и услышать, как делается карьера в аналитике из первых уст!
➡️ Зарегистрироваться на вебинар
📊 Simulative
Сложно понять, как построить свой карьерный путь? На вебинаре предложим несколько стратегий, которые помогут вам определиться с выбором профессии.
В программе — истории, как маркетолог перешёл в аналитику и вышел на работу в крупную IT компанию, как студенты находят работу ещё до окончания курса, и как преподаватель с восьмилетним опытом стал аналитиком.
А ещё HR-специалист поделится актуальной статистикой по трудоустройству: как за сколько месяцев найти первую работу, и какие ошибки совершают новички при поиске вакансий.
Please open Telegram to view this post
VIEW IN TELEGRAM
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