ElasticWriter-nested类型实践案例

简介: MaxCompute表jsonArray数据使用数据集成ElasticSearch writer插件写入es,嵌套属性

需求描述

MaxCompute表jsonArray数据使用数据集成ElasticSearch writer插件写入es,嵌套属性,如图

image.png


需求实现

1.建源表

-- maxcompute源表  nested测试数据初始化

CREATE TABLE es_nested(id INT ,nested_data STRING );

INSERT OVERWRITE   TABLE es_nested

values (1,

"[{ \"storeId\": 30, \"userId\": 12790, \"bizTime\": 1640351395000 }, { \"storeId\": 156, \"userId\": 12790, \"bizTime\": 1640521467000 }]")

;


2.建目标索引

-- 建目的es索引

PUT /hhh_nested3

{

 "settings": {

   "number_of_shards": 5,

   "number_of_replicas": 1

 },

 "mappings": {

   "hhh_nested3": {

     "properties": {

       "id": {"type": "long"},

       "nested_data":{

         "type":"nested",

         "properties":{

           "storeId":{"type":"long"},

           "userId":{"type":"long"},

           "bizTime":{"type":"long"}

         }

         }

       

     }

   }

 }

}


-- 查看es结构

GET /hhh_nested3/hhh_nested3/_mapping

-- 返回

{

 "hhh_nested3" : {

   "mappings" : {

     "hhh_nested3" : {

       "properties" : {

         "id" : {

           "type" : "long"

         },

         "nested_data" : {

           "type" : "nested",

           "properties" : {

             "bizTime" : {

               "type" : "long"

             },

             "storeId" : {

               "type" : "long"

             },

             "userId" : {

               "type" : "long"

             },

             """{"bizTime":1640351395000,"storeId":30,"userId":12790}""" : {

               "properties" : {

                 "bizTime" : {

                   "type" : "long"

                 },

                 "storeId" : {

                   "type" : "long"

                 },

                 "userId" : {

                   "type" : "long"

                 }

               }

             }

           }

         }

       }

     }

   }

 }

}


3.同步脚本配置,属性类型配置为nested

{
  "name": "nested_data",
  "type": "nested"
}

{

   "type": "job",

   "version": "2.0",

   "steps": [

       {

           "stepType": "odps",

           "parameter": {

               "partition": [],

               "datasource": "odps_first",

               "envType": 0,

               "column": [

                   "id",

                   "nested_data"

               ],

               "table": "es_nested"

           },

           "name": "Reader",

           "category": "reader"

       },

       {

           "stepType": "elasticsearch",

           "parameter": {

               "column": [

                   {

                       "name": "id",

                       "type": "long"

                   },

                   {

                       "name": "nested_data",

                       "type": "nested"

                   }

               ],

               "index": "hhh_nested3",

               "type": "hhh_nested3",

               "splitter": ",",

               "actionType": "index",

               "indexType": "",

               "cleanup": false,

               "datasource": "onaliyun_elasticsearch01",

               "envType": 0,

               "discovery": false,

               "primaryKeyInfo": {

                   "fieldDelimiterOrigin": ",",

                   "column": [

                       "id"

                   ],

                   "type": "specific",

                   "fieldDelimiter": ","

               },

               "dynamic": false,

               "batchSize": 1024

           },

           "name": "Writer",

           "category": "writer"

       }

   ],

   "setting": {

       "errorLimit": {

           "record": ""

       },

       "locale": "zh_CN",

       "speed": {

           "throttle": false,

           "concurrent": 2

       }

   },

   "order": {

       "hops": [

           {

               "from": "Reader",

               "to": "Writer"

           }

       ]

   }

}


4.运行查看结果

GET /hhh_nested3/hhh_nested3/_search

{

 "query": {

   "match": {

     "id": 1

   }

 }

}

返回

{

 "took" : 33,

 "timed_out" : false,

 "_shards" : {

   "total" : 5,

   "successful" : 5,

   "skipped" : 0,

   "failed" : 0

 },

 "hits" : {

   "total" : 1,

   "max_score" : 1.0,

   "hits" : [

     {

       "_index" : "hhh_nested3",

       "_type" : "hhh_nested3",

       "_id" : "1",

       "_score" : 1.0,

       "_source" : {

         "id" : 1,

         "nested_data" : [

           {

             "bizTime" : 1640351395000,

             "storeId" : 30,

             "userId" : 12790

           },

           {

             "bizTime" : 1640521467000,

             "storeId" : 156,

             "userId" : 12790

           }

         ]

       }

     }

   ]

 }

}

相关实践学习
基于MaxCompute的热门话题分析
Apsara Clouder大数据专项技能认证配套课程:基于MaxCompute的热门话题分析
相关文章
在markdown中添加视频的两种方法
markdown浏览器中如何添加视频呢?两种方式
|
11月前
|
存储 JSON 分布式计算
StarRocks + Paimon 在阿里集团 Lakehouse 的探索与实践
阿里集团在推进湖仓一体化建设过程中,依托 StarRocks 强大的 OLAP 查询能力与 Paimon 的高效数据入湖特性,实现了流批一体、存储成本大幅下降、查询性能数倍提升的显著成效: A+ 业务借助 Paimon 的准实时入湖,显著降低了存储成本,并引入 StarRocks 提升查询性能。升级后,数据时效提前60分钟,开发效率提升50%;JSON列化存储减少50%,查询性能提升最高达10倍;OLAP分析中,非JOIN查询快1倍,JOIN查询快5倍。 饿了么升级为准实时Lakehouse架构后,在时效性仅损失1-5分钟的前提下,实现Flink资源缩减、StarRocks查询性能提升(仅5%
998 60
StarRocks + Paimon 在阿里集团 Lakehouse 的探索与实践
|
10月前
|
人工智能 自然语言处理 DataWorks
DataWorks Copilot 集成Qwen3-235B-A22B混合推理模型,数据开发与分析效率再升级!
阿里云DataWorks平台正式接入Qwen3模型,支持最大235B参数量。用户可通过DataWorks Copilot智能助手调用该模型,以自然语言交互实现代码生成、优化、解释及纠错等功能,大幅提升数据开发与分析效率。Qwen3作为最新一代大语言模型,具备混合专家(MoE)和稠密(Dense)架构,适应多种应用场景,并支持MCP协议优化复杂任务处理。目前,用户可通过DataWorks Data Studio新版本体验此功能。
883 23
DataWorks Copilot 集成Qwen3-235B-A22B混合推理模型,数据开发与分析效率再升级!
|
11月前
|
存储 运维 监控
阿里妈妈基于 Flink+Paimon 的 Lakehouse 应用实践
本文总结了阿里妈妈数据技术专家陈亮在Flink Forward Asia 2024大会上的分享,围绕广告业务背景、架构设计及湖仓方案演进展开。内容涵盖广告生态运作、实时数仓挑战与优化,以及基于Paimon的湖仓方案优势。通过分层设计与技术优化,实现业务交付周期缩短30%以上,资源开销降低40%,并大幅提升系统稳定性和运营效率。文章还介绍了阿里云实时计算Flink版的免费试用活动,助力企业探索实时计算与湖仓一体化解决方案。
1173 3
阿里妈妈基于 Flink+Paimon 的 Lakehouse 应用实践
|
存储 人工智能 BI
Paimon 1.0: Unified Lake Format for Data + AI
本文整理自阿里云智能开源湖存储负责人李劲松在Flink Forward Asia 2024上海站主论坛的演讲。Apache Paimon于今年3月成为顶级项目,计划发布1.0版本,目标是Unified Lake Format for Data + AI,解决数据处理与AI应用中的关键问题。Paimon结合Flink打造Streaming Lakehouse解决方案,已在阿里巴巴集团及多个行业中广泛应用。来自淘天、抖音和vivo的嘉宾分享了基于Paimon + Flink技术栈的数据湖实时处理与分析实践案例。内容涵盖大数据从业者面临的痛点、Paimon的发展历程及大厂的应用经验。
1100 2
Paimon 1.0: Unified Lake Format for Data + AI
ACE
|
SQL 分布式计算 数据处理
如何创建2024云栖Openlake测试项目和配置环境
2024年云栖大会,MaxCompute 多项重磅产品新功能邀测发布,新特性包括 支持OpenLake的湖仓一体2.0、Object Table支持SQL或MaxFrame处理非结构化数据、Delta Table增量表格式、基于增量物化视图的增量计算、MCQA2.0 SQL引擎查询加速等。其相关特性将在中国区 公共云 北京、上海、杭州、深圳Region 上线开放试用。本文以最佳实践的方式,帮助您创建MaxCompute和周边产品 在Openlake解决方案demo中需要准备的实例、项目和开发环境,并完成配置。欢迎您玩转云栖邀测demo,体验新功能。
ACE
1364 8
|
弹性计算 Oracle Java
centos7 搭建java环境
本文详细介绍了在阿里云服务器ECS上(CentOS 7.7)通过两种方式搭建JDK环境的方法。方法一使用yum源安装,首先更新yum源并解决可能遇到的rpm数据库问题,然后卸载系统自带的OpenJDK及相关文件,接着安装JDK并配置环境变量。方法二是通过下载并解压tar包进行安装,同样需要配置环境变量。文章提供了具体命令和步骤,并附带了解决常见问题的方法。适合初学者参考学习。
877 9
centos7 搭建java环境
|
Linux iOS开发 Docker
【开源推荐】简单的录屏工具
【6月更文挑战第5天】
502 9
|
存储 数据采集 DataWorks
2万字揭秘阿里巴巴数据治理平台DataWorks建设实践
阿里巴巴一直将数据作为自己的核心资产与能力之一,从最早的淘宝、天猫等电商业务,到后续的优酷、高德、菜鸟等板块,DataWorks、MaxCompute、Hologres等产品用一套技术体系来支持不同业务的发展与创新,为企业带来整体的“数据繁荣”。 数据繁荣为我们带来了红利,同时也带动了各类数据治理需求的井喷,特别是降本等需求的不断出现,阿里云DataWorks团队将13年的产品建设经验整理成最佳实践,从数据生产规范性治理、数据生产稳定性治理、数据生产质量治理、数据应用提效治理、数据安全管控治理、数据成本治理、数据治理组织架构及文化建设等7个方面为大家揭秘数据治理平台建设实践
33269 15
2万字揭秘阿里巴巴数据治理平台DataWorks建设实践
|
分布式计算 DataWorks 对象存储
全链路数据湖开发治理解决方案2.0重磅升级,全面增强数据入湖、调度和治理能力
阿里云全链路数据湖开发治理解决方案能力持续升级,发布2.0版本。解决方案包含开源大数据平台E-MapReduce(EMR) , 一站式大数据数据开发治理平台DataWorks ,数据湖构建DLF,对象存储OSS等核心产品。支持EMR新版数据湖DataLake集群(on ECS)、自定义集群(on ECS)、Spark集群(on ACK)三种形态,对接阿里云一站式大数据开发治理平台DataWorks,沉淀阿里巴巴十多年大数据建设方法论,为客户完成从入湖、建模、开发、调度、治理、安全等全链路数据湖开发治理能力,帮助客户提升数据的应用效率。
1815 1