Size: a a a

ClickHouse не тормозит

2020 July 20

DC

Denny Crane (I don't... in ClickHouse не тормозит
Dimitriy Scherbenko
Подскажите, пожалуйста, есть ли возможность установить триггер MV на инсерт данных только в одну таблицу, когда в самом MV задействованы 2 таблицы (посредствам join)? Причина в том, что в две таблицы поступают данные с разной скоростью. Спасибо.
MV триггер видит инсерты только в левую таблицу (которая первая во from)
и конечно надо использовать словари вместо джойна в этом случае
источник

DS

Dimitriy Scherbenko in ClickHouse не тормозит
Denny Crane (I don't work at Yandex (never did))
MV триггер видит инсерты только в левую таблицу (которая первая во from)
и конечно надо использовать словари вместо джойна в этом случае
Спасибо
Можно, пожалуйста, уточнить вторую часть, что имеется в виду? Преобразовать таблицу в словарь?
источник

DC

Denny Crane (I don't... in ClickHouse не тормозит
Dimitriy Scherbenko
Спасибо
Можно, пожалуйста, уточнить вторую часть, что имеется в виду? Преобразовать таблицу в словарь?
я предполагаю таблица что вторая таблица не очень большая и редко обновляемая (справочник), поэтому над ней можно сделать словарь external dictionary (словарю не важно откуда брать данные из файла, из mysql, из готовой таблицы КХ) и в MV использовать dictGet
источник

DS

Dimitriy Scherbenko in ClickHouse не тормозит
Denny Crane (I don't work at Yandex (never did))
я предполагаю таблица что вторая таблица не очень большая и редко обновляемая (справочник), поэтому над ней можно сделать словарь external dictionary (словарю не важно откуда брать данные из файла, из mysql, из готовой таблицы КХ) и в MV использовать dictGet
Спасибо за уточнение. К сожалению, вторая таблица тоже большая.
источник

D

Dj in ClickHouse не тормозит
Dimitriy Scherbenko
Спасибо за уточнение. К сожалению, вторая таблица тоже большая.
лучше объединять перед вставкой в КХ, если есть варианты...
источник

DC

Denny Crane (I don't... in ClickHouse не тормозит
Dimitriy Scherbenko
Спасибо за уточнение. К сожалению, вторая таблица тоже большая.
тогда MV нельзя использовать и вообще лучше тогда перенести все из КХ в ETL перед вставкой,
КХ не может джойнить большие таблицы, памяти слишком много надо.
источник

DC

Denny Crane (I don't... in ClickHouse не тормозит
кстати, похоже самые свежие КХ (в тестинге) научились менять таблицы местами и грузить левую в память, а левая в случае MV как раз небольшая
источник

DS

Dimitriy Scherbenko in ClickHouse не тормозит
Dj
лучше объединять перед вставкой в КХ, если есть варианты...
Такой вариант тоже возможен. Просто не хотел выходить за рамки инструмента.
источник

DC

Denny Crane (I don't... in ClickHouse не тормозит
Dimitriy Scherbenko
Такой вариант тоже возможен. Просто не хотел выходить за рамки инструмента.
выходите, иначе не заработает, КХ делает джойны не так как вам надо
источник

D

Dj in ClickHouse не тормозит
Dimitriy Scherbenko
Такой вариант тоже возможен. Просто не хотел выходить за рамки инструмента.
Любой индексированный кв стор для временного хранения правой таблицы, и делайте в него лукапы...
источник

DS

Dimitriy Scherbenko in ClickHouse не тормозит
Спасибо
источник
2020 July 21

E

Edya in ClickHouse не тормозит
А можно ли релизовать логику ReplacingMergeTree с помощью мат вью? Но чтобы гарантировано была толька одна запись для ключа. А то постоянные optimize или limit by key медленно. Т.е. хочется чтобы всегда была только одна Последняя запись для ключа
источник

DC

Denny Crane (I don't... in ClickHouse не тормозит
Edya
А можно ли релизовать логику ReplacingMergeTree с помощью мат вью? Но чтобы гарантировано была толька одна запись для ключа. А то постоянные optimize или limit by key медленно. Т.е. хочется чтобы всегда была только одна Последняя запись для ключа
нельзя. Иначе бы это было в самом ReplacingMergeTree.

Есть engine=Join он в памяти хранит все данные, там можно апдейтить online
источник

E

Edya in ClickHouse не тормозит
Хранить все в памяти, наверное, не вариант
источник

l

lnuynxa in ClickHouse не тормозит
Edya
А можно ли релизовать логику ReplacingMergeTree с помощью мат вью? Но чтобы гарантировано была толька одна запись для ключа. А то постоянные optimize или limit by key медленно. Т.е. хочется чтобы всегда была только одна Последняя запись для ключа
Ты можешь создать MAT VIEW с движком ReplacingMergeTree, но никаких гарантий на 1 запись)
источник

E

Edya in ClickHouse не тормозит
Denny Crane (I don't work at Yandex (never did))
нельзя. Иначе бы это было в самом ReplacingMergeTree.

Есть engine=Join он в памяти хранит все данные, там можно апдейтить online
Вот бы кх сам умел поднимать в память то, что вставляется
источник

E

Edya in ClickHouse не тормозит
lnuynxa
Ты можешь создать MAT VIEW с движком ReplacingMergeTree, но никаких гарантий на 1 запись)
да, сейчас так и реализавано ReplacingMergeTree над MergeTree
источник

DC

Denny Crane (I don't... in ClickHouse не тормозит
Edya
Вот бы кх сам умел поднимать в память то, что вставляется
вы не понимаете, схлопывание записей это побочный продукт мержей. Нельзя мержить на лету. Если хочется менять данные это не про КХ, точнее не про mergeTree таблицы.

Engine Join это просто хешмапа в памяти и она умеет менять данные на лету, просто записывается в мапу новый value для key (а хотя нет, не умеет, там тоже не так все просто)
источник

E

Edya in ClickHouse не тормозит
Denny Crane (I don't work at Yandex (never did))
вы не понимаете, схлопывание записей это побочный продукт мержей. Нельзя мержить на лету. Если хочется менять данные это не про КХ, точнее не про mergeTree таблицы.

Engine Join это просто хешмапа в памяти и она умеет менять данные на лету, просто записывается в мапу новый value для key (а хотя нет, не умеет, там тоже не так все просто)
Ладно, спасибо! Я просто предположил, что можно парты (от ограниченного списка партиций), которые аффектятся загрузить в эту хешмапу, а после того, как запись прошла транформировать это в парт/ы на диске
источник

АК

Александра Каткова... in ClickHouse не тормозит
Всем доброе утро! Меня зовут Саша, я студентка магистратуры ВШЭ, (концентрация hr). Я сейчас пишу магистерскую работу, и мне для практической части нужно составить портрет специалистов в IT. Цель портрета - затем расписать позицицонирование, опираясь на портрет, чтобы люди обращали внимание на ту или иную вакансию.

Я ищу людей по неск. видам ролей, чтобы задать им несколько вопросов про их работу:
- Администратор (в плане менеджмента, но работающий в IT)
- Бизнес-архитектор
- IT-архитектор
- Спец. по релизам
- Сервис менеджер
- Владелец продукта?

Кто-нибудь, может быть, может мне помочь?
источник