想了解以下目的是否是正确的选择Netezza
:Hadoop
从几个相当大的在线资源中提取提要文件,有时超过 GB。
从提要中清理、过滤、转换和计算更多信息。
生成不同维度的指标,类似于数据仓库多维数据集的执行方式,以及
使用 SQL 或任何其他标准机制帮助 webapps 更快地访问最终数据/指标。
工作原理:
当数据加载到设备中时,它会智能地将每个表分隔到 108 个 SPU 中。
通常,硬盘是计算机中最慢的部分。想象一下,其中 108 个同时旋转起来,加载一小块桌子。这就是 Netezza 如何实现每小时 500 GB 的加载时间。
在将表的一部分加载并存储在每个 SPU(集成电路卡上的计算机)上之后,分析每一列以获得描述性统计信息,例如最小值和最大值。这些值存储在 108 个 SPU 中的每一个上,而不是索引,索引需要时间来创建、更新和占用不必要的空间。
想象一下您的环境不需要创建索引。当需要查询数据时,设备内部的主计算机会查询 SPU 以查看哪些 SPU 包含所需的数据。
只有包含适当数据的 SPU 才会返回信息,因此信息通过网络传输到商业智能/分析服务器的次数较少。对于连接数据,它变得更好。
该设备通过一个键将数据分布在多个 SPU 的多个表中。每个 SPU 包含多个表的部分数据。它在每个 SPU 上本地连接每个表的部分,仅返回本地结果。所有“本地结果”都在机柜内部组装,然后作为查询结果返回到商业智能/分析服务器。这种方法也有助于速度故事。
所有这一切的关键是“减少网络上的数据移动”。该设备仅通过组织的 1000/100 MB 网络将所需的数据返回到商业智能/分析服务器。
这与商业智能/分析软件通常从数据库中提取大部分数据以在其自己的服务器上进行处理的传统处理非常不同。数据库执行确定所需数据的工作,将较小的子集结果返回到商业智能/分析服务器。
备份和冗余
要了解如何为几乎 100% 的正常运行时间设置数据和系统,了解内部设计非常重要。它使用每个 400 GB 磁盘的外部、最快、三分之一的部分进行数据存储和检索。三分之一的磁盘存储描述性统计数据,另外三分之一存储其他 SPU 的热数据备份。每个设备机柜还包含 4 个额外的 SPU,用于自动故障转移 108 个 SPU。
取自http://www2.sas.com
我会考虑分开设计批处理 ETL 过程和进一步的 SQL 请求。我认为以下数字对于评估决策很重要:
a) 您每天要处理多少行数据?
b) 您想在系统中存储多少行数据?
c) RDBMS 数据集的大小。
d) 你将拥有什么样的 SQL?我的意思是 - 是否有临时 SQL 或精心策划的报告。另一个问题 - 你需要两张大桌子之间的乔恩斯。
回答了以上问题,就有可能给出更好的答案。例如,当您确实需要连接非常大的表时,我会考虑使用 Netezza,如果需要存储 TB 的数据,我会考虑使用 hadoop。
从您的回答看来,Netezza 可能更适合您的需求。它可以很好地处理临时查询,并且其软件的最新版本内置了对汇总和多维数据集的支持。此外,Netezza 以 TB 级数据运行,因此您应该能够处理可用的数据。
如果您正在处理 ELT 场景,您必须加载大量文件并稍后进行处理,例如过滤、转换并将其加载到传统数据库进行分析,那么您可以使用 hadoop 加载文件,然后使用 Netezza 作为目标暂存或数据仓库区。使用 hadoop,您可以将所有文件放入 HDFS,然后使用 ETL 工具读取以转换、过滤等,或者使用 Hive SQL 将查询写入这些文件中的数据。但是,基于 hadoop 的数据仓库 HIve 不支持更新,也不支持所有的 SQL 语句。因此,最好从 HDFS 读取这些文件、应用过滤器、转换并将结果加载到传统的数据仓库设备(例如 netezza)来编写多维数据集查询。
如果您每天将 GB 的数据加载到 netezza,包括着陆区、暂存区和集市区,那么您很可能最终会使用大量空间。在这种情况下,您可以将登陆空间设置为 hadoop,然后将暂存区和集市区域设置为 netezza。如果您的查询很简单,并且您没有进行非常复杂的过滤等或源更新,那么您可以使用 hadoop 管理所有内容。
总而言之,hadoop 非常适合处理大量数据,但不支持传统数据仓库的所有功能。
您可以查看此链接以查看差异: http ://dwbitechguru.blogspot.ca/2014/12/how-to-select-between-hadoop-vs-netezza.html