Этот движок позволяет интегрировать ClickHouse с RocksDB.
Параметры движка:
ttl - время жизни значений. TTL указывается в секундах. Если TTL равен 0, используется обычный экземпляр RocksDB (без TTL).
rocksdb_dir - путь к каталогу существующей RocksDB или путь назначения для создаваемой RocksDB. Таблица открывается с указанным rocksdb_dir.
read_only - если read_only установлено в true, используется режим только для чтения. Для хранилища с TTL compaction не будет запускаться ни вручную, ни автоматически, поэтому записи с истекшим сроком жизни не будут удаляться.
primary_key_name – любое имя столбца в списке столбцов.
primary key должен быть указан; поддерживается только один столбец в первичном ключе. Первичный ключ будет сериализован в бинарном виде как rocksdb key.
- столбцы, кроме первичного ключа, будут сериализованы в бинарном виде как значение
rocksdb в соответствующем порядке.
- запросы с фильтрацией по ключу через
equals или in будут оптимизированы в поиск по нескольким ключам в rocksdb.
Настройки движка:
optimize_for_bulk_insert – таблица оптимизирована для массовых вставок (конвейер вставки будет создавать SST-файлы и импортировать их в базу данных rocksdb вместо записи в memtables); значение по умолчанию: 1.
bulk_insert_block_size - минимальный размер SST-файлов (в строках), создаваемых при массовой вставке; значение по умолчанию: 1048449.
Пример:
Также есть таблица system.rocksdb, в которой представлена статистика RocksDB:
Вы также можете изменить любые параметры RocksDB с помощью config:
По умолчанию оптимизация приблизительного простого подсчёта отключена, что может повлиять на производительность запросов count(). Чтобы включить эту
оптимизацию, задайте optimize_trivial_approximate_count_query = 1. Этот параметр также влияет на system.tables для движка EmbeddedRocksDB:
включите его, чтобы видеть приблизительные значения total_rows и total_bytes.
При вставке новых строк в EmbeddedRocksDB, если ключ уже существует, значение обновляется; в противном случае создаётся новый ключ.
Пример:
Строки можно удалить с помощью запроса DELETE или команды TRUNCATE.
Значения можно изменять с помощью запроса ALTER TABLE. Первичный ключ изменять нельзя.
Поддерживается специальный direct JOIN с таблицами EmbeddedRocksDB.
Этот direct JOIN позволяет избежать создания хеш-таблицы в памяти и обращаться
к данным напрямую в EmbeddedRocksDB.
При больших JOIN использование памяти при direct JOIN может быть значительно ниже,
поскольку хеш-таблица не создаётся.
Чтобы включить direct JOIN:
Когда для join_algorithm задано значение direct, hash, по возможности будет использоваться direct JOIN,
а в остальных случаях — hash.
Создайте и заполните таблицу EmbeddedRocksDB
Создайте и заполните таблицу для выполнения JOIN с таблицей rdb
Установите для алгоритма JOIN значение direct
INNER JOIN
Последнее изменение 2 июля 2026 г.