🔋 Труба данных – Telegram
🔋 Труба данных
3.99K subscribers
330 photos
5 videos
9 files
449 links
Авторский канал обо всем, что происходит в мире работы с данными: хранение, обработка, визуализация, как мы принимаем решения и как мы становимся профессионалами в работе с данными.

Автора канала - @SimonOsipov
Download Telegram
Первый дашборд в новой рубрике #референс

Референс (от англ. reference — «отсылка», «справка») — это изображение, которое используется для поиска вдохновения и идей.

💡И то, что вдохновляет, и то, откуда можно взять концепцию.

Под этим хэштегом я планирую выкладывать примеры дашбордов и отмечать в них интересные детали, которыми можно обогатить свои проекты.

Почему я решила создать такую рубрику?

В визуализации данных популярен формат «прожарки», когда эксперты критически оценивают дашборды и предлагают варианты улучшения.

Такие разборы очень полезны для развития датавиз-навыков и понимания того, «как не надо», но для развития также важно тренировать насмотренность на хорошее и черпать свежие идеи.

Итак, открывает рубрику «антипрожарки» дашборд Прадипа Кумара HR Attrition Dashboard, который занял 3-е место в номинации «Бизнес-аналитика» в конкурсе Information is Beautiful 2022.

Что интересного хочется отметить?

Есть переключатель «Показать только текучесть», чтобы убрать с дашборда отображение второй метрики

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

В карточках KPI названия метрик написаны светло-серым цветом и более мелким шрифтом, потому что акцент сделан на сами числа

Есть переключатель для изменения гранулярности графика с динамикой: W/M/Q/Y – неделя/месяц/квартал/год.

При выборе другого периода перестраивается сама визуализация и изменяется название в подписи предыдущего периода для величины изменения

В этом же графике динамики есть ориентир для анализа — линия среднего значения

Таблица небольшая и находится в нижнем правом углу, таким образом не занимает много места и не перетягивает внимание на себя.

Кому нужно, тот выгрузит или увеличит таблицу с детализированными данными, а по умолчанию акцент в дашборде сделан на общие показатели и визуализации

Указан автор дашборда (в левом нижнем углу)

Что еще вы бы взяли на заметку?

Для развития рубрики присылайте примеры дашбордов: @alisaruchkina. Буду рада их рассмотреть!

#дашборд
👍6🔥32
Агенты (не AI) говорят, что появился черновик (то есть сырая версия до редактуры) второй версии кабанчика.

@ohmydataengineer
👍10
Пятничный юмор.
Хайп-трейн не остановить!🤪
🔥21😢1
Мокаемся в Study & Learn

В OpenAI завезли Study & Learn. Я решил попробовать на o3 модели, можно ли помокаться по SQL

Промпт на входе.

I want to test my knowledge on SQL, can you prepare test questions for me and work on them with commentary?

Experience level - advanced
Focus area - should cover all aspects
Format & length - mix, it should cover standard 30 minute interview


Получился план из 6 задач

===
1. Окна: вторая по выручке дата
Таблица sales(salesperson_id, sale_date, amount). Для каждого продавца вернуть дату второй по сумме выручки за день.

Классическая задача на оконки с агрегатными функциям. GROUP BY, SUM(amount), ROW_NUMBER(), фильтр rown = 2, исключить продавцов с одной датой.

Диалог

Я специально забыл GROUP BY → бот подсказал.

Потом бот спросил, как исключить продавцов с одной датой → добавил COUNT(*) OVER (...) >= 2 Что на самом деле было избыточно, так как rownum покрывал этот юз кейс, на что я указал агенту =)

===
2. Индекс под ORDER BY … LIMIT

Какой индекс стоит использовать


SELECT order_id, total_amount
FROM orders
WHERE customer_id = $1
AND status = 'shipped'
ORDER BY order_date DESC
LIMIT 10;


Варианты индексов

A. (status)
B. (customer_id, status, order_date DESC, order_id)
C. (order_date)
D. (status, customer_id)


Диалог

- Сначала выбрал D.
- Бот уточнил про сортировку и LIMIT и задал наводящий вопрос по high/low cardinality.
- Перешёл на B — бот подтвердил, что это оптимально, и задал вопрос, надо ли что-то изменять если мы хотим поменять сортировку по order_date по нарастающей и ухудшится ли план, если убрать order_id из индекса

===
3. Теория: write-skew

Формулировка

Пояснить, что такое write-skew на уровне REPEATABLE READ и почему SERIALIZABLE это ловит.

Диалог

Я совершенно не помнил про write-skew и описал lost-update проблему, но затем бот зафоллоапил пример, и уточнил про отличие от lost-update

В рамках SERIALIZABLE обсуждение было про predicate locking

===
4. Рекурсивный CTE: зарплата команды

Таблица employees(emp_id, manager_id, salary), у CEO manager_id is null

Для каждого менеджера посчитать кол-во и сумму зарплат всех подчинённых (прямых и косвенных).

Диалог

Всеми любимые задачи на рекурсию =) Причем эта была не классический top down, а down to top, что было более интересное
Я несколько раз косячил в SQL, и бот поправлял и делал follow-up примерно, как бы это было бы на интервью

===
5. Когда нужен PL/pgSQL

Выбрать, где процедурное расширение уместнее чистого SQL.

Варианты

A. Обновить все строки сложной формулой.
B. Пройти курсором, вызвать веб-API для каждой строки, сохранить ответ.
C. Джойнить три большие таблицы, агрегировать и вернуть отчёт.
D. Ночью обновлять материализованное представление.

Диалог

Выбрал B. Бот согласился. Follow up question:
What precaution would you take to avoid bogging down the DB while that PL/pgSQL loop waits on each API call?

===
6. JOIN + агрегаты: завышенная сумма

Формулировка

Дебаг запроса - Problem: Finance says some “total_spent” figures are *too large*.


SELECT
c.customer_id,
c.name,
SUM(o.total_amount) AS total_spent,
SUM(oi.quantity) AS total_items
FROM customers c
LEFT JOIN orders o
ON o.customer_id = c.customer_id
LEFT JOIN order_items oi
ON oi.order_id = o.order_id
WHERE o.status = 'shipped'
GROUP BY c.customer_id, c.name;


Тут бот ожидал 4 изменения и переписанный запрос. Бот указаывал опечатки, проверял наличие alias

===
Итог

- Бот ведёт сценарий, даёт ровно столько подсказок, сколько нужно, иногда ожидает избыточного ответа
- После сессии остаётся готовый «черновик» диалога со всеми вариантами и решениями
- Стоит попробовать помокать с чатгпт, особенно если у вас есть готовый список вопросов и / или тематика, которую вы хотите проработать. Однако я думаю, есть и более подходящие агенты (Если кто-то знает какие-нибудь, посоветуйте в комментариях)
1👍242
https://dbtips.substack.com/p/the-core-principles-of-robust-data

Казалось бы, очень простые советы, но каждый раз смотря на очередной DWH, я удивляюсь тому, какую мешанину там напридумывали, что это очень тяжело поддерживать.

@ohmydataengineer - канал "🕯Труба Данных"
Please open Telegram to view this post
VIEW IN TELEGRAM
119
Все, что я люблю, в одной статье: Clickhouse, Tesla, Scalability

Думаю, по скриншоту все понятно 🤪

https://clickhouse.com/blog/how-tesla-built-quadrillion-scale-observability-platform-on-clickhouse

@ohmydataengineer - канал "🕯Труба Данных"
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥181
Пока идет лето и у меня не то, чтобы очень много мотивации и времени анализировать много материала, вот вам прекрасный, небольшой поток мыслей про анализ и любителей все анализировать. Вы же знаете таких прокрастинаторов? 😏

https://www.thdpth.com/p/why-smart-people-stay-stuck?utm_source=post-email-noscript&publication_id=865472&post_id=169428145

Sophisticated analysis ≠ real change.
Insight feels productive but rarely shifts day-to-day behavior.

Analysis can become a high-tech form of procrastination.
The more beautiful the dashboard, the easier it is to hide from hard decisions.

Action lives elsewhere.
Changing environments, adding friction to bad choices, and enforcing simple rules beat perfect understanding every time.

Set “analysis budgets.”
Limit research time, then force an experiment—momentum > perfection.

Wisdom isn’t knowing, it’s doing.
Measure success in shipped iterations, not completed post-mortems.


@ohmydataengineer - канал "🕯Труба Данных"
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥5👍3
Какое-то время назад просил вас пройти опросец про исследование рынка дата-специалистов. Вот результаты https://devcrowd.ru/ds25

@ohmydataengineer - канал "🕯Труба Данных"
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11🔥2
Chat Control в EU

Не технический пост (скоро будет!), но из мира pivacy. ЕС планирует вводить отмену сквозного шифрования и начать автоматическое сканирование перс данных. Интересно, на чем планируют обучать модели для контроля 👨‍🦳

Сайт с отслеживанием ситуации https://fightchatcontrol.eu/

Более интересный детальный анализ - https://www.patrick-breyer.de/en/posts/chat-control/
Please open Telegram to view this post
VIEW IN TELEGRAM
😢3👍1🔥1
https://spiess.dev/blog/how-i-use-claude-code

Повайбкодим немного?
Внеочередная, но хорошая статья про санитарные нормы использования LLM (конкретно, Клода)

@ohmydataengineer - канал "🕯Труба Данных"
Please open Telegram to view this post
VIEW IN TELEGRAM
4👍4💩2
От этого мема меня порвало в клочья 😂

@ohmydataengineer
2🔥43👍6
Насколько Iceberg залез во все просто углы, даже Apache Hive в своем Linkedin на 500 человек рассказал, что Apache Hive 4 из коробки поддерживает Iceberg!😂

@ohmydataengineer - канал "🕯Труба Данных"
Please open Telegram to view this post
VIEW IN TELEGRAM
12🥱4
В последнее время я чет не очень много пишу, почему - да не знаю.
Пока вы ждете новых заметок от меня, почитайте другие каналы про данные, например, вот этот. Всегда рад помочь коллегам по цеху маленьким репостом 😏
💩2
Они все лучше меня… 🤦‍♂️

Круглосуточно обитая в телеграмме, читаю кучу профессиональных блогов.

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

И таки недавно получил кучу комментариев, которые писали что и я в какой-то степени смог смотивировать людей, к каким-то переменам. И я подумал, да как же это круто. 🤟

В очередной раз понимаю что всегда кто-то будет круче, экспертней и опытней. Но только работа над собой принесёт результат. И не стоит впадать в уныние и апатию, когда что-то не получается и бесконечный поток чужих успехов кажется бурной рекой в которую тебе не войти.
Всё обязательно получится! 🍸

#разговоры_о_важном

ПС: я продолжаю какое-то непоследовательное вхождение в профессию и вписался на курс визуализации от дата-журналиста. Посмотрим что из этого выйдет, и обязательно расскажу и вам.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6💩31🔥1
https://github.com/fortiql/data-forge

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

𝐃𝐚𝐭𝐚 𝐄𝐧𝐠𝐢𝐧𝐞𝐞𝐫𝐢𝐧𝐠 is not just about learning new tools.
It is about understanding 𝐩𝐚𝐭𝐭𝐞𝐫𝐧𝐬 — pipelines, layers, orchestration, federation — and practicing them until they flow smoothly. Tools change, but principles endure.

I wanted a place to build pipelines, see data move, and try new tech without waiting on corporate infrastructure. A space to polish best practices and experiment with close-to-real flows.

So I'm building 𝐃𝐚𝐭𝐚 𝐅𝐨𝐫𝐠𝐞.
⚙️ A local, open-source modern data stack you can run on a laptop:
Spark · Trino · ClickHouse · Iceberg · Kafka (Schema Registry) · Airflow (3!) · MinIO · Hive Metastore · Superset · JupyterLab

Wired with Docker Compose. Resettable. No cloud bills.

The focus is 𝐟𝐥𝐨𝐰, not just services:
A retail simulator generates realistic events (orders, payments, shipments, customers)
Kafka → Spark Structured Streaming → Iceberg bronze on MinIO
Spark refines bronze → silver → ClickHouse gold
Trino queries across Iceberg, ClickHouse, Postgres in one SQL surface
Superset visualizes. Airflow orchestrates
▶️ To start: docker compose --profile core up -d

Every week I will share what worked, what broke, and what I learned.
I am open to ideas, contributions, and strong opinions on how a lakehouse should feel.


В общем, залетайте поиграться!

@ohmydataengineer - канал "🕯Труба Данных"
Please open Telegram to view this post
VIEW IN TELEGRAM
1🔥409👍9🥱3
https://smartdataconf.ru

Все как всегда, Смартдата остается лучшим источником послушать технические доклады про DE на русском языке и понетворкаться. Я в очередной раз без доклада, потому что ленивая жопа и нет ни сил, ни времени, хотя материала накопилось. Но вам оч советую, особенно учитывая, что программа не замусорена хайпом про AI.

Сам, ввиду георграфических сложностей, буду смотреть онлайн.

(как видите, никаких реферальных ссылок, никто за рекламу мне не платит, пора бы уже запомнить, что я люблю то, что делают ребята, безусловно и меня никто и не просит ничего. Но если вдруг вам нужна скидка - приходите в личку, что-нибудь придумаем, напишем).

@ohmydataengineer - канал "🕯Труба Данных"
Please open Telegram to view this post
VIEW IN TELEGRAM
👍164💩1
https://www.anthropic.com/engineering/writing-tools-for-agents

Если на волне хайпа вам работодатель ставит задачи "А давайте сделаем наш собственный MCP, чтобы аналитики могли использовать его в работе с данными!", у Anthropic вышла неплохая поясняющая статья про то как писать хорошие тулзы для агентов.... при помощи агентов! (да-да, конечно же, промоутят использование 😃, но не отменяет набора принципов, которые описаны в статье)

@ohmydataengineer - канал "🕯Труба Данных"
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10💩1
Forwarded from Oleg K
Уже совсем скоро Smartdata'25, а это значит что там будут свежие результаты опроса State-of-Data, ну а это значит что я призываю всех и каждого не просто принять участие самим, но и распространять информацию об этом.

➡️ Сам опрос тут
пройди сам, приведи троих коллег из соседних компаний :)

зы результаты прошлого года в презентации тут, видос тут
зыы лендос с результатами '24 + сырье в виде arrow(хехе) уже вот-вот на подлете
зыыы доклад с результатами '25 откроем для всех сразу же после конфы
3🔥1💩1
Данные от самого OpenAI, для чего используют ChatGPT.

Мы в пузырике, в общей доле запросов к модели, программирование - всего 4%

@ohmydataengineer - канал "🕯Труба Данных"
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13😢1