
# Elasticsearch数据源
Elasticsearch是一个基于Lucene的分布式搜索与分析引擎，常用于全文检索、日志分析、实时数据查询和大规模数据聚合。
华为云的云搜索服务（CSS）是一个基于Elasticsearch且完全托管的在线分布式搜索服务，CSS连接适用于将各类日志文件、数据库记录迁移到CSS，Elasticsearch引擎进行搜索和分析的场景。
本数据集成服务支持开源Elasticsearch产品，同时该数据源兼容华为云、云搜索服务CSS，提供稳定高效的数据集成能力。
#### 使用前准备及限制
- **版本要求**
  仅支持Elasticsearch 7.x及以下版本。
  
- **网络要求**
  Elasticsearch数据源必须与CDM网络进行通讯，以确保数据传输的顺畅性。详情请参见[网络打通](https://support.huaweicloud.com/usermanual-dataartsstudio/dataartsstudio_01_7765.html)。
  
- **权限** **要求**
  - 华为云CSS服务权限要求：
    - **读权限** ：数据集成服务需要从CSS读取集群信息，可在IAM授予CSS **ReadOnlyAccess**策略或自定义只读权限。该权限允许用户执行查询集群列表、查看集群详情、获取监控指标、查看快照信息等读取操作。
    
    - **写权限** ：数据集成服务需要向CSS创建或变更集群资源，可在IAM授予CSS **FullAccess**策略或自定义读写权限。该权限涵盖读权限全部操作。
     
  
  - 开源Elasticsearch权限要求：
    - **读权限** ：数据集成服务仅需读取索引数据，可在Elasticsearch中授予**read**内置角色并绑定对应索引。
    
    - **写权限** ：数据集成服务需要写入/更新/删除文档，可在Elasticsearch中授予**write** 角色（或**index**角色）。
     
   
- **端口放通**
  Elasticsearch端口（9200）：需放通TCP 9200供华为云数据集成服务访问。
  
 
#### 支持的数据类型
以下为您列举Elasticsearch支持类型详情。
| **类别** | **类型**        | **读取是否支持** | **写入是否支持** |
|:---|:---|:---|:---|
| 字符     | keyword       | √          | √          |
| 字符     | text          | √          | √          |
| 字符     | string        | √          | √          |
| 整数     | short         | √          | √          |
| 整数     | integer       | √          | √          |
| 整数     | long          | √          | √          |
| 数值     | double        | √          | √          |
| 数值     | float         | √          | √          |
| 布尔类型   | boolean       | √          | √          |
| 对象     | object        | √          | √          |
| 嵌套     | nested        | √          | √          |
| 日期     | date          | √          | √          |
| 特殊     | ip            | √          | √          |
| 数组     | string_array  | √          | √          |
| 数组     | short_array   | √          | √          |
| 数组     | integer_array | √          | √          |
| 数组     | long_array    | √          | √          |
| 数组     | float_array   | √          | √          |
| 数组     | double_array  | √          | √          |
| 范围     | completion    | √          | √          |
   
#### 支持的迁移场景
数据集成离线同步支持以下三种同步方式，以满足不同数据迁移场景的需求：
- **单表同步**
  适用于数据入湖和数据上云场景下，表或文件级别的数据同步。
  
- **分库分表同步**
  适用于数据入湖和数据上云场景下，多库多表同步场景。
  
- **整库迁移**
  适用于数据入湖和数据上云场景下，离线或自建数据库整体同步场景。
  
需要注意的是，分库分表与整库迁移能力会根据不同region的上线支持情况有所不同，具体支持情况以页面为准。以下是针对Elasticsearch的支持迁移场景概览：
| 支持迁移场景 | 单表读取 | 单表写入 | 分库分表读取 | 分库分表写入 | 整库读取 | 整库写入 |
|:---|:---|:---|:---|:---|:---|:---|
| 是否支持   | √    | √    | x      | √      | x    | x    |
   
#### 核心能力速览
- **连接配置**
  
  | 配置项   | 支持情况 | 说明                     |
  |:---|:---|:---|
  | SSL支持 | √    | 支持SSL加密，保障数据传输安全，暂不支持。 |
     
  
- **读取能力**
  
  | 配置项     | 支持情况 | 说明                                |
  |:---|:---|:---|
  | 增量读取    | √    | 支持通过【过滤条件】配置，实现增量读取。              |
  | 分片并发    | x    | 3.x以上版本支持Shard分片能力，充分利用资源，提升读取性能。 |
  | 自定义字段能力 | √    | 可在任务级追加计算列、常量列或脱敏函数，满足个性化业务需求。    |
  | 脏数据能力   | √    | 支持异常数据写入脏数据桶，避免因少量异常数据导致作业失败。     |
     
  
- **写入能力**
  
  | 配置项   | 支持情况 | 说明                                            |
  |:---|:---|:---|
  | 导入前清空 | √    | 支持导入前清空数据操作，可在数据导入前进行数据清洗和处理。                 |
  | 冲突解决  | √    | 支持UPSERT/UPDATE/INDEX/CREATE四种写入操作，可灵活处理数据冲突。 |
  | 并发写入  | √    | 支持并发写入，提升写入效率。                                |
  | 攒批提交  | √    | 支持配置【单次提交数】，攒批提交到服务端。                         |
  | 脏数据能力 | √    | 支持异常数据写入脏数据桶，避免因少量异常数据导致作业失败。                 |
     
  
 
#### 创建数据源
在DataArts Studio管理中心新建相应的数据源，详情请参见[创建DataArts Studio数据连接](https://support.huaweicloud.com/usermanual-dataartsstudio/dataartsstudio_01_0009.html)。
#### 创建数据集成离线作业
在DataArts Studio数据开发中新建Elasticsearch集成作业，详情请参见[新建离线处理集成作业](https://support.huaweicloud.com/usermanual-dataartsstudio/dataartsstudio_01_1458.html)。
