个人理财 使用Hive <[SET:descriptioncn]连接表与Hive

使用Hive <[SET:descriptioncn]连接表与Hive

视频: Hadoop 影音教學 Day3 : Hive 語法與基本概念介紹(上) 2024

视频: Hadoop 影音教學 Day3 : Hive 語法與基本概念介紹(上) 2024
Anonim

您可能已经知道关系数据库建模和设计方面的专家通常花费大量时间设计规范化数据库或 模式< 。数据库 规范化 是一种在数据更新和检索时防止数据丢失,冗余和其他异常的技术。 专家遵循一些规则来达到规范化的数据库,但是规则1是必须以

组 表结束。 (一个存储所有数据的大表是不正常的 - 双关意图)。根据用例不同,有很多例外情况,但是一般都遵循很多表的规律,特别是对于支持事务或分析处理的数据库(商业智能,例如)。 <!当你开始查询和分析你的数据时,表格会根据它们之间使用SQL定义的关系进行连接 - 这意味着当你开始连接表格时,磁盘最终会在你的服务器上忙碌,繁忙的磁盘通常会导致较慢的用户响应时间。然而,好消息是RDBMS和EDW会尽可能快地加入。

与Hive中的连接有什么关系?那么请记住,Hive的底层操作系统是(惊喜!)Apache Hadoop:MapReduce是连接表的引擎,Hadoop文件系统(HDFS)是底层存储。对于希望用Hive创建,管理和分析大型表格的用户来说,这是个好消息。

解锁隐藏在海量数据结构中的信息的潜力令人兴奋。然而,与Hive的联合通常不如RDBMS / EDW中那么好,所以初次使用的用户常常对系统响应的“pokiness”感到惊讶。请记住,MapReduce和HDFS针对大数据分析的吞吐量进行了优化,并且在这个世界中,

延迟

- 换句话说,用户响应时间通常很高。 Hive专为批量式分析处理而设计,不适用于快速在线事务处理。希望在Apache Hadoop上使用SQL获得最佳性能的用户可以使用解决方案。

当您开始与Hive连接表时,请牢记这一动态。另请注意,Hive架构师通常会在一定程度上对数据库进行非规范化处理,因此减少较大的表是司空见惯的事情。这就是为什么提供诸如STRUCT和ARRAY等复杂数据类型的原因。您可以使用这些复杂的数据类型将更多的数据打包到一个表中。 由于Hive表通过HDFS读取和写入通常涉及非常大的数据块,您可以在一个表中完全管理的数据越多,整体性能就越好。

磁盘和网络访问比内存访问慢很多,所以尽量减少HDFS的读写操作。记住这个背景信息,你可以解决与Hive的连接问题。幸运的是,Hive开发社区是现实的,并且理解用户希望并需要使用HiveQL连接表。这些知识在EDW增强中变得尤为重要。诸如“可查询”档案之类的用例通常需要加入数据分析。

以下是使用航班数据表的Hive连接示例。清单显示了如何从更大的FlightInfo2007和FlightInfo2008表创建并显示myflightinfo2007表和myflightinfo2008表。该计划一直是使用CTAS创建的myflightinfo2007和myflightinfo2008表来说明如何在Hive中执行连接。

该图显示了使用SQuirreL SQL客户端与myflightinfo2007和myflightinfo2008表进行内部联接的结果。

Hive支持

equi-join,

是仅在连接谓词中使用相等比较的特定类型的连接。 (ON m8。FlightNum = m7。FlightNum是一个equi-join的一个例子。)其他比较器,如小于(<)不支持。这个限制只是因为底层MapReduce引擎的限制。另外,您不能在ON子句中使用OR。

该图说明了内联接和其他两个Hive联接类型的前面的示例。请注意,您可以通过查看myflight2007和myflight2008表的内容来确认内部联接的结果。

下图说明如果您不熟悉这种技术,内连接如何使用维恩图。这里的基本思想是内连接返回两个表之间匹配的记录。因此,内部连接是一个完美的分析工具,可以确定2007年7月和2008年7月从JFK(纽约)到ORD(芝加哥)的航班是否相同。 优化Hive连接是Hive社区中的热门话题。有关当前优化技术的更多信息,请参阅Hive wiki上的Join Optimization页面。

使用Hive <[SET:descriptioncn]连接表与Hive

编辑的选择

在Flash中使用活动文本 - 虚拟人物

在Flash中使用活动文本 - 虚拟人物

静态文本完成工作,为您提供信息网站访问者。但是Flash可以用文本来做更多的事情。有时候,你不希望自己的文本是文本,而是喜欢一堆可以弯曲,扭曲,移动,或者不能混合的独立字母形状。 Flash的分离命令...

移动网站质量保证测试 - 傻瓜

移动网站质量保证测试 - 傻瓜

在为IPhone推出新网站之前, iPad,始终在iPhone或iPad上全面测试其设计和功能,确保网站的外观和工作方式与您的想法完全相同。使用模拟器不能替代完成物理设备上的最终检查表。 As ...

QuarkXPress 5基本任务的快捷方式 - 虚拟人物

QuarkXPress 5基本任务的快捷方式 - 虚拟人物

QuarkXPress 5具有数吨和数吨的快捷方式。你大概不会记住他们中的大多数,但是你一定会发现自己一直在使用一两个。这里有一些有用的视图,调色板和对象选择任务的快捷键。 QuarkXPress查看快捷方式操作Mac Windows 100%命令+ 1 Ctrl + 1在窗口中装入Command + 0 Ctrl + 0 200%...

编辑的选择

如何将尼康D5300照片下载到计算机 - 傻瓜

如何将尼康D5300照片下载到计算机 - 傻瓜

你的尼康D5300,你可能会想用他们的照片编辑软件。您可以用两种方法将照相机中的照片和电影文件移到电脑上:通过USB电缆将照相机连接到电脑。您需要的电缆是随附的。

如何在播放期间放大尼康D7100照片 - 虚拟人物

如何在播放期间放大尼康D7100照片 - 虚拟人物

您的尼康D7100,如左图所示,您可以放大它,如右图所示。但是,您只能放大静止照片。此功能不适用于电影。以下是如何使用放大功能:放大。按Qual按钮。您可以...

如何在尼康D7100上播放时隐藏照片 - 虚拟人物

如何在尼康D7100上播放时隐藏照片 - 虚拟人物

可以使用隐藏图像选项在尼康D7100的播放菜单上隐藏一些照片,同时在播放过程中显示其他照片。假设你拍了100张照片--50次在商务会议上,50次在野外会议后。您想向您的老板展示您和您的同事的照片...

编辑的选择

IBS受害者如何制作草莓和奶油燕麦 - 假人

IBS受害者如何制作草莓和奶油燕麦 - 假人

您可以享用燕麦片如果你患有IBS。当快燕麦烹饪时,切碎草莓和香蕉(IBS主食),并从冰箱中取出椰奶。一旦这样做,燕麦片通常是准备倒。你可以添加不同的水果,甚至坚果作为你的...

如何为IBS患者制作绿鸡蛋烘焙者 - 假人

如何为IBS患者制作绿鸡蛋烘焙者 - 假人

使用自由放养的鸡,因为它们是谷物喂养,没有生长激素和抗生素,因此,IBS的肚子更健康。用任何鸡肉菜肴,一定要煮好你使用的任何一种鸡肉。当你对这道菜更加熟悉的时候,你可能会发现你并不需要...