使用了 Tdengine 2.x 近三年的时间,但是最近遇到严重的 BUG ,现在需要考虑迁移至其他数据库。
最好符合以下要求(按优先级排列,最少满足 1 和 2 即可)

开源
高压缩比
允许冷热分级
允许按照时间间隔查询数据

最后再吐槽一下 Tdengine ,删除数据后居然无法释放硬盘空间,还妄图让用户买企业版,真是滑稽至极...
Issue 1
Issue 2

开源的不就那几个…opentsdb ( hdfs 上太重了)influxdb (集群模式好像也要付费?)prometheus 及其衍生物 好像不能直接当存储,可以把核心拆出来搞一下

VictoriaMetrics ,参考 Grammly 使用的数据: victoriametrics.com/case-studies/grammarly/

小项目单机 influxdb 也不是不能用,大项目 MongoDB (好像只有 3 需要自己实现),也不是不能用🤣

2.高压缩比 这个是跟你的数据强相关的,没有算法能够随便做到高压缩比如果资金充足的话可以考虑定制,本人提供优质服务

项目里用 github.com/etcd-io/bbolt 也是删除后不释放空间的,所以每天新建一个文件存放,要删除时直接删文件😅

今天刚看到去哪儿网的监控技术详解,选的是 VictoriaMetrics

目前小型化用的 timescaledb 数据大的 抽到 ck 然后走 ck

好的,我了解一下 VictoriaMetrics

“妄图”....人家程序员不吃饭么, 总不能一直靠爱发电吧

iotdb

cn.cnosdb.com/

开源版连最基本的 CRUD 都实现不了有什么脸让别人付费用企业版?但凡把这个特性在文档里写清楚,我都自认倒霉是我自己没做好调研,关键是他一点都没写,并且这个问题还是我删数据的时候发现不对劲的时候去查 issues 才发现的

我最近对存储有兴趣,简单的看过几个 rust 相关的,你可能还是要实际的调研使用一番。influxdb 老牌,但是大部分场景需要买商业版,比较推荐greptimeDB 坑点未知,但是代码质量看着还是比较舒服cnosdb 还比较新,issue 也不少,大概率要折腾,他们 B 站几乎每周都有分享Tdengine 我之前通过给他们处理 issue ,参加他们 open day 活动拿到面试机会,经历 3 轮技术面试,可惜挂了,我面试的 rust 的岗位,但是问了很多 java ,kafka 和 go 的问题…… 据说技术团队都是 985 我对 TD 的感觉是:- 整体代码没有 cnosdb/influxdb 这种读起来舒服…… - 虽然开源,但是大部分 issue 管理在内部,一些 PR 还与之关联,不知所云- 版本有一些 break change 但是文档不够明确,比如 go 和 rust 驱动维护了多个版本和特性在独立的模块/分支中

之前测了一圈然后选择了 ClickHouse ,不过要通过 kafka 来批量插入。

opengemini 还不错

你的这些要求 ClickHouse 都满足。

我也遇到同样的问题,把文档翻烂都没找到说法,删除数据居然不释放空间

看 issue 有人说删对应数据库能释放空间,但是我删了一个测试环境的数据库还是不行。。。

删数据库代价太大,比如我想删除指定日期的数据,文档上都有相关语法,能删除成功,但是却没有释放空间

如果有删除指定日期的数据的需求但是不想付费的话的话建议还是换数据库吧。。。太坑了,或者你试试调整 KEEP 参数,调整 KEEP 参数的话是可以释放空间的

因为存储引擎限制和避免 compaction 额外性能开销原因,分析型数据库一般不会支持实时的点删。高效的方法一般是通过 TTL 异步淘汰,或者 drop partition 删除物理上连续的大批量数据。

搜了下代码 好像还真没有 storage gc compaction 的代码...

请教一下 ClickHouse 是不是只能少量连接,然后批量操作?不能像 mysql 这样实时有并发请求的场景?

怎么没人说 starrocks

写统一写到 Kafka ,由它写到 ClickHouse 。如果是国产操作系统等需要 ARM 架构,又不想自己编译支持 Kafka 的,可以自己写个程序收集消息到内存,每秒写入到 ClickHouse ;如果每秒的量在内存中存不下,也可以读 Kafka 然后写到 ClickHouse 。读没啥限制,但是有一定延迟,可以认为是准实时的吧。

#23 ClickHouse 使用的 LSM-Tree 顺序操作磁盘,因此并发写的能力很强悍,我们 iot 场景有 1w 多个节点并发写入 kafka 然后吐到 ClickHouse ,几乎没有啥延迟,但是并发读取能力不好,这点需要考虑。