Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 什么数据库用于广泛的日志文件分析?_Sql_Database_Nosql_Analysis_Logfile - Fatal编程技术网

Sql 什么数据库用于广泛的日志文件分析?

Sql 什么数据库用于广泛的日志文件分析?,sql,database,nosql,analysis,logfile,Sql,Database,Nosql,Analysis,Logfile,这项任务是从一个已完成的研究项目中筛选和分析大约8TB的大量日志文件。其思想是用数据填充数据库,以便以后能够运行不同的分析任务 这些值以逗号分隔存储。原则上,这些值是最多5个值的元组: id, timestamp, type, v1, v2, v3, v4, v5 在使用MySQL的第一次尝试中,我使用了一个表,每行有一个日志条目。因此,日志值之间没有直接关系。这里的缺点是查询子集的速度慢 因为没有关系,我研究了NoSQL数据库等替代方案,而hbase或cassandra等基于列的表似乎非常适

这项任务是从一个已完成的研究项目中筛选和分析大约8TB的大量日志文件。其思想是用数据填充数据库,以便以后能够运行不同的分析任务

这些值以逗号分隔存储。原则上,这些值是最多5个值的元组:

id, timestamp, type, v1, v2, v3, v4, v5
在使用MySQL的第一次尝试中,我使用了一个表,每行有一个日志条目。因此,日志值之间没有直接关系。这里的缺点是查询子集的速度慢

因为没有关系,我研究了NoSQL数据库等替代方案,而hbase或cassandra等基于列的表似乎非常适合这种数据。但是这些系统是为大型分布式系统而设计的,而我们没有。在我们的例子中,分析将在一台机器上运行,或者在一些虚拟机上运行

哪种数据库适合此任务?是否值得使用hadoop+hbase设置一个单机实例。。。还是这都有点太大了

您会选择哪个数据库来进行高性能日志文件分析

编辑:也许我不清楚我们是否不能花钱购买云服务或新硬件。问题是使用noSQL方法而不是mySQL是否有好处,特别是对于这些数据。如果没有,或者如果它们太小以至于建立noSQL系统的努力不值得,我们可以使用我们的ESXi基础设施和MySQL

EDIT2:我还是有问题。我用MySQL做了进一步的实验,只插入了所有可用数据的四分之一。插入现在已运行2天多,尚未完成。目前,我的单表数据库中有2147483647行。对于索引,这需要211,2 GiB的磁盘空间。这只是所有记录数据的四分之一。。。 对表单的查询

SELECT * FROM `table` WHERE `timestamp`>=1342105200000 AND `timestamp`<=1342126800000 AND `logid`=123456 AND `unit`="UNIT40";
完成需要761秒,在本例中返回一行。 时间戳、logid、unit上有一个组合索引

所以我认为这不是一个好办法,因为在后面的分析中,我必须得到一个时间范围内的所有条目,并比较数据点

我读过MongoDB和Redis,但它们的问题是,它们在内存数据库中

在后面的分析过程中,将有非常少量的并发数据库访问。事实上,分析将在一台机器上运行。 我不需要裁员。如果发生故障,我将能够重新生成数据库。 一旦数据库被完全写入,就不需要更新或添加更多的行

您如何看待Redis、MongoDB等替代产品。当我做到这一点,我将需要在我的数据方面的RAM。。。
单节点系统或两个节点系统是否可能完成此任务?

我个人更喜欢更快的解决方案,正如您所说,您需要高性能分析。问题是,如果您必须设置一个全新的系统来实现这一点,并且性能改进与您需要的额外工作相比微不足道,那么请继续使用SQL

在我们公司,我们有一个相当小的数据库,其中包含的虚拟机数据甚至不到半GB。现在的问题是,一旦你使用一个虚拟机,你将有重大的性能问题,当打开虚拟机上的数据库时,你可以去喝杯咖啡


但是,如果数据库加载到缓存之前的时间不是那么重要,那也没关系。这完全取决于您认为新系统会快多少,以及您需要投入多少精力,但正如我所说的,如果您必须进行高性能分析,我更喜欢更快的解决方案,问题是:什么是更快的解决方案?我对noSQL方法和不在分布式系统上运行时的性能没有经验。也许安装一个新的noSQL单节点服务器的努力不值得获得这么小的性能增益。说到高性能,我指的是相对于数据量的相对快速的查询。我也没有这方面的经验,所以我只是说说我的想法。您必须自行决定哪种方式,在单节点模式下,我想两种尝试都会非常缓慢。实现的更快的解决方案显然是sql尝试,从性能的角度来看,这取决于您需要分析数据的频率。我认为仅仅运行10次,然后丢弃一些你完全不熟悉的东西是不合理的。[…][…]您分析的频率越高,您通过更快的解决方案赢得的时间就越多,但您必须考虑实施它需要多长时间。从你的描述来看,我认为这确实是一个“一次又一次”的任务。如果你需要这样做,但没有相应的系统,你可以看看类似亚马逊的解决方案,在那里你可以在指定的时间内使用它们。与投资hardwa相比,这使您能够进行如此简单且经济实惠的大数据分析
关于。出于隐私和财务方面的考虑,我们不能使用像亚马逊这样的资源。好的,很清楚,那么下面的重要问题是:你有多少硬件?这是8TB的数据,基于您拥有的系统,我们可以给出更清晰的答案。现在发生的情况是,您要求提供性能建议,但没有提供有关以下方面的信息:系统、它们的性能、it的可用性—您可以在没有其他用户的情况下使用它几天,以及您想做什么样的分析。所有缺失的部分,使其无法给出好的建议。需要明确的是:您需要一些严肃的内存来分析8TB的数据。但如果你能将其拆分,我们的创建聚合就更容易了。有几个ESXi服务器可以使用,可能一个专用于8核24GB RAM。分析将类似于给我所有的日志条目,其中id=x,type=y,时间戳在。。。然后我们将查看这些值,以分析项目特定的参数。确切的分析问题尚待确定。日期的格式应便于我们进行此类分析。