пользовательский раздел в clickhouse - PullRequest
0 голосов
/ 07 марта 2019

У меня есть несколько вопросов о пользовательском разбиении в clickhouse.Предыстория: я пытаюсь построить TSDB поверх clickhouse.Нам нужно поддерживать очень большую пакетную запись и сложное чтение OLAP.

  1. Давайте предположим, что мы используем стандартный раздел по месяцам, и у нас есть 20 узлов в нашем кластере clickhouse.Мне интересно, все ли данные за один месяц будут перетекать в один и тот же узел, или clickhouse выполнит некоторый внутренний баланс и поместит данные за один месяц в несколько узлов?

  2. Если все данные изв тот же месяц пишите в тот же узел, тогда это будет очень плохо для нашего сценария.Я, вероятно, рассмотрю паттинг по (отметке времени, тегам), где теги - это разные теги, которые определяют источник данных.Наша система мониторинга будет записывать данные в TSDB каждые 30 секунд.Наш шаблон чтения обычно представляет собой сканирование диапазона одной таблицы или объединение нескольких таблиц в столбце.Любой совет, как мне настроить мою стратегию секционирования?

  3. Так как clickhouse не поддерживает вторичный индекс, и мы запустим запрос выбора по столбцам, я думаю, что я должен поместить эти важные столбцы впервичный ключ, так что мой первичный ключ, вероятно, будет похож (timestamp, ip, port ...), на любой совет по этому дизайну или на make, дающий вескую причину, почему clickhouse не поддерживает вторичный индекс, такой как индекс растрового изображения, в другом неосновном столбце?

1 Ответ

0 голосов
/ 11 марта 2019
  1. В ClickHouse разбиение и разделение - это два независимых механизма.Разделение по месяцам означает, что данные за разные месяцы никогда не будут объединены для хранения в одном и том же файле в файловой системе и не имеют ничего общего с размещением данных между узлами (что контролируется путем выбора того, как именно вы настраиваете таблицы и выполняете запросы INSERT INTO).
  2. Разделение по месяцам или неделям обычно проходит нормально, для выбора первичного ключа см. Официальную документацию: https://clickhouse.yandex/docs/en/operations/table_engines/mergetree/#selecting-the-primary-key
  3. Нет фундаментальных проблем с их добавлением, например, разработка индекса фильтра Блумавыполняется: https://github.com/yandex/ClickHouse/pull/4499
...