我在一家银行工作。我们的大部分数据都是数据库表的形式。我们会从实施 Hadoop 中受益吗?我的印象是 Hadoop 更适用于分布式文件系统(非结构化数据),而不是 OLAP 数据库(Netezza)
当数据在数据库表中而不是在文件系统中时,Hadoop 是否有益?
Hadoop 上的“SQL”非常重要,尽管我使用引号,因为说它类似于 SQL 可能更准确。将类似 SQL 的功能引入 Hadoop 的一些选项包括 Hue、Hive/bee(走向 Stinger?如此 punny Apache)、Impala、SparkSQL(考虑到并发问题的可能性,对于银行来说可能不是一个很好的解决方案)等等(似乎就像现在每个人都有自己的版本一样)
不过老实说,如果你问它是否有帮助,你可能不需要 Hadoop(在此之前很抱歉,这不是故意的)。很多地方都认为他们需要 Hadoop,但实际上很少有人需要Hadoop。有一些业务在技术上失败了,因为他们在真正不存在需求时过渡到它。如果您确实需要 Hadoop 或其他分布式系统,如果不深入了解您的数据和您的特定业务方式,几乎不可能确定哪种设置对您的组织有益。
我认为您指的是 Hadoop 的 HDFS 部分。如果我是正确的,恕我直言,使用 Hadoop 不应被视为替代方案,而是必要的。Hadoop 回答了这个问题:我如何利用我拥有的大量数据,因为我现在无法使用它。
所以是的,HDFS 是一个分布式文件系统(这就是 Hadoop DFS 的原因),如果您现在(或计划将来)没有遇到数据库表的限制,那么没有理由考虑切换。此外,我认为根据数据,您可能无法使用银行数据库做任何您想做的事情。
我应该补充一点,在大数据生态系统中有数据库的替代品(例如 NoSQL 系统),但我的回答完全取决于您没有提及任何特定任务/目标的事实,所以我的回答基本上是:
_ 我有一台足够我今天和将来工作的电脑,我需要更换它吗?
_ 如果您认为它足以供您将来使用,那么不。
这取决于您的具体情况 - 我认为您需要添加更多细节才能获得一个好的答案。例如,您目前在数据存储方面遇到什么问题?你在未来想要改变或实现什么?
您的数据(您没有提及数据到底是什么,但我认为这是银行交易、客户信息等?)将位于传统的关系数据库管理系统 (RDBMS) 中,可能基于 SQL,这是有充分理由的 -传统的 RDBMS 非常擅长事务处理,即能够非常快速地添加新记录、更新和删除现有记录,并且不会“弄乱”数据——例如,如果对同一客户记录的两次更新几乎同时发生,数据库系统将正确排序更新,“锁定”相关记录以防止冲突等,以便您永远不会留下不一致的数据。这对银行来说是极其不利的——想象一下,如果某人的银行账户不小心被错误的余额覆盖了!
出于这个原因,我想大多数银行将在未来很多年继续使用这些系统,这些系统非常成熟、经过充分测试、易于理解,并且有大量具备必要技能的人员可供雇用。此外,更改银行系统的底层存储系统风险极大,因此为什么大多数银行运行非常旧的软件 - 更新软件出现问题的风险太大了。
但是,如果您只是想针对这些数据生成分析报告,并保持原始源数据不变,那么 Hadoop 很可能是一个有用的调查系统。总体思路是将原始数据从银行系统导出到 HDFS,例如,使用 Hadoop 生成分析报告。这种系统的好处是创建查询(例如“我所有客户的平均银行余额是多少”)可能会更快(并且更安全),而不会在查询运行时锁定您的源数据库系统(再说一次,这对银行来说真的非常非常糟糕!)。Hadoop 和类似系统擅长这种任务,通常称为 OLAP(离线分析处理),但对于 OLTP 则完全没有优势。
听起来您需要真正考虑一下您在这里尝试做什么,并首先对 OLAP 和 OLTP 的差异进行大量研究,然后从那里开始。希望有帮助。