用postgres SQL生成机柜微环境温湿度24小时内的历史值

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/yuxisanno139/article/details/81507561
  1. 每个机柜前下、前中、前下、后下、后中、后下共6个温湿度。
  2. 以当前时间为起点每个半个小时取一个点,共48个点。
    数据表字段 fqn |data| recod_time
  3. fqn 为设备id;
  4. data 存储json格式的温湿度值:{“HUMIDITY”:”56.09”,”TEMPERATURE”:”19.72”}
  5. recod_time为以毫秒为单位的时间戳
  6. SQL 脚本:
DO
    $$ DECLARE
        t_idx INTEGER := 0;
        v_idx INTEGER := 0;
        txt TEXT :='';
        h1 FLOAT := 0 ;
        t1 FLOAT := 0 ;
    time_now BIGINT :=1533700800000;--2018-08-08 12:00:00
    BEGIN
        while t_idx < 48 
    loop 
                v_idx = 1632;
                while v_idx < 1776 
                loop 
                    h1 = random()*5+55;
                    t1 = random()*2+18;
                    txt = '{"HUMIDITY":"'||cast(h1 as decimal(10,2))||'","TEMPERATURE":"'||cast(t1 as decimal(10,2))||'"}';
                    INSERT INTO dcim_monitor_data_t(fqn,data,record_time) VALUES(v_idx,to_json(txt::JSON),time_now);
                    h1 = random()*5+55;
                    t1 = random()*4+20;
                    txt = '{"HUMIDITY":"'||cast(h1 as decimal(10,2))||'","TEMPERATURE":"'||cast(t1 as decimal(10,2))||'"}';
                    INSERT INTO dcim_monitor_data_t(fqn,data,record_time) VALUES(v_idx+1,to_json(txt::JSON),time_now);
                    h1 = random()*5+55;
                    t1 = random()*6+20;
                    txt = '{"HUMIDITY":"'||cast(h1 as decimal(10,2))||'","TEMPERATURE":"'||cast(t1 as decimal(10,2))||'"}';
                    INSERT INTO dcim_monitor_data_t(fqn,data,record_time) VALUES(v_idx+2,to_json(txt::JSON),time_now);
                    h1 = random()*5+55;
                    t1 = random()*4+20;
                    txt = '{"HUMIDITY":"'||cast(h1 as decimal(10,2))||'","TEMPERATURE":"'||cast(t1 as decimal(10,2))||'"}';
                    INSERT INTO dcim_monitor_data_t(fqn,data,record_time) VALUES(v_idx+3,to_json(txt::JSON),time_now);
                    h1 = random()*5+55;
                    t1 = random()*2+24;
                    txt = '{"HUMIDITY":"'||cast(h1 as decimal(10,2))||'","TEMPERATURE":"'||cast(t1 as decimal(10,2))||'"}';
                    INSERT INTO dcim_monitor_data_t(fqn,data,record_time) VALUES(v_idx+4,to_json(txt::JSON),time_now);
                    h1 = random()*5+55;
                    t1 = random()*4+26;
                    txt = '{"HUMIDITY":"'||cast(h1 as decimal(10,2))||'","TEMPERATURE":"'||cast(t1 as decimal(10,2))||'"}';
                    INSERT INTO dcim_monitor_data_t(fqn,data,record_time) VALUES(v_idx+5,to_json(txt::JSON),time_now);

                    v_idx = v_idx + 6 ;
                END loop ;

                v_idx = 1782;
                while v_idx < 2334 
                loop 
                    h1 = random()*5+55;
                    t1 = random()*2+18;
                    txt = '{"HUMIDITY":"'||cast(h1 as decimal(10,2))||'","TEMPERATURE":"'||cast(t1 as decimal(10,2))||'"}';
                    INSERT INTO dcim_monitor_data_t(fqn,data,record_time) VALUES(v_idx,to_json(txt::JSON),time_now);
                    h1 = random()*5+55;
                    t1 = random()*4+20;
                    txt = '{"HUMIDITY":"'||cast(h1 as decimal(10,2))||'","TEMPERATURE":"'||cast(t1 as decimal(10,2))||'"}';
                    INSERT INTO dcim_monitor_data_t(fqn,data,record_time) VALUES(v_idx+1,to_json(txt::JSON),time_now);
                    h1 = random()*5+55;
                    t1 = random()*6+20;
                    txt = '{"HUMIDITY":"'||cast(h1 as decimal(10,2))||'","TEMPERATURE":"'||cast(t1 as decimal(10,2))||'"}';
                    INSERT INTO dcim_monitor_data_t(fqn,data,record_time) VALUES(v_idx+2,to_json(txt::JSON),time_now);
                    h1 = random()*5+55;
                    t1 = random()*4+20;
                    txt = '{"HUMIDITY":"'||cast(h1 as decimal(10,2))||'","TEMPERATURE":"'||cast(t1 as decimal(10,2))||'"}';
                    INSERT INTO dcim_monitor_data_t(fqn,data,record_time) VALUES(v_idx+3,to_json(txt::JSON),time_now);
                    h1 = random()*5+55;
                    t1 = random()*2+24;
                    txt = '{"HUMIDITY":"'||cast(h1 as decimal(10,2))||'","TEMPERATURE":"'||cast(t1 as decimal(10,2))||'"}';
                    INSERT INTO dcim_monitor_data_t(fqn,data,record_time) VALUES(v_idx+4,to_json(txt::JSON),time_now);
                    h1 = random()*5+55;
                    t1 = random()*4+26;
                    txt = '{"HUMIDITY":"'||cast(h1 as decimal(10,2))||'","TEMPERATURE":"'||cast(t1 as decimal(10,2))||'"}';
                    INSERT INTO dcim_monitor_data_t(fqn,data,record_time) VALUES(v_idx+5,to_json(txt::JSON),time_now);

                    v_idx = v_idx + 6 ;
                END loop ;

                v_idx = 2342;
                while v_idx < 2426 
                loop 
                    h1 = random()*5+55;
                    t1 = random()*2+18;
                    txt = '{"HUMIDITY":"'||cast(h1 as decimal(10,2))||'","TEMPERATURE":"'||cast(t1 as decimal(10,2))||'"}';
                    INSERT INTO dcim_monitor_data_t(fqn,data,record_time) VALUES(v_idx,to_json(txt::JSON),time_now);
                    h1 = random()*5+55;
                    t1 = random()*4+20;
                    txt = '{"HUMIDITY":"'||cast(h1 as decimal(10,2))||'","TEMPERATURE":"'||cast(t1 as decimal(10,2))||'"}';
                    INSERT INTO dcim_monitor_data_t(fqn,data,record_time) VALUES(v_idx+1,to_json(txt::JSON),time_now);
                    h1 = random()*5+55;
                    t1 = random()*6+20;
                    txt = '{"HUMIDITY":"'||cast(h1 as decimal(10,2))||'","TEMPERATURE":"'||cast(t1 as decimal(10,2))||'"}';
                    INSERT INTO dcim_monitor_data_t(fqn,data,record_time) VALUES(v_idx+2,to_json(txt::JSON),time_now);
                    h1 = random()*5+55;
                    t1 = random()*4+20;
                    txt = '{"HUMIDITY":"'||cast(h1 as decimal(10,2))||'","TEMPERATURE":"'||cast(t1 as decimal(10,2))||'"}';
                    INSERT INTO dcim_monitor_data_t(fqn,data,record_time) VALUES(v_idx+3,to_json(txt::JSON),time_now);
                    h1 = random()*5+55;
                    t1 = random()*2+24;
                    txt = '{"HUMIDITY":"'||cast(h1 as decimal(10,2))||'","TEMPERATURE":"'||cast(t1 as decimal(10,2))||'"}';
                    INSERT INTO dcim_monitor_data_t(fqn,data,record_time) VALUES(v_idx+4,to_json(txt::JSON),time_now);
                    h1 = random()*5+55;
                    t1 = random()*4+26;
                    txt = '{"HUMIDITY":"'||cast(h1 as decimal(10,2))||'","TEMPERATURE":"'||cast(t1 as decimal(10,2))||'"}';
                    INSERT INTO dcim_monitor_data_t(fqn,data,record_time) VALUES(v_idx+5,to_json(txt::JSON),time_now);

                    v_idx = v_idx + 6 ;
                END loop ;

                t_idx = t_idx + 1 ;
                time_now = time_now - 1800000;--每半个小时取一个点,共48个点
        END loop ;
    END $$;

猜你喜欢

转载自blog.csdn.net/yuxisanno139/article/details/81507561
今日推荐