当前位置: 首页 > news >正文

如何在ClickHouse中使用EmbeddedRocksDB表引擎

13a9534866e88e9be135e17063e4c250.gif

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

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

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

CREATE TABLE test_rocksDB
(
    `A` UInt64,
    `B` String
)
ENGINE = EmbeddedRocksDB
PRIMARY KEY A

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

接着写入 1亿 测试数据:

INSERT INTO test_rocksDB 
SELECT
    number,
    toString(cityHash64(number))
FROM numbers(100000000)

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

7d8a7dd7274e0fb83c6d2c90bddc00a4.png

接着就可以查询了:

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倍

# 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.)

关于作者:

朱凯,ClickHouse贡献者之一,ClickHouse布道者,资深架构师,腾讯云最具价值专家TVP,开源爱好者,Apache DolphinScheduler Committer,《企业级大数据平台构建:架构与实现》《ClickHouse原理解析与应用实践》作者,公众号“ClickHouse的秘密基地”运营者。

推荐阅读:《ClickHouse原理解析与应用实践》

5435044783a5481c7793fc74c5ef7436.png

推荐语:这是一本可帮助读者深度理解并全面掌握ClickHouse运行原理并进行实践开发的工具书,涵盖了ClickHouse的时代背景、发展历程、核心概念、基础功能、运行原理、实践指导等多个维度的内容,尤其是在ClickHouse最核心的部分——MergeTree表引擎与分布式方面,书中对其实现原理和应用技巧进行了详细解读。

2648fd032258c47ad7eceb015de12a6b.gif

刷刷视频👇

e3fb264bb9c0c50ac1b7321e13c5f8dd.gif

更多精彩回顾

干货 |Java到底能干什么?有哪些实际用途?

书单 | 成为优秀Java开发者,我看了这几本书

上新 |《Core Java》作者亲授视频免费看,学习Java更轻松

资讯 |云原生时代,阿里如何让Java冷启动提速两个数量级?

资讯 | Python迎来31岁生日,蝉联年度编程语言排行榜冠军

干货 |一文带你掌握计算机体系结构核心内容

书讯 | 2月书讯(下)| 新年到,新书到!

书讯 | 2月书讯 (上)| 新年到,新书到!

9428667e240c140ece387a6e25138456.gif

be778d18cc0f035c95c6f1b45bcf5c76.gif

点击阅读全文

相关文章:

  • 机器人与人工智能的关系,终于有人讲明白了
  • Web代码安全漏洞深度剖析
  • 金三银四求职季,十道腾讯算法真题解析!
  • 终于有人把辛普森悖论讲明白了
  • 一文带你理解算法策略
  • AI 是否拥有意识?从意识的定义说起
  • 百万在线:大型游戏服务端开发
  • ​什么是bug?bug的源头在哪里?
  • 【第97期】2022 软件工程师状况报告:Go 最抢手
  • Web渗透测试实战:基于Metasploit 5.0
  • 详解六种常见的上下文切换场景
  • 终于有人把Knative讲明白了
  • 赵宏田:用户画像场景与技术实现
  • 商品中台的可视化微前端实践
  • 4月书讯(下)| 上新了,华章
  • [译] 怎样写一个基础的编译器
  • 【刷算法】求1+2+3+...+n
  • 345-反转字符串中的元音字母
  • axios请求、和返回数据拦截,统一请求报错提示_012
  •  D - 粉碎叛乱F - 其他起义
  • exports和module.exports
  • gf框架之分页模块(五) - 自定义分页
  • jquery cookie
  • Magento 1.x 中文订单打印乱码
  • orm2 中文文档 3.1 模型属性
  • Python爬虫--- 1.3 BS4库的解析器
  • SpringBoot 实战 (三) | 配置文件详解
  • Synchronized 关键字使用、底层原理、JDK1.6 之后的底层优化以及 和ReenTrantLock 的对比...
  • Vim Clutch | 面向脚踏板编程……
  • Wamp集成环境 添加PHP的新版本
  • 动手做个聊天室,前端工程师百无聊赖的人生
  • 翻译:Hystrix - How To Use
  • 和 || 运算
  • 跳前端坑前,先看看这个!!
  • 【运维趟坑回忆录】vpc迁移 - 吃螃蟹之路
  • Mac 上flink的安装与启动
  • Spark2.4.0源码分析之WorldCount 默认shuffling并行度为200(九) ...
  • ​​​​​​​​​​​​​​汽车网络信息安全分析方法论
  • ​Distil-Whisper:比Whisper快6倍,体积小50%的语音识别模型
  • ​LeetCode解法汇总1276. 不浪费原料的汉堡制作方案
  • #pragma 指令
  • $(document).ready(function(){}), $().ready(function(){})和$(function(){})三者区别
  • $forceUpdate()函数
  • (Arcgis)Python编程批量将HDF5文件转换为TIFF格式并应用地理转换和投影信息
  • (Redis使用系列) Springboot 使用Redis+Session实现Session共享 ,简单的单点登录 五
  • (Spark3.2.0)Spark SQL 初探: 使用大数据分析2000万KF数据
  • (八十八)VFL语言初步 - 实现布局
  • (第一天)包装对象、作用域、创建对象
  • (附源码)ssm基于微信小程序的疫苗管理系统 毕业设计 092354
  • (附源码)计算机毕业设计SSM教师教学质量评价系统
  • (论文阅读32/100)Flowing convnets for human pose estimation in videos
  • (三)centos7案例实战—vmware虚拟机硬盘挂载与卸载
  • (三)docker:Dockerfile构建容器运行jar包
  • (五)IO流之ByteArrayInput/OutputStream
  • (一)WLAN定义和基本架构转