Через тернии к Визам pinned «Привет! Меня зовут Юра, этот первый пост будет пополняться основными концепциями, чего в целом есть в канале. О себе E-learing -> РУСАЛ -> ТПЛЮС -> Ростелеком -> СИБУР -> Яндекс-Маркет -> Cloud КХ, CH - Clickhouse (Клик), очень крутая система, чтобы над ней…»
Просто для себя больше - постоянно забываю, как JSON обрабатывать в CH.
Яндекс Трекер через 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 рублей на двух дисках на Царицынском РР, поставил дома на компе и показал концептуально, что софт должен отдельно от БД стоять, а ПО даже и не помню, про что было =)
На 2 или 3 курсе, на программировании, надо было придумать ПО, которому нужна БД, написать интерфейс (вроде Delphi), и связь с БД, показать, что получилось и написать доку. Работа в парах.
Мои друзья Тема и Гарик сели готовиться, идеи генерить, придумали автоматизировать прокат машин. В итоге так увлеклись концепцией, интерфейсом, дизайном, картинками и кнопочками, что до БД не добрались... В итоге на показ подготовили порядок кнопок, которые надо протыкать, чтобы якобы писать в БД и забирать из БД инфу.
Препод похвалил: молодцы, вот, смотрите все, как надо делать продукты, которые продаются. Ржали потом всем потоком, когда зачет получили =)
А я купил Ораклу за 300 рублей на двух дисках на Царицынском РР, поставил дома на компе и показал концептуально, что софт должен отдельно от БД стоять, а ПО даже и не помню, про что было =)
😁7❤2
Давайте расскажу про важность поддержки нейронных связей и привычку.
В 2022 году мы перезжали из Tableau в DataLens, у нас были сжатые сроки, ограниченный функционал на тот момент. Dream Team Команда с разных юнитов, все бежали в одну сторону, проводили обучения, а кто-то перекладывал еще и данные (привет, экстракты, лучше ими не пользоваться).
Вроде получалось потихоньку, но чего-то не хватало, люди не жаловались, но и не говорили ”о – прям как в Tableau”.
И тут Даня Шевцов принес первую версию заголовка Дашборда, которая была прям очень похожа на то, что мы делали в Tableau. Это был WOW эффект, любой дашборд стал восприниматься «родным», даже если дальше было не совсем так же.
Элемент с лого был на столько привычен нейронным связям пользователей, что сам по себе повышал узнаваемость дэша и сглаживал дальнейшее использование. И вот тут мы услышали отзывы, что класс, всё работает как раньше =)
По сравнению с Tableau заголовок шаблонизируемый, например, на новый год мы туда одним кликом добавляем Деда Мороза или меняем логотип Юнита (привет, редизайн Маркета), вообще, включать картинки по облачной ссылке – это очень правильное решение =)
С тех под дашборды без заголовка скорее стали редкостью.
в Демо-дашборде он тоже есть
В 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 минута на чарт
Ответ: Не, у нас все работает, давайте детальнее разбираться, что не так в структурах у вас
Тут пришел запрос, говорят, в DataLens что-то нельзя сделать с календарём + N таблиц фактов, все зависает
//нет, DataLens сам не зависает, тут в БД вопрос и в скрипте, который туда отправляется.
Я, так как такого не делал никогда в DL (и не стоит, если КХ), начал сомневаться, а вдруг правда мы отдаем плохой скрипт? хотелось протестить, но это ж создавать таблички, заполнять данными..... как бы ускорить тест?
- GPT, дай мне скрипт создания и заполнения таблички календаря на 24 25 года
- GPT, дай мне скрипт создания и заполнения таблички факта продаж с начала 2025 года по сегодн
- аналогично до конца года планы
ИТОГО
-- 5 минут на создание структуры БД и заполнение
-- 1 минута на датасет
-- 1 минута на чарт
Ответ: Не, у нас все работает, давайте детальнее разбираться, что не так в структурах у вас
⚡5🦄3
ClickHouse. База. #1.
Сортировка (aka primary key).
Одна из важнейших идей, как ускорить ваши дэшики.
Я всем объясняю сортировку на примере библиотеки.
Если ты придёшь в библиотеку и попросишь Шолохова и Булгакова, то библиотекарь пойдет до индекса букв Б и Ш соответственно и внутри быстренько найдет нужного тебе автора. Библиотекарь не будет перебирать все книги, это же очевидно.
То же самое надо сделать и в КХ для быстрого отклика дэша под конкретную историю.
Например, хотим быстро искать товары по брендам, мы создаем таблицу goods и указываем 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) соберите новую логику сортировки полей
Общее: Волшебной пилюли нет, надо думать и тестировать разные варианты =)
Прочти основной лонгрид от КХ после прочтения моей заметки =)
Сортировка (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) соберите новую логику сортировки полей
Общее: Волшебной пилюли нет, надо думать и тестировать разные варианты =)
Прочти основной лонгрид от КХ после прочтения моей заметки =)
👍13❤2🔥1
ЧГК. Вопрос зрителям. =)
Читаю книжку по истории математики. Как вы думаете, почему тут 2 таблички? И почему цвета разные?
Это положительные (красные) и отрицательные (чёрные) числа. Хотя в Европе отрицательные числа математики окончательно признали только в 17 веке, это палочки использовал Сунь Цзы при планировании битв еще в 5 веке до н.э.
И вопрос со звездочкой - почему горизонтальные есть и вертикальные, тут прям сложно, как ящик с усами =)
Для удобства чередования цифр для чтения
Читаю книжку по истории математики. Как вы думаете, почему тут 2 таблички? И почему цвета разные?
И вопрос со звездочкой - почему горизонтальные есть и вертикальные, тут прям сложно, как ящик с усами =)
👍6🤔2🦄2❤1
Media is too big
VIEW IN TELEGRAM
Mermaid. Диаграммы, блок-схемы, Гантт и многое другое внутри Текстового виджета DataLens.
Как встроить диаграмму процесса твоей компании внутрь DataLens за 5 минут и 0 рублей =)
Блин, опять забыл добавить титры в видос, каюсь, будут со следующего видео =)
Как встроить диаграмму процесса твоей компании внутрь DataLens за 5 минут и 0 рублей =)
Блин, опять забыл добавить титры в видос, каюсь, будут со следующего видео =)
🔥17👍5👏5⚡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 не давал тоже сразу все нужные параметры =/
PS - внутри КХ занимает в сжатом виде всего 1G =)
Чтобы себе не забыть, пример итоговый вчера насобирал из 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), появилась сертификация, я даже немного принимал участие в проверке вопросов 🙈
Сейчас идет большая конфа Яндекса - Data & ML 2B, на ней сделали пару анонсов очень крутых о DataLens
- Появилась Gallery (hello, Tableau) - и там уже можно скачать Виджет Карты дашбордов 🤌
- Воркбуки можно экспортировать - импортировать ⚡️, чтобы быстро переносить между инсталляциями, помню, как долго мы ждали такую фичу заливки дэшей без толстого клиента (hello, again)
- Как у взрослых (hello, SAP), появилась сертификация, я даже немного принимал участие в проверке вопросов 🙈
🔥14👍4 1
Проводил месяц назад вебинар ребятам из Lenta Tech на предмет ClickHouse около BI (обещал с прошлого года, стыдно!), вот вчера наконец отдал Лене призы победителям квиза и теперь можно поныть =)
- Юнислайд прикольный продукт сделали, если вы хотите не просто в тишину болтать, а устроить движ =) из 100+ участников 50 отвечали активно
- Тайминги - наше всё, из контента успели только 1/3 обсудить, почему - пункт 3
- Надо понимать, кто придет, на сколько сложные темы быстро будут поняты и тп, в данном случае вроде Айтишники, но не Аналитики и не дата ребята
- В целом - я за то, чтобы пройти 15 слайдов из 50, но чтобы пришедшие поняли контент, тут такая простая юзер стори "давайте сделаем дэш" не работает, про ClickHouse можно пояснять часами =)
// Хотел обкатать материал перед таким же докладом открытым, но теперь пытаюсь понять, как определить аудиторию =)
- Юнислайд прикольный продукт сделали, если вы хотите не просто в тишину болтать, а устроить движ =) из 100+ участников 50 отвечали активно
- Тайминги - наше всё, из контента успели только 1/3 обсудить, почему - пункт 3
- Надо понимать, кто придет, на сколько сложные темы быстро будут поняты и тп, в данном случае вроде Айтишники, но не Аналитики и не дата ребята
- В целом - я за то, чтобы пройти 15 слайдов из 50, но чтобы пришедшие поняли контент, тут такая простая юзер стори "давайте сделаем дэш" не работает, про ClickHouse можно пояснять часами =)
// Хотел обкатать материал перед таким же докладом открытым, но теперь пытаюсь понять, как определить аудиторию =)
❤4
Вводная
Конференция. На стенде Яндекс Облака стоит нейробар, где через большой телек можно заказать себе коктейль безалкогольный. Одна конференция Ритейловая, другая - для промышленности.
Техника
YaGPT с фронтом -> Трекер -> YDB и потом DataLens
Что получилось
И вроде датасет один, но визуализации и метрики под сегменты рынка получились совсем разные. О как.
Конференция. На стенде Яндекс Облака стоит нейробар, где через большой телек можно заказать себе коктейль безалкогольный. Одна конференция Ритейловая, другая - для промышленности.
Техника
YaGPT с фронтом -> Трекер -> YDB и потом DataLens
Что получилось
И вроде датасет один, но визуализации и метрики под сегменты рынка получились совсем разные. О как.
👍5🍾3🔥2
Merge Движок в ClickHouse
Умный UNION для нескольких разноплановых табличек, которые не поJOINены, но очень хочется аналиизровать их вместе.
TLDR
Позволяет смотреть все 3 таблицы, как будто одну, со всеми оптимизациями ClickHouse, даже если поля не совпадают.
Разъяснительный пост на примере 3 таблиц (закупка, остатки, продажа).
Сложность 1/3
Полезность 3/3
В Маркете у нас в такую табличку лились несколько срезов по Маркетингу, потому что приезжали в разное время, но тогда еще Merge не был таким умным и срезы приходилось выравнивать по полям.😔
Умный 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