在Hive里面添加外部表访问ES的数据
add jar /home/dp/xx/elasticsearch-hadoop-6.4.1.jar;
add jar /home/dp/xx/commons-httpclient-3.1_1.jar;
drop table xxx_tmp.es_ods_extdata;
CREATE EXTERNAL TABLE xxx_tmp.es_ods_extdata
(
id string,
applseq string,
remark1 string,
cardnumber string,
createdate string,
data string,
btdate string,
data_type string,
channelno string
)
STORED BY ‘org.elasticsearch.hadoop.hive.EsStorageHandler’
TBLPROPERTIES(‘es.resource’ = ‘ods_extdata/info’
, ‘es.nodes’=‘xx.xx.xx.xx’
, ‘es.port’=‘9200’
, ‘es.read.metadata’ = ‘true’
, ‘es.mapping.id’=‘id’
, ‘es.mapping.names’=‘id:_metadata._id, applseq:APPLSEQ,remark1:REMARK1,cardnumber:CARDNUMBER,createdate:CREATEDATE,data:DATA,btdate:BTDATE,data_type:DATA_TYPE,channelno:CHANNELNO’);
说明: 对于_id这样的内部字段如果要映射的话,需要使用 _metadata._id 这种方式才能设置。
如果要使用 _metadata._id 则必须添加参数 ‘es.read.metadata’ = ‘true’