#include #include #include #include #include "tsdb_hf.h" // 演示如何与 map 结合使用 void test_map() { tsdb_hf_cpp::tsdb_entry db; std::map streams; // 注意:此语法不可用! // streams["test_pts_1"] = db.new_stream("test_pts_1", 1000000000, 1000); // auto stm2 = db.new_stream("test_pts_2", 1000000000, 1000); // streams["test_pts_2"] = std::move(stm2); streams.emplace("test_pts_1", db.new_stream("test_pts_1", 1000000000, 1000)); auto stm2 = db.new_stream("test_pts_2", 1000000000, 1000); streams.insert({"test_pts_2", std::move(stm2)}); streams.at("test_pts_1").insert_point(1.1); } int main() { // 初始化高频时序数据入口类 tsdb_hf_cpp::tsdb_entry db; // 设置高频采集数据本地暂存路径 db.set_data_dir("/var/lib/tsdb_data/"); // 1'000'000 个采集数据形成一个本地暂存压缩文件,实际应用需要调整 db.set_part_size(1'000'000); // 设置采集数据的metric_name db.set_metric_name("test_metric1"); // 新建传感器名为test_pts_1的stream对象,从UTC时间1000000000毫秒开始,两点间的时间间隔为1000纳秒 auto stream = db.new_stream("test_pts_1", 1000000000, 1000); // 采集的传感器数据 std::vector pts{1.1, 2.2, 3.3, 4.4, 8.8, 7.7, 6.6, 5.5}; for (int i = 0; i < 10000; i++) { pts.push_back(4.2); } // 插入采集数据 stream.insert_points(pts.data(), size(pts)); // 关闭stream stream.close(); std::cout << "All success!" << std::endl; }