可以考虑Elasticsearch,它是一款免费的分布式开源搜索和分析引警,Elasticsearch集群能处理PB级别的数据存储、查询以及分析。被广泛应用于企业级的场景,如: 海量日志存储,运维监控,数据分析,信息检索等领域。
一、十亿级别,应该用什么数据库和解决方案
可以考虑Elasticsearch,它是一款免费的分布式开源搜索和分析引警,Elasticsearch集群能处理PB级别的数据存储、查询以及分析。被广泛应用于企业级的场景,如: 海量日志存储,运维监控,数据分析,信息检索等领域。
如果只是简单场景查询的话,建议直接使用满N叉树结构,N值可以设置的足够大到内存可以分配的程度。
对原始数据先直接构造上面结构存入硬盘,读取一次按照N叉树结构读取一层。
这种方式可以保证最大程度的查询效率,但无法对数据进行更新和删除,如果说有需要更新和删除操作,建议还是使用B树结构,数据库可直接使用商用和开源的成熟产品。
延伸阅读:
二、什么是数据库
数据库就是英文的“database”翻译来的,data + base,故名思义就是数据的根源,数据的基础。那么为什么要有数据库呢,数据库首先是个计算机软件,在所谓数据库诞生之前,常用方法可能是程序员自己写一个小程序来完成数据处理分析这样的工作。
伴随着计算机的普及,越来越多的场景开始使用计算机,产生了越来越多的数据,也催生了越来越多的数据分析需求。为了降低数据分析的门槛,让更多人能够更方便高效地管理分析数据,工程师们就打造了一种专门的软件来帮助人们对数据进行合理的存储以提高存取效率,提供易用的接口和丰富的分析算法以方便使用,集成有效的管理工具以提高数据安全性等等,这就是数据库,也被称为数据库管理系统(DBMS,Database management system)。
数据库是一整套数据管理体系,包括数据存储的模型、数据组织的架构、数据分析的算法、数据管理的工具以及数据访问的接口等等。