При использовании движка таблицы Memory в ClickHouse Cloud данные не реплицируются между всеми узлами (это сделано намеренно). Чтобы гарантировать, что все запросы направляются на один и тот же узел и что движок таблицы Memory работает ожидаемым образом, можно сделать одно из следующего:
- Выполнять все операции в рамках одного сеанса
- Использовать клиент, работающий через TCP или нативный интерфейс (что обеспечивает поддержку sticky connections), например clickhouse-client
GLOBAL IN (см. раздел «Операторы IN»).
Чтобы ограничить размер таблицы с движком Memory, можно задать верхнюю и нижнюю границы, что фактически позволяет использовать её как кольцевой буфер (см. параметр движка).
Параметры движка
min_bytes_to_keep— Минимальное количество байтов, сохраняемых при ограничении размера таблицы Memory.- Значение по умолчанию:
0 - Требует
max_bytes_to_keep
- Значение по умолчанию:
max_bytes_to_keep— Максимальное количество байтов, сохраняемых в таблице Memory, в которой при каждой вставке удаляются самые старые строки (то есть используется кольцевой буфер). Это значение может превышать указанный предел, если при добавлении большого блока самый старый батч строк, подлежащий удалению, попадает под ограничениеmin_bytes_to_keep.- Значение по умолчанию:
0
- Значение по умолчанию:
min_rows_to_keep— Минимальное количество строк, сохраняемых при ограничении размера таблицы Memory.- Значение по умолчанию:
0 - Требует
max_rows_to_keep
- Значение по умолчанию:
max_rows_to_keep— Максимальное количество строк, сохраняемых в таблице Memory, в которой при каждой вставке удаляются самые старые строки (то есть используется кольцевой буфер). Это значение может превышать указанный предел, если при добавлении большого блока самый старый батч строк, подлежащий удалению, попадает под ограничениеmin_rows_to_keep.- Значение по умолчанию:
0
- Значение по умолчанию:
compress- Следует ли сжимать данные в памяти.- Значение по умолчанию:
false
- Значение по умолчанию:
Использование
bytes и rows можно задать одновременно, однако при этом будут использоваться меньшие значения max и min.