为什么像Vertica/InfoBright/GreenPlum这样的列式数据库会对Hadoop大惊小怪?

5

将数据导入Hadoop集群,然后使用该集群将数据导入Vertica/InfoBright数据仓库有什么意义?

所有这些供应商都在说“我们可以连接到Hadoop”,但我不明白这样做的意义。在Hadoop中存储并转移到InfoBright有什么好处?为什么不直接让应用程序将数据存储在Infobright/Vertica DW中呢?

谢谢!

9个回答

14
为什么要结合这些解决方案呢?Hadoop有一些很棒的功能(请参见下面的链接)。但是,这些功能并不包括允许业务用户运行快速分析。在Hadoop中需要花费30分钟到数小时的查询,在Infobright中只需要几秒钟就能得出结果。
顺便说一下,你最初的问题没有预设MPP架构,这是有充分理由的。Infobright的客户Liverail、AdSafe Media和InMobi等人使用了IEE与Hadoop组合。
如果您注册一个行业白皮书http://support.infobright.com/Support/Resource-Library/Whitepapers/,您将看到当前市场上的四个建议用例。该白皮书由TechTarget的业务应用程序和架构组研究主任Wayne Eckerson于2011年9月撰写。
1)创建在线存档。
通过Hadoop,组织无需删除或将数据发送到离线存储,可以通过添加廉价服务器来满足存储和处理要求,将数据无限期保持在线。 Hadoop成为满足在线归档要求的低成本替代方案。
2)提供数据仓库。
组织还可以使用Hadoop解析、集成和聚合大量的Web或其他类型的数据,然后将其发送到数据仓库,在那里,普通和高级用户都可以使用熟悉的BI工具查询和分析数据。在这里,Hadoop成为处理大量Web数据的ETL工具,然后将其放入企业数据仓库中。
3)支持分析。
大数据人群(即互联网开发人员)主要将Hadoop视为用于针对大量数据运行分析计算的分析引擎。当前,分析师需要编写Java或其他语言的程序并了解MapReduce(一种编写分布式(或并行)应用程序的框架)才能查询Hadoop。优点在于,在制定查询时分析师不受SQL的限制。SQL不支持许多类型的分析,尤其是涉及跨行计算的分析,在Web流量分析中很常见。缺���是Hadoop是面向批处理的,不利于迭代查询。

4) 运行报告。
然而,Hadoop的批处理导向使其适合执行定期安排的报告。组织现在可以针对原始数据运行报告,而不是针对摘要数据运行报告,从而保证最准确的结果。


4
有几个原因你可能想这样做: 1. 每TB成本。Hadoop的存储成本比Vertica/Netezza/greenplum等要便宜得多。您可以在Hadoop中获得长期保留,以及在分析DB中获得短期数据。 2. Hadoop中的数据摄取能力(执行转换)更好 3. 编程分析(例如Mahout等库),因此您可以构建高级文本分析 4. 处理非结构化数据
MPP数据库在特定查询方面提供更好的性能,在处理结构化数据和连接传统BI工具(OLAP和报告)方面也更好 - 因此基本上Hadoop补充了这些DB的功能。

3
这个软件为什么联合部署如此有效?
首先,两个平台有很多共同点:
- 从头开始构建,专门用于大数据转换和分析 - 利用MPP架构进行横向扩展,能够通过普通硬件管理TB到PB级别的数据 - 本地HA支持,管理开销低
Hadoop非常适合初始探索性数据分析,其中数据通常可在HDFS中获得,并且是无模式的,批处理作业通常足够。而Vertica非常适合风格化、交互式分析,需要重复应用已知的分析方法来处理即将到来的数据批次。
通过使用Vertica的Hadoop连接器,用户可以轻松地在两个平台之间移动数据。此外,单个分析作业可以分解成利用两个平台的执行能力的片段;例如,在Web分析用例中,Web服务器生成的JSON数据最初被转储到HDFS中。然后调用map-reduce作业将这种半结构化数据转换为关系元组,并将结果加载到Vertica中,以便随后的分析查询进行优化的存储和检索。
Hadoop和Vertica在处理大数据时互补的主要差异是什么?
  • 接口和可扩展性

    Hadoop
    Hadoop的MapReduce编程接口专为开发人员设计。该平台因其多语言支持以及由强大社区提供的现成分析库包而备受赞誉。
    Vertica
    Vertica的接口符合BI行业标准(SQL、ODBC、JDBC等)。这可以使技术人员和业务分析师都能在其分析用例中利用Vertica。SDK是MapReduce范式的一种替代方案,并且通常具有更高的性能。

  • 工具链/生态系统



    Hadoop
    Hadoop和HDFS与许多其他开源工具很好地集成。它与现有的BI工具的整合正在出现。
    Vertica
    Vertica由于其符合标准的接口与BI工具集成。通过Vertica的Hadoop连接器,数据可以在Hadoop和Vertica之间并行交换。

  • 存储管理



    Hadoop
    Hadoop默认情况下将数据复制三次以保证高可用性。它将数据分段到机器集群中进行负载平衡,但数据分段方案对最终用户不透明,不能调整以优化分析作业。
    Vertica
    Vertica的列式压缩通常可以实现10:1的压缩比。典型的Vertica部署将数据复制一次以确保高可用性,并且两个数据副本可以获得不同的物理布局,以优化更广泛的查询范围。最后,Vertica不仅为负载平衡而对数据进行分段,还要进行压缩和查询工作量优化。

  • 运行时优化

    Hadoop
    由于HDFS存储管理未按照优化分析作业的方式对数据进行排序或分段,因此在作业运行时,输入数据经常需要在集群之间重新分段和/或排序,从而产生大量的网络和磁盘I/O。

    Vertica
    在数据加载期间,数据布局通常会针对目标查询工作量进行优化,以便在查询运行时只产生最少量的I/O。因此,Vertica专为实时分析而设计,而不是批处理数据处理。

  • 自动调整

    Hadoop
    MapReduce程序使用过程性语言(Java、Python等),这些语言提供开发人员对分析逻辑的精细控制,但也要求开发人员仔细优化他们的程序中的作业。
    Vertica
    Vertica数据库设计师根据输入工作量提供自动性能调整。查询以声明性SQL语言指定,并由Vertica列优化器自动优化。

3

Hadoop更像是一个平台而不是数据库。

把Hadoop看作支持许多文件类型查询的整洁文件系统。考虑到这一点,大多数人会将原始数据倒入Hadoop,并将其用作数据管道中的暂存层,在此期间它可以处理数据并将其推送到其他系统,如vertica或其他任何系统。您有几个优势,可以归纳为解耦

因此,Hadoop正在成为大数据的存储平台。它简单、容错性强、可扩展性好,很容易提供和获取数据。因此,大多数厂商都试图向可能拥有Hadoop安装的公司推销产品。


0

非结构化数据本质上不适合加载到传统的数据仓库中。Hadoop MapReduce 作业可以从日志文件(例如)中提取结构,然后可以将其移植到您的 DW 以进行分析。Hadoop 是批处理,因此不适合分析查询处理。因此,您可以使用 Hadoop 处理数据以带来一些结构,然后通过可视化/SQL 层使其准备好查询。


0
在Hadoop集群中提供数据并使用该集群将数据馈送到Vertica/InfoBright数据仓库的意义何在?
这样做的意义在于,您不希望用户发出查询并等待数分钟或数小时才能得到答案。Hadoop无法为您提供实时查询响应。虽然随着Cloudera的Impala和Hortonworks的Stinger的出现,情况正在改变。这些是基于Hadoop的实时数据处理引擎。
Hadoop的底层数据系统HDFS允许将数据分块并分布在集群中的节点上。事实上,HDFS也可以用第三方数据存储(如S3)替换。重点是:Hadoop提供了存储和处理两个功能。因此,欢迎您将Hadoop用作存储引擎,并在需要时提取数据到数据仓库中。您还可以使用Hadoop创建立方体和数据集市,并将这些数据集市存储在仓库中。
但是,随着Stinger和Impala的出现,这些声明的优势最终将被抹去。所以请保持关注。

0

像Greenplum DB这样的大规模并行数据库非常适合处理大量结构化数据。Hadoop则非常擅长处理更大量的非结构化数据,例如网站。

现在,许多有趣的分析将这两种类型的数据结合起来以获得洞察力。因此,这些数据库系统能够与Hadoop集成非常重要。

例如,您可以使用MapReduce在Hadoop集群上进行文本处理,直到您获得每个产品或其他内容的评分值。然后,该评分值可以由数据库用于将其与已经存储在数据库中的其他数据或从其他来源加载到数据库中的数据相结合。


0
我不是Hadoop的用户(只是Vertica用户/DBA),但我认为答案可能是这样的:
- 您已经使用Hadoop设置了一个系统,想要添加一个"大数据"数据库以进行深度分析。
- 您希望将Hadoop用于非分析功能和处理,并使用数据库进行分析。但是数据是相同的,因此不需要两个数据源。

0
稍微扩展一下Arnon的回答,Hadoop已被认为是一个不会消失的力量,并在组织中获得越来越多的关注,往往是通过开发人员的基层努力实现的。MPP数据库擅长回答我们在设计时已知的问题,例如“每小时按国家计算有多少交易?”。
Hadoop起初是为了一种介于分析师和开发人员之间的新型开发人员而创建的,这种开发人员既能编写代码,又能理解数据分析和机器学习。MPP数据库(列或非列)非常不适合为这种类型的开发人员提供服务,他们经常分析非结构化数据,使用需要太多CPU运行在数据库中或数据集过大的算法。构建某些模型所需的大量CPU功率使得在任何传统的分片DB中运行这些算法都是不可能的。
我个人使用hadoop的流程通常如下:
1. 在Hadoop中运行许多非常大的全局查询,以对数据和变量的分布有一个基本的了解。 2. 使用Hadoop构建一个只包含我感兴趣的数据的较小数据集。 3. 将较小的数据集导出到关系型数据库中。 4. 在关系型数据库上运行许多小查询,构建Excel表格,有时进行一些R操作。
请记住,这个工作流仅适用于“分析开发人员”或“数据科学家”,其他人的使用效果可能会有所不同。
回到你的问题,由于像我这样的人放弃了他们的工具,这些公司正在寻找方法,在一个Hadoop等同于大数据、最酷的初创公司和尖端技术的时代保持相关性(无论这是否是合理的,你可以自己讨论)。此外,许多Hadoop安装要比组织的MPP部署多一个数量级或更多,这意味着更多的数据在Hadoop中长时间保留。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接