搜狐首页 科技 楚乔传

手机搜狐

SOHU.COM

5大开源数据存储解决方案推荐

【IT168评论】用于存储大数据的解决方案是当今面临的巨大技术挑战。当然,有很多不同的选择,如RDBMS,NoSQL,时间序列数据库等,本文分析了五个数据存储解决方案,这些方案是为不同目的而创建的,但所有方案都可用于保存基于时间的日志。

数据存储仅将事件保存到数据库是不够的,每个数据存储库都必须有一个接口以实时搜索,并具有良好的性能,每天至少能够存储40GB的数据,总数据大小至少约为20TB,搜索日志消息应该实时完成,搜索查询的响应时间小于10秒。

1.ClickHouse

主要特征:高可靠、跨数据中心复制、SQL支持、性能超过DBMS。

ClickHouse(以下简称CH)是一个开源的面向列的数据库管理系统,允许实时生成数据分析报告。由Yandex开发人员因内部目的而创建的,它已演变成一个开源工具。它目前支持Yandex.Metrica,这是世界第二大网络分析平台,拥有超过13万亿数据库记录,每天有超过200亿事件。CH可直接从非聚合数据即时生成自定义报告。

CH支持SQL语法,很容易使用。很多表引擎都是由CH提供的,我们将使用MergeTree。MergeTree引擎通过主键和日期支持索引,并可实时更新数据。MergeTree类型表必须有包含日期的单独列。日期列的类型必须为“Data”(而不是“DateTime”)。如果Event结构中没有这种类型,将需要额外添加。

CREATE TABLE语句如下所示:

在示例中,数据插入是一个非常频繁的操作,它可能每秒有上千请求。要提高性能,我们建议并行执行多个INSERT查询,性能将线性增加:

现在,让我们select一些数据:

注意:ClickHouse有一个Golang连接器。

此外,CH支持复制,这对于大量数据和日志管理是必要的。INSERT和ALTER查询可以发送到任何可用的服务器。数据插入到此服务器上,然后发送到其他服务器。由于它是异步的,因此最近插入的数据会在其他副本上出现一些延迟。如果副本不可用,则数据会在可用时写入。如果副本可用,则延迟是通过网络传输压缩数据块所花费的时间量。

2.PrestoDB

主要特征:连接器架构是Hadoop友好的、支持ANSI SQL、ODBC和JDBC支持、支持地图数据类型。

Presto是一个开源分布式SQL查询引擎,用于针对从千兆字节到PB级大小的数据源运行交互式分析查询。Presto交互式分析的速度接近商业数据仓库。Presto被社区的许多成员称为数据库。它默认提供不同的Apache Hive连接器,PrestoDB使用SQL语法。

精选