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

一种基于负荷通道动态列的数据管理方法和相关装置

文献发布时间:2023-06-19 11:35:49


一种基于负荷通道动态列的数据管理方法和相关装置

技术领域

本发明涉及数据库表存储领域,更具体的,涉及一种基于负荷通道动态列的数据管理方法和相关装置。

背景技术

负荷曲线功能是智能电表必备的功能,也是电力局调度电力和规划的依据。由于地区差异和电网结构的不同,且IEC62056标椎体系支持负荷曲线的冻结数据项的灵活配置,导致各个地区的客户对负荷曲线冻结的数据项的需求不尽相同,这就给采集系统存储负荷数据带来了一定的困扰。

传统的采集系统采用以下几种方案设计数据库表存储结构:1、综合市场客户需求,甄选出常用OBIS,创建对应的数据库表结构;2、按客户出厂的OBIS需求,创建对应的数据库表结构;3、自定义通道OBIS,创建对应的数据库表结构。然而上述3中方案也对应了3种缺陷:1、数据库表存储冗余大、浪费存贮空间资源;2、负荷通道新增OBIS,数据库表和采集系统均需改动;3、数据库表存储冗余小,新增OBIS,数据库表、采集系统均需改动。

因此,如何设计一种基于负荷通道动态列的数据管理方法,消除上述缺陷,是本领域技术人员亟待解决的技术问题。

发明内容

鉴于上述问题,本发明的目的是提供一种基于负荷通道动态列的数据管理方法和相关装置,解决数据库表存储体量难以衡量,新增OBIS,数据库表和采集系统均需改动的问题。

本发明第一方面提供了一种基于负荷通道动态列的数据管理方法,包括以下步骤:

创建负荷通道的映射表,包括输入所述映射表的表名;

配置OBIS映射字段,所述映射字段包括字段名称、字段类型和精度信息;

创建采集任务,获取所述表名、所述字段名称、所述字段类型和所述精度信息;

根据所述表名、所述字段名称、所述字段类型和所述精度信息,动态生成SQL脚本;

执行所述SQL脚本,获取数据库库表结构。

本方案中,所述动态生成SQL脚本,具体为:

验证所述映射字段在当前数据库库表结构中是否已存在,若否,则动态生成SQL脚本。

本方案中,所述创建负荷通道的映射表还包括:根据负荷通道类型生成第一编码。

本方案中,所述配置OBIS映射字段还包括:根据配置类型生成第二编码。

本方案中,所述创建采集任务,获取所述表名、所述字段名称、所述字段类型和所述精度信息具体为:

创建采集任务,通过第一编码获取所述表名,通过第二编码获取所述字段名称、所述字段类型和所述精度信息。

本发明第二方面还提供一种基于负荷通道动态列的数据管理装置,包括创建单元,用于创建负荷通道的映射表,包括输入所述映射表的表名;

配置单元,用于配置OBIS映射字段,所述映射字段包括字段名称、字段类型和精度信息;

采集单元,用于创建采集任务,获取所述表名、所述字段名称、所述字段类型和所述精度信息;

生成单元,用于根据所述表名、所述字段名称、所述字段类型和所述精度信息,动态生成SQL脚本。

执行单元,用于执行所述SQL脚本,获取数据库库表结构。

本方案中,所述创建负荷通道的映射表还包括:根据负荷通道类型生成第一编码;

所述配置OBIS映射字段还包括:根据配置类型生成第二编码。

本方案中,所述创建采集任务,获取所述表名、所述字段名称、所述字段类型和所述精度信息具体为:

创建采集任务,通过第一编码获取所述表名,通过第二编码获取所述字段名称、所述字段类型和所述精度信息。

本发明第三方面提供了一种采集系统,包括上述第二方面所述的基于负荷通道动态列的数据管理装置,还包括数据展现装置;

所述数据展现装置包括:

检索单元,用于根据表名从所述基于负荷通道动态列的数据管理装置中检索出映射字段;

显示单元,用于根据所述映射字段从数据库库表结构对应的数据库中检索出负荷数据并显示。

本发明第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质中包括机器的一种基于负荷通道动态列的数据管理方法程序,所述基于负荷通道动态列的数据管理方法程序被处理器执行时,实现如上述任一项所述的一种基于负荷通道动态列的数据管理方法的步骤。

本发明公开的一种基于负荷通道动态列的数据管理方法和相关装置,方法包括:创建负荷通道的映射表;配置OBIS映射字段;创建采集任务,获取所述表名、所述字段名称、所述字段类型和所述精度信息;动态生成SQL脚本;执行所述SQL脚本,获取数据库库表结构。本发明公开的方法,通过采用OBIS设计,为动态创建库表结构提供了基础数据,还通过采集任务设计,为动态创建库表结构提供了实现方法。相比现有技术,本方法按需动态创建数据库表结构,解决了数据库表存储冗余过大或过小的问题,且采集系统平台化,负荷通道新增OBIS时, 数据库表和采集系统均无需改动,当现有通道不足,启用新的负荷通道时,系统平行扩展,降低平台的维护成本。

附图说明

图1示出了本申请一种基于负荷通道动态列的数据管理方法的流程图;

图2示出了本申请一种基于负荷通道动态列的数据管理装置的结构示意图;

图3示出了本申请一种采集系统的系统框图;

图4示出了本申请实施例中创建负荷通道的映射表的示意图;

图5示出了本申请实施例中配置OBIS映射字段的示意图;

图6示出了本申请实施例中数据库表结构动态创建过程的示意图;

图7示出了本申请实施例中数据表动态输出界面的示意图;

图8示出了本申请实施例中数据表表格列的显示与隐藏的示意图;

图9示出了本申请实施例中数据表导出选项的示意图。

具体实施方式

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

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

本申请第一方面公开了一种基于负荷通道动态列的数据管理方法。

图1示出了本申请一种基于负荷通道动态列的数据管理方法的流程图。

如图1所示,本申请公开了一种基于负荷通道动态列的数据管理方法,包括以下步骤:

S102,创建负荷通道的映射表,包括输入所述映射表的表名;

S104,配置OBIS映射字段,所述映射字段包括字段名称、字段类型和精度信息;

S106,创建采集任务,获取所述表名、所述字段名称、所述字段类型和所述精度信息;

S108,根据所述表名、所述字段名称、所述字段类型和所述精度信息,动态生成SQL脚本;

S110,执行所述SQL脚本,获取数据库库表结构。

需要说明的是,负荷通道用于输送特定容量的电能,OBIS(OBjectIdentification System,目标识别系统)码为DLMS/COSEM(国际电工委员会为解决自动抄表系统和计量系统中的数据采集,仪表安装、维护,系统集成等问题提出的新的电能表通信标准)规定的,用于给电能表中的所有数据,包括测量值和抽象参数提供的统一的标识码。负荷通道映射表用于针对特定的负荷通道类型映射特定的数据库,即映射表,映射的方式是通过输入映射表的表名。新增OBIS时,需要配置OBIS映射字段。字段名称、字段类型和精度信息用于后续采集到对应数据。在数据库表结构动态创建过程中,首先创建采集任务,获取表名、字段名称、类型和精度信息,并根据这些信息动态生成SQL脚本,最后执行SQL脚本,即可获取数据库库表结构。重复上述步骤,最后对生成的库表结构保存时,具体可以获取数据库库表结构所有字段名称并以键值[“表名”,“字段列表”]形式保存在采集系统中。

需要说明的是,创建数据库库表结构,目的是通过数据库库表结构获取客户指定的、特定结构的电能数据。电能数据的来源通过负荷通道获取,由于不同的电能数据通过多条负荷通道传输,因此需要创建负荷通道映射表,负荷通道映射表用于针对特定的负荷通道类型映射特定的数据库。可以理解的是,映射表创建好之后只是个空表,因此需要对映射表中需要映射的数据进行配置,以便于提取特定的数据填入表中,映射表需要的数据即客户指定的、特定结构的电能数据。由于OBIS码是具有统一标准的标识码,通过对照OBIS码的用途,可以得到每个数据项的准确含义,因此针对特定的电能数据,可以生成对应的OBIS码,针对特定的OBIS码,也可以对应到特定的电能数据。根据OBIS码的上述特点,在创建好映射表和配置好映射字段之后,即可生成OBIS码,通过OBIS码创建采集任务,生成SQL脚本并执行,得到数据库库表结构。

需要说明的是,请参阅图4,以负荷通道1(Load Profile1)为例,创建的映射表为DATA_C_LOAD;请参阅图5,创建OBIS映射字段,以数据类型为正向有功功率(Name:Instantaneous active import power(+A))为例,映射的字段名称(ColumnName)为KW_IMPORT,字段类型为numeric,精度9位整数3位小数;请参阅图6,OBIS捕获项和配置项分别表示映射表和数据类型,在配置了OBIS映射字段后,即可创建采集任务,即从OBIS码定义取得表名、取得字段名称、类型和精度;根据表名、字段名称、字段类型和精度信息,能够动态生成SQL脚本;执行SQL脚本,获得数据库库表结构。

需要说明的是,在现有技术中,由于数据库库表结构并非通过动态生成的SQL脚本获取,因此一旦生产,在负荷通道新增OBIS时整个结构和采集系统均需要发生改变。本发明所提供的方法中,根据OBIS定义动态生成SQL脚本,从而动态获取数据库库表结构,后续新增负荷通道新增OBIS时,数据库表结构和所处的采集系统结构均无需改变,解决了解决数据库表存储体量难以衡量,新增OBIS,数据库表和采集系统均需改动的问题。

根据本发明实施例,所述动态生成SQL脚本,具体为:

验证所述映射字段在当前数据库库表结构中是否已存在,若否,则动态生成SQL脚本。

可以理解的是,只有在映射字段在当前数据库库表结构中不存在的前提下,才动态生成SQL脚本,以免重复生成并覆盖原有的数据库库表结构。

根据本发明实施例,所述创建负荷通道的映射表还包括:根据负荷通道类型生成第一编码。

需要说明的是,为了方便后续床采集任务时对表名的采集,可以根据负荷通道类型先生成第一编码,第一编码具体可以为OBIS码,也可以用于配置OBIS码,以便于从OBIS码的定义取得表名。

根据本发明实施例,所述配置OBIS映射字段还包括:根据配置类型生成第二编码。

需要说明的是,为了方便后续床采集任务时对字段名称、字段类型和精度信息的采集,可以根据负荷通道类型先生成第二编码,第二编码具体可以为OBIS码,也可以用于配置OBIS码,以便于从OBIS码的定义取得映射字段信息,其中包括字段名称、字段类型和精度信息。

根据本发明实施例,所述创建采集任务,获取所述表名、所述字段名称、所述字段类型和所述精度信息具体为:

创建采集任务,通过第一编码获取所述表名,通过第二编码获取所述字段名称、所述字段类型和所述精度信息。

需要说明的是,创建负荷通道的映射表请参阅图4:以负荷通道1为例,其他负荷通道配置与此类同。如图2中所示,其中:Code:0.0.99.1.0.255.2表示为负荷通道类型;Name:Load Profile1表示名称为负荷通道1;TableName表示映射的数据库表名为DATA_C_LOAD。

需要说明的是,配置OBIS映射字段请参阅图5:以正向有功功率为例,其他OBIS配置与此类同。Code:1.0.1.7.0.255.2表示为功率捕获项;Name表示为正向有功功率;ColumnName表示映射的字段名称为KW_IMPORT,字段类型为numeric,精度9位整数3位小数。

需要说明的是,创建采集任务是为了生成动态列,请参阅图6:数据库表结构动态创建过程,以负荷曲线1为例:

1) 点击“Save”按钮

2) 通过采集任务类型①,从OBIS码定义取得表名(如图4);通过通道OBIS配置项③,从OBIS码定义取得字段名称、类型和精度(如图5);

3) 通过表名、字段名称、类型和精度信息,动态生成SQL脚本。在生成SQL的过程中,验证字段在当前库表结构中是否已存在;

4) 执行SQL脚本 ;

5) 重新获取数据库库表结构所有字段名称并以键值[“表名”,“字段列表”]形式保存在系统中。

本发明第二方面提供了一种基于负荷通道动态列的数据管理装置。

图2示出了本申请一种基于负荷通道动态列的数据管理装置的结构示意图。

如图2所示,本申请公开了一种基于负荷通道动态列的数据管理装置,包括:

创建单元202,用于创建负荷通道的映射表,包括输入所述映射表的表名;

配置单元204,用于配置OBIS映射字段,所述映射字段包括字段名称、字段类型和精度信息;

采集单元206,用于创建采集任务,获取所述表名、所述字段名称、所述字段类型和所述精度信息;

生成单元208,用于根据所述表名、所述字段名称、所述字段类型和所述精度信息,动态生成SQL脚本。

执行单元210,用于执行所述SQL脚本,获取数据库库表结构。

需要说明的是,负荷通道映射表用于针对特定的负荷通道类型映射特定的数据库,即映射表,映射的方式是通过输入映射表的表名。新增OBIS时,通过配置OBIS映射字段实现。在数据库表结构动态创建过程中,首先创建采集任务,获取表名、字段名称、类型和精度信息,并根据这些信息动态生成SQL脚本,最后执行SQL脚本,即可获取数据库库表结构。重复上述步骤,最后对生成的库表结构保存时,具体可以获取数据库库表结构所有字段名称并以键值[“表名”,“字段列表”]形式保存在采集系统中。

根据本发明实施例,所述动态生成SQL脚本,具体为:

验证所述映射字段在当前数据库库表结构中是否已存在,若否,则动态生成SQL脚本。

可以理解的是,只有在映射字段在当前数据库库表结构中不存在的前提下,才动态生成SQL脚本,以免重复生成并覆盖原有的数据库库表结构。

根据本发明实施例,所述创建负荷通道的映射表还包括:根据负荷通道类型生成第一编码。

需要说明的是,为了方便后续床采集任务时对表名的采集,可以根据负荷通道类型先生成第一编码,第一编码具体可以为OBIS码,从OBIS码的定义取得表名。

根据本发明实施例,所述配置OBIS映射字段还包括:根据配置类型生成第二编码。

需要说明的是,为了方便后续床采集任务时对字段名称、字段类型和精度信息的采集,可以根据负荷通道类型先生成第二编码,第二编码具体可以为OBIS码,从OBIS码的定义取得映射字段信息,其中包括字段名称、字段类型和精度信息。

根据本发明实施例,所述创建采集任务,获取所述表名、所述字段名称、所述字段类型和所述精度信息具体为:

创建采集任务,通过第一编码获取所述表名,通过第二编码获取所述字段名称、所述字段类型和所述精度信息。

需要说明的是,创建负荷通道的映射表请参阅图4:以负荷通道1为例,其他负荷通道配置与此类同。如图2中所示,其中:Code:0.0.99.1.0.255.2表示为负荷通道类型;Name:Load Profile1表示名称为负荷通道1;TableName表示映射的数据库表名为DATA_C_LOAD。

需要说明的是,配置OBIS映射字段请参阅图5:以正向有功功率为例,其他OBIS配置与此类同。Code:1.0.1.7.0.255.2表示为功率捕获项;Name表示为正向有功功率;ColumnName表示映射的字段名称为KW_IMPORT,字段类型为numeric,精度9位整数3位小数。

需要说明的是,创建采集任务是为了生成动态列,请参阅图6:数据库表结构动态创建过程,以负荷曲线1为例:

1) 点击“Save”按钮

2) 通过采集任务类型①,从OBIS码定义取得表名(如图4);通过通道OBIS配置项③,从OBIS码定义取得字段名称、类型和精度(如图5);

3) 通过表名、字段名称、类型和精度信息,动态生成SQL脚本。在生成SQL的过程中,验证字段在当前库表结构中是否已存在;

4) 执行SQL脚本 ;

5) 重新获取数据库库表结构所有字段名称并以键值[“表名”,“字段列表”]形式保存在系统中。

本发明第三方面提供了一种采集系统。

图3示出了本申请一种采集系统的系统框图。

如图3所示,本申请公开了一种采集系统,包括上述第二方面的基于负荷通道动态列的数据管理装置31,还包括数据展现装置32,其中,数据展现装置300包括:

检索单元302,用于根据表名从所述基于负荷通道动态列的数据管理装置中检索出映射字段;

显示单元304,用于根据所述映射字段从数据库库表结构对应的数据库中检索出负荷数据并显示。

需要说明的是,数据库表结构是动态生成,因此数据也需要动态展现,因此采集系统中除了包括上述第二方面的数据管理装置31,还包括数据展现装置32,用于将动态生成的数据库表结构进行可视化展现。数据展现装置包括检索单元302和显示单元304,由于数据库表结构是通过表名和映射字段生成的,因此根据表名可以检索出映射字段。当检索到映射字段后,从数据库库表结构对应的数据库中检索出负荷数据,通过显示单元304进行显示。

根据本发明实施例,显示单元304包括功率捕获项显示框,用于控制表格列的显示与隐藏。

根据本发明实施例,还包括输出单元,用于导出所选择的数据列。

需要说明的是,数据库表结构是动态生成,因此数据也需要动态展现,以负荷曲线1为例:

1) 通过表名如“DATA_C_LOAD”,从系统中检索出字段列表;

2) 通过字段列表,从系统数据库检索负荷数据;页面动态输出表格标题列,并循环输出负荷数据记录(如图7);

3) 点击右上角①位置,可以控制表格列的显示与隐藏(如图8);

4) 点击右上角②位置,可以导出所选择的列数据(如图9)。

本发明第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质中包括机器的一种基于负荷通道动态列的数据管理方法程序,所述基于负荷通道动态列的数据管理方法程序被处理器执行时,实现如上述第一方面所述的一种基于负荷通道动态列的数据管理方法的步骤。

本发明公开的一种基于负荷通道动态列的数据管理方法和相关装置,包括:创建负荷通道的映射表;配置OBIS映射字段;创建采集任务,获取所述表名、所述字段名称、所述字段类型和所述精度信息;根据所述表名、所述字段名称、所述字段类型和所述精度信息,动态生成SQL脚本;执行所述SQL脚本,获取数据库库表结构。本发明公开的方法,通过采用OBIS设计,为动态创建库表结构提供了基础数据,还通过采集任务设计,为动态创建库表结构提供了实现方法,除此之外,在采集系统中,还设置了数据展现装置,实现数据动态显示、动态导出。相比现有技术,本方法按需动态创建数据库表结构,解决了数据库表存储冗余过大或过小的问题,且采集系统平台化,负荷通道新增OBIS时, 数据库表和采集系统均无需改动,当现有通道不足,启用新的负荷通道时,系统平行扩展,降低平台的维护成本。

在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。

上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元;既可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。

另外,在本发明各实施例中的各功能单元可以全部集成在一个处理单元中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。

本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。

或者,本发明上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本发明各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。

相关技术
  • 一种基于负荷通道动态列的数据管理方法和相关装置
  • 一种基于负荷通道动态列的数据管理方法和相关装置
技术分类

06120112986356