Через тернии к Визам
588 subscribers
99 photos
18 videos
41 links
Про DWH, CH, BI и автоматизации рядом
Канал это место для дискуссий =D То есть не стесняемся задавать вопросы, уточнять и говорить свое фи.

Канал ведёт Юра, который любит данные, оптимизации в БД и визуализацию

Большие посты тут
https://датавиз.рф
Download Telegram
Интерфейсы
Они могут быть разными и раздражать или наоборот нравиться удобством. Но быть очевидными для потребителя.

Ребенку заказывал вредную еду на вечер, увидел вот такое в интерфейсе - пока не введешь 2 раза "Соуса не надо" - заказ сделать нельзя.

Показалось странным, это как если бы официант в кафе у вас спрашивал 2 раз,
- какой соус хотите
- не надо
- а второй соус какой хотите?

UPD - Мне пояснили, я нерепрезентативен, механика сделана, чтобы люди точно не забыли выбрать 2 соуса и не жаловались =)
😁5
Media is too big
VIEW IN TELEGRAM
Только что попробовал llm X Clickhouse

ммммм - как будто НАДО прикручивать внутрь хранилища любого =)
🔥31
Friday Viz Joke. =)
😁9
This media is not supported in your browser
VIEW IN TELEGRAM
Лендинг дашбордов.
Небольшой видосик, как собрать лендинг (главная или карта дашбордов) для того, чтобы пользователи перестали пользоваться неактуальной аналитикой =)

Ставь ⚡️, если хочешь повторить и нужен код =)
Лайк шер приветствуется =D

И как можно прицепить YaGPT для поиска аналитических инструментов за 2 клика O_o
206
Media is too big
VIEW IN TELEGRAM
Привет!

Новые чарты на Демо-дашборде Editor Datalens!

Таблица анализа отклонений Период к периоду - позволяет найти быстро, что же произошло вчера в вашем бизнесе

⚈ Долгожданная Pivot-таблица в дашборде, позволяет накликать любые разрезы и метрики не переходя в редактирование чарта.

Смотрите Видео, применяйте код, приходите с пожеланиями!
🔥85
Clickhouse 25.4
Тут ребята из ClickHouse опять сделали кучу крутых оптимизаций, вот выжимка, что применимо в BI продуктах для скорости/стабильности ваших дэшиков =)

🛡 Random Early Drop on Overload
КХ начинает дропать рандомные приходящие запросы, чтобы ограничить полный DDOS системы. Было как-то пару лет назад, когда у нас кешировалка потеряла все кэши утром, когда спрос на аналитику высокий; Вдруг 400 человек смогли заDDOSить нашу инсталляцию за час примерно.

🛡 CPU Workload Balancer
- Ооо, я давно хотел разобраться, как сделать в одной инсталляции КХ и работу с DWH источниками стабильную и чтобы аналитикам можно было какие-то Ad-hoc с минимальным TTL грузить, но был страх, что они убьют КХ. Теперь можно задавать вес пользователю для Ad-hoc табличек поменьше =)

Lazy Materialization
- ТОП! про фичу скриншот!Сначала читаем нужные колонки по WHERE и оттуда берем всю инфу по условиям и только потом читаем остальные столбцы по уже отфильтрованным parts! Мега штука, когда у вас сортировка есть / хорошая фильтрация. Уже в 25.4, но всем, у кого ClickHouse в Production очень советую ждать LTS версий =)
Скорость увеличивается в десятки раз, но надо еще будет научиться кушать =)

Dynamic Sharding for JOINs
- Если мы делаем JOIN по 2м таблицам с одинаковым PK (Primary Key) то ClickHouse будет иначе параллелизировать запросы, выводя интервалы значений по первичным ключам каждому потоку - Join более эффективный получается, тк потоки не зависят друг от друга вообще

Correlated Subqueries
- EXISTS в PostgreSQL лет 10 назад сильно изменил у меня один пайплайн по скорости =) Теперь надо понять, как это прицепить еще в BI по скорости и стоит ли =) Но точно можно писать более понятные запросы к небольшим таблицам через подзапросы =)

Вообще, советую смотреть видосики с презентаций, они поднимают настроение сами по себе =)
👍4🔥2🦄1
Friday, oh, Wednesday Joke =)
Всем хороших выходных, отдохнуть, почитать и попробовать AI где-то в процессах на даче и в путушествиях =)
5
Через тернии к Визам pinned «Привет! Меня зовут Юра, этот первый пост будет пополняться основными концепциями, чего в целом есть в канале. О себе E-learing -> РУСАЛ -> ТПЛЮС -> Ростелеком -> СИБУР -> Яндекс-Маркет -> Cloud КХ, CH - Clickhouse (Клик), очень крутая система, чтобы над ней…»
Просто для себя больше - постоянно забываю, как JSON обрабатывать в CH.
Яндекс Трекер через CH так льется по умолчанию =)


SELECT
-- Get value for some Key
JSONExtractString(
-- Pivot it Down to Rows
arrayJoin(
-- Make JSON Array
JSONExtractArrayRaw(
-- clean string for JSON
replace(
replace(value, '''', '"'),
-- if from Py - remove None
'None','null')
)), 'id') AS param_value
FROM
(
-- some JSON Data, for example, from Tracker
SELECT '[{"id": "67e950e83e4ff5384392841b", "settingsId": 5, "clockStatus": "PAUSED", "violationStatus": "NOT_VIOLATED", "warnThreshold": None, "failedThreshold": 86400000, "warnAt": None, "failAt": "2025-03-31T14:10:47.767+0000", "startedAt": "2025-03-30T14:10:47.766+0000", "pausedAt": "2025-03-30T14:14:52.508+0000", "stoppedAt": None, "pausedDuration": 0, "toFailTimeWorkDuration": None, "spent": 244742, "previousSLAs": [], "startShiftedByPause": "2025-03-30T14:10:47.765+0000", "failIn": None}, {"id": "67e950e83e4ff5384392841a"}]' AS value
)
👍3
Продолжаю смотреть шикарный сериал (Остановись и гори). Вспомнилось при просмотре этой серии.

На 2 или 3 курсе, на программировании, надо было придумать ПО, которому нужна БД, написать интерфейс (вроде Delphi), и связь с БД, показать, что получилось и написать доку. Работа в парах.
Мои друзья Тема и Гарик сели готовиться, идеи генерить, придумали автоматизировать прокат машин. В итоге так увлеклись концепцией, интерфейсом, дизайном, картинками и кнопочками, что до БД не добрались... В итоге на показ подготовили порядок кнопок, которые надо протыкать, чтобы якобы писать в БД и забирать из БД инфу.
Препод похвалил: молодцы, вот, смотрите все, как надо делать продукты, которые продаются. Ржали потом всем потоком, когда зачет получили =)

А я купил Ораклу за 300 рублей на двух дисках на Царицынском РР, поставил дома на компе и показал концептуально, что софт должен отдельно от БД стоять, а ПО даже и не помню, про что было =)
😁72
Давайте расскажу про важность поддержки нейронных связей и привычку.

В 2022 году мы перезжали из Tableau в DataLens, у нас были сжатые сроки, ограниченный функционал на тот момент. Dream Team Команда с разных юнитов, все бежали в одну сторону, проводили обучения, а кто-то перекладывал еще и данные (привет, экстракты, лучше ими не пользоваться).

Вроде получалось потихоньку, но чего-то не хватало, люди не жаловались, но и не говорили ”о – прям как в Tableau”.

И тут Даня Шевцов принес первую версию заголовка Дашборда, которая была прям очень похожа на то, что мы делали в Tableau. Это был WOW эффект, любой дашборд стал восприниматься «родным», даже если дальше было не совсем так же.

Элемент с лого был на столько привычен нейронным связям пользователей, что сам по себе повышал узнаваемость дэша и сглаживал дальнейшее использование. И вот тут мы услышали отзывы, что класс, всё работает как раньше =)

По сравнению с Tableau заголовок шаблонизируемый, например, на новый год мы туда одним кликом добавляем Деда Мороза или меняем логотип Юнита (привет, редизайн Маркета), вообще, включать картинки по облачной ссылке – это очень правильное решение =)

С тех под дашборды без заголовка скорее стали редкостью.

в Демо-дашборде он тоже есть
17🦄3
Небольшая статья [en] о том, что дизайнерам приходится пока заниматься оптическим выравниванием, так как компьютер не очень понимает, что такое красиво и что приятно человеческому глазу.

Ах, да, о чём это я - старайтесь избегать сложных фигур в визуализации данных, иначе надо будет еще думать о таких вещах =)
👍3
Отдавайте часть труда АИсе, не стесняйтесь =)

Тут пришел запрос, говорят, в DataLens что-то нельзя сделать с календарём + N таблиц фактов, все зависает

//нет, DataLens сам не зависает, тут в БД вопрос и в скрипте, который туда отправляется.

Я, так как такого не делал никогда в DL (и не стоит, если КХ), начал сомневаться, а вдруг правда мы отдаем плохой скрипт? хотелось протестить, но это ж создавать таблички, заполнять данными..... как бы ускорить тест?

АИса, включи мультики
- GPT, дай мне скрипт
создания и заполнения таблички календаря на 24 25 года
- GPT, дай мне скрипт создания и заполнения таблички факта продаж с начала 2025 года по сегодн
- аналогично до конца года планы

ИТОГО
-- 5 минут на создание структуры БД и заполнение
-- 1 минута на датасет
-- 1 минута на чарт

Ответ: Не, у нас все работает, давайте детальнее разбираться, что не так в структурах у вас
5🦄3
Small Friday joke.
Best dashboard - no dashboard.
💯6😁4
Не совсем про BI, но про продуктовый подход.
20 лет пользуюсь гибкими шлангами и думал, что же в них ещё можно поменять с точки зрения продукта. И вот. Ключик прям на шланге. =)
👍8🔥1🤓1
ClickHouse. База. #1.
Сортировка (aka primary key).
Одна из важнейших идей, как ускорить ваши дэшики.
Я всем объясняю сортировку на примере библиотеки.
Если ты придёшь в библиотеку и попросишь Шолохова и Булгакова, то библиотекарь пойдет до индекса букв Б и Ш соответственно и внутри быстренько найдет нужного тебе автора. Библиотекарь не будет перебирать все книги, это же очевидно.

То же самое надо сделать и в КХ для быстрого отклика дэша под конкретную историю.
Например, хотим быстро искать товары по брендам, мы создаем таблицу goods и указываем ORDER BY brand_name при создании

CREATE TABLE default.goods (
)
ENGINE = ReplicatedMergeTree('/data2viz/{shard}', '{replica}')
ORDER BY brand_name

Тогда при записи в таблицу данных КХ будет сортировать вставляемые записи по brand_name и записывать в блоки (гранулы):
- вот тут лежат значения от Bosch до Bose
- а вот тут от Apple до Ariston
по сути, вешая ярлычки на блоки данных.

И когда придет запрос с WHERE brand_name = 'LEGO' из всех блоков выберутся только те, которые подходят под условие попадания ярлычка от и до. То есть вместо FULL SCAN будет выбрано 1/100 или даже 1/1000 строк, неплохо?

Самая важная вещь - понять, как отсортировать табличку для вашего бизнеса и дэша.

Как выбирать поле сортировки с точки зрения техники?
1) Которое убирает наибольшее количество строк на примерно равнозначные множества
2) Которое будет сонаправлено другим полям, чтобы лучше сжать другие колонки на диске (влияет на I/O)

Как сортировать с точки зрения бизнеса?
1) Как у вас поделена ответственность в бизнесе за цифры между людьми / Категориями товаров?
2) Как у вас смотрят и принимают решения по конкретному региону, группе товаров?
3) Сколько людей смотрят дэш и по каким пользовательским историям?

Сортировка после запуска дэша
1) Выберите логи по людям, дэшам, чартам
2) распарсите логи и отберите самые частые в WHERE поля и что в них пробуют фильтровать и кто
3) соберите новую логику сортировки полей

Общее: Волшебной пилюли нет, надо думать и тестировать разные варианты =)

Прочти основной лонгрид от КХ после прочтения моей заметки =)
👍132🔥1
ЧГК. Вопрос зрителям. =)
Читаю книжку по истории математики. Как вы думаете, почему тут 2 таблички? И почему цвета разные?

Это положительные (красные) и отрицательные (чёрные) числа. Хотя в Европе отрицательные числа математики окончательно признали только в 17 веке, это палочки использовал Сунь Цзы при планировании битв еще в 5 веке до н.э.

И вопрос со звездочкой - почему горизонтальные есть и вертикальные, тут прям сложно, как ящик с усами =)

Для удобства чередования цифр для чтения
👍6🤔2🦄21
Friday Joke.
Всем спокойных выходных. =)
😁14
Media is too big
VIEW IN TELEGRAM
Mermaid. Диаграммы, блок-схемы, Гантт и многое другое внутри Текстового виджета DataLens.
Как встроить диаграмму процесса твоей компании внутрь DataLens за 5 минут и 0 рублей =)

Блин, опять забыл добавить титры в видос, каюсь, будут со следующего видео =)
🔥17👍5👏52
Friday joke.
А как у вас с серым DWH? С подстольными серверами MySQL? Купленными отдельно лицензиями 'более удобного' BI продукта? =)
😁6👍2
Media is too big
VIEW IN TELEGRAM
А что это у нас тут нафильтровано?

🙊 Как сделать выбранные фильтры в DataLens стандартными Community средствами? Ссылка

+ примеры, как выглядят сейчас фильтры в популярных магазинах и маркетплейсах 🥴
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7🔥5🤩1