partitions.service.ts 2.3 KB

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