掌桥专利:专业的专利平台
掌桥专利
首页

一种基于可视化api接口实现数据同环比的方法及系统

文献发布时间:2024-04-18 19:58:30


一种基于可视化api接口实现数据同环比的方法及系统

技术领域

本发明涉及同环比数据处理技术领域,具体地,涉及一种基于可视化api接口实现数据同环比的方法及系统。

背景技术

在数据分析及其可视化产品中,最常使用的分析思路就是对比分析,有对比才有实际可量化标准。对于量化对比,最常使用的同环比分析。现有针对数据进行同环比,常通过数据集去获取数据来实现同环比,具体方案是首先需要建立一个数据连接,然后通过数据连接对应的数据集,再通过数据集拿到的数据进行可视化处理后来实现同环比。由于是直接与数据源之间建立数据连接,因此当数据源暴露出去之后,可能会存在数据篡改的风险,同时当采集周期较长且需要采集的数据量较大时,数据管理较为混乱,导致最后同环比数据处理时结果可能产生误差,最终影响同环比数据的准确性和安全性。

发明内容

为提高同环比数据处理时数据的准确性和安全性,本发明提供了一种基于可视化api接口实现数据同环比的方法,所述方法包括:

步骤1:获得需要进行同环比的数据请求,基于所述数据请求,通过预设的api接口获取第一结果数据;

步骤2:创建二叉树,将所述第一结果数据存储在所述二叉树的父节点,在所述二叉树的第一子节点建立环比数据栈,在所述二叉树的第二子节点建立同比数据栈;

步骤3:基于所述数据请求,通过所述api接口按照第一预设频率获得若干第二结果数据;

步骤4:基于所述第一预设频率,将所有第二结果数据存储至所述环比数据栈或所述同比数据栈;

步骤5:遍历所述父节点和所述第一子节点,获得环比结果数据,基于第二结果数据获得与所述环比结果数据对应的环比数据,将所述环比结果数据和所述环比数据放入预设可视化组件进行渲染,实现所述第一结果数据环比可视化;遍历所述父节点和所述第二子节点,获得同比结果数据,基于第二结果数据获得与所述同比结果数据对应的同比数据,将所述同比结果数据和所述同比数据放入所述预设可视化组件进行渲染,实现所述第一结果数据同比可视化。

本发明通过api接口来获取第一结果数据和若干第二结果数据,减少了由于数据源暴露导致存在的数据篡改的问题。同时建立二叉树,并在二叉树两个子节点分别建立环比和同比数据栈,将获取的第一结果数据存储至二叉树的父节点,将获取的若干第二结果数据基于第一预设频率存储至环比或同比数据栈。通过遍历二叉树的父节点和第一子节点,得到第一结果数据和对应的环比数据并放入可视化组件进行渲染,实现第一结果数据环比可视化,同理,遍历二叉树的父节点和第二子节点,实现第二结果数据同比可视化。本发明通过api接口来获取数据,无需直接访问数据源码便能调用和获取数据,减小了由于数据暴露可能带来的数据篡改的风险,保障了数据的安全性,并设置二叉树和同环比数据栈来进行数据同环比可视化处理,将第一结果数据存储至二叉树的父节点,将若干第二结果数据存储至同环比数据栈,保证了同环比数据之间顺序的准确性及数据的获取效率,解决了数据管理混乱的问题。

进一步地,将所有第二结果数据存储至所述环比数据栈或所述同比数据栈包括:获得所有第二结果数据的获取时间,按照所述获取时间从先到后依次将所有第二结果数据存储至所述环比数据栈或所述同比数据栈。

其中,以往由于同比环比数据采集周期长和采集种类多,导致同环比数据管理混乱,因此通过获取同环比数据的获取时间,基于获取时间,依次将所有第二结果数据存放至环比或同比数据栈中,保障同环比数据在存储时,数据之间顺序不会发生混乱。

进一步地,将所有第二结果数据存储至所述环比数据栈或所述同比数据栈还包括:所有第二结果数据进入所述环比栈或所述同比数据栈的方向为从栈底到栈顶。

其中,限定所有第二结果数据入栈方向为从栈底到栈顶,这样被api接口最先获取的第二结果数据能出现在数据栈的最上方,当需要获取数据时,直接从数据栈栈顶获取数据,保障了从同比或环比数据栈获取数据时,获取数据的顺序和api接口获取数据时一致,从而减小了同环比数据之间顺序出现差错的风险。

进一步地,获得对应的环比数据的方式为:基于所述第一子节点,获得所述环比数据栈,从所述环比数据栈依次获取对应环比数据的方向为从栈顶到栈底。

其中,由于环比数据入栈方向为从栈底到栈顶,当获取环比数据时选择从栈顶依次获取数据,能保障环比数据之间的获取顺序不会发生混乱。

进一步地,获得对应的同比数据的方式为:基于所述第二子节点,获得所述同比数据栈,从所述同比数据栈依次获取对应同比数据的方向为从栈顶到栈底。

其中,由于同比数据入栈方向为从栈底到栈顶,当获取同比数据时选择从栈顶依次获取数据,能保障同比数据之间的获取顺序不会发生混乱。

进一步地,为了通过电量数据识别用户的窃电行为,所述步骤1具体为:获得需要进行同环比的数据请求,基于所述数据请求,获取若干用户预设时间段内的天气历史数据和电量历史数据,基于所述天气历史数据和所述电量历史数据,建立并训练得到每个用户对应天气数据对电量数据的影响模型;通过预设的api接口获取所有用户预设月份的第一电量数据;

所述步骤2具体为:创建若干二叉树,将所有第一电量数据分别存储至不同二叉树的父节点,在所述二叉树的第一子节点建立环比数据栈,在所述二叉树的第二子节点建立同比数据栈;

所述步骤3具体为:基于所述数据请求,通过所述api接口按照第一预设频率获得若干第二电量数据;

所述步骤4具体为:基于所述第一预设频率,将所有第二电量数据存储至所述环比数据栈或所述同比数据栈;获取所述第一电量数据和所述第二电量数据对应时间段内每个月份的第一天气数据;

所述步骤5具体为:遍历所述父节点和所述第一子节点,获得所述第一电量数据对应的环比结果电量数据,基于第二电量数据获得与环比结果电量数据对应的环比电量数据;遍历所述父节点和所述第二子节点,获得所述第一电量数据对应的同比结果电量数据,基于第二电量数据获得与同比结果电量数据对应的同比电量数据;基于所述环比电量数据、所述同比电量数据、所述第一天气数据和所述影响模型,判断对应用户是否存在窃电行为,若是,则进行窃电预警。

其中,目前存在部分用户通过改变电能表电流计量回路的正常接线等其他方式进行偷电窃电等行为,现有如果需要排查这类偷电行为,需要从电力系统中获取用户预设时间段大量的电量数据,并通过分析电量数据的变化来判断用电是否异常,一是数据量众多,需要区分梳理,二是未考虑天气等外界因素对用电量影响。而本方案首先通过分析天气和用电量的历史数据,得到相应的影响模型,比如夏天和冬天是用电高峰,这部分月份的用电量就需要特殊处理,然后通过上述方法,每户用电量及其同比环比数据都通过api接口存储在对应的二叉树中,当需要调用及排查时,直接遍历对应二叉树,获取对应的电量数据及同比环比数据,并基于影响模型具体分析,排查效率和准确性更高。

进一步地,所述步骤1和所述步骤3均还包括:监测并获得所述api接口的获取速率,当所述获取速率超过预设阈值,对所述api接口进行限流。

其中,对api接口进行限流的目的在于,在增加可靠性和可用性的同时来保护基础架构。

进一步地,采用漏桶算法或令牌桶算法对所述api接口进行限流。

其中,采用漏桶算法或令牌桶算法能更好的对api接口进行限流。

进一步地,所述步骤1和所述步骤3均还包括:基于所述api接口的获取速率,统计预设时间段内api接口获取数据的数据量,基于所述数据量和服务器CPU,对所述预设阈值进行调整。

其中,由于服务器的CPU同时还会处理其他线程,如果一直保持获取速率和预设阈值不变,可能会影响服务器性能,同时影响基础框架的可用性和可靠性,因此需要基于统计的数据量和服务器的CPU,对预设阈值进行动态调整,能在保证api接口以最佳速率获取数据的同时,不降低基础框架的可用性和可靠性。

为提高同环比数据处理时数据的准确性和安全性,本发明还提供了一种基于可视化api接口实现数据同环比的系统,所述系统包括:

第一获取单元,用于获得需要进行同环比的数据请求,基于所述请求,通过预设的api接口获取第一结果数据;

二叉树单元,用于创建二叉树,将所述第一结果数据存储在所述二叉树的父节点,在所述二叉树的第一子节点建立环比数据栈,在所述二叉树的第二子节点建立同比数据栈;

第二获取单元,用于基于所述数据请求,通过所述api接口按照第一预设频率获得若干第二结果数据;

存储单元,用于基于所述第一预设频率,将所有第二结果数据存储至所述环比数据栈或所述同比数据栈;

可视化单元,用于遍历所述父节点和所述第一子节点,获得环比结果数据,基于第二结果数据获得与所述环比结果数据对应的环比数据,将所述环比结果数据和所述环比数据放入预设可视化组件进行渲染,实现所述第一结果数据环比可视化;遍历所述父节点和所述第二子节点,获得同比结果数据,基于第二结果数据获得与所述同比结果数据对应的同比数据,将所述同比结果数据和所述同比数据放入所述预设可视化组件进行渲染,实现所述第一结果数据同比可视化。

本发明提供的一个或多个技术方案,至少具有如下技术效果或优点:

本发明通过api接口来获取数据并进行同环比可视化处理,减小了由于数据暴露可能带来的数据篡改的问题,保障了数据的安全性。

本发明通过设置二叉树,并在二叉树的两个子节点上设置对应的环比数据栈和同比数据栈,并将获取到的数据按照获取顺序放入数据栈中,并限定了数据入栈出栈方向,解决了对采集周期长采集数据量大对应同环比数据存在的数据混乱的问题,保证了同环比数据之间顺序的准确性及数据的获取效率。

附图说明

此处所说明的附图用来提供对本发明实施例的进一步理解,构成本发明的一部分,并不构成对本发明实施例的限定;

图1是本发明中一种基于可视化api接口实现数据同环比的方法流程示意图;

图2是本发明中一种基于可视化api接口实现数据同环比的系统组成示意图;

图3-图5为利用指标卡进行数据可视化比较示意图。

具体实施方式

为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和具体实施方式对本发明进行进一步的详细描述。需要说明的是,在相互不冲突的情况下,本发明的实施例及实施例中的特征可以相互组合。

在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是,本发明还可以采用其他不同于在此描述范围内的其他方式来实施,因此,本发明的保护范围并不受下面公开的具体实施例的限制。

实施例一

请参考图1,图1为本发明中一种基于可视化api接口实现数据同环比的方法流程示意图,所述方法包括:

步骤1:获得需要进行同环比的数据请求,基于所述数据请求,通过预设的api接口获取第一结果数据;

步骤2:创建二叉树,将所述第一结果数据存储在所述二叉树的父节点,在所述二叉树的第一子节点建立环比数据栈,在所述二叉树的第二子节点建立同比数据栈;

步骤3:基于所述数据请求,通过所述api接口按照第一预设频率获得若干第二结果数据;

步骤4:基于所述第一预设频率,将所有第二结果数据存储至所述环比数据栈或所述同比数据栈;

步骤5:遍历所述父节点和所述第一子节点,获得环比结果数据,基于第二结果数据获得与所述环比结果数据对应的环比数据,将所述环比结果数据和所述环比数据放入预设可视化组件进行渲染,实现所述第一结果数据环比可视化;遍历所述父节点和所述第二子节点,获得同比结果数据,基于第二结果数据获得与所述同比结果数据对应的同比数据,将所述同比结果数据和所述同比数据放入所述预设可视化组件进行渲染,实现所述第一结果数据同比可视化。

其中,当从api接口获取数据时,由于api接口返回的是json字段,因此需要对返回的json字段进行分析处理后才能得到相应的数据。

在本发明实施例中,如需要实现数据A、B和C同比环比可视化,首先需要获取数据A、B和C的数据请求,基于数据请求,通过预设的api接口获取到对应的数据A、B和C。创建3个二叉树,将数据A、B和C分别存储至3个二叉树的父节点中,再通过api接口按照以一个月获取一次的获取频率获取得到数据A1、A2、A3、B1、B2、B3、C1、C2和C3,通过api接口按照以一年获取一次的获取频率获取数据A4、A5、B4、B5、C4和C5,将数据A1、A2和A3存储至数据A对应二叉树的环比数据栈中,将数据A4和A5存储至数据A对应二叉树的同比数据栈中,同理将数据B和C对应的环比或者同比数据存储至对应的数据栈中。当需要对数据A进行数据环比可视化时,遍历数据A对应二叉树的父节点和第一子节点,获取到数据A及环比数据A1、A2和A3,并将获取到的数据放入可视化组件进行渲染,最终完成数据A环比可视化;当需要对数据A进行数据同比可视化时,遍历数据A对应二叉树的父节点和第二子节点,获取到数据A及同比数据A4和A5,并将获取到的数据放入可视化组件进行渲染,最终完成数据A同比可视化。本实施例通过api接口来获取数据并进行可视化处理,减小了由于数据暴露可能带来的数据篡改的问题,保护了数据的安全性;同时通过设置二叉树,并在二叉树的两个子节点中设置环比同比数据栈,对于采集周期长采集数据量较多的数据同环比,解决了数据管理混乱的问题。数据B和C的处理和数据A相似,本实施例不再具体阐述。本实施例所涉及到的数据,只是起解释说明作用,对于实际数据同环比可视化可根据需求进行调整,本发明不做具体限定。

其中,通过api接口来获取数据,可以让用户在无需访问源码或者理解内部工作机制细节的情况下,调用或者获取数据,减小因为数据暴露可能带来的数据篡改的问题。

其中,将所有第二结果数据存储至所述环比数据栈或所述同比数据栈包括:获得所有第二结果数据的获取时间,按照所述获取时间从先到后依次将所有第二结果数据存储至所述环比数据栈或所述同比数据栈。

基于api接口获取第二结果数据的获取时间,按照获取时间先后依次将第二结果数据存储至环比或者同比数据栈,保证数据在存储时数据之间顺序不会发生混乱。

其中,将所有第二结果数据存储至所述环比数据栈或所述同比数据栈还包括:所有第二结果数据进入所述环比栈或所述同比数据栈的方向为从栈底到栈顶。

限定获取的结果数据入栈方向为从栈底到栈顶,保证先获取的数据能出现在数据栈的上面,这样在通过数据栈获取数据时,一是数据之间不会发生变化,二是能按照api接口获取数据的顺序去获取数据进行同环比,保证在获取数据进行同环比计算时不会发生混乱。

其中,获得对应的环比数据的方式为:基于所述第一子节点,获得所述环比数据栈,从所述环比数据栈依次获取对应环比数据的方向为从栈顶到栈底。

当需要获取对应的环比数据时,从环比数据栈栈顶依次获取数据,由于数据入栈方向为从栈底到栈顶,因此通过数据栈获取到环比数据的数据顺序和api接口获取到环比数据的顺序一致,数据顺序之间不会发生混乱。

其中,获得对应的同比数据的方式为:基于所述第二子节点,获得所述同比数据栈,从所述同比数据栈依次获取对应同比数据的方向为从栈顶到栈底。

当需要获取对应的同比数据时,从同比数据栈栈顶依次获取数据,由于数据入栈方向为从栈底到栈顶,因此通过数据栈获取到同比数据的数据顺序和api接口获取到同比数据的顺序一致,数据顺序不会发生混乱。

其中,为了通过电量数据识别用户的窃电行为,所述步骤1具体为:获得需要进行同环比的数据请求,基于所述数据请求,获取若干用户预设时间段内的天气历史数据和电量历史数据,基于所述天气历史数据和所述电量历史数据,建立并训练得到每个用户对应天气数据对电量数据的影响模型;通过预设的api接口获取所有用户预设月份的第一电量数据;

所述步骤2具体为:创建若干二叉树,将所有第一电量数据分别存储至不同二叉树的父节点,在所述二叉树的第一子节点建立环比数据栈,在所述二叉树的第二子节点建立同比数据栈;

所述步骤3具体为:基于所述数据请求,通过所述api接口按照第一预设频率获得若干第二电量数据;

所述步骤4具体为:基于所述第一预设频率,将所有第二电量数据存储至所述环比数据栈或所述同比数据栈;获取所述第一电量数据和所述第二电量数据对应时间段内每个月份的第一天气数据;

所述步骤5具体为:遍历所述父节点和所述第一子节点,获得所述第一电量数据对应的环比结果电量数据,基于第二电量数据获得与环比结果电量数据对应的环比电量数据;遍历所述父节点和所述第二子节点,获得所述第一电量数据对应的同比结果电量数据,基于第二电量数据获得与同比结果电量数据对应的同比电量数据;基于所述环比电量数据、所述同比电量数据、所述第一天气数据和所述影响模型,判断对应用户是否存在窃电行为,若是,则进行窃电预警。

其中,可以与天气数据库(如气象库历史数据)或通过爬虫软件从天气查询网站查询预设时间段内天气数据获得若干用户预设时间段内的天气历史数据,其中每个用电用户都有身份信息,如其用电地址,首先获得用电地址后通过该地址查询获得当地的历史天气数据,从历史天气数据中筛选获得预设时间段内天气数据,用户的电量历史数据则通过用户的用电ID或身份信息或编码从用电客户端或用电管理部门的数据库中获取。

比如需要针对10户用户进行窃电排查,如果按照以往排查方式,需要统计这10个用户在过去一年的每个月的用电量,然后针对每户每月的用电量数据来进行分析对比,通过用户用电异常月份超过预设数量来判断用户可能存在窃电行为,这类方式问题在于数据量众多,数据存储和数据提取都较为繁琐,且未考虑天气原因导致准确性较低。而采用本方案,步骤具体如下,首先获取这10个用户过去一年内的用电量数据以及天气数据,基于用电量数据和天气数据获得影响模型,影响模型对用电量的处理方式,可以采用例如对于平均温度低于0°的月份的用电量乘以0.5的系数,对于平均温度高于35°的月份的用电量乘以0.7的系数,由于冬天和夏天用电量都较多,乘以预设的系数后能更容易发现是否存在窃电行为,比如窃电用户平时月份用电量为10°,而对于冬天夏天月份可能用电量为50°,如果不进行特殊处理,很难发现用电异常。对于实际影响模型对用电量处理可根据需求进行选择,本发明不做具体限定。然后通过api接口获取这10个用户1月份的用电量,建立10个二叉树,将获取到的10个用户1月份的用电量放入到这10个二叉树的树节点中,再通过api接口依次获取这10个用户2~9月份的用电量,并将10个用户对应2~9月份的用电量依次获取顺序从环比数据栈栈底放入数据栈,并同时获取这2~9月份的平均温度数据。当需要排查这10个用户是否存在窃电行为时,只需要找到每个用户对应的二叉树,遍历二叉树得到1月份的用电量数据和对应的2~9月用电量数据,再通过影响模型结合平均温度数据,对2~9月用电量数据进行处理,基于处理后的用电量数据来排查用户是否存在窃电行为,排查的效率和准确性相较于现有技术都提高了很多。

其中,所述步骤1和所述步骤3均还包括:监测并获得所述api接口的获取速率,当所述获取速率超过预设阈值,对所述api接口进行限流。

速率限制是限制api可以处理的请求数的过程,例如api每秒从单个用户接收100个请求,经过速率限制后为每秒从单个用户接收50个请求。之所以要对api接口进行速率限制,是因为忽略速率限制,可能会带来执行操作和DDos攻击、级联故障和资源匮乏等问题。因此当监测到api接口获取速率超过预设阈值时,需要对api接口进行限流。

其中,采用漏桶算法或令牌桶算法对所述api接口进行限流。

漏桶算法原理为,请求先进入到漏桶里,漏桶以固定的速度出水,也就是处理请求,当水加的过快,则会直接溢出,也就是拒绝请求,可以看出漏桶算法能强行限制数据的传输速率,该算法能很好的解决时间边界处理不够平滑的问题,因为在每次请求进桶前都将执行“漏水”的操作,再无边界问题。令牌桶算法原理为,系统会以一个恒定的速度往桶里放入令牌,而如果请求需要被处理,则需要先从桶里获取一个令牌,当桶里没有令牌可取时,则拒绝服务。令牌桶算法是网络流量整形和速率限制中最常使用的一种算法,大小固定的令牌桶可自行以恒定的速率源源不断地产生令牌,如果令牌不被消耗,或者被消耗的速度小于产生的速度,令牌就会不断地增多,直到把桶填满,后面再产生的令牌就会从桶中溢出,最后桶中可以保存的最大令牌数永远不会超过桶的大小。对于api接口限流来讲,可选择漏桶算法或者令牌桶算法,本发明不做具体限定。

其中,所述步骤1和所述步骤3均还包括:基于所述api接口的获取速率,统计预设时间段内api接口获取数据的数据量,基于所述数据量和服务器CPU,对所述预设阈值进行调整。

由于服务器的CPU同时还会处理其他线程,如果一直保持获取速率和预设阈值不变,可能会影响服务器性能,同时影响基础框架的可用性,因此需要基于统计的数据量和服务器的CPU,对预设阈值进行动态调整,能在保证api接口以最佳速率获取数据的同时,不降低基础框架的可用性和可靠性。

其中,可视化组件可以为指标卡、或折线图或柱状图等,本发明实施例以可视化组件为指标卡进行举例介绍,指标卡作为数据最常见的组件,一般提供核心指标,指标卡通常需要有一个对比的维度,比如时间对比,包含同环比,还比如占大盘对比,或指标本身拆分子指标的对比。指标卡的应用可参考图3-图5,,图3中category id为类别编号,id为编号,price为价格,stock为股票,create time为创建时间,图3-图4为指标卡中相应选择和输入界面,图5为指标卡的显示输出界面,图5中举例了环比情况,同比情况同理处理即可。

实施例二

请参考图2,图2为本发明中一种基于可视化api接口实现数据同环比的系统组成示意图,所述系统包括:

第一获取单元,用于获得需要进行同环比的数据请求,基于所述请求,通过预设的api接口获取第一结果数据;

二叉树单元,用于创建二叉树,将所述第一结果数据存储在所述二叉树的父节点,在所述二叉树的第一子节点建立环比数据栈,在所述二叉树的第二子节点建立同比数据栈;

第二获取单元,用于基于所述数据请求,通过所述api接口按照第一预设频率获得若干第二结果数据;

存储单元,用于基于所述第一预设频率,将所有第二结果数据存储至所述环比数据栈或所述同比数据栈;

可视化单元,用于遍历所述父节点和所述第一子节点,获得环比结果数据,基于第二结果数据获得与所述环比结果数据对应的环比数据,将所述环比结果数据和所述环比数据放入预设可视化组件进行渲染,实现所述第一结果数据环比可视化;遍历所述父节点和所述第二子节点,获得同比结果数据,基于第二结果数据获得与所述同比结果数据对应的同比数据,将所述同比结果数据和所述同比数据放入所述预设可视化组件进行渲染,实现所述第一结果数据同比可视化。

尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。

显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

技术分类

06120116501037