DataWorks数据集成支持使用OpenSearch Writer将数据写至OpenSearch,本文为您介绍DataWorks的OpenSearch数据离线写入能力。
支持的版本
V2版本请参见请求结构。
V3版本使用二方包,依赖pom为:com.aliyun.opensearch aliyun-sdk-opensearch 2.1.3。
如果您需要使用OpenSearchWriter插件,请务必使用JDK 1.6-32及以上版本,您可以使用
java -version
查看Java版本号。
使用限制
OpenSearch Writer支持使用Serverless资源组(推荐)和独享数据集成资源组,不支持使用自定义资源组。
OpenSearch的列是无序的,因此OpenSearch Writer写入时,需严格按照指定的列的顺序写入。如果指定的列比OpenSearch的列少,则其余列使用默认值或null。
例如,您需要导入的字段列表有b、c两个字段,但OpenSearch表中的字段有a、b、c三列,在列配置中可以写为"column":["c","b"],表示会把Reader的第一列和第二列导入OpenSearch的c字段和b字段,而OpenSearch表中新插入的a字段会被置为默认值或null。
当前仅支持使用脚本模式将离线数据写入OpenSearch。
支持的字段类型
OpenSearch Writer支持大部分OpenSearch类型,请注意检查您的数据类型。OpenSearch Writer针对OpenSearch类型的转换列表,如下所示。
类型分类 | OpenSearch数据类型 |
整数类 | INT |
浮点类 | DOUBLE和FLOAT |
字符串类 | TEXT、LITERAL和SHORT_TEXT |
日期时间类 | INT |
布尔类 | LITERAL |
数据同步任务开发
数据同步任务的配置入口和通用配置流程可参见下文的配置指导。
操作流程请参见通过脚本模式配置离线同步任务。
脚本模式配置的全量参数和脚本Demo请参见下文的附录:脚本Demo与参数说明。
常见问题
列配置错误的处理
为保证写入数据的可靠性,避免多余列数据丢失造成数据质量故障。对于写入多余的列,OpenSearch Writer将报错。例如OpenSearch表字段为a、b、c,如果OpenSearch Writer写入的字段多于3列,OpenSearch Writer将报错。
表配置注意事项
OpenSearch Writer一次只能写入一个表。
任务重跑和Failover
重跑后会自动根据ID覆盖。所以插入OpenSearch的列中,必须有一个ID,该ID是OpenSearch的一行记录的唯一标识。唯一标识一样的数据,会被覆盖掉。
附录:脚本Demo与参数说明
离线任务脚本配置方式
如果您配置离线任务时使用脚本模式的方式进行配置,您需要按照统一的脚本格式要求,在任务脚本中编写相应的参数,详情请参见通过脚本模式配置离线同步任务,以下为您介绍脚本模式下数据源的参数配置详情。