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

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

Большие посты тут
https://датавиз.рф
Download Telegram
Через тернии к Визам 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
Быстро для Ad-hoс загрузить через clickhouse-client 15GB файлик =)

Чтобы себе не забыть, пример итоговый вчера насобирал из 2х issues и доки. AI не давал тоже сразу все нужные параметры =/

cat large.csv | tr '\r\n' '\n' | clickhouse-client --host YOUR_HOST \
--secure \
--input_format_allow_errors_num=200000 \
--user YOUR_USER \
--format_csv_delimiter=";" \
--database db1 \
--format_csv_allow_single_quotes=0 \
--port 9440 \
--password YOUR_PASS \
--query="INSERT INTO YOUR_TABLE FORMAT CSV"


PS - внутри КХ занимает в сжатом виде всего 1G =)
🔥4
Крутое, что долго ждали и вот =)
Сейчас идет большая конфа Яндекса - Data & ML 2B, на ней сделали пару анонсов очень крутых о DataLens

- Появилась Gallery (hello, Tableau) - и там уже можно скачать Виджет Карты дашбордов 🤌
- Воркбуки можно экспортировать - импортировать ⚡️, чтобы быстро переносить между инсталляциями, помню, как долго мы ждали такую фичу заливки дэшей без толстого клиента (hello, again)
- Как у взрослых (hello, SAP), появилась сертификация, я даже немного принимал участие в проверке вопросов 🙈
🔥14👍41
Проводил месяц назад вебинар ребятам из Lenta Tech на предмет ClickHouse около BI (обещал с прошлого года, стыдно!), вот вчера наконец отдал Лене призы победителям квиза и теперь можно поныть =)

- Юнислайд прикольный продукт сделали, если вы хотите не просто в тишину болтать, а устроить движ =) из 100+ участников 50 отвечали активно

- Тайминги - наше всё, из контента успели только 1/3 обсудить, почему - пункт 3

- Надо понимать, кто придет, на сколько сложные темы быстро будут поняты и тп, в данном случае вроде Айтишники, но не Аналитики и не дата ребята

- В целом - я за то, чтобы пройти 15 слайдов из 50, но чтобы пришедшие поняли контент, тут такая простая юзер стори "давайте сделаем дэш" не работает, про ClickHouse можно пояснять часами =)

// Хотел обкатать материал перед таким же докладом открытым, но теперь пытаюсь понять, как определить аудиторию =)
4
Friday Bayan, but still like it =)
😁4💯1
Красная черепаха.
- Посмотрели с ребёнком этот красивый и трогающий мультик.
- При чём тут визуализация, Юр?
- В этой анимации нет ни одного слова, весь смысл передается только картинкой. И в хорошей визуализации должно быть так же - смысл должен считываться с минимальным пояснениями!
❤‍🔥15
Вводная
Конференция. На стенде Яндекс Облака стоит нейробар, где через большой телек можно заказать себе коктейль безалкогольный. Одна конференция Ритейловая, другая - для промышленности.

Техника
YaGPT с фронтом -> Трекер -> YDB и потом DataLens

Что получилось
И вроде датасет один, но визуализации и метрики под сегменты рынка получились совсем разные. О как.
👍5🍾3🔥2
Merge Движок в ClickHouse
Умный UNION для нескольких разноплановых табличек, которые не поJOINены, но очень хочется аналиизровать их вместе.
TLDR
CREATE TABLE all_goods_movements
ENGINE = Merge(default, 'warehouse_movements|sales|purchase_orders');

Позволяет смотреть все 3 таблицы, как будто одну, со всеми оптимизациями ClickHouse, даже если поля не совпадают.

Разъяснительный пост на примере 3 таблиц (закупка, остатки, продажа).

Сложность 1/3
Полезность 3/3

В Маркете у нас в такую табличку лились несколько срезов по Маркетингу, потому что приезжали в разное время, но тогда еще Merge не был таким умным и срезы приходилось выравнивать по полям.😔
🔥8🤯4