Size: a a a

ClickHouse не тормозит

2019 November 25

KS

Konstantin Sevastian... in ClickHouse не тормозит
Alexey Milovidov
INSERT в MV синхронный. То есть, делается при INSERT в таблицу, над которой он создан. Клиент получил Ок - значит данные вставлены и в основную таблицу и во все materialized views.
а синхронность справделива для каскадных MV?
источник

AM

Alexey Milovidov in ClickHouse не тормозит
Konstantin Sevastianov
а синхронность справделива для каскадных MV?
Да.
источник

AM

Alexey Milovidov in ClickHouse не тормозит
Paul Loyd
Всем привет. Подскажите за репликацию через ReplicatedMergeTree.
Можно ли не зашивать название базы данных при указании ReplicatedMergeTree? В разных окружениях разное название используется
Да, можно не указывать название базы данных.
источник

KS

Konstantin Sevastian... in ClickHouse не тормозит
а если MV будет смотреть предыдующю MV + JOIN на исходную таблицу? это будет работать?
источник

AM

Alexey Milovidov in ClickHouse не тормозит
Konstantin Sevastianov
Алексей, спасибо. я просто еще с прошлой недели пытаюсь сделать странное =)
я вставляю в MergeTree поток событий, на этот поток смотрит MV (AggregatingMergeTree) которая считает статистики, хочется сделать 3ю сущность которая должна взять изначальный поток событий и сделать к нему JOIN уже агрегированных данных, т.е. для каждого события присоединять текущее состояние агрегатов (может сумбурно несколько объяснил), мне уже писали что вроде на КХ не стоит /нельзя такого делать, но так хочется попробовать)
Там будет трудно, так как на каждый INSERT будет заново создаваться структура данных для JOIN (как будто вы каждый раз делаете SELECT запрос с этим JOIN). То есть, будет весьма медленно и избыточно (зачем делать одинаковую работу на каждый INSERT). Но этого можно избежать с помощью таблиц типа Join. Они будут постоянно держать структуру данных для JOIN в памяти. И тогда есть шанс, что будет хорошо работать.
источник

AM

Alexey Milovidov in ClickHouse не тормозит
> а если MV будет смотреть предыдующю MV + JOIN на исходную таблицу? это будет работать?

Да.

Для каскадных MV указывайте .inner. таблицу для SELECT.
источник

PL

Paul Loyd in ClickHouse не тормозит
Alexey Milovidov
Да, можно не указывать название базы данных.
Ну тогда могут быть коллизии же
источник

PL

Paul Loyd in ClickHouse не тормозит
Ну, то есть я понимаю, что путь в zk связан с таблицей косвенно, но всё равно
источник

S

Shazo in ClickHouse не тормозит
Paul Loyd
Ну тогда могут быть коллизии же
если не ошибаюсь, тогда берется дефолтная база. Либо же можно задать default_database для реплики в remote_servers.
источник

PL

Paul Loyd in ClickHouse не тормозит
Я вижу в документации
<macros>
   <layer>05</layer>
   <shard>02</shard>
   <replica>example05-02-1.yandex.ru</replica>
</macros>


В macros можно указать любые подстановки, так? Могу я сделать "переменную" database и заиспользовать в пути?
источник

PL

Paul Loyd in ClickHouse не тормозит
источник

A

Alexander in ClickHouse не тормозит
Paul Loyd
Я вижу в документации
<macros>
   <layer>05</layer>
   <shard>02</shard>
   <replica>example05-02-1.yandex.ru</replica>
</macros>


В macros можно указать любые подстановки, так? Могу я сделать "переменную" database и заиспользовать в пути?
Оно хранится в system.macros . Можно конечно захадкодить, но кто-то захочет свою для другой базы в этом же ch.
источник

KS

Konstantin Sevastian... in ClickHouse не тормозит
Alexey Milovidov
> а если MV будет смотреть предыдующю MV + JOIN на исходную таблицу? это будет работать?

Да.

Для каскадных MV указывайте .inner. таблицу для SELECT.
я пробовал вот такую схему, но без .inner. Тогда начинались проскальзывания в финальной MV.  Это из за того что .inner. не использовалось?
источник

PL

Paul Loyd in ClickHouse не тормозит
Не очень понял. Вот есть у меня миграция, в которой создаётся таблица. Я могу сделать так:
...
ENGINE = ReplicatedMergeTree('/clickhouse/tables/{db_name}.some_table_name')

а уже у админов будет xml с указанием, что db_name = ...

@inv2004
источник

DC

Denny Crane (I don't... in ClickHouse не тормозит
Eugene Ivlev
Добрый день,
подскажите как определить в какой релиз вошел/не вошел тикет https://github.com/ClickHouse/ClickHouse/issues/6337 ?
Требуется использование больше/меньше в JOIN
Это asof  join. Там последнее поле только < >
источник

AS

Aleh Sauko in ClickHouse не тормозит
всем привет!
а в кх такого вида запросы не работают (хз как они называються, когда в филде запрос)?

сreate table x_test (
   a Int,
   b Int
) engine = Null;

create table y_test (
   a Int,
   c Int
) engine = Null;

select a, (select sum(c) from y_test y where y.a = x.a) from x_test x;


DB::Exception: Missing columns: 'x.a' 'a' while processing query: 'SELECT sum(c) FROM y_test AS y WHERE a = x.a', required columns: 'x.a' 'c' 'a', source columns: 'd' 'c' (version 19.14.3.3 (official build))
источник

RK

Roman Kupriyanov in ClickHouse не тормозит
Подскажите пожалуйста как в clickhouse-client выполнить multiline-запрос?
источник

PL

Paul Loyd in ClickHouse не тормозит
Roman Kupriyanov
Подскажите пожалуйста как в clickhouse-client выполнить multiline-запрос?
-m
источник

RK

Roman Kupriyanov in ClickHouse не тормозит
Спасибо.
источник

AZ

Artem Zuikov in ClickHouse не тормозит
Aleh Sauko
всем привет!
а в кх такого вида запросы не работают (хз как они называються, когда в филде запрос)?

сreate table x_test (
   a Int,
   b Int
) engine = Null;

create table y_test (
   a Int,
   c Int
) engine = Null;

select a, (select sum(c) from y_test y where y.a = x.a) from x_test x;


DB::Exception: Missing columns: 'x.a' 'a' while processing query: 'SELECT sum(c) FROM y_test AS y WHERE a = x.a', required columns: 'x.a' 'c' 'a', source columns: 'd' 'c' (version 19.14.3.3 (official build))
Проблема не в том, что сабселект не там, а в том что вы хотите x.a из внешнего запроса (x определена снаружи) заюзать во внутреннем. Это коррелированные подзапросы, они (пока) не поддерживаются.
источник