在阿里云E-MapReduce(EMR)中,Hive支持通过配置外部表来访问和处理存储在Phoenix系统中的数据。本文通过示例为您介绍,如何使用EMR上的Hive处理EMR Phoenix数据。
前提条件
使用限制
本文档仅适用于EMR-3.x系列版本。
操作步骤
如果已经在Phoenix中创建了表phoenix_hive_create_internal,想通过Hive访问,则可以使用Hive外表的方式与Phoenix中的表建立映射关系,进而通过Hive访问Phoenix中已经存在的表。
执行以下命令,进入Hive命令行。
hive
- 执行以下命令,在Hive中创建外表,建立与Phoenix表的映射关系。
create external table ext_table( s1 string, i1 int, f1 float, d1 double ) stored by 'org.apache.phoenix.hive.PhoenixStorageHandler' tblproperties( "phoenix.table.name" = "phoenix_hive_create_internal", "phoenix.rowkeys" = "s1, i1", "phoenix.column.mapping" = "s1:s1, i1:i1, f1:f1, d1:d1" );
执行以下命令,在Hive中查看Phoenix表的数据。
select * from ext_table;
如果可以正常查询数据,说明Hive已经成功访问了Phoenix的数据。
相关文档
Phoenix更多的介绍,请参见Phoenix。
Phoenix接入Hive的内容,请参见Phoenix Storage Handler for Apache Hive。
文档内容是否对您有帮助?