Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.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
Database 大数据存储与查询_Database_Architecture_Hadoop_Mapreduce - Fatal编程技术网

Database 大数据存储与查询

Database 大数据存储与查询,database,architecture,hadoop,mapreduce,Database,Architecture,Hadoop,Mapreduce,我们拥有大约3亿条记录的庞大数据,每3-6个月更新一次。我们需要查询这些数据(连续、实时)以获取一些信息。有哪些选项-RDBMS(mysql)或其他类似Hadoop的选项。哪一个更好?好,我有一些PostgreSQL数据库,其中一些表的记录超过7亿条,并且它们一直在更新 这些表中的查询工作得非常快(几毫秒),而且没有任何问题。现在,我的数据非常简单,我查询的字段上有索引 因此,我想说,这将完全取决于您将进行何种查询,以及您是否有足够的资金用于高速磁盘。3亿条记录应该不会对Oracle、SQL S

我们拥有大约3亿条记录的庞大数据,每3-6个月更新一次。我们需要查询这些数据(连续、实时)以获取一些信息。有哪些选项-RDBMS(mysql)或其他类似Hadoop的选项。哪一个更好?

好,我有一些PostgreSQL数据库,其中一些表的记录超过7亿条,并且它们一直在更新

这些表中的查询工作得非常快(几毫秒),而且没有任何问题。现在,我的数据非常简单,我查询的字段上有索引


因此,我想说,这将完全取决于您将进行何种查询,以及您是否有足够的资金用于高速磁盘。

3亿条记录应该不会对Oracle、SQL Server、DB2等高端RDBMS造成任何问题。我对mySQL不太清楚,但我很确定它现在已经被一些相当大的数据库所使用。

正如其他人所说,现代RDBMS可以处理这样的表,这取决于查询和模式(必须进行一些优化)。如果您有一个很好的键来拆分行(例如日期列),那么分区/分片技术将帮助您将表拆分为几个小的表


你可以在我不久前在这里提出的一个问题中阅读更多关于这些和其他缩放技术的信息-

3亿美元现在还不算太大:-)

如果您主要是查询,并且或多或少知道查询将采用什么形式,那么具有适当索引的MySQL表就可以正常工作

如果在运行查询的同时不断应用更新,那么选择PostgreSQL,因为它具有更好的并发处理能力

如果您的公司愿意花钱,MS SQLServer、Sybase、Oracle和DB2都可以轻松地处理这些卷


另一方面,如果您打算在非结构化数据上执行真正的自由格式查询,那么Hadoop或类似工具将是更好的选择

300M条记录在常规关系数据库的范围内,如果正确使用索引,实时查询应该没有问题


Hadoop听起来有些过分,除非你真的需要高度分散和冗余的数据,而且如果你遇到麻烦或需要优化,它也会使你更难找到支持。

这些都是令人难以置信的数字。我从未在oracle或MSSQL中经历过类似的事情。你认为真正是机器和磁盘完成了大部分工作吗?嗯,这个表有782M条记录,磁盘占用62GB,主索引占用17GB。在那个盒子上,有3.5GB的内存。所以,每次我需要一个元素时,它都必须读取索引,而索引不在内存中,所以,是的,快速磁盘很重要。