Hadoop与任何数据库组合的优点

时间:2017-01-12 14:58:37

标签: database hadoop2 bigdata nosql

有许多不同的数据库。

  • 关系数据库
  • nosql数据库
    • 键/值
    • 文件商店
    • 宽列商店
    • 图表数据库

和数据库技术

  • in-memory

  • 专栏

所有都有其优点和缺点。 对我来说,很难理解如何为大数据项目评估或选择合适的数据库。

我认为Hadoop有许多功能可以在hdfs中保存数据或访问不同的数据库进行分析。

是否正确,hadoop可以让您更容易选择正确的数据库,因为它最初可以用作数据存储?所以,如果我有hadoop hdfs作为我的主要数据存储,我仍然可以为我的应用程序更改我的数据库或使用多个数据库?

2 个答案:

答案 0 :(得分:1)

HDFS不是与posix兼容的文件系统,因此您不能将其用作通用存储,然后在其上部署任何数据库。您将部署的数据库应该明确支持HDFS。有几个选项:HBase,Hive,Impala,SolR。

答案 1 :(得分:1)

首先,Hadoop不是数据库。它是一个分布式文件系统。

  

对我来说,很难理解如何为大数据项目评估或选择合适的数据库。

项目数据库的选择取决于这些因素,

  1. 数据存储和检索的性质

    如果它适用于交易,强烈建议您坚持使用ACID数据库。

    如果它用于Web应用程序或随机访问,那么您可以从传统的SQL应用程序和支持HDFS作为存储层的最新数据库技术(如HBase)中进行选择。 Traditional非常适合随机访问,因为它们高度支持约束和索引。

    如果需要考虑分析批处理,根据结构的复杂性和数量,可以在所有可用的处理中进行选择。

  2. 数据格式或结构

    大多数SQL数据库都支持结构化数据(可以格式化为表格的数据),有些确实扩展了它们的支持,超出了存储JSON的支持范围。

    如果数据是非结构化的,特别是flatfiles,那么使用任何Bigdata支持技术(如Hadoop,Spark,Storm)都可以轻松地存储和处理它们。只有当音量很高时,这些技术才会再次出现。

    不同的数据库技术适用于不同的数据格式。例如,Graph数据库非常适合存储表示关系或图形的结构。

  3. 尺寸

    这是下一个更大的问题,更多的数据更需要可扩展性。因此,最好选择支持横向扩展体系结构(Hadoop,NoSql)而不是Scale-In的技术。当您计划存储更多内容时,这可能会成为未来的瓶颈。

  4.   

    我认为Hadoop有许多功能可以在hdfs中保存数据或访问不同的数据库进行分析。

    是的,您可以使用HDFS作为您的存储层,并使用任何支持HDFS的数据库进行处理(选择处理框架是从批处理到近实时到实时选择的另一个问题)。需要注意的是,关系数据库不支持HDFS存储。一些NoSql数据库,如MongoDB,也支持HDFS存储。

      

    如果我有hadoop hdfs作为我的主要数据存储,我仍然可以为我的应用程序更改我的数据库或使用多个数据库?

    这可能很棘手,具体取决于您之后要与哪个数据库配对。