TGViewer
Симулейтив Симулейтив @simulative_official · 7.45K subscribers
Post #2978 1.26K
О значимости времени и стандартов

Всем привет! На связи Георгий Семенов, руководитель команды Analytics Engineer в Яндекс и ментор курса «Инженер данных».

Давным-давно, еще в доковидные времена, нам понадобилось настроить сбор ежедневных статистик наших мобильных приложений из личного кабинета Apple Developer.

Настроили импорт через API — миссия выполнена. Но не тут-то было. Данные не сходились с другим источником, который мы использовали для учета установок и сессий приложений (Appsflyer).

Довольно быстро выяснили, что Apple отдаёт даты в таймзоне Pacific Time, который меньше UTC на 7 часов летом и на 8 зимой, тогда как мы всегда использовали UTC. Сейчас Apple уже умеет в UTC, но тогда это стало для нас проблемой, ведь мы не могли сверить свои финансовые и продуктовые отчеты. Хорошо, что нам было с чем сверять. Иначе ошибка могла пройти незамеченной — и такое случается.

А ведь большинство табличных данных — это time-series.

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


И да — для этого недостаточно указать дефолтную timezone в настройках вашей БД.

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

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

Во многом именно поэтому считается, что 80% работы аналитика — это очистка и подготовка данных. Но качественная работа архитекторов и инженеров данных может в несколько раз упростить аналитику жизнь.

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


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

И что, например, поле business_dttm во всех time-series таблицах является первичным ключом партиции и имеет тип timestamp с таймзоной UTC, а колонка product_id во всех таблицах означает одну и ту же сущность (по крайней мере, в рамках одного бизнес-домена, но это уже отдельная история).

Так они совершат меньше ошибок и зададут вам меньше вопросов. Особенно, если среди них есть неискушенные бизнес-пользователи, а у вас self-service BI.

⁉️ Так как же мы решили этот кейс?

Поскольку date, в отличие от datetime, нельзя конвертировать в наш стандартный часовой пояс, то надо явно дать понять пользователю о нестандартной ситуации. И если мы называли поле с датой business_date, то это назвали business_date_pacific_time.

💬 А как бы сделали вы? Пишите в комментариях) И если у вас были похожие истории — тоже обязательно поделитесь!

📊 Simulative
  • 🔥 8
  • ❤ 5
More from @simulative_official
  1. Oct 5, 2026#проанализировали_и_поняли
  2. Oct 2, 2026🐍 Библиотека Pandas для анализа данных Pandas — это мощный инструмент для анализа данных,…
  3. Oct 1, 2026Post #3592
  4. Sep 30, 2026💻💻💻💻💻 Откуда на самом деле берутся данные? На учебных задачах всё просто: тебе дают г…
  5. Sep 30, 2026⭐️ Топ метрик, которые должен уметь считать каждый аналитик Рекламные метрики — это не про…
  6. Sep 29, 2026⭐️ Уже сегодня: как ML-инженер учит компьютер находить смысл в тексте Сегодня покажем проф…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →