前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何在ClickHouse中使用EmbeddedRocksDB表引擎

如何在ClickHouse中使用EmbeddedRocksDB表引擎

作者头像
Nauu
发布2022-03-29 15:51:15
9430
发布2022-03-29 15:51:15
举报

RocksDB 想必大家并不陌生,它是一款高性能的嵌入式KV数据库,是众多自研数据库背后的男人。

现在我们可以利用 EmbeddedRocksDB 表引擎,直接在 ClickHouse 中使用 RocksDB,非常适用 KV 查询的场景。

使用的方法非常简单,接下来就用一个简短示例说明,创建一张测试表,使用 EmbeddedRocksDB 引擎:

代码语言:javascript
复制
CREATE TABLE test_rocksDB
(
    `A` UInt64,
    `B` String
)
ENGINE = EmbeddedRocksDB
PRIMARY KEY A

必须指定 PRIMARY KEY , 它表示 RocksDB Key

接着写入 1亿 测试数据:

代码语言:javascript
复制
INSERT INTO test_rocksDB 
SELECT
    number,
    toString(cityHash64(number))
FROM numbers(100000000)

查看表文件,会发现直接是 RocksDB 的存储文件:

接着就可以查询了:

代码语言:javascript
复制
SELECT count()
FROM
(
    SELECT *
    FROM test_rocksDB
    WHERE A IN (
        SELECT toUInt64(rand64() % 100000000)
        FROM numbers(10000)
    )
)

Query id: 96f56029-9201-4985-bf9f-8d714a3bc1bd

┌─count()─┐
│   10000 │
└─────────┘

1 rows in set. Elapsed: 0.221 sec. Processed 10.00 thousand rows, 364.02 KB (45.23 thousand rows/s., 1.65 MB/s.)

‍我用 MergeTree 做同样的查询,查询的实效差距不大(RocksDB适用默认参数),但是MergeTree扫描的数据是 RocksDB 表引擎的5000倍

代码语言:javascript
复制
# RocksDB
1 rows in set. Elapsed: 0.221 sec. Processed 10.00 thousand rows, 364.02 KB (45.23 thousand rows/s., 1.65 MB/s.)
#MergeTree
1 rows in set. Elapsed: 0.213 sec. Processed 56.58 million rows, 452.67 MB (265.18 million rows/s., 2.12 GB/s.)
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-03-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 ClickHouse的秘密基地 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档