有许多不同的数据库。
和数据库技术
in-memory
专栏
所有都有其优点和缺点。 对我来说,很难理解如何为大数据项目评估或选择合适的数据库。
我认为Hadoop有许多功能可以在hdfs中保存数据或访问不同的数据库进行分析。
是否正确,hadoop可以让您更容易选择正确的数据库,因为它最初可以用作数据存储?所以,如果我有hadoop hdfs作为我的主要数据存储,我仍然可以为我的应用程序更改我的数据库或使用多个数据库?
答案 0 :(得分:1)
HDFS不是与posix兼容的文件系统,因此您不能将其用作通用存储,然后在其上部署任何数据库。您将部署的数据库应该明确支持HDFS。有几个选项:HBase,Hive,Impala,SolR。
答案 1 :(得分:1)
首先,Hadoop不是数据库。它是一个分布式文件系统。
对我来说,很难理解如何为大数据项目评估或选择合适的数据库。
项目数据库的选择取决于这些因素,
数据存储和检索的性质
如果它适用于交易,强烈建议您坚持使用ACID数据库。
如果它用于Web应用程序或随机访问,那么您可以从传统的SQL应用程序和支持HDFS作为存储层的最新数据库技术(如HBase)中进行选择。 Traditional非常适合随机访问,因为它们高度支持约束和索引。
如果需要考虑分析批处理,根据结构的复杂性和数量,可以在所有可用的处理中进行选择。
数据格式或结构
大多数SQL数据库都支持结构化数据(可以格式化为表格的数据),有些确实扩展了它们的支持,超出了存储JSON的支持范围。
如果数据是非结构化的,特别是flatfiles,那么使用任何Bigdata支持技术(如Hadoop,Spark,Storm)都可以轻松地存储和处理它们。只有当音量很高时,这些技术才会再次出现。
不同的数据库技术适用于不同的数据格式。例如,Graph数据库非常适合存储表示关系或图形的结构。
尺寸
这是下一个更大的问题,更多的数据更需要可扩展性。因此,最好选择支持横向扩展体系结构(Hadoop,NoSql)而不是Scale-In的技术。当您计划存储更多内容时,这可能会成为未来的瓶颈。
我认为Hadoop有许多功能可以在hdfs中保存数据或访问不同的数据库进行分析。
是的,您可以使用HDFS作为您的存储层,并使用任何支持HDFS的数据库进行处理(选择处理框架是从批处理到近实时到实时选择的另一个问题)。需要注意的是,关系数据库不支持HDFS存储。一些NoSql数据库,如MongoDB,也支持HDFS存储。
如果我有hadoop hdfs作为我的主要数据存储,我仍然可以为我的应用程序更改我的数据库或使用多个数据库?
这可能很棘手,具体取决于您之后要与哪个数据库配对。