使用CDM导入数据到OpenSearch
云搜索服务支持通过云数据迁移服务CDM的向导式界面,将存储在Oracle数据库或对象存储服务OBS中的数据导入到Elasticsearch或OpenSearch集群中,数据文件支持JSON格式。
数据导入场景 |
源数据 |
目标集群 |
---|---|---|
将Oracle数据库的数据导入到CSS服务 |
本地或第三方Oracle数据库 |
ElasticSearch 5.5、6.2、6.5、7.1、7.6、7.9、7.10版本 OpenSearch 1.3.6版本 |
将OBS的数据导入到CSS服务 |
OBS桶中的JSON数据 |
ElasticSearch 5.5、6.2、6.5、7.1、7.6、7.9、7.10版本 OpenSearch 1.3.6版本 |
准备工作
- 确认源数据。
Elasticsearch版本<7.x的数据
{"index": {"_index":"my_store","_type":"products"}} {"productName": "2019秋装新款文艺衬衫女装","size": "M"} {"index": {"_index":"my_store","_type":"products"}} {"productName": "2019秋装新款文艺衬衫女装","size": "L"}
Elasticsearch版本≥7.x或OpenSearch版本的数据{"index": {"_index":"my_store"}} {"productName": "2019秋装新款文艺衬衫女装","size": "M"} {"index": {"_index":"my_store"}} {"productName": "2019秋装新款文艺衬衫女装","size": "L"}
- 获取源数据信息。
- 当源数据是Oracle数据库时,需要获取Oracle数据库的IP、数据库名、用户名和密码。
- 当源数据是OBS桶中的JSON数据时,需要获取OBS的访问域名、端口,以及AK、SK。
- 当源数据是Oracle数据库时,需要确保Oracle可通过公网IP访问,或者已经建立好了企业内部数据中心到华为云上的VPN通道或专线。
导入数据
- 登录云搜索服务管理控制台。
- 在左侧导航栏中,选择对应集群类型,进入集群管理列表页面。
- 在集群管理列表页面,选择待导入数据的集群,在“内网访问地址”列获取并记录集群的内网IP地址<host>和端口<port>,一般是“<host>:<port>”或“<host>:<port>,<host>:<port>”样式。
当集群只有一个节点时,此处仅显示1个节点的IP地址和端口号,例如“10.62.179.32:9200”;当集群有多个节点时,此处显示所有节点的IP地址和端口号,例如“10.62.179.32:9200,10.62.179.33:9200”。
- 在集群列表,单击待导入数据的集群操作列的“Kibana”,登录Kibana。
- 在Kibana的左侧导航中选择“Dev Tools”,进入操作页面。
- 在Kibana执行命令查看集群是否存在索引。
GET _cat/indices?v
- 当待导入数据的集群已存在可用的索引时,则不需要再创建索引,直接执行步骤8。
- 当待导入数据的集群不存在可用的索引时,则需要执行下一步创建索引。
- 在Kibana执行命令创建待导入数据的索引,并指定自定义映射来定义数据类型。
Elasticsearch版本<7.x的命令
PUT /demo { "settings": { "number_of_shards": 1 }, "mappings": { "products": { "properties": { "productName": { "type": "text", "analyzer": "ik_smart" }, "size": { "type": "keyword" } } } } }
Elasticsearch版本≥7.x或OpenSearch版本的命令
PUT /demo { "settings": { "number_of_shards": 1 }, "mappings": { "properties": { "productName": { "type": "text", "analyzer": "ik_smart" }, "size": { "type": "keyword" } } } }
执行成功后显示如下:
{ "acknowledged" : true, "shards_acknowledged" : true, "index" : "demo" }
- 登录云数据迁移CDM管理控制台,通过CDM集群将Oracle或OBS的数据导入Elasticsearch或OpenSearch集群。
- 当源数据是Oracle数据库时,请参考Oracle数据迁移到云搜索服务完成数据导入。
- 当源数据是OBS桶中的JSON数据时,请参考OBS数据迁移到云搜索服务完成数据导入。
- 当数据迁移完成后,重新进入Elasticsearch或OpenSearch集群的Kibana操作页面,搜索已导入的数据。
执行如下命令,搜索数据。查看搜索结果,如果数据与源数据一致,表示数据导入成功。
GET demo/_search
“demo”为创建的索引名称,需根据实际情况填写。
执行成功后显示如下:
{ "took": 18, "timed_out": false, "_shards": { "total": 1, "successful": 1, "skipped": 0, "failed": 0 }, "hits": { "total": 2, "max_score": 1, "hits": [ { "_index": "demo", "_type": "products", "_id": "g6UepnEBuvdFwWkRmn4V", "_score": 1, "_source": { "size": """"size":"L"}""", "productName": """{"productName":"2019秋装新款文艺衬衫女装"""" } }, { "_index": "demo", "_type": "products", "_id": "hKUepnEBuvdFwWkRmn4V", "_score": 1, "_source": { "size": """"size":"M"}""", "productName": """{"productName":"2019秋装新款文艺衬衫女装"""" } } ] } }