首页 > 其他分享 >opentsdb中的数据在某段时间置为0

opentsdb中的数据在某段时间置为0

时间:2023-09-15 16:33:10浏览次数:30  
标签:dataTypeList 段时间 dataTypeDTO start query LocalDateTime opentsdb now 数据

  上代码:

public void zeroPowerData() throws IOException, ExecutionException, InterruptedException {
        // 读取所有的电力数据
        List<DataTypeDTO> dataTypeList = stoneDataTypeDao.getDataTypeList();
        if (CollectionUtils.isEmpty(dataTypeList)) {
            return;
        }
        dataTypeList.removeIf(data -> !Objects.equals(DataCategoryEnums.POWER.getCode(), data.getFacilityCategory()));

        for (DataTypeDTO dataTypeDTO : dataTypeList) {
            log.info("执行dataTypeDTO={}", JSON.toJSONString(dataTypeDTO));
            String startTime = "2023-07-12 00:00:00";
            LocalDateTime start = LocalDateTime.parse(startTime, DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
            LocalDateTime now = LocalDateTime.now();
            while (start.isBefore(now)) {
                // 查询所有的metric
                Long begin = start.toEpochSecond(ZoneOffset.of("+8"));
                Long end = start.plusDays(1).toEpochSecond(ZoneOffset.of("+8"));
                Query query = Query.begin(begin)
                        .end(end)
                        .sub(SubQuery.metric(dataTypeDTO.getProcessNo() + "_" + dataTypeDTO.getTitleNo())
                                .aggregator(SubQuery.Aggregator.NONE)
                                .tag("customer_id", dataTypeDTO.getCustomerId().toString())
                                .rollupUsage(SubQuery.RollupUsage.ROLLUP_NOFALLBACK.getUsage())
                                .build())
                        .build();
                List<QueryResult> QueryResultList = originalClient.query(query);
                if (!CollectionUtils.isEmpty(QueryResultList)) {
                    QueryResult queryResult = QueryResultList.get(0);
                    LinkedHashMap<Long, Number> dps = queryResult.getDps();

                    // 将其置为0
                    dps.forEach((timeStamp, value) -> {
                        Point point = Point.metric(dataTypeDTO.getProcessNo() + "_" + dataTypeDTO.getTitleNo())
                                .tag("customer_id", String.valueOf(dataTypeDTO.getCustomerId()))
                                .value(timeStamp, 0)
                                .build();
                        try {
                            log.info("将要覆盖的Point===>{}", JSON.toJSONString(point));
                            originalClient.putSync(point);
                        } catch (Exception e) {
                            log.error("原料数据入库异常", e);
                        }
                    });
                }

                start = start.plusDays(1);
            }

        }


    }

 

标签:dataTypeList,段时间,dataTypeDTO,start,query,LocalDateTime,opentsdb,now,数据
From: https://www.cnblogs.com/juncaoit/p/17705339.html

相关文章

  • 通过Navicat找回数据库连接密码
    导出连接打开Navicat,点击文件/导出连接,在弹出的对话框中选中需要的连接,下方选择导出密码。查看信息文件导出后,将导出的.ncx文件,用记事本打开,Password=“密码"。解密信息找到Php在线运行工具;代码在线运行-在线工具复制如下代码,点击执行。<?phpnamespaceFatSmallTools;classNav......
  • DBeaver连接国产数据库OceanBase,以及Python连接,解决ModuleNotFoundError: No module n
    DBeaver连接OceanBase参考:https://www.modb.pro/db/365929用户名的格式为:数据库用户名@租户名#集群名 Python连接OceanBase参考:https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000000033288pip3installJayDeBeApi会自动下载JayDeBeApi和JPype1两个......
  • 银河麒麟操作系统安装人大金仓数据库--九五小庞
    一、环境要求硬件:内存512M以上,磁盘空间10G以上软件:主流Linux操作系统,本机使用kylin-v10安装包准备:官网下载数据库文件镜像以及授权文件https://www.kingbase.com.cn/rjcxxz/index.htm 二、配置内核参数vim/etc/sysctl.conf#加入以下行fs.aio-max-nr=1048576fs.f......
  • Navicat连接Mysql数据显示2059 - authentication plugin ‘caching_sha2_password‘的
    安装Mysql8.0,使用navicat登录时显示如下错误提示 错误原因:MySQL新版本(8以上版本)的用户登录账户加密方式是【caching_sha2_password】,Navicat不支持这种用户登录账户加密方式。解决办法:1.打开MySQL命令行客户端 2.输入登录密码登录,查看加密方式,命令:showvariableslike'd......
  • 初识大数据
         高速交互和快速处理:在线购物平台要求用户与平台进行高速交互,而平台在处理数据时也要保持快速响应。这意味着平台需要具备高度并发性和处理大量数据的能力。    用户安全和状态一致性:在处理数据的过程中,平台需要确保用户的安全和数据的状态一致性。这包括......
  • 导出guide_data.sh数据库脚本内的内容整理
    /home/weihu1/guide_data.sh脚本内容如下:###############################################################################请选择以下项目:1.导物流信息mysql-h172.18.136.74-ubss_reader-pzF4GfdKV9FfsQ7Jv-P3306-Ne"usebss;selecto.system_numassystemNum,o.sta......
  • Dynamic CRM 字段数据类型及其后端赋值方式
    dynamiccrm字段数据类型及其赋值方式首先实例化一个对象:Entity_entity=newEntity("salesorder");1.十进制数取值:var_typeDecimal=_entity.GetAttributeValue<decimal>("unitprice");赋值:_entity["unitpri......
  • HarmonyOS应用侧与前端页面数据通道建立
     一、 应用侧调用前端页面函数应用侧可以通过runJavaScript()方法调用前端页面的JavaScript相关函数。在下面的示例中,点击应用侧的“runJavaScript”按钮时,来触发前端页面的htmlTest()方法。● 前端页面代码。 <!--index.html--><!DOCTYPEhtml><html><body><sc......
  • Azure Data Factory(八)数据集验证之服务主体(Service Principal)
    一,引言如下图所示,今天我们接着上一篇内容,继续讲解AzureDataFactory中的数据集连接服务的认证方式:ServicePrincipal关于ServicePrincipal的创建可以参考:AzureAD(四)知识补充-服务主体至于需要给ServicePrincipal分配什么样的角色和权限,大家可以自行参考实际项目......
  • vue2原理初探-数据代理和数据劫持
    本篇文章主要想简单聊聊vue如何实现数据修改,页面联动的底层原理。当然,篇幅有限,只是自己一些浅显的认知而已,我会从一下几个方面去聊,希望对你有所帮助。几个基础知识点数据代理数据劫持完整demo 一、几个基础知识点1.普通函数和箭头函数的区别我们知道,每个函数执行都会......