猪拉丁语是猪程序的语言。 Pig将Pig Latin脚本翻译成可以在Hadoop集群中执行的MapReduce作业。当想到Pig Latin时,开发团队遵循三个关键设计原则:
-
保持简单 。 Pig Latin提供了一个与Java MapReduce交互的简化方法。换句话说,这是一种抽象,它简化了在Hadoop集群上为数据流和分析创建并行程序。复杂任务可能需要一系列相互关联的数据转换 - 这样的系列被编码为 数据流序列。
<!将数据转换和流程写成Pig Latin脚本而不是Java MapReduce程序使得这些程序更易于编写,理解和维护,因为a)您不必在Java中编写作业,b )您不必考虑MapReduce,并且c)您不需要提供自定义代码来支持丰富的数据类型。 Pig Latin提供了一种更简单的语言来利用您的Hadoop集群,从而使更多人能够更轻松地利用Hadoop的强大功能,并且更快地提高生产力。聪明一点。您可能还记得Pig Latin Compiler做了将Pig Latin程序转换成一系列Java MapReduce作业的工作。诀窍是确保编译器可以自动优化这些Java MapReduce作业的执行,从而使用户可以专注于语义而不是如何优化和访问数据。
对于你的SQL类型,这个讨论听起来很熟悉。 SQL被设置为用于访问存储在RDBMS中的结构化数据的声明性查询。 RDBMS引擎首先将查询转换为数据访问方法,然后查看统计信息并生成一系列数据访问方法。基于成本的优化器选择最有效的方法来执行。 -
传统RDBMS数据仓库利用ETL数据处理模式,其中
e -
xtract来自外部数据源的数据, t
将其转换为适合您的操作需求,然后 > l 将其添加到最终目标中,无论是运营数据存储,数据仓库还是其他数据库变体。然而,对于大数据,你通常希望减少你正在移动的数据量,所以你最终将处理带到数据本身。 猪数据流的语言因此需要传递旧的ETL方法,而是使用ELT: E 从各种来源提取数据, l 将其转换为HDFS,然后根据需要对其进行转换,以准备数据以供进一步分析。