仅源存储库
编辑仅源存储库
编辑您可以使用仅源存储库来创建最小的、仅包含源数据的快照,与常规快照相比,最多可减少 50% 的磁盘空间占用。
与其他存储库类型不同,仅源存储库不直接存储快照。它将存储委托给另一个已注册的快照存储库。
当您使用仅源存储库创建快照时,Elasticsearch 会在委托的存储库中创建仅包含源数据的快照。此快照仅包含存储的字段和元数据。它不包含索引或文档值结构,并且在恢复后不能立即进行搜索。要搜索恢复后的数据,您必须首先将其重新索引到新的数据流或索引中。
仅当启用 _source
字段且未应用源筛选时,才支持仅源快照。因此,采用合成源的索引无法恢复。当您恢复仅源快照时
- 恢复后的索引是只读的,只能用于
match_all
搜索或滚动请求,以支持重新索引。 - 不支持除
match_all
和_get
请求之外的查询。 - 恢复后的索引的映射为空,但原始映射可从类型顶级的
meta
元素中获得。 - 诸如文档计数、已删除文档计数和存储大小等信息对于此类索引不可用,因为这些索引不包含用于检索此信息的相关数据结构。因此,此类信息不会在诸如 cat indices API 之类的 API 中显示。
在注册仅源存储库之前,请使用 Kibana 或 创建快照存储库 API 来注册另一种类型的快照存储库以供存储。然后注册仅源存储库,并在请求中指定委托的存储库。
resp = client.snapshot.create_repository( name="my_src_only_repository", repository={ "type": "source", "settings": { "delegate_type": "fs", "location": "my_backup_repository" } }, ) print(resp)
response = client.snapshot.create_repository( repository: 'my_src_only_repository', body: { type: 'source', settings: { delegate_type: 'fs', location: 'my_backup_repository' } } ) puts response
const response = await client.snapshot.createRepository({ name: "my_src_only_repository", repository: { type: "source", settings: { delegate_type: "fs", location: "my_backup_repository", }, }, }); console.log(response);
PUT _snapshot/my_src_only_repository { "type": "source", "settings": { "delegate_type": "fs", "location": "my_backup_repository" } }
存储库设置
编辑-
chunk_size
- (可选,字节值)快照中文件的最大大小。在快照中,大于此值的文件将被分解为小于或等于此大小的块。默认为
null
(无限制的文件大小)。 -
compress
- (可选,布尔值)如果为
true
,则快照中会压缩元数据文件(例如索引映射和设置)。数据文件不会被压缩。默认为true
。 -
delegate_type
-
(可选,字符串)委托存储库类型。有关有效值,请参阅
type
参数。source
存储库可以为其委托的存储库类型使用settings
属性。请参阅 仅源存储库。 -
max_number_of_snapshots
- (可选,整数)存储库可以包含的最大快照数。默认为
Integer.MAX_VALUE
,即2^31-1
或2147483647
。 -
max_restore_bytes_per_sec
- (可选,字节值)每个节点的最大快照恢复速率。默认为无限制。请注意,恢复也会通过 恢复设置进行限制。
-
max_snapshot_bytes_per_sec
- (可选,字节值)每个节点的最大快照创建速率。默认为每秒
40mb
。请注意,如果设置了托管服务的恢复设置,则默认为无限制,并且速率还会通过恢复设置进行限制。
-
readonly
-
(可选,布尔值)如果为
true
,则存储库为只读。群集可以从存储库检索和恢复快照,但不能写入存储库或在其中创建快照。只有具有写入权限的群集才能在存储库中创建快照。连接到存储库的所有其他群集应将
readonly
参数设置为true
。如果为
false
,则群集可以写入存储库并在其中创建快照。默认为false
。如果使用多个群集注册相同的快照存储库,则应只有一个群集对存储库具有写入权限。多个群集同时写入存储库有损坏存储库内容的风险。