Closed. This question needs to be more focused。它当前不接受答案。












想改善这个问题吗?更新问题,使其仅通过editing this post专注于一个问题。

4年前关闭。



Improve this question





我需要制定计划将数据从SQL Server DB移到任何大数据数据库中吗?我想到的一些问题是:


数据有多大?
此数据的预期增长率是多少?
哪种查询会经常运行?例如:查找,范围扫描,全扫描等
数据从源移动到目标的频率如何?


任何人都可以帮助添加到此调查表中吗?

最佳答案

首先,How big is the data没关系!这一点几乎不能用来决定使用哪个NoSQL DB,因为大多数NoSQL DB都是为了简化可伸缩性和存储而制作的。因此,重要的是您触发的查询,而不是那里有多少数据。 (当然,除非您打算将其用于存储和访问非常少量的数据,因为在许多NoSQL DB中它们会有点贵),您的第一个问题必须是为什么要考虑使用NoSQL? RDBMS无法处理吗?

期望的增长率是一个相当大的参数,但是又不是那么有效,因为大多数NOSQL DB支持存储大量数据(没有任何可伸缩性问题)。

您列表中最重要的一个是What kind of queries will be run?

这很重要,因为RDBMS将数据存储为tuples,并且更容易选择元组并以较少的数据量输出它们。它在执行*查询(作为其按行存储)时速度更快。但是使用NoSQL时,大多数数据库都是columnarColumn-oriented DBMS

面向行的系统:在将数据插入表中时,将为其分配一个内部ID,该ID在系统内部用于引用数据。在这种情况下,记录具有独立于用户分配的Empid的顺序行ID。

面向列的系统:面向列的数据库将一列的所有值依次序列化,然后将下一列的值序列化,依此类推。

面向行和面向列的数据库之间的比较通常与给定工作负载下硬盘访问的效率有关,因为与计算机中的其他瓶颈相比,查找时间非常长。

How frequently the data will be moved/accessed?再次是一个好问题,因为访问成本很高,并且很少有NoSQL数据库在第一次拍摄查询时非常慢(例如:Hive)。

您可能考虑的其他参数是:


是否需要更新行(表中的数据)? (配置单元存在更新问题,通常必须删除并再次插入)
为什么要使用数据库? (搜索,派生关系或分析等)您要对数据执行哪种类型的操作?
是否需要进行关系搜索?就像在Facebook Db(Presto)的情况下一样
是否需要汇总?
是否将其用于关联各个列以得出见解?(例如要进行分析)
最后但也是非常重要的一点,您是否要将数据作为文件或数据库的特定存储格式或其他形式存储在HDFS(Hadoop distributed File System)上?这很重要,因为您的处理取决于数据的存储方式,是否可以直接访问数据还是需要耗时的查询调用等。

关于sql-server - 我想将数据从SQL Server DB移到Hbase/Cassandra等。如何确定要使用哪个bigdata数据库? ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37178068/

10-14 10:51
查看更多