代码之家  ›  专栏  ›  技术社区  ›  Trần Kim Dá»±

用于高强度写入的数据库引擎

  •  0
  • Trần Kim Dá»±  · 技术社区  · 6 年前

    我想每天写几百GB到数据库服务器(只有在空闲时间,例如,在晚上)。另外,我希望只有在编写完成之后,数据才可用。例如,如果您使用RDBMS系统,您将写入临时表,然后在新表和旧表之间进行交换。

    这就是为什么我想有一个数据库支持密集写。我研究过一些选择。

    • rocksdb:适合写,但因为这是嵌入式数据库,所以没有好的监控工具。
    • 卡桑德拉:我觉得太过分了。

    我还研究了其他一些数据库:蟑螂和hbase。所以哪个数据库适合我的高写密集型和易管理的目的。

    谢谢

    0 回复  |  直到 6 年前
        1
  •  1
  •   Mandraenke    6 年前

    也许这个问题更适合 https://softwarerecs.stackexchange.com/

    除此之外,当您查看只命中一个节点的异步插入和批处理时,cassandra在许多插入中都表现得非常好。我们每天都使用100GB的数据。

    请记住,您将需要一个策略来清除您选择的任何数据库中的旧数据。卡桑德拉不能为您处理的一件事是一个“巨大”的事务,它使数据在完成插入后可见。您必须在应用程序端执行此操作-我们对此使用“标记插入”,并且仅在已设置标记的情况下在客户端中执行处理。

    此外,Instagram的一些人将RockSDB和Cassandra组合到RockSandra:

    https://github.com/Instagram/cassandra/tree/rocks_3.0 https://instagram-engineering.com/open-sourcing-a-10x-reduction-in-apache-cassandra-tail-latency-d64f86b43589

        2
  •  0
  •   LetsNoSQL    6 年前

    你可以尝试“锡拉”和“卡桑德拉”两种写作方式。CasDANRA提供了良好的灵活性和可扩展性,具有许多特性。您可以参考ApACH.ORG或DATASAX Casand以获取更多的细节。Scylla也是一个很好的选择,如果你想实现良好的性能写在C++。