tsdbtest_hf.cpp 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. #include <iostream>
  2. #include <map>
  3. #include <string>
  4. #include <vector>
  5. #include "tsdb_hf.h"
  6. // 演示如何与 map 结合使用
  7. void test_map() {
  8. tsdb_hf_cpp::tsdb_entry db;
  9. std::map<std::string, tsdb_hf_cpp::tsdb_entry_stream> streams;
  10. // 注意:此语法不可用!
  11. // streams["test_pts_1"] = db.new_stream("test_pts_1", 1000000000, 1000);
  12. // auto stm2 = db.new_stream("test_pts_2", 1000000000, 1000);
  13. // streams["test_pts_2"] = std::move(stm2);
  14. streams.emplace("test_pts_1", db.new_stream("test_pts_1", 1000000000, 1000));
  15. auto stm2 = db.new_stream("test_pts_2", 1000000000, 1000);
  16. streams.insert({"test_pts_2", std::move(stm2)});
  17. streams.at("test_pts_1").insert_point(1.1);
  18. }
  19. int main() {
  20. // 初始化高频时序数据入口类
  21. tsdb_hf_cpp::tsdb_entry db;
  22. // 设置高频采集数据本地暂存路径
  23. db.set_data_dir("/var/lib/tsdb_data/");
  24. // 1'000'000 个采集数据形成一个本地暂存压缩文件,实际应用需要调整
  25. db.set_part_size(1'000'000);
  26. // 设置采集数据的metric_name
  27. db.set_metric_name("test_metric1");
  28. // 新建传感器名为test_pts_1的stream对象,从UTC时间1000000000毫秒开始,两点间的时间间隔为1000纳秒
  29. auto stream = db.new_stream("test_pts_1", 1000000000, 1000);
  30. // 采集的传感器数据
  31. std::vector<double> pts{1.1, 2.2, 3.3, 4.4, 8.8, 7.7, 6.6, 5.5};
  32. for (int i = 0; i < 10000; i++) {
  33. pts.push_back(4.2);
  34. }
  35. // 插入采集数据
  36. stream.insert_points(pts.data(), size(pts));
  37. // 关闭stream
  38. stream.close();
  39. std::cout << "All success!" << std::endl;
  40. }