Раздел 42 · Аналитика данных с нуля

Рабочая среда аналитика: клиент, папка проекта, Git и записки

junior~25 мин

без входаВойди, чтобы отмечать прогресс, вести заметки и решать задачи в редакторе. войти

Бран · продюсер «Хроник Пограничья»

Инвесторы спросили, откуда в отчёте 6372 рубля за 27 марта. Я нашёл у себя три файла: покупки_27.xlsx, покупки_27_итог.xlsx и покупки_27_итог_правка.xlsx. В них 8759, 6970 и 6372. Какой правильный? И как вы в агентстве храните расчёты, чтобы такого не было?

В прошлом уроке мы честно посчитали пятничную выручку Брана. Прошла неделя, и цифра уже потерялась среди трёх файлов с похожими именами. Так бывает с любым расчётом, у которого нет дома. Сегодня соберём рабочее место аналитика: где писать запросы, где считать на Python, как сложить файлы, зачем аналитику Git и куда записывать выводы. В конце ответим Брану, какой файл правильный.

Лабораторный журнал

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

У аналитика то же правило. Цифра чего-то стоит, только если её можно пересчитать с нуля и получить то же самое. Это свойство называют воспроизводимостью. Всё рабочее место аналитика устроено ради неё: запрос лежит в файле, данные лежат нетронутыми, каждый шаг подписан.

Где пишут запросы: SQL-клиент и BI

В уроке про инструменты ты уже встретил SQL-клиент. Теперь заглянем внутрь. Возьмём DBeaver (у него есть бесплатная версия) или DataGrip от JetBrains. Оба устроены похоже:

  • слева дерево подключений: хранилище, в нём схемы, в схемах таблицы и столбцы;
  • в центре редактор запроса с подсветкой и подсказками имён столбцов;
  • внизу результат таблицей, которую можно выгрузить в CSV или Excel.

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

Регулярные расчёты переезжают в BI: запрос живёт внутри дашборда и пересчитывается сам. Разовые расчёты живут в клиенте и в папке проекта. В курсе клиент встроен в урок: со следующего урока ты пишешь запросы прямо на странице.

Где живёт Python: Jupyter или VS Code

Для Python у аналитика обычно ноутбук Jupyter: документ из ячеек, где код, результат и пояснения лежат рядом. Это удобно для исследования: запустил ячейку, посмотрел на таблицу, поправил, запустил снова.

Второй вариант это редактор VS Code. Он открывает ноутбуки .ipynb прямо у себя, а рядом в том же окне держит .sql-файлы, README и терминал. Выбирай, что удобнее: файлы получаются одни и те же. Как поставить Python и запустить первый ноутбук, разберём в уроке про блокнот, когда дойдём до Python.

Папка проекта

Один вопрос заказчика, одна папка. Вот как могла бы выглядеть папка для пятничной выручки Брана:

friday-revenue/
├── README.md                     вопрос, как повторить расчёт, где записка
├── data/
│   ├── raw/                      выгрузки как есть, руками не правим
│   │   └── purchases_2026-03-27.xlsx
│   └── clean/                    результат чистки, его можно пересоздать
├── queries/
│   ├── 01_purchases_day.sql      покупки за день из хранилища
│   └── 02_revenue_by_platform.sql
├── notebooks/
│   └── 01_revenue_check.ipynb    проверки и график
└── .gitignore                    что не уходит в Git

Четыре правила этой папки:

  1. data/raw/ только для чтения. Это та же привычка, что в прошлом уроке: исходную выгрузку не трогаем, чистка идёт в отдельный файл или в запрос.
  2. Номера в именах. 01_, 02_ показывают порядок шагов. Новичок по ним пройдёт расчёт сверху вниз.
  3. Никаких итог_правка_новый. Версия файла живёт в истории Git, а не в его имени.
  4. README в корне. Три-пять строк: какой вопрос, откуда данные, в каком порядке запускать.

урок из курса

Урок из курса «Аналитика данных с нуля». Курс покупается один раз и остаётся навсегда: 500 ₽.

Оплата пока не подключена: премиум и курсы открываются промокодом.