Apache Pig 的优点和缺点

1. Apache Pig 的优点和缺点

众所周知,我们使用Apache Pig来分析大量数据, Pig存在优点,但是, 在某些地方,也有一些缺点。在本章中,我们将讨论Apache Pig的所有优点和缺点。

2.介绍Apache Pig

Apache Pig是一种数据流语言。 它建立在Hadoop之上。 无需编写复杂的 MapReduce作业,可以更轻松地处理,清理和分析Hadoop中的“大数据”。

另外,它还有很多关系数据库特性。 此外,语言中已经包含了很好的类似于SQL join,union, distinct等更多的命令。 Pig的解决方案与关系数据库不同,它适用于“大数据”,它可以轻松地处理大型文件,而且不需要结构化数据。 另外,可以自然地将Pig用于ETL(提取转换加载)任务,因为它可以处理非结构化数据。 

3. Apache Pig的优点和缺点

让我们分别讨论Apache Pig的优点和缺点:

Apache Pig的优点

减少开发时间

开发时需要更少的时间。 这是主要的优势之一。特别是考虑到 MapReduce作业的复杂性,花费时间和程序的维护。

简单易学

了解SQL的程序员,就可以编写Pig Latin来实现MapReduce作业。

程序过程语言

Apache Pig是一种非声明式的程序过程语言,与SQL不同。 可以轻松地遵循支持的命令。 在每一步数据转换中都清晰易懂。与MapReduce进行比较, 它非常简洁,不像Java,更像Python。

数据流

它是一种数据流语言。意味着所有的操作都是关于数据的, 数据转换是十分重要的。 不能创建没有数据的循环。核心就是需要始终转换和操纵数据。

易于控制执行

可以控制每一步的执行,本质上是程序性的。 直截了当。可以编写自己的UDF(用户定义函数)并注入Pipeline中的一个特定部分。

UDF

可以编写自己的UDF。

Lazy evaluation 延时执行

除非生成输出文件或输出任何消息,否则不会进行评估执行。这是逻辑执行计划的一个好处。可以优化整个程序脚本,并且优化器可以产生一个有效的执行计划。

Hadoop功能的使用

通过Pig,可以享受Hadoop提供的一切优点,比如并行化,容错性等,并且也可以具有许多关系数据库特性的功能。

对非结构化数据有效

Pig对非结构化和杂乱的大数据集非常有效。基本上,Pig是使大型非结构化数据结构化的最佳工具之一。

Base Pipeline

如果想要并行化执行并用于大量数据的UDF。可以使用Pig作为基础管道,首先完成计算量大的工作。只是在我们想要的步骤中应用我们的UDF即可。

Apache Pig 的局限性

Pig的错误处理

Pig 中UDF(Python)而产生的错误没有帮助。有时候,出现问题,但它只是在UDF中出现错误,例如exec错误,即使问题与语法或类型错误有关,它也只是一个逻辑错误。有时候,难与调试

成熟度不够完善

Pig仍然在发展中.

支持

有限的支持。

隐式数据结构模式

在Apache Pig中,数据结构模式是可选的,不是明确而是隐含地强制执行的 。由于它不强制显式模式,有时候,一个数据结构会传送为字节数组,是一种“原始”数据类型。

合适的集成编辑器

合适的编辑器,提供比语法完成更多的功能来编写Pig Latin。

延迟执行

除非转储或存储中间或最终结果,否则不执行这些命令。这增加了调试和解决问题之间的迭代。

Apache Pig 的优点和缺点

发表评论

邮箱地址不会被公开。 必填项已用*标注

17 + = 二十

滚动到顶部