配置Elasticsearch输出

您可以通过Elasticsearch的实时写入能力,构建实时数仓。

前提条件

配置Elasticsearch输出节点前,您需要先配置好相应的输入或转换数据源,详情请参见实时同步支持的数据源

使用限制

DataWorks平台目前仅支持配置阿里云Elasticsearch5.x、6.x、7.x版本数据源,不支持配置自建Elasticsearch数据源。

操作步骤

  1. 进入数据开发页面。

    登录DataWorks控制台,切换至目标地域后,单击左侧导航栏的数据开发与治理 > 数据开发,在下拉框中选择对应工作空间后单击进入数据开发

  2. 鼠标悬停至新建图标,单击新建节点 > 数据集成 > 实时同步

    您也可以展开业务流程,右键单击目标业务流程,选择新建节点 > 数据集成 > 实时同步

  3. 新建节点对话框中,选择同步方式为单表(Topic)到单表(Topic)ETL,输入名称,并选择路径

    重要

    节点名称必须是大小写字母、中文、数字、下划线(_)以及英文句号(.),且不能超过128个字符。

  4. 单击确认

  5. 在实时同步节点的编辑页面,单击输出 > Elasticsearch并拖拽至编辑面板,连线已配置好的输入或转换节点。

  6. 单击Elasticsearch节点,在节点配置对话框中,配置各项参数。

    es

    参数

    描述

    数据源

    选择已经配置好的Elasticsearch数据源,此处仅支持Elasticsearch数据源。

    如果您未配置数据源,请单击右侧的新建数据源,进入工作空间管理 > 数据源管理页面新建,详情请参见配置Elasticsearch数据源

    索引

    选择当前数据源下需要同步的索引名称。

    您可以单击右侧的一键建索引新建索引,可以直接使用默认生成的索引信息进行新建索引,也可以修改索引名、索引类型、动态参数映射、分片数、副本数以及建索引的语句,然后进行建立索引。

    • 索引类型:在Elasticsearch7.x以上版本是没有的,5.x,6.x以及其他更低版本是支持索引类型的,可以自定义配置。

    • 动态映射状态:配置的是Elasticsearch索引根目录的参数dynamic的值,dynamic含义是Elasticsearch动态加字段,Elasticsearch做自动类型推导。

      • 版本低于7.10时,取值包括:truefalsestrict

      • 7.10以上版本时,取值包括:truefalsestrictruntime

      其中。

      • true表示可以被存储且被索引到。

      • false表示可以被存储但是不能被索引到

      • strict表示新的字段出现,抛异常,不存储

      • runtime表示新字段加入到运行时字段中,字段不会被索引。

      详情可参见dynamic

    • shard数量:shard数量代表索引分片,Elasticsearch可以把一个完整的索引分成多个分片,这样可以把一个大的索引拆分成多个,分布到不同的节点上,构成分布式搜索。分片的数量只能在索引创建前指定,并且索引创建后不能更改。详情可参见基本概念

    • replica数量:replica数量是shard的数据副本,负责容错,以及承担读请求负载。容量不够、数据不需要备份多份、写入性能不够的时候,replica默认就设成1。

    • 建索引语句:properties里面是字段的配置,可以自定义修改字段的类型。

    开启Elasticsearch分区

    Elasticsearch的routing分区机制是否开启,routing是一个可变值,默认是文档的_id ,也可以设置成一个自定义的值。routing通过hash函数生成一个数字,根据主分片的数量取余最终获得文档所在分片的位置。

    主键设置

    设置同步时Elasticsearch index上_id的取值方式。

    • 业务主键:将源头表中一个列作为主键。

    • 联合主键:将源头表中多个列合并起来作为主键。

    说明

    选择_id主键取值方式,但却没有为该Elasticsearch主键映射源端字段,即选择业务主键取值方式但源端不存在主键,选择联合主键取值方式后未配置主键列,此时主键设置的取值方式不生效,同步时将随机生成_id值,此操作可能会带来数据重复问题。

    字段映射

    设置源端和目标端字段的映射,同步任务会根据字段的映射关系同步数据。

  7. 单击工具栏中的保存图标。