partitions.service.ts 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. import { Injectable } from '@nestjs/common';
  2. import { MilvusService } from '../milvus/milvus.service';
  3. import {
  4. CreatePartitionReq,
  5. DropPartitionReq,
  6. GetPartitionStatisticsReq,
  7. LoadPartitionsReq,
  8. ReleasePartitionsReq,
  9. ShowPartitionsReq,
  10. } from '@zilliz/milvus2-sdk-node/dist/milvus/types';
  11. import { throwErrorFromSDK } from '../utils/Error';
  12. import { findKeyValue } from '../utils/Helper';
  13. import { ROW_COUNT } from '../utils/Const';
  14. @Injectable()
  15. export class PartitionsService {
  16. constructor(private milvusService: MilvusService) {}
  17. get partitionManager() {
  18. return this.milvusService.partitionManager;
  19. }
  20. async getPatitionsInfo(data: ShowPartitionsReq) {
  21. const result = [];
  22. const res = await this.getPartitions(data);
  23. if (res.partition_names && res.partition_names.length) {
  24. for (const [index, name] of res.partition_names.entries()) {
  25. const statistics = await this.getPartitionStatistics({
  26. ...data,
  27. partition_name: name,
  28. });
  29. result.push({
  30. name,
  31. id: res.partitionIDs[index],
  32. rowCount: findKeyValue(statistics.stats, ROW_COUNT),
  33. createdTime: res.created_utc_timestamps[index],
  34. });
  35. }
  36. }
  37. return result;
  38. }
  39. async getPartitions(data: ShowPartitionsReq) {
  40. const res = await this.partitionManager.showPartitions(data);
  41. throwErrorFromSDK(res.status);
  42. return res;
  43. }
  44. async createParition(data: CreatePartitionReq) {
  45. const res = await this.partitionManager.createPartition(data);
  46. throwErrorFromSDK(res);
  47. return res;
  48. }
  49. async deleteParition(data: DropPartitionReq) {
  50. const res = await this.partitionManager.dropPartition(data);
  51. throwErrorFromSDK(res);
  52. return res;
  53. }
  54. async getPartitionStatistics(data: GetPartitionStatisticsReq) {
  55. const res = await this.partitionManager.getPartitionStatistics(data);
  56. throwErrorFromSDK(res.status);
  57. return res;
  58. }
  59. async loadPartitions(data: LoadPartitionsReq) {
  60. const res = await this.partitionManager.loadPartitions(data);
  61. throwErrorFromSDK(res);
  62. return res;
  63. }
  64. async releasePartitions(data: ReleasePartitionsReq) {
  65. const res = await this.partitionManager.releasePartitions(data);
  66. throwErrorFromSDK(res);
  67. return res;
  68. }
  69. }