首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >ElasticSearch Java API:Snapshot操作

ElasticSearch Java API:Snapshot操作

原创
作者头像
HLee
修改2021-09-10 18:05:58
1.3K0
修改2021-09-10 18:05:58
举报
文章被收录于专栏:房东的猫房东的猫

https://www.elastic.co/guide/en/elasticsearch/client/java-rest/6.8/_snapshot_apis.html

https://www.elastic.co/guide/en/elasticsearch/reference/current/snapshot-restore-apis.html

获取快照仓库

/**
 * 获取快照仓库
 * @param request
 * @return
 * @throws IOException
 */
public List<RepositoryMetaData> getRepositoriesResponse(GetRepositoriesRequest request) throws IOException {
    List<RepositoryMetaData> response = restHighLevelClient.snapshot().getRepository(request, RequestOptions.DEFAULT).repositories();
    return response;
}

新建快照仓库

/**
 * 新建快照仓库
 * @param request
 * @return
 * @throws IOException
 */
public AcknowledgedResponse putRepository(PutRepositoryRequest request) throws IOException{
    AcknowledgedResponse response = restHighLevelClient.snapshot().createRepository(request, RequestOptions.DEFAULT);
    return response;
}

获取快照

/**
 * 获取快照信息
 */
public List<SnapshotInfo> getSnapshots(String repositoryName, String[] snapshotName) throws IOException {

    GetSnapshotsRequest request = new GetSnapshotsRequest();
    request.repository(repositoryName);
    request.snapshots(snapshotName);
    request.ignoreUnavailable(true); // 在快照不可用是,不会抛出异常

    return snapshotDao.getSnapshots(request);
}

/**
 * 获取快照
 * @param request
 * @return
 * @throws IOException
 */
public List<SnapshotInfo> getSnapshots(GetSnapshotsRequest request) throws IOException{

    GetSnapshotsResponse response = restHighLevelClient.snapshot().get(request, RequestOptions.DEFAULT);

    List<SnapshotInfo> snapshotsInfos = response.getSnapshots();

    return snapshotsInfos;
}

删除快照

/**
 * 删除快照
 * @param repositoryName
 * @param snapshotName
 * @return
 * @throws IOException
 */
public boolean acknowledged(String repositoryName, String snapshotName) throws IOException{
    DeleteSnapshotRequest request = new DeleteSnapshotRequest(repositoryName);
    request.snapshot(snapshotName);

    return snapshotDao.acknowledged(request);
}

/**
 * 删除快照
 * @return
 * @throws IOException
 */
public boolean acknowledged(DeleteSnapshotRequest request) throws IOException{
    AcknowledgedResponse response = restHighLevelClient.snapshot().delete(request, RequestOptions.DEFAULT);

    boolean acknowledged = response.isAcknowledged();

    return acknowledged;
}

新建快照

/**
 * 删除快照
 * @param repositoryName
 * @param snapshotName
 * @return
 * @throws IOException
 */
public RestStatus createSnapshot(String repositoryName, String snapshotName, List<String> indices) throws IOException{
    CreateSnapshotRequest request = new CreateSnapshotRequest();
    // 仓库名
    request.repository(repositoryName);
    // 快照名
    request.snapshot(snapshotName);
    // 索引名
    request.indices(indices);
    // 将还原快照中的所有数据流和索引,但不还原群集状态。
    request.includeGlobalState(false);
    // ignoreUnavailable, allowNoIndices, expandToOpenIndices, expandToClosedIndices, allowAliasesToMultipleIndices,
    // forbidClosedIndices, ignoreAliases, ignoreThrottled
    request.indicesOptions(IndicesOptions.fromOptions(false, false, true, true));
    // Waits for the snapshot to be completed before a response is returned
    request.waitForCompletion(true);

    return snapshotDao.createSnapshot(request);
}

/**
 * 新建快照
 * @param request
 * @return
 */
public RestStatus createSnapshot(CreateSnapshotRequest request) throws IOException{
    CreateSnapshotResponse response = restHighLevelClient.snapshot().create(request, RequestOptions.DEFAULT);

    RestStatus status = response.status();
    return status;
}

获取快照状态

/**
 * 获取快照状态
 * @param repositoryName
 * @param snapshotName
 * @return
 */
public List<SnapshotStatus> snapshotsStatus(String repositoryName, String snapshotName) throws IOException{
    SnapshotsStatusRequest request = new SnapshotsStatusRequest();
    request.repository(repositoryName);
    String [] snapshots = new String[] {snapshotName};
    request.snapshots(snapshots);
    request.ignoreUnavailable(true);

    return snapshotDao.snapshotsStatus(request);
}

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 获取快照仓库
  • 新建快照仓库
  • 获取快照
  • 删除快照
  • 新建快照
  • 获取快照状态
相关产品与服务
Elasticsearch Service
腾讯云 Elasticsearch Service(ES)是云端全托管海量数据检索分析服务,拥有高性能自研内核,集成X-Pack。ES 支持通过自治索引、存算分离、集群巡检等特性轻松管理集群,也支持免运维、自动弹性、按需使用的 Serverless 模式。使用 ES 您可以高效构建信息检索、日志分析、运维监控等服务,它独特的向量检索还可助您构建基于语义、图像的AI深度应用。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档