Overview:
- 使用es-hadoop进行es2hive数据同步,当es mapping中有嵌套字段时,有2种选择:
- hive使用复杂结构和es mapping对应
- hive使用string类型,将es中的嵌套结构看作一个json string
- 当es的mapping动态的变化时,尤其嵌套结构也动态变化时,使用第二种方式,将无须关心嵌套结构的变化
- 技术方案:
- 使用es-haddop包建立hive外部表,设置
es.output.json=true
,如此每个document将返回一个json - 然后使用序列化包Hive-JSON-Serde对从es读出的json进行反序列化
- 使用es-haddop包建立hive外部表,设置
嵌套字段
sample
- mapping
{
"netsed": {
"mappings": {
"test": {
"properties": {
"Nested2": {
"properties": {
"Iterm3": {
"type": "float"
},
"Iterm4": {
"fields": {
"keyword": {
"ignore_above": 256,
"type": "keyword"