网站分析的开放源码- https://github.com/plausible/analytics
他们使用Postgresql和ClickHouseDb。
说到网络分析,有大量的事件需要被跟踪。从数据库的角度看,为什么要在这个项目中使用ClickHouseDb?为什么Postgresql --即关系数据库--不能单独做呢?
是的,ClickHouseDb是专门为分析处理而创建的。但是,为什么Postgresql不单独做呢?Postgresql、MySql等是否无法处理大量出现的插入?
发布于 2020-08-22 14:07:58
Postgres及其类似文件是作为通用OLTP数据库服务器编写的。它能同时处理多个插入和读取吗?是的,它可以,但它饱和在一个低得多的水平,比一个特定的目的-建立分析引擎将。Clickhouse仍然是一个关系数据库--它将其公共API表示为预定义元组表,并通过SQL与之交互--这是一个内部高度优化的数据库,用于回答大型数据集上的聚合查询。Postgres可以回答同样的查询,但是需要更长的时间,并且需要更多的磁盘、内存和CPU。
一个很好的类比就是汽车。波斯特格斯就像一辆家用汽车。它可以舒适地让孩子,狗和所有的装备去野营旅行,而不用太多的燃料,或花费太多的购买或维护。取决于型号,它可以走得更快或更慢,携带更多的齿轮或更少,更省油或更渴。然而,它不会赢得一场F1比赛。它也不会将12吨矿石运出采石场。它也没有带担架和瓶装氧气用于救护车工作。如果您的工作负载有这些需求,您将与一个利基供应商交谈,以获得一个非常具体的产品,将完成一项工作,并做得很好,并支付相应的购买和维护费用。
补充的问题是为什么不完全使用Clickhouse?这是因为该产品不适合Postgres擅长的混合随机读写工作负载。一个电子商务网站运行的Clickhouse将是可怕的!
https://dba.stackexchange.com/questions/274151
复制相似问题