V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
nooper
V2EX  ›  程序员

pytables vs h5py

  •  
  •   nooper · 2013-12-26 23:30:49 +08:00 · 3454 次点击
    这是一个创建于 3978 天前的主题,其中的信息可能已经有所发展或是发生改变。
    这两个库有种淡淡的忧伤。
    pytables 说并不支持并发机制,但是结构的话的定义是非常的出色。
    不知道两个文件做同步会怎么样。
    h5py说并不支持时间定义,但是支持MPI并行机制,但是结构化的定义需要各自繁琐的封装。
    我多么希望采用高速并发的支持大数据读取的数据库哇。
    mongodb和hadoop,,,,,为什么。。。。
    有种小忧伤。
    需要底层封装并发读取,同步,锁互斥操作。
    加上这些导致这玩意并不快,还会造成数据误读取。
    hoho
    2 条回复    1970-01-01 08:00:00 +08:00
    mckelvin
        1
    mckelvin  
       2013-12-28 00:46:29 +08:00
    难得看到有帖子在讨论hdf5~
    之前https://github.com/tb2332/MSongsDB/blob/master/PythonSrc/hdf5_utils.py 这个项目中第一次看到h5py,貌似强大但是蛮复杂,很难去维护结构。最后我的需求还是通过手工封装python自带的shelve来解决了。工程界似乎很少在生产环境中使用hdf5。

    分布式环境下很难做到实时的一致性,像moosefs这种文件系统甚至都不支持fcntl锁。并发地读写对数据库端压力也不小。

    MapReduce的场景下最好还是避免随机读写,先一次性dump出来,分发到各个节点Map,完了再一次性写回去。比如Map完毕数据写入redis,可以collect回来,通过mass-insert(http://redis.io/topics/mass-insert)批量写入,避免在Map操作的时候一次次set。其他数据库应该也有类似的方案。曾经我发现过一个支持高并发随机读写的结构完善的数据库,后来我就醒了。
    nooper
        2
    nooper  
    OP
       2013-12-29 23:53:09 +08:00
    @mckelvin 这玩意我看过h5py只不过要用c接口来实现并发的机制还是可以的。那个啊那个啊并发机制非常的好的数据库,早知道用mongodb ,原先团队认为服务器资源有限,必须发挥最好的性能,但是库绝对的是个蛋疼的接口。HDF5不是一个有效的数据库系统。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   964 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 22:32 · PVG 06:32 · LAX 14:32 · JFK 17:32
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.