写点什么

Easysearch 可搜索快照功能,看这篇就够了

作者:极限实验室
  • 2025-01-05
    北京
  • 本文字数:1434 字

    阅读完需:约 5 分钟

Easysearch 可搜索快照功能,看这篇就够了

可搜索快照功能改变了我们对备份数据的查询方式。以往要查询备份数据时,要先找到备份数据所在的快照,然后在一个合适的环境中恢复快照,最后再发起请求查询数据。这个处理路径很长,而且很消耗时间。可搜索快照功能将大大简化该处理路径,节约时间。

角色设置

相信你对节点角色的概念已经有所熟悉。要启用可搜索快照功能,Easysearch 集群中必须至少有一个节点拥有 search 角色。参考设置如下。


node.roles: ["search"]node.search.cache.size: 500mb
复制代码


  • node.roles: 指定节点角色,只有 search 角色的节点才能去搜索快照中的数据。

  • node.search.cache.size: 执行快照搜索时,数据缓存大小。


混合角色设置,参考如下。


node.roles: ["master","data","search","ingest"]node.search.cache.size: 500mb
复制代码

创建快照

可搜索快照功能使用普通快照作为基础,创建快照命令不变。比如我创建且备份个 infini 索引。


# 创建 infini 索引POST infini/_doc{  "test":"Searchable snapshots"}
# 创建快照备份 infini 索引PUT _snapshot/my-fs-repository/1{ "indices": "infini", "include_global_state": false}
复制代码


创建快照索引

可搜索快照功能的核心是搜索快照中的索引,这一步是通过快照索引实现的。为了和集群中的普通索引区别开来,我们将实际存储在快照中的索引称为快照索引。通过使用 Easysearch 的 _restore API 并指定 remote_snapshot 存储类型来创建快照索引。


创建快照索引时,注意名称不能与当前索引名称重复。通常我们备份完索引后,可删除索引释放节点磁盘空间,创建快照索引时默认使用原来的名称。


# 删除 infini 索引释放磁盘空间DELETE infini
# 创建快照索引,使用原索引名称POST /_snapshot/my-fs-repository/1/_restore{ "indices": "infini", "include_global_state": false, "include_aliases": false, "storage_type": "remote_snapshot"}
复制代码


创建快照索引的命令和还原快照的命令非常相似,关键在于 storage_type 参数指定 remote_snapshot 存储类型。


如果要将快照中的全部索引都创建快照索引,可省略 indices 参数。



如果想在创建快照索引时指定不同的名字,参考下面的命令。


POST /_snapshot/my-fs-repository/1/_restore{  "indices": "infini",  "include_global_state": false,  "include_aliases": false,  "storage_type": "remote_snapshot",  "rename_pattern": "(infini)",  "rename_replacement": "snapshot-$1"}
复制代码


  • rename_pattern: 使用此选项指定索引匹配的正则表达式。使用捕获组重用索引名称的部分。

  • rename_replacement: 使用 1 包括第一个捕获组的内容,等等。


上述命令创建出来的快照索引名称是 snapshot-infini 。



经过上面一系列的操作,我已经拥有了两个快照索引。

搜索快照索引

我们通过搜索快照索引达到搜索快照数据的目的,令人开心的是搜索快照索引和搜索普通索引的语法完全一样。😀


常见问题

如何区分普通索引和快照索引呢?


我们可以通过索引的 settings 信息区分,快照索引的 settings 信息中有 store.type: remote_snapshot 信息,普通索引没有此信息。



快照索引能写入数据吗?


快照索引无法写入,数据仍然保持在快照格式中存储在存储库中,因此可搜索快照索引本质上是只读的。 任何尝试写入可搜索快照索引的操作都会导致错误。



快照索引不想要了怎么办?


直接删除,需要时再执行创建快照索引流程。此外快照在创建快照索引后,无法直接删除快照,要先删除快照索引。



如果您对上述内容有任何疑问,欢迎与我讨论。


发布于: 刚刚阅读数: 4
用户头像

简单、易用、极致、创新 2021-11-22 加入

极限实验室(INFINI Labs)致力于打造极致易用的数据探索与分析体验。

评论

发布
暂无评论
Easysearch 可搜索快照功能,看这篇就够了_elasticsearch_极限实验室_InfoQ写作社区