目前我们使用Oracle来存储日志记录信息。其中一列是存储XML有效负载的blob。我们每周都会对日志架构进行归档,但我们仍然关注>每周1TB。
目标:减少数据库的空间占用
解决方案1: 在将XML有效负载放入BLOB之前压缩它。
解决方案2: 查找已经压缩默认数据的数据库(noSQL或其他关系数据库)。 JDBC驱动程序必须可用。
任何人都知道适合解决方案2的数据库吗?因此我们不需要修改应用程序,我们只需要更改数据库并更新JDBC驱动程序。
答案 0 :(得分:6)
Oracle支持几种不同级别的压缩 - 只需很少的工作量即可适应解决方案2。 (表/行/高压压缩)
答案 1 :(得分:0)
我所知道的所有dbms都支持压缩和JDBC。
PostgreSQL依赖底层操作系统进行存储。您可以在压缩文件系统上构建PostgreSQL表空间。
答案 2 :(得分:0)
首先,我会说如果你有企业,那么对xml表进行分区并定期备份和修剪它(如果按日期范围分区,则删除早于x的分区)。如果这不是一个选项,您可以尝试使用noSQL数据存储。
有很多noSQL选项可供使用。我曾经玩过的(尚未制作)是mongoDB。它以二进制JSON格式(BSON)存储数据,并且可以进行压缩。它似乎也在与bigger companies取得进展。我曾经在一段时间曾经使用类似的b-tree平面文件系统,速度非常快。但是,您将无法使用与RDBMS相同的功能。关于mongoDB的好处是它的商业支持10gen(再次,不能说支持有多好,但这对一些商店来说很重要)。
这是一个很好的article讨论更大的noSQL选项的优缺点。
不,我不为10gen工作;)当然做更多研究并决定什么是最适合您的需求