partitions.service.ts 2.2 KB

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