key-value-store - 我可以使用 clickhouse 作为键值存储吗?

标签 key-value-store clickhouse

是否可以使用 clickhouse 作为键值存储,数据是否经常被覆盖,但很少被读取?如果可能,我应该使用什么引擎?

最佳答案

ClickHouse 不是为该用例构建的,它故意在其文档的主页中这样说。

When NOT to use ClickHouse

  1. Transactional workloads (OLTP)
  2. Key-value access with high request rate
  3. Blob or document storage
  4. Over-normalized data

但是,如果 QPS 较低,您仍然可以获得良好的点查询延迟分数。 ClickHouse还提供了多种Dictionaries,可以更好的作为外部key-value存储。还有一个StorageJoin引擎,支持类似redis的HGET操作的joinGet功能。之后PR您可以覆盖 StorageJoin 中的现有 key 。

更新

PR被合并。这是一个孤立的例子。

首先按如下方式填充 StorageJoin 表:

CREATE TABLE my_fancy_kv_store (s String, x Array(UInt8), k UInt64)
ENGINE = Join(ANY, LEFT, s);

INSERT INTO my_fancy_kv_store VALUES ('abc', [0], 1), ('def', [1, 2], 2);

然后你就可以把它当作字典来使用(key-value):

SELECT joinGet('my_fancy_kv_store', 'x', 'abc');
SELECT joinGet('my_fancy_kv_store', 'k', 'def');

关于key-value-store - 我可以使用 clickhouse 作为键值存储吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53973623/

相关文章:

hadoop - 如何将键值数据加载到hbase表中?

python - 使用 SQLite 作为键 :value store

mysql - 从 MySQL 转储导入到 Clickhouse

clickhouse - 如何避免合并分布式表上的高基数子选择聚合

python - 如何打印出两个键的值?

database - AIR 的面向文档的数据库?

clickhouse - 在 ClickHouse db 中通过 CSV 格式插入字符串数组

indexing - 为什么向我的 Clickhouse 表添加 tokenbf_v2 索引没有任何效果

docker - 在 docker 中启动 clickhouse-server 失败,Poco 出错

python - 如何在Python中根据键和值合并两个字典?