- 最新动态
- 功能总览
- 服务公告
- 产品介绍
- 计费说明
- 快速入门
-
用户指南
- CSS服务权限管理
-
使用Elasticsearch搜索数据
- Elasticsearch使用流程
- Elasticsearch集群规划建议
- 创建Elasticsearch集群
- 访问Elasticsearch集群
- 导入数据至Elasticsearch集群
- 使用Elasticsearch集群搜索数据
- 增强Elasticsearch集群搜索能力
- 配置Elasticsearch集群网络
- 备份与恢复Elasticsearch集群数据
- 扩缩容Elasticsearch集群
- 升级Elasticsearch集群版本
- 管理Elasticsearch集群
- 管理Elasticsearch集群索引策略
- Elasticsearch集群监控与日志管理
- 查看Elasticsearch集群审计日志
- 使用OpenSearch搜索数据
- 使用Logstash迁移数据
- CSS服务资源监控
- 最佳实践
- API参考
- SDK参考
-
常见问题
- 产品咨询
- CSS集群访问
- CSS集群迁移
-
CSS集群搜索引擎使用
- CSS服务中为什么新创建的索引分片集中分配到单节点上?
- CSS服务中Elasticsearch 7.x集群如何在index下创建type?
- CSS服务中如何配置Elasticsearch索引副本数量?
- CSS服务中Elasticsearch集群分片过多会有哪些影响?
- 如何查看CSS集群的分片数以及副本数?
- CSS服务中Elasticsearch集群的节点node.roles为i表示什么意思?
- CSS服务中如何设置Elasticsearch集群的默认分页返回最大条数?
- CSS服务中如何更新Elasticsearch生命周期策略?
- CSS服务中如何设置Elasticsearch集群慢查询日志的阈值?
- CSS服务中如何清理Elasticsearch索引数据?
- CSS服务中如何清理Elasticsearch缓存?
- 使用delete_by_query命令删除Elasticsearch集群数据后,为什么磁盘使用率反而增加?
- CSS服务的Elasticsearch集群是否支持script dotProduct?
-
CSS集群管理
- 如何查看CSS集群所分布的可用区?
- CSS服务中Filebeat版本与集群版本的关系是什么?
- 如何获取CSS服务的安全证书?
- CSS服务中如何转换CER安全证书的格式?
- CSS服务中Elasticsearch和OpenSearch集群支持修改安全组吗?
- CSS服务中Elasticsearch集群如何设置search.max_buckets参数?
- CSS服务中如何修改Elasticsearch和OpenSearch集群的TLS算法?
- CSS服务中如何开启Elasticsearch和OpenSearch集群的安全审计日志?
- CSS服务中是否支持停止集群?
- CSS集群冻结索引后如何查询OBS上的索引占用量?
- 如何查看Elasticsearch和OpenSearch集群的系统默认插件列表
- CSS集群备份与恢复
- CSS集群监控与运维
-
故障排除
-
访问集群类
- 无法正常打开Kibana
- Elasticsearch针对filebeat配置调优
- Spring Boot使用Elasticsearch出现Connection reset by peer问题
- 为什么集群创建失败
- Elasticsearch集群出现写入拒绝“Bulk Reject”,如何解决?
- Elasticsearch集群创建index pattern卡住,如何解决?
- 云搜索控制台页面提示系统繁忙
- Elasticsearch集群报错:unassigned shards all indices
- es-head插件连接Elasticsearch集群报跨域错误
- 单节点集群打开Cerebro界面显示告警
- ECS无法连接到集群
- 集群不可用
- 数据导入导出类
-
功能使用类
- 无法备份索引
- 无法使用自定义词库功能
- 快照仓库找不到
- 集群一直处于快照中
- 数据量很大,如何进行快照备份?
- 集群突现load高的故障排查
- 使用ElasticSearch的HLRC(High Level Rest Client)时,报出I/O Reactor STOPPED
- Elasticsearch集群最大堆内存持续过高(超过90%)
- Elasticsearch集群更改规格失败
- 安全集群索引只读状态修改报错
- Elasticsearch集群某一节点分配不到shard
- 集群索引插入数据失败
- CSS创建索引报错“maximum shards open”
- 删除索引报错“403 Forbidden”是什么原因?
- Kibana中删除index pattern报错Forbidden
- 执行命令update-by-query报错“Trying to create too many scroll contexts”
- Elasticsearch集群无法创建pattern
- 端口访问类
-
访问集群类
- 视频帮助
- 产品术语
-
更多文档
-
用户指南(阿布扎比区域)
- 产品介绍
- 快速入门
- 权限管理
- 创建并接入集群
- 集群形态变更
- 导入数据到Elasticsearch
- 管理Elasticsearch类型集群
- 向量检索
- 使用Kibana相关操作
- 查询Elasticsearch SQL
- 增强特性
- 监控
- 审计
-
常见问题
- 产品咨询类
-
功能使用相关
- Elasticsearch是否支持不同VPC之间的数据迁移?
- 如何跨Region迁移CSS集群?
- 如何设置云搜索服务的慢查询日志的阈值?
- 如何更新CSS生命周期策略?
- 如何批量设置索引副本数为0?
- 为什么新创建的索引分片全部被分配到一个node节点上?
- 如何查询快照信息?
- 购买的低版本集群是否可以升级为高版本集群
- 集群被删除后是否还能恢复?
- 如何修改Elasticsearch集群的TLS算法?
- ES集群如何设置search.max_buckets参数?
- Elasticsearch集群中某个客户端节点的node.roles为i表示该节点是ingest节点吗?
- Elasticsearch 7.x集群如何在index下创建type?
- 安全模式集群相关
- 资源使用和更改相关
- 组件使用
- Kibana使用相关
- 访问集群相关
- 端口使用
- 修订记录
- API参考(阿布扎比区域)
-
用户指南(巴黎、阿姆斯特丹区域)
- 产品介绍
- 快速入门
- 权限管理
- 创建并接入集群
- 集群形态变更
- 导入数据到Elasticsearch
- 管理Elasticsearch类型集群
- 向量检索
- 使用Kibana相关操作
- 查询Elasticsearch SQL
- 增强特性
- 监控
- 审计
- 最佳实践
-
常见问题
- 产品咨询类
-
功能使用相关
- Elasticsearch是否支持不同VPC之间的数据迁移?
- 如何跨Region迁移CSS集群?
- 如何设置云搜索服务的慢查询日志的阈值?
- 如何更新CSS生命周期策略?
- 如何批量设置索引副本数为0?
- 为什么新创建的索引分片全部被分配到一个node节点上?
- 如何查询快照信息?
- 购买的低版本集群是否可以升级为高版本集群
- 集群被删除后是否还能恢复?
- 如何修改Elasticsearch集群的TLS算法?
- Elasticsearch集群如何设置search.max_buckets参数?
- Elasticsearch集群中某个客户端节点的node.roles为i表示该节点是ingest节点吗?
- Elasticsearch 7.x集群如何在index下创建type?
- 安全模式集群相关
- 资源使用和更改相关
- 组件使用
- Kibana使用相关
- 访问集群相关
- 端口使用
- 修订记录
- API参考 (巴黎、阿姆斯特丹区域)
-
用户指南(吉隆坡区域)
- 产品介绍
- 快速入门
- 权限管理
- 创建并接入集群
- 集群形态变更
- 导入数据到Elasticsearch
- 管理Elasticsearch类型集群
- 向量检索
- 使用Kibana相关操作
- 查询Elasticsearch SQL
- 增强特性
- 监控
- 审计
-
常见问题
- 产品咨询类
-
功能使用相关
- Elasticsearch是否支持不同VPC之间的数据迁移?
- 如何跨Region迁移CSS集群?
- 如何设置云搜索服务的慢查询日志的阈值?
- 如何更新CSS生命周期策略?
- 如何批量设置索引副本数为0?
- 为什么新创建的索引分片全部被分配到一个node节点上?
- 如何查询快照信息?
- 购买的低版本集群是否可以升级为高版本集群
- 集群被删除后是否还能恢复?
- 如何修改Elasticsearch集群的TLS算法?
- ES集群如何设置search.max_buckets参数?
- Elasticsearch集群中某个客户端节点的node.roles为i表示该节点是ingest节点吗?
- Elasticsearch 7.x集群如何在index下创建type?
- 安全模式集群相关
- 资源使用和更改相关
- 组件使用
- Kibana使用相关
- 访问集群相关
- 端口使用
- 修订记录
- API参考(吉隆坡区域)
-
用户指南(安卡拉区域)
- 产品介绍
- 快速入门
- 权限管理
- 查看集群运行状态和存储容量状态
- 集群列表概览
- 部署跨AZ集群
- Elasticsearch
- 导入数据到Elasticsearch
- 监控
- 审计
-
常见问题
- 产品咨询类
-
功能使用相关
- Elasticsearch是否支持不同VPC之间的数据迁移?
- 如何跨Region迁移CSS集群?
- 如何设置云搜索服务的慢查询日志的阈值?
- 如何更新CSS生命周期策略?
- 如何批量设置索引副本数为0?
- 为什么新创建的索引分片全部被分配到一个node节点上?
- 如何查询快照信息?
- 购买的低版本集群是否可以升级为高版本集群
- 集群被删除后是否还能恢复?
- 如何修改Elasticsearch集群的TLS算法?
- ES集群如何设置search.max_buckets参数?
- Elasticsearch集群中某个客户端节点的node.roles为i表示该节点是ingest节点吗?
- Elasticsearch 7.x集群如何在index下创建type?
- 安全模式集群相关
- 资源使用和更改相关
- 组件使用
- Kibana使用相关
- 访问集群相关
- 端口使用
- 修订记录
- API参考(安卡拉区域)
-
用户指南(阿布扎比区域)
- 通用参考
链接复制成功!
使用CSS加速数据库的查询分析
方案架构
关系型数据库(例如MySQL、GaussDB for MySQL等)受限于全文检索和Ad Hoc查询能力,因此会将Elasticsearch作为关系型数据库的补充,以此提升数据库的全文检索能力和高并发的Ad Hoc查询能力。
本章主要介绍,如何将MySQL数据库中的数据同步到云搜索服务CSS,通过CSS实现数据库的全文检索与Ad Hoc查询分析加速。方案架构图如图1所示。
- 用户业务数据存储到MySQL。
- 通过数据复制服务DRS将MySQL中的数据实时同步到CSS。
- 通过CSS进行全文检索与数据查询分析。
前提条件
- 已创建好安全模式的CSS集群和MySQL数据库,且两者在同一个VPC与安全组内。
- MySQL数据库中已经有待同步的数据。本章以如下表结构和初始数据举例。
- MySQL中创建一个学生信息表:
CREATE TABLE `student` ( `dsc` varchar(100) COLLATE utf8mb4_general_ci DEFAULT NULL, `age` smallint unsigned DEFAULT NULL, `name` varchar(32) COLLATE utf8mb4_general_ci NOT NULL, `id` int unsigned NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
- MySQL中插入3个学生的初始数据:
INSERT INTO student (id,name,age,dsc) VALUES ('1','Jack Ma Yun','50','Jack Ma Yun is a business magnate, investor and philanthropist.'), ('2','will smith','22','also known by his stage name the Fresh Prince, is an American actor, rapper, and producer.'), ('3','James Francis Cameron','68','the director of avatar');
- MySQL中创建一个学生信息表:
- CSS集群中已完成索引创建,与MySQL中表相对应。
本章集群的索引示例如下:
PUT student { "settings": { "number_of_replicas": 0, "number_of_shards": 3 }, "mappings": { "properties": { "id": { "type": "keyword" }, "name": { "type": "short" }, "age": { "type": "short" }, "desc": { "type": "text" } } } }
其中的number_of_shards与number_of_replicas需根据具体业务场景进行配置。
操作步骤
- 通过DRS将MySQL数据实时同步到CSS。具体操作步骤请参见。
在本章案例中,表1中的同步任务配置参数需要按建议填写。
表1 同步任务参数说明 配置模块
参数名称
填写建议
同步实例 > 同步实例信息
“网络类型”
选择“VPC网络”。
“源数据库实例”
选择需要同步的RDS for MySQL实例,即存储用户业务数据的MySQL。
“同步实例所在子网”
选择同步实例所在的子网,建议跟数据库实例以及CSS集群所在子网保持一致。
源库及目标库 > 目标库信息
“VPC”和“子网”
选择和CSS集群一致的VPC与子网。
“IP地址或域名”
填写CSS集群的IP地址,获取方式请参见获取CSS集群的IP地址。
“数据库用户名”和“数据库密码”
填写CSS集群的管理员帐户名(admin)和密码。
“加密证书”
选择CSS集群的安全证书,如果未启用“SSL安全链接”,则不用选择。获取方式请参见获取CSS集群的安全证书。
设置同步
“流速模式”
选择“不限速”。
“同步对象类型”
不勾选“同步表结构”,因为已经预先在CSS集群中创建了与MySQL中表相对应的索引。
“同步对象”
选择“表级同步”,选择与CSS对应的数据库以及表名。
说明:
配置项中type名称需要与索引名称一样,都是“_doc”,若不一致请修改。
数据加工
-
直接“下一步”。
启动同步任务后,等待任务“状态”从“全量同步”变成“增量同步”,表示数据进入实时同步状态。
- 验证数据库的同步状态。
- 全量数据同步验证。
在CSS的Kibana中执行如下命令,确认全量数据是否同步到CSS。
GET student/_search
- 源端插入新数据,验证数据是否会同步到CSS。
例如,端源插入“id”为“4”的新数据。
INSERT INTO student (id,name,age,dsc) VALUES ('4','Bill Gates','50','Gates III is an American business magnate, software developer, investor, author, and philanthropist.')
在CSS的Kibana中执行如下命令,确认新数据是否同步到CSS。
GET student/_search
- 源端更新数据,验证数据是否会同步更新到CSS。
在CSS的Kibana中执行如下命令,确认数据是否同步更新到CSS。
GET student/_search
- 源端删除数据,验证CSS里的数据是否同步删除。
在CSS的Kibana中执行如下如下命令,确认CSS里的数据是否被同步删除。
GET student/_search
- 全量数据同步验证。
- 验证数据库的全文检索能力。
例如,在CSS查询“dsc”中包含“avatar”的数据。
GET student/_search { "query": { "match": { "dsc": "avatar" } } }
- 验证数据库的Ad Hoc查询能力。
例如,在CSS查询年龄大于40的philanthropist。
GET student/_search { "query": { "bool": { "must": [ { "match": { "dsc": "philanthropist" } }, { "range": { "age": { "gte": 40 } } } ] } } }
- 验证数据库的统计分析能力。
例如,在CSS统计所有人的年龄分布。
GET student/_search { "size": 0, "query": { "match_all": {} }, "aggs": { "age_count": { "terms": { "field": "age", "size": 10 } } } }