184 похожих чатов

Решил склеить у себя несколько мелких таблиц в одну большую.

Данные приходят из разных источников и где-то идут нормальными для КХ пачками по 100к записей раз в 2 секунды, а где-то буквально по 50 записей в сутки. Соответственно, думаю запустить их через общий буфер.

В связи с этим пара вопросов:
1. Я правильно понимаю, что Buffer хранит внутри себя только ещё не записанные в целевую таблицу данные, во все остальные моменты пустой, а при селектах из него просто показывает данные из целевой таблицы? Или для него тоже надо TTL настраивать, если данные должны со временем удаляться?
2. В целевой таблице есть несколько LowCardinality(String) столбцов. Какой тип надо указывать для соответствующих столбцов Buffer?
Ведь для целевой таблицы, насколько я понимаю, КХ хранит не значения, а индексы из созданного на лету словаря, и если я укажу тип LowCardinality(String) для Buffer, то где гарантия, что индексы этих двух словарей совпадут и будут корректно переданы? А если указать String, то вроде как разные типы данных.

4 ответов

5 просмотров

А почему не просто MV. ?

Alexey-Sokolov Автор вопроса
Aleksey Studnev
А почему не просто MV. ?

Не совсем понял вопрос. MV на что именно? Сейчас есть около 70 таблиц, в часть из которых данные льются нормальными потоками, а где-то по капле в час. Выбор данных же идёт чаще всего сразу из всех. Соответственно, хочу сделать одну таблицу, а все 70 источников перенаправить на единый входной буфер.

Alexey Sokolov
Не совсем понял вопрос. MV на что именно? Сейчас ...

Сделайте 70 MV которые пишут в одну таблицу

Alexey-Sokolov Автор вопроса
Aleksey Studnev
Сделайте 70 MV которые пишут в одну таблицу

На первом этапе так и планирую, но этой одной таблицей будет буфер. Просто в целевую таблицу так писать некорректно, насколько я понимаю, ибо периодически будет много мелких вставок за короткое время, что КХ не любит.

Похожие вопросы

Обсуждают сегодня

А как старый хаскел с новым стыковать ? потому как тут работает https://play.haskell.org/saved/C3xpMzcd, а вот тут https://stepik.org/lesson/7602/step/9?unit=1473 нет ошибка C...
Fedor
131
что насчет пагинга? на осдеве непонятно(
Vi Chapmann 🪙
26
Народ, кто шарит в расширенных разделах (EBR/EPR) на дисках с разметками MBR? Везде пишут (в вики рус/англ) в частности + другие источники смотрел, что первый сектор расширенн...
Eugene Krasnikov (ᴊɪɴ x)
1
Вопрос я правильно понимаю что в коде newtype ArrowMap k v = ArrowMap { getArrowMap :: k -> Maybe v } getArrowMap есть функция типа k -> Maybe v, если да, то не понимаю задач...
Fedor
64
Ребят, что лучше для реверса: гидра или ида?
En Vind Av Sorg
26
Делаю велосипед логгер. К сообщению хочу прикрутить некоторую информацию, типа, кем отправлено, какой уровень, и всякое такое. И тут подумалось мне, почему бы не хранить весь...
Serjone
24
Как Вы считаете нормально ли в двадцатых годах 21 века в ВУЗах Российской Федерации обучать студентов работе с TASM? Не слишком ли это "архаично"? (Если оффтоп или флейм для э...
Spiker01
52
Всем привет! Использую gitlab-ci. Настроил gitlab-agent для деплоя в куб. При деплое проекта в логах такая ошибка: Executing deploy plan failed to watch "ns:my-project/Ingress...
Konstantin Moiseev
4
Комрады, хотел уточнить. Проперть в OnDestroy юнита-хозяина по-прежнему доступна? И еще уточнение: finalization юнита наступает раньше или позже OnDestroy?
Ed Doc
48
Где-то есть статьи, как писать на OCaml после Kotlin (ну или похожей направленности)? Я привык к интерфейсам и наследованию классов, а здесь это выглядит совершенно не так.
Раскопки Майтрейи Коц
6
Карта сайта