遇到一个问题,让人很无语,前面其实我们介绍过Hive 写ES 或者是Hive 数据导出到ES 的方案,其实基本上就是两类
但是今天遇到的这个场景,这两种方法都不太合适,我们的场景是在阿里云上的maxcompute 将数据写到华为云上的elasticsearch,maxcompute 由于是阿里云的基础组件由于阿里云提供了数据集成组件,所以maxcompute根本就不支持外部表,其实我们第一时间想到的就是那直接使用阿里云的数据集成工具不就好了嘛,问题是阿里云的集成工具对elasticsearch的支持只支持阿里云上的es,其他的不支持。
感觉这一下就很尴尬,但是问题还得解决,两个方案,第一个使用spark 读取数据然后写到es, 第二个方案通过UDAF 来实现,其实这第二个方案我们以前说过,用来写Kafka 的。
这个代码有一点不足的地方就是我们的配置是在代码里写死的,其实我们是可以写到配置文件中的,然后在初始化方法中去读区文件然后解析,我们将每条数据写ES 的结果信息保存了下来,其实是为了后面追踪是否写数失败。
package com.changan