
# 使用CDM导入数据
在企业数字化转型过程中，用户经常需要将存储在传统关系型数据库（如Oracle）中的业务数据，或存储在对象存储（OBS）中的日志/归档数据，同步到Elasticsearch以实现高性能的全文检索与分析。面对海量异构数据，手动编写脚本不仅开发成本高，还面临网络连通性复杂、传输效率低等挑战。云数据迁移服务 (CDM) 提供了一种无需编码、向导式的解决方案，支持高并发、断点续传，能够帮助您快速安全地将Oracle或OBS中的数据"搬运"至CSS服务的Elasticsearch集群。
表1使用CDM导入数据至CSS服务 
| 数据导入场景                | 源数据              | 目标集群                                         |
|:---|:---|:---|
| 将Oracle数据库的数据导入到CSS服务 | 本地或第三方Oracle数据库  | Elasticsearch 5.5、6.2、6.5、7.1、7.6、7.9、7.10版本 |
| 将OBS的数据导入到CSS服务       | OBS桶中的JSON/CSV数据 | Elasticsearch 5.5、6.2、6.5、7.1、7.6、7.9、7.10版本 |
   
#### 准备工作
1. 网络连通。
   - CDM集群与CSS集群、OBS桶部署在同一VPC下，以保证内网互通，速度最快。
   
   - 如果源端是本地Oracle，需要通过VPN/专线或公网IP确保CDM能访问到Oracle。
    
2. 获取连接信息。
   - 需要获取CSS集群的内网访问地址（如"192.168.xxx.xxx:9200"）、用户名和密码（仅安全模式的集群涉及）。
   
   - 当源数据是Oracle数据库时，需要获取Oracle数据库的IP、端口、数据库名、用户名和密码。
   
   - 当源数据是OBS时，需要获取OBS的桶名称、访问域名、端口、AK和SK。
    
 
#### 导入数据
1. 登录Kibana进入命令执行页面。
   1. 登录[云搜索服务管理控制台](https://console.huaweicloud.com/elasticsearch/)。
   
   2. 在左侧导航栏，选择"集群管理 \> Elasticsearch"。
   
   3. 在集群列表，选择目标集群，单击操作列的"Kibana"，登录Kibana。
   
   4. 在Kibana左侧导航栏选择"Dev Tools"，进入操作页面。 控制台左侧是命令输入框，其右侧的三角形图标为执行按钮，右侧区域则显示执行结果。
      
    
2. （可选）在Elasticsearch集群创建目标索引。CDM支持自动创建索引，但为了获得更好的查询性能，建议先在Elasticsearch集群中定义好索引结构（Mappings）。 例如：执行如下命令，创建索引"demo"。
   - Elasticsearch版本大于或等于7.x的命令：
     ```
     PUT /demo
     {
       "settings": {
         "number_of_shards": 1
       },
       "mappings": {
           "properties": {
             "productName": {
               "type": "text",
               "analyzer": "ik_smart"
             },
             "size": {
               "type": "keyword"
             }
           }
         }
       }
     ```
     
   
   - Elasticsearch版本小于7.x的命令：
     ```
     PUT /demo
     {
       "settings": {
         "number_of_shards": 1
       },
       "mappings": {
         "products": {
           "properties": {
             "productName": {
               "type": "text",
               "analyzer": "ik_smart"
             },
             "size": {
               "type": "keyword"
             }
           }
         }
       }
     }
     ```
     
   
   
   执行成功后显示如下：
   ```
   {
     "acknowledged" : true,
     "shards_acknowledged" : true,
     "index" : "demo"
   }
   ```
   
3. 通过CDM服务将Oracle或OBS的数据导入Elasticsearch集群。
   - 当源数据是Oracle数据库时，操作指导请参见[Oracle数据迁移到云搜索服务](https://support.huaweicloud.com/usermanual-cdm/cdm_01_0088.html)。
   
   - 当源数据是OBS时，操作指导请参见[OBS数据迁移到云搜索服务](https://support.huaweicloud.com/usermanual-cdm/cdm_01_0128.html)。
   
   
   ![](https://support.huaweicloud.com/usermanual-css/public_sys-resources/note_3.0-zh-cn.png)
   如果是MySQL数据源，则连接MySQL的操作指导请参见[创建MySQL连接器](https://support.huaweicloud.com/usermanual-cdm/cdm_01_0333.html)。
   
4. 迁移完成后，验证数据完整性。
   1. 回到Elasticsearch集群，进入Kibana的"Dev Tools"页面。
   
   2. 执行如下命令，搜索导入的索引数据。
      ```
      GET demo/_count         # 查看数据量
      GET demo/_search        # 查看数据内容
      ```
      如果返回的数据内容与源数据一致，则表示导入成功。
      
    
 
