华为云用户手册

  • 常见问题 迁移过程出现报错“out of memory”怎么办? 迁移过程中出现报错“out of memory”, 表示迁移虚拟机内存溢出,有如下解决方案: 可能是E CS 虚拟机的配置不够,建议升级ECS规格,操作指导请参见变更单台ECS规格。 调整ESM的迁移速度,通过在迁移命令中减小“buffer_count”参数,限制内存中的文档数量。 迁移完成后,为什么源集群和目标集群的索引数据存储量不一致? ESM迁移集群后,两个集群的数据存储量不一致是正常的,这是由Elasticsearch的内部存储机制决定的。Elasticsearch存储是有多个shard,每个shard又有多个segment,由于ESM迁移是把源集群数据写入到目标集群,会导致在目标集群重新生成segment和shard,由于segment和shard都会对数据有膨胀,不同集群的segment的shard不同,数据量也不同,如果需要比较数据一致性,则需要对比文档个数的多少,而不是对比数据大小。
  • 前提条件 源Elasticsearch集群和目标Elasticsearch集群处于可用状态。 集群间需要保证网络连通。 如果源集群和目标集群在不同VPC,则需要先打通VPC网络建立对等连接。具体操作请参见对等连接简介。 如果是自建Elasticsearch集群迁移至华为云,则可以通过给自建Elasticsearch集群配置公网访问打通网络。 如果是第三方Elasticsearch集群迁移至华为云,则需要建立企业内部数据中心到华为云的VPN通道或专线。 确认集群的索引已开启“_source”。 集群索引的“_source”默认是开启的。执行命令GET {index}/_search,当返回的索引信息里有“_source”信息时表示已开启。
  • 方案优势 跨版本兼容性:ESM支持不同版本的Elasticsearch集群间的数据迁移,包括从老版本迁移到新版本。 简化操作:ESM使用简单方便,使用Go语言开发,只需下载编译包安装即可使用。 性能控制:在迁移过程中,可以通过配置Scroll API的参数来控制迁移速率,优化迁移性能。 灵活的迁移方案:ESM提供了灵活的迁移方案,包括全量迁移和增量迁移,以适应不同的业务需求。 开源免费:作为一个开源工具,ESM代码托管在GitHub上,用户可以免费使用。
  • 性能影响 ESM迁移集群的工作原理基于Scroll API,此API能够高效地从源集群查找索引数据,并批量同步至目标集群。这一过程可能会对源集群性能产生影响,具体影响程度取决于目标集群对源集群的读取速度,而读取速度取决于Scroll API的size和slice参数配置。参数配置的详细指导可参考Reindex API文档。 由于ESM能够迅速从源集群读取数据,可能会对源集群的性能产生影响。因此,建议在业务低峰时段进行数据迁移,以监控源集群CPU和内存的性能指标变化。通过调整迁移速度和选择适宜的迁移时间窗口,可以有效控制性能影响。对于涉及大量数据迁移或资源占用较高的集群,特别推荐在业务低峰期执行数据迁移,以确保源端业务操作不受影响。
  • 准备迁移虚拟机 创建ECS用于迁移Elasticsearch集群。 购买Linux ECS,“镜像”选择CentOS 7系列,“虚拟私有云”和目标集群保持一致。购买操作指导请参见快速购买和使用Linux ECS。 测试ECS和源集群、目标集群的连通性。 在ECS执行如下命令测试连通性,当正常返回集群信息时表示已经连通。 # 非安全集群curl -ik http://ip:9200 #安全集群+HTTPS访问curl -ik https://ip:9200 -u[Username]:[password]
  • 应用场景 ESM(Elasticsearch Migration Tool)是一个开源的Elasticsearch集群迁移工具。它支持不同版本的Elasticsearch之间的数据迁移,并且可以通过配置Scroll API的参数来控制迁移速率,以适应不同的网络环境和业务需求。以下是ESM实现Elasticsearch集群间数据迁移的一些应用场景: 跨版本迁移:在Elasticsearch集群需要升级到新版本时,ESM可以帮助平滑迁移数据,确保升级过程中数据的完整性和可用性。 集群合并:当企业需要将多个Elasticsearch集群的数据整合到一个集群中以简化管理时,ESM可以高效地完成这一任务。 服务迁移上云:企业可以将自建的Elasticsearch服务迁移至云平台,以利用云服务的弹性扩展、简化维护和成本效益。 变更服务提供商:如果企业当前使用的是第三方Elasticsearch服务,但出于成本、性能或其他战略考虑,希望更换服务提供商至华为云。
  • 应用场景 7.6.2和7.10.2版本的华为云Elasticsearch集群默认安装了 CSS 服务的读写分离插件,通过配置读写分离可以实现Elasticsearch集群间的索引数据近实时同步。 通过读写分离插件实现华为云Elasticsearch集群间数据迁移仅适用于源集群和目标集群都是CSS服务的集群。常用于以下场景: 跨地域或跨账号迁移:将其他Region或账号下的Elasticsearch集群迁移到当前集群中。 集群合并:将两个Elasticsearch集群的索引数据合并到一个集群中。
  • 方案架构 图1 迁移流程 通过CSS服务的读写分离插件迁移华为云Elasticsearch集群(源集群)至华为云Elasticsearch(目标集群)的数据迁移流程如图1所示。 通过读写分离插件建立源集群和目标集群的连接。 在目标集群配置索引自动同步,实现源集群的数据自动同步到目标集群。同步周期默认是30秒,支持修改。 查询自动同步状态,确认集群数据是否迁移完成。 更多关于CSS服务的读写分离功能的介绍请参见配置Elasticsearch集群读写分离。
  • 应用场景 华为云Logstash是一款全托管的数据接入处理服务,兼容开源Logstash的能力,支持用于Elasticsearch集群间数据迁移。 通过华为云Logstash可以实现华为云Elasticsearch、自建Elasticsearch或第三方Elasticsearch迁移至华为云Elasticsearch,该方案常用于以下场景: 跨版本迁移:利用Logstash的兼容性和灵活性,实现不同版本间的数据迁移,确保数据在新版本中的可用性和一致性。适用于Elasticsearch集群版本跨度较大的迁移场景,例如从6.X版本迁移至7.X版本。 集群合并:使用Logstash进行数据迁移,将多个Elasticsearch集群的数据整合到一个Elasticsearch集群中,实现多个Elasticsearch数据的统一管理和分析。 服务迁移上云:将自建的Elasticsearch服务迁移到云平台,以利用云服务的可扩展性、维护简便性和成本效益。 变更服务提供商:如果企业当前使用的是第三方Elasticsearch服务,但出于成本、性能或其他战略考虑,希望更换服务提供商至华为云。
  • 性能影响 使用Logstash迁移集群依托于Scroll API,此API能够高效读取源集群的索引数据,并批量同步至目标集群。这一过程可能会对源集群性能产生影响,具体影响程度取决于目标集群对源集群的读取速度,而读取速度取决于Scroll API的size和slice参数配置。参数配置的详细指导可参考Reindex API文档。 对于资源消耗较高的集群,建议通过调整size参数来减缓迁移速率,或者选择在业务流量低谷时段进行迁移操作,以减轻对集群资源的影响。 对于资源消耗较低的集群,在迁移时可以采用默认参数配置,建议同时监控源集群的性能负载,并根据实际情况适时调整size和slice参数,以优化迁移效率和资源使用。
  • 方案架构 图1 迁移流程 通过华为云Logstash实现Elasticsearch集群间数据迁移的迁移流程如图1所示。 输入(Input):华为云Logstash接收来自华为云Elasticsearch、自建Elasticsearch或第三方Elasticsearch的数据。 华为云Elasticsearch、自建Elasticsearch或第三方Elasticsearch数据迁移到华为云Elasticsearch的操作步骤相同,只是获取源集群的访问地址有差异,具体请参见获取Elasticsearch集群信息。 过滤(Filter):华为云Logstash对数据进行清洗和转换。 输出(Output):华为云Logstash将数据输出到目标设备,如华为云Elasticsearch。 根据业务需求,可以选择全量数据迁移或增量数据迁移。 全量数据迁移:使用Logstash进行全量数据迁移,适用于迁移初期或需要确保数据完整性的场景。 增量数据迁移:通过Logstash配置增量查询,可以只迁移有增量字段的索引数据。此方法适用于需要持续同步数据或对数据实时性有较高要求的场景。
  • 方案优势 高版本兼容性:适用于不同版本的Elasticsearch集群迁移。 高效的数据处理能力:Logstash支持批量读写操作,可以大幅度提高数据迁移的效率。 并发同步技术:利用slice并发同步技术,可以提高数据迁移的速度和性能,尤其是在处理大规模数据时。 配置简单:华为云Logstash的配置相对简单直观,通过配置文件即可实现数据的输入、处理和输出。 强大的数据处理功能:Logstash内置了丰富的过滤器,可以在迁移过程中对数据进行清洗、转换和丰富。 灵活的迁移策略:根据业务需求,可以灵活选择全量迁移或增量迁移,优化存储使用和迁移时间。
  • 操作步骤 获取Elasticsearch集群信息 (可选)迁移索引结构:通过脚本迁移Elasticsearch集群的索引模板和索引结构。 创建Logstash集群:创建一个Logstash集群用于迁移数据。 验证集群间的网络连通性:验证Logstash和源Elasticsearch集群的连通性。 使用Logstash迁移集群 在集群迁移初期或需要确保数据完整性的场景,推荐使用Logstash全量迁移集群数据。 在需要持续同步数据或对数据实时性有较高要求的场景,推荐使用Logstash增量迁移集群数据。 释放Logstash集群:当集群迁移完成后,请及时释放Logstash集群。
  • 验证集群间的网络连通性 在启动迁移任务前,需要先验证Logstash和源Elasticsearch集群的网络连通性。 在Logstash集群列表,选择创建的Logstash集群“Logstash-ES”,单击操作列的“配置中心”,进入配置中心页面。 在配置中心页面,单击“连通性测试”。 在弹窗中输入源集群的IP地址和端口号,单击“测试”。 图4 连通性测试 当显示“可用”时,表示集群间网络连通。如果网络不连通,可以配置Logstash集群路由,连通集群间的网络,具体操作请参见配置Logstash集群路由。
  • 前提条件 源Elasticsearch集群和目标Elasticsearch集群处于可用状态。 集群间需要保证网络连通。 如果源集群、Logstash和目标集群在不同VPC,则需要先打通VPC网络建立对等连接。具体操作请参见对等连接简介。 如果是自建Elasticsearch集群迁移至华为云,则可以通过给自建Elasticsearch集群配置公网访问打通网络。 如果是第三方Elasticsearch集群迁移至华为云,则需要建立企业内部数据中心到华为云的VPN通道或专线。 确认集群的索引已开启“_source”。 集群索引的“_source”默认是开启的。执行命令GET {index}/_search,当返回的索引信息里有“_source”信息时表示已开启。
  • 查询性能优化 基于Elasticsearch的数据查询流程分析,有以下几种性能优化方案。 表1 查询性能优化 优化方案 方案说明 通过routing减少检索扫描的分片数 在数据入库时指定routing值,将数据路由到某个特定的分片,查询时通过该routing值将请求转发到某个特定的分片,而不是相关索引的所有分片,进而提升集群整体的吞吐能力。 Elasticsearch 7.x版本中,设置命令如下: 指定routing值插入数据 PUT /{index}/_doc/1?routing=user1{ "title": "This is a document"} 根据routing值去查询数据 GET /{index}/_doc/1?routing=user1 采用index sorting减少检索扫描的Segments数 当请求落到某个分片时,会逐个遍历其Segments,通过使用index sorting,可以使得范围查询、或者排序查询在段内提前终止(early-terminate)。 Elasticsearch 7.x版本中,示例命令如下: //假设需要频繁使用字段date做范围查询。PUT {index}{ "settings": { "index": { "sort.field": "date", "sort.order": "desc" } }, "mappings": { "properties": { "date": { "type": "date" } } }} 增加query cache提升缓存命中的概率 当filter请求在段内执行时,会通过bitset保留其刷选结果,当下一个类似的查询过来时,就可以复用之前查询的结果,以此减少重复查询。 增加query cache可以通过修改集群的参数配置实现,将自定义缓存参数“indices.queries.cache.size”设置为更大的值。具体操作请参见参数配置,修改参数配置后一定要重启集群使参数生效。 提前Forcemerge,减小需要扫描的Segments数 对于定期滚动后的只读索引,可以定期执行forcemerge,将小的Segments合并为大的Segments,并将标记为“deleted”状态的索引彻底删除,提升查询效率。 Elasticsearch 7.x版本中,配置示例如下: //假设配置索引forcemerge后segments数量为10个。POST /{index}/_forcemerge?max_num_segments=10
  • 应用场景 S3插件(repository-s3)是一个专为Elasticsearch设计的插件,该插件允许用户将Elasticsearch的快照备份存储到与S3 API兼容的存储服务中,例如华为云的 对象存储服务 (OBS)。S3插件提供了一种高效、灵活且安全的方式来备份Elasticsearch集群的数据。 通过S3插件实现自建Elasticsearch集群和华为云Elasticsearch集群之间的数据迁移,常用于以下场景: 服务迁移上云:将自建的Elasticsearch服务迁移到云平台,以利用云服务的可扩展性、维护简便性和成本效益。 跨版本迁移:将低版本的自建Elasticsearch集群数据迁移到高版本的华为云Elasticsearch集群中。 集群整合:将多个自建Elasticsearch集群迁移到一个华为云Elasticsearch集群中整合为统一的数据平台,以简化管理和提高数据一致性。 技术栈统一:当企业已经在华为云上运行其他服务时,为了技术栈的统一和简化管理,可以选择将Elasticsearch集群也迁移至华为云。
  • 数据查询流程 图1 数据查询流程 如图1所示,以Elasticsearch集群为例,介绍客户端往Elasticsearch或OpenSearch集群发送查询请求的流程。图中的P表示主分片Primary,R表示副本分片Replica,主副分片在数据节点Node里是随机分配的,但是不能在同一个节点里。 客户端向Node1发送查询请求,此时Node1为协调节点。 节点Node1根据查询请求的索引以及其分片分布,进行分片选择;然后将请求转发到Node1、Node2、Node3。 各分片分别执行查询任务;当各分片查询成功后,将查询结果汇聚到Node1,然后协调节点向客户端返回查询结果。 对于某个查询请求,其在节点上默认可并行查询5个分片,多于5个分片时将分批进行查询;在单个分片内,通过逐个遍历各个Segment的方式进行查询。 图2 Elasticsearch的索引组成
  • 前提条件 源Elasticsearch集群和目标Elasticsearch集群处于可用状态。 集群间需要保证网络连通。 如果源集群和目标集群在不同VPC,则需要先打通VPC网络建立对等连接。具体操作请参见对等连接简介。 如果是自建Elasticsearch集群迁移至华为云,则可以通过给自建Elasticsearch集群配置公网访问打通网络。 如果是第三方Elasticsearch集群迁移至华为云,则需要建立企业内部数据中心到华为云的VPN通道或专线。 确认集群的索引已开启“_source”。 集群索引的“_source”默认是开启的。执行命令GET {index}/_search,当返回的索引信息里有“_source”信息时表示已开启。
  • 应用场景 Elasticsearch作为一款开源搜索引擎,提供了Reindex API以支持集群间的索引数据迁移。CSS服务同样支持利用Reindex API实现Elasticsearch集群间的数据迁移。以下是该方案适用的专业迁移场景概述: 集群合并:Reindex API能够将分散在多个Elasticsearch集群中的索引数据合并至单一集群,实现数据的集中管理和分析。 服务迁移上云:企业可以将自建的Elasticsearch服务迁移至云平台,以利用云服务的弹性扩展、简化维护和成本效益。 变更服务提供商:对于当前使用第三方Elasticsearch服务的企业,若出于成本、性能或其他战略考量,希望更换至华为云等其他服务提供商,Reindex API提供了一种迁移途径。 Reindex API支持以下迁移策略: 全量迁移:实现跨集群的完整索引数据迁移。在此过程中,必须暂停对源集群的写入操作,以确保源集群与目标集群数据的一致性。 增量迁移:当集群索引包含时间字段时,Reindex API支持基于时间戳的增量数据迁移。在业务切换阶段,全量迁移完成后,需暂停源集群的写入操作,并利用Reindex API基于最近更新时间快速同步增量数据,随后将业务全面切换至目标集群。 索引重构:当需要调整索引结构,如Mapping、分词器或分片设置时,Reindex API可用于在迁移过程中重新配置索引结构。
  • 性能影响 Reindex API的工作原理基于Scroll API,此API能够高效地从源集群查找索引数据,并批量同步至目标集群。这一过程可能会对源集群性能产生影响,具体影响程度取决于目标集群对源集群的读取速度,而读取速度取决于Scroll API的size和slice参数配置。参数配置的详细指导可参考Reindex API文档。 由于Reindex任务在Elasticsearch集群中作为异步任务执行,在低并发情况下对源集群性能的影响是可管理的。然而,对于资源占用较高的集群,建议通过调整Scroll API的size参数来减缓迁移速度,或选择在业务低峰期进行迁移,以降低对业务的影响。
  • 常见问题:当索引数据大、数据同步慢时,如何处理? 当索引数据大、数据同步慢时,有如下几种方案可以提高效率。 Reindex API是使用Scroll方式读取源端数据写入目标端,因此可以通过配置size和slice参数增加迁移并发和速度。具体使用指导请参见Reindex API。 当单个索引数据量比较大时,可以在迁移前将目标索引的副本数设置为0,以加快数据同步速度。待数据迁移完成后,再修改为实际值。 当源端数据量很大时,建议采用快照方式迁移数据。例如通过备份与恢复实现华为云Elasticsearch集群间数据迁移、通过S3插件备份与恢复迁移自建Elasticsearch集群至华为云和通过备份与恢复迁移第三方Elasticsearch集群至华为云。 当索引数据存在时间字段时,可以使用跨集群增量迁移方案,分段迁移索引数据。
  • SQL审核 SQL审核功能能够帮助用户在开发阶段发现隐藏在代码中的SQL规范性、设计合理性和性能等问题,内置300多条审核规则,覆盖DML、DDL、PL/SQL等各类SQL的深度审核,且支持规则内风险级别、阈值及建议内容的调整,和规则间的自由组合创建定制化审核模板。支持 GaussDB 、MySQL和PostgreSQL三种数据库的审核,可通过单语句、批量代码文件上传(自动提取SQL)、直连数据库,共3种方式接入SQL进行审核,深度看护代码,避免烂SQL流入生产环境。 步骤一:创建数据源 步骤二:创建规则模板 步骤三:创建审核任务
  • 查看规则集中规则详情 用户可优先了解各个规则集中的规则详情,选择符合检查要求的规则集。可查看的规则详情包含:问题级别、正确示例、错误示例和修复建议等信息。 基于项目入口访问CodeArts Check服务首页。 单击“规则集”页签,进入检查规则集列表页面。 单击规则集名称,进入该规则集详情页面,可在线查看规则集中的规则使用详情。 图1 查看规则集的规则 您也可以单击“导出”,导出该规则集中已启用的规则到本地查看规则详情。
  • 使用流程 表1 使用流程说明 流程 说明 购买CodeArts Check 指导您如何开通代码检查服务。 配置CodeArts Check项目级角色权限 为您介绍如何配置CodeArts Check服务项目级权限以及访问代码检查服务首页的方式。 创建代码检查任务 您可创建不同代码源的代码检查任务。 配置代码检查任务 您可对已有的检查任务进行修改或配置。 执行代码检查任务 您可对目标代码检查任务执行检查,及时发现源代码中的代码问题。 查看代码检查结果 代码检查任务执行完成后,您可查看检查结果并修改代码问题。
  • 支持审计日志的操作 表1 云审计 服务支持CodeArts Check服务操作 操作名称 资源类型 事件名称 创建代码检查任务 task create 修改代码检查任务 task modify 删除代码检查任务 task delete 执行代码检查任务 job create 取消执行代码检查任务 job modify_job 关注代码检查任务 followingTask create_followingTask 取消关注代码检查任务 followingTask delete_followingTask 修改规则集信息 ruleset modify_ruleset 修改规则集的规则 ruleset modify_ruleset 删除规则集 ruleset delete_ruleset 配置默认规则集 ruleset set_default_ruleset 导出规则集表格 ruleset export_ruleset 导出问题表格 defectExcel export_defectExcel 下载问题表格 defectExcel downloadAndExport_defectExcel 修改问题状态 issueStatus update_issueStatus 修改问题责任人 issueOwner update_issueOwner 修改问题评论 issueComment update_issueComment
  • 配置CodeArts Check插件 编辑器下方切换到“CodeArts Check”窗口,在底部工具栏单击“Setting”,弹出配置窗口。 单击配置窗口中“规则”左侧的图标可以查看规则详细信息。 根据实际需要确定勾选是否自动触发代码检查,然后输入检查的屏蔽目录和指定的扫描目录。 可以查看当前被激活/应用到的规则(包括状态、危险级别、编程语言、引擎标签、规则类型)或者根据规则集筛选规则(所有规则集/推荐规则集)。 配置后,单击“应用”。
  • CodeArts Check一键格式化及自动修复功能介绍 一键格式化:支持对单文件/多文件/文件夹/整个项目进行一键格式化。一键格式化可帮助您自动解决项目里基础的代码规范问题,如:多余的空格或空行。操作方法如下: 在当前打开的文件代码编辑区或在项目的资源管理器界面里,单击鼠标右键,选择“CodeArts Check一键格式化”。 自动修复:针对插件扫描出来的单个问题,插件提供建议如何修复的预览界面及自动修复。
  • CodeArts Check插件检查功能介绍 扫描检查单文件、多文件、整个项目并查看扫描结果 单文件扫描检查:在当前打开的文件代码编辑区,单击鼠标右键,选择“CodeArts Check文件检查”。或者在项目的资源管理器界面里,鼠标移动到需要扫描的文件,单击鼠标右键,选择“CodeArts Check文件检查”。 多文件扫描检查:在项目的资源管理器里,按住Ctrl键,鼠标左键选择需要扫描的几个文件,单击鼠标右键,选择“CodeArts Check文件检查”。 整个项目扫描检查:在当前打开的文件代码编辑区,单击鼠标右键,选择“CodeArts Check项目检查”。或者在项目的资源管理器界面里,单击鼠标右键,选择“CodeArts Check项目检查”。 告警帮助提供告警详细描述、严重级别、告警类型、正确示例、错误示例及修复建议,您可以根据”严重程度/文件分类/规则分类”筛选查看告警。 按文件分类查看:打开CodeArts Check窗口,选择“Defects”页签,在检查结果区域左侧工具栏,单击(分类),选择“按文件分类进行查看”。 按严重级别后告警类型查看:打开CodeArts Check窗口,选择“Defects”页签,在检查结果区域左侧工具栏,单击,根据需要选择显示问题的类别。 根据告警指导修改后,插件将实时自动检查,自动更新告警信息 用户根据插件告警指导修改后,插件将实时自动进行检查,自动更新告警信息。
  • 登录IntelliJ IDEA版本插件(可选) 分为两种登录方式。 方式一:通过华为云账号直接登录或CSDN账号授权登录CodeArts Check IDE插件。 方式二:通过华为云账号的AK/SK登录。 获取华为云账号的AK/SK。 登录华为云访问密钥界面。 单击“新增访问密钥”,在弹出的窗口中根据实际需要填写描述信息。 单击“确定”,弹出“身份验证”窗口,通过手机的验证方式进行身份验证。 输入验证码后单击“确定”,会弹出窗口提示“创建成功”,单击“立即下载”按钮。 打开下载的“.csv”文件,查看User Name/Access Key/Secret Key信息。 IDEA IDE编辑器右下角提示“Huawei Cloud ToolKit:Login Failed”。 单击“Set your AK/SK”,打开华为云ToolKit的登录界面窗,输入1中获取华为云账号的AK/SK。 需要勾选“Remember me”。 单击“Apply”,在弹出的窗口中单击“同意并继续使用”。 IDEA IDE右下角会有登录的用户名提示信息,表示已经登录成功。
共100000条
提示

您即将访问非华为云网站,请注意账号财产安全