如何对写入分布式数据库的数据进行压缩

我现在要往DolphinDB database的分布式数据库写入数据,我在用户手册 中搜“压缩”两字,只找到savePartition这个方法支持压缩,如下图:
attachments-2021-06-ti3zUDFe60c83ef1f2f39.png

而append!和tableInsert都不支持,
attachments-2021-06-zF4oOLOn60c83efa71cf4.pngattachments-2021-06-igMSRCaY60c83f022d823.png
是不是要压缩数据,只能用savePartition写入?类似下面代码这样写:

n=1000000
ID=rand(10, n)
value=rand(1.0, n)
t=table(ID, value);
db=database("dfs://trades", RANGE,  0 5 10)
Trades = db.createPartitionedTable(t, "Trades", "ID");
savePartition(db, t, `Trades)
请先 登录 后评论

1 个回答

logger


DolphinDB分布式表支持无损压缩,对插入的数据,默认就进行压缩,不需要配置。因此建议使用append!和tableInsert写入分布式表。savePartition一般用于写入本地磁盘库。


DolphinDB采用兼顾压缩速度和压缩率的LZ4压缩算法,其中对SYMBOL这种特殊的字符串类型,则先用字典压缩,再使用LZ4压缩。在实际生产环境中,磁盘数据的压缩率一般在20~25%左右。若同一列中的重复项越多,压缩率就越高。读取数据时,系统从磁盘读取需要的列,解压后加载到内存。DolphinDB采用增量压缩策略,每次只对新增数据进行压缩,因此批量写入有助于提升压缩效果。


请先 登录 后评论
  • 1 关注
  • 0 收藏,908 浏览
  • jinzhi 提出于 2021-06-15 13:47

相似问题