CN108228735A - 一种数据处理方法、装置及系统 - Google Patents

一种数据处理方法、装置及系统 Download PDF

Info

Publication number
CN108228735A
CN108228735A CN201711319889.XA CN201711319889A CN108228735A CN 108228735 A CN108228735 A CN 108228735A CN 201711319889 A CN201711319889 A CN 201711319889A CN 108228735 A CN108228735 A CN 108228735A
Authority
CN
China
Prior art keywords
message
cmsp
data processing
data
field
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201711319889.XA
Other languages
English (en)
Inventor
李钦格
李朝铭
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Inspur Software Co Ltd
Original Assignee
Inspur Software Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Inspur Software Co Ltd filed Critical Inspur Software Co Ltd
Priority to CN201711319889.XA priority Critical patent/CN108228735A/zh
Publication of CN108228735A publication Critical patent/CN108228735A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2282Tablespace storage structures; Management thereof

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供了一种数据处理方法、装置及系统,其中,该方法包括:通过OTL模板库连接访问至少一个MySQL数据库,预先设置驱动参数,还包括:针对任意一个所述MySQL数据库中任意一条数据记录,均执行:根据所述驱动参数依次抽取当前数据记录的各个字段,生成消息;将所述消息发送给任意一个云消息服务平台CMSP。本发明提供的方案能够降低内存占用。

Description

一种数据处理方法、装置及系统
技术领域
本发明涉及数据处理技术领域,特别涉及一种数据处理方法、装置及系统。
背景技术
现在科学技术日新月异,各类数据呈爆发式增长,我们已步入大数据时代。在大数据时代,各种结构化数据、非结构化数据的处理显得尤为重要。
现有技术中,当抽取的数据量较大时,往往一次性将表中所有的记录都加载到内存中。
该方法导致内存占用过大。
发明内容
本发明实施例提供了一种数据处理方法、装置及系统,能够降低内存占用。
第一方面,本发明实施例提供了一种数据处理方法,通过OTL(Oracle,ODBC andDB2-CLI Template Library,OTL模板库)连接访问至少一个MySQL数据库,预先设置驱动参数,还包括:
针对任意一个所述MySQL数据库中任意一条数据记录,均执行:
根据所述驱动参数依次抽取当前数据记录的各个字段,生成消息;
将所述消息发送给任意一个CMSP(Cloud Message Service Platform,云消息服务平台)。
优选地,
进一步包括:设置字符数组;
所述根据所述驱动参数依次抽取当前数据记录的各个字段,生成消息,包括:
根据所述驱动参数依次抽取当前数据记录的各个字段,并拷贝到所述字符数组中;
根据拷贝到所述字符数组中的各个字段,生成消息。
第二方面,本发明实施例提供了一种数据处理装置,通过OTL连接访问至少一个MySQL数据库,包括:
设置单元,用于设置驱动参数;
抽取单元,用于针对任意一个所述MySQL数据库中任意一条数据记录,均执行:根据所述设置单元设置的所述驱动参数依次抽取当前数据记录的各个字段,生成消息;
发送单元,用于将所述抽取单元生成的所述消息发送给任意一个CMSP。
优选地,
所述设置单元,进一步用于设置字符数组;
所述抽取单元,用于根据所述驱动参数依次抽取当前数据记录的各个字段,并拷贝到所述字符数组中;根据拷贝到所述字符数组中的各个字段,生成消息。
第三方面,本发明实施例提供了一种数据处理系统,包括:上述任一实施例所述的数据处理装置、至少一个MySQL数据库和至少一个第一CMSP;
每一个所述第一CMSP,用于接收所述数据处理装置发送的消息。
优选地,
进一步包括:至少一个组装装置和至少一个第二CMSP;
任意一个所述组装装置,用于从目标第一CMSP中获取目标消息;将所述目标消息组装成JSON(JavaScript Object Notation,JavaScript对象标记语言)格式的数据;将所述JSON格式的数据发送给目标第二CMSP;
任意一个所述第二CMSP,用于接收目标组装装置发送的所述JSON格式的数据。
优选地,
任意一个所述组装装置,进一步用于设置动态数组;
任意一个所述组装装置,用于将所述目标消息拷贝到所述动态数组中;从所述动态数组中依次获取各个字段,生成当前记录;将所述当前记录组装成所述JSON格式的数据。
第四方面,本发明实施例提供了一种可读介质,包括执行指令,当存储控制器的处理器执行所述执行指令时,所述存储控制器执行上述任一实施例所述的方法。
第五方面,本发明实施例提供了一种存储控制器,包括:处理器、存储器和总线;
所述存储器用于存储执行指令,所述处理器与所述存储器通过所述总线连接,当所述存储控制器运行时,所述处理器执行所述存储器存储的所述执行指令,以使所述存储控制器执行上述任一实施例所述的方法。
本发明实施例提供了一种数据处理方法、装置及系统,其中,该方法通过OTL模板库连接访问至少一个MySQL数据库,根据预先设置的驱动参数从MySQL数据库中抽取数据记录的各个字段,拼接成消息发送至CMSP。该方法通过设置的驱动参数控制抽取数据的大小,能够降低内存占用。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一个实施例提供的一种数据处理方法的流程图;
图2是本发明一个实施例提供的一种数据处理装置的结构示意图;
图3是本发明一个实施例提供的一种数据处理系统的结构示意图;
图4是本发明另一个实施例提供的一种数据处理系统的结构示意图;
图5是本发明另一个实施例提供的一种数据处理方法的流程图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,本发明实施例提供了一种数据处理方法,通过OTL连接访问至少一个MySQL数据库,该方法可以包括以下步骤:
步骤101:设置驱动参数;
步骤102:针对任意一个MySQL数据库中任意一条数据记录,均执行:根据驱动参数依次抽取当前数据记录的各个字段,生成消息;
步骤103:将消息发送给任意一个CMSP。
该方法通过OTL模板库连接访问至少一个MySQL数据库,根据预先设置的驱动参数从MySQL数据库中抽取数据记录的各个字段,拼接成消息发送至CMSP。该方法通过设置的驱动参数控制抽取数据的大小,能够降低内存占用。
基于OTL的MySQL数据抽取依据业务逻辑,大致分为底层驱动层、数据抽取层和数据转换层。
底层驱动层通过OTL连接访问MySQL数据库。使用OTL连接数据库和其他使用ODBC(Open Database Connectivity,开放数据库连接)连接MySQL数据库基本是一致的,底层都是使用ODBC的接口。但是本发明中使用OTL连接MySQL和其他使用ODBC驱动连接又有所不同。当查询大数据量表时,直接使用ODBC驱动的应用程序往往都是一次性将表中所有的记录都加载到内存中,会耗尽系统的内存。本发明在使用OTL从MySQL中抽取大数据量表时,通过设置驱动参数option,可以有效避免这一问题。通过大量测试验证,当option设置为1048576时,MySQL服务器端是逐条推送记录到客户端的,从而避免占用内存过大的问题。
在本发明的一个实施例中,为了方便数据记录的格式转换,该方法还包括:设置字符数组;
根据驱动参数依次抽取当前数据记录的各个字段,生成消息,包括:
根据驱动参数依次抽取当前数据记录的各个字段,并拷贝到字符数组中;
根据拷贝到字符数组中的各个字段,生成消息。
数据抽取层将从MySQL抽取的记录拼接成字符串,然后发送到CMSP上。为最大程度的提高整体性能,在数据抽取时,先预定义存放一条数据记录的字符数组,并将数组空间全部初始化为字符串结束符’\0’。依次取得一条记录的字段,并拷贝到字符数组中。当一条记录拷贝完毕时,将数组中的记录作为一条消息放到CMSP中。
当一条记录处理完毕后,将指针重新指向字符数组的首地址,再次取记录字段值并拷贝到数组中,然后放到CMSP中。如此反复循环,直到将数据记录全部取完。
数据转换层主要是JSON组装线程,根据消息的长度动态分配一字符数组,取topic中的一条消息,拷贝到动态数组中(使用内存拷贝)。使用指针指向动态数组起始地址,根据表中字段的个数组成for循环,依据指针偏移和字段的长度依次取出一条记录中每个字段的值。当一条完整的记录取完时,指针指向数组首地址,继续取下一条记录。
将取出的记录组装成JSON格式的数据并放到指定CMSP的topic上,供大数据分析使用。
如图2所示,一种数据处理装置,通过OTL模板库连接访问至少一个MySQL数据库,包括:
设置单元201,用于设置驱动参数;
抽取单元202,用于针对任意一个MySQL数据库中任意一条数据记录,均执行:根据设置单元201设置的驱动参数依次抽取当前数据记录的各个字段,生成消息;
发送单元203,用于将抽取单元202生成的消息发送给任意一个云消息服务平台CMSP。
在本发明的一个实施例中,设置单元201,进一步用于设置字符数组;
抽取单元202,用于根据驱动参数依次抽取当前数据记录的各个字段,并拷贝到字符数组中;根据拷贝到字符数组中的各个字段,生成消息。
如图3所示,本发明实施例提供了一种数据处理系统,包括:上述任一实施例的数据处理装置301、至少一个MySQL数据库302和至少一个第一CMSP303;
每一个第一CMSP303,用于接收数据处理装置发送的消息。
在本发明的一个实施例中,如图4所示,该系统还包括:至少一个组装装置304和至少一个第二CMSP305;
任意一个组装装置304,用于从目标第一CMSP中获取目标消息;将目标消息组装成JSON格式的数据;将JSON格式的数据发送给目标第二CMSP;
任意一个第二CMSP305,用于接收目标组装装置发送的JSON格式的数据。
在本发明的一个实施例中,任意一个组装装置304,进一步用于设置动态数组;
任意一个组装装置304,用于将目标消息拷贝到动态数组中;从动态数组中依次获取各个字段,生成当前记录;将当前记录组装成JSON格式的数据。
如图5所示,本发明以数据处理装置、MySQL数据库、第一CMSP、组装装置和第二CMSP组成的数据处理系统为例,对数据处理方法进行详细地说明,该方法包括:
步骤501:数据处理装置设置驱动参数、字符数组,组装装置设置动态数组。
步骤502:针对MySQL数据库中任意一条数据记录,均执行:数据处理装置根据驱动参数依次抽取当前数据记录的各个字段,并拷贝到字符数组中,根据拷贝到字符数组中的各个字段,生成消息。
步骤503:数据处理装置将消息发送给第一CMSP。
步骤504:第一CMSP接收数据处理装置发送的消息。
步骤505:组装装置从第一CMSP中获取目标消息,将目标消息拷贝到动态数组中,从动态数组中依次获取各个字段,生成当前记录,将当前记录组装成JSON格式的数据,将JSON格式的数据发送给第二CMSP。
步骤506:第二CMSP接收组装装置发送的JSON格式的数据。
本发明实施例提供了一种可读介质,包括执行指令,当存储控制器的处理器执行执行指令时,存储控制器执行上述任一实施例的方法。
本发明实施例提供了一种存储控制器,包括:处理器、存储器和总线;
存储器用于存储执行指令,处理器与存储器通过总线连接,当存储控制器运行时,处理器执行存储器存储的执行指令,以使存储控制器执行上述任一实施例的方法。
上述装置内的各单元之间的信息交互、执行过程等内容,由于与本发明方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。
综上,本发明各个实施例至少具有如下效果:
1、在本发明实施例中,该方法通过OTL模板库连接访问至少一个MySQL数据库,根据预先设置的驱动参数从MySQL数据库中抽取数据记录的各个字段,拼接成消息发送至CMSP。该方法通过设置的驱动参数控制抽取数据的大小,能够降低内存占用。
2、在本发明实施例中,依据MySQL抽取数据速度快,组装JSON数据速度慢的特点,组装JSON时使用多组装装置并发处理。同时使用指针偏移从消息中取数据,从多个方面有效地提高了系统的整体性能。
需要说明的是,在本文中,诸如第一和第二之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个······”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同因素。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储在计算机可读取的存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质中。
最后需要说明的是:以上所述仅为本发明的较佳实施例,仅用于说明本发明的技术方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

Claims (9)

1.一种数据处理方法,其特征在于,通过OTL模板库连接访问至少一个MySQL数据库,预先设置驱动参数,还包括:
针对任意一个所述MySQL数据库中任意一条数据记录,均执行:
根据所述驱动参数依次抽取当前数据记录的各个字段,生成消息;
将所述消息发送给任意一个云消息服务平台CMSP。
2.根据权利要求1所述的数据处理方法,其特征在于,进一步包括:设置字符数组;
所述根据所述驱动参数依次抽取当前数据记录的各个字段,生成消息,包括:
根据所述驱动参数依次抽取当前数据记录的各个字段,并拷贝到所述字符数组中;
根据拷贝到所述字符数组中的各个字段,生成消息。
3.一种数据处理装置,其特征在于,通过OTL模板库连接访问至少一个MySQL数据库,包括:
设置单元,用于设置驱动参数;
抽取单元,用于针对任意一个所述MySQL数据库中任意一条数据记录,均执行:根据所述设置单元设置的所述驱动参数依次抽取当前数据记录的各个字段,生成消息;
发送单元,用于将所述抽取单元生成的所述消息发送给任意一个云消息服务平台CMSP。
4.根据权利要求3所述的数据处理方法,其特征在于,
所述设置单元,进一步用于设置字符数组;
所述抽取单元,用于根据所述驱动参数依次抽取当前数据记录的各个字段,并拷贝到所述字符数组中;根据拷贝到所述字符数组中的各个字段,生成消息。
5.一种数据处理系统,其特征在于,包括:权利要求3或4所述的数据处理装置、至少一个MySQL数据库和至少一个第一云消息服务平台CMSP;
每一个所述第一CMSP,用于接收所述数据处理装置发送的消息。
6.根据权利要求5所述的数据处理系统,其特征在于,进一步包括:至少一个组装装置和至少一个第二CMSP;
任意一个所述组装装置,用于从目标第一CMSP中获取目标消息;将所述目标消息组装成JavaScript对象标记语言JSON格式的数据;将所述JSON格式的数据发送给目标第二CMSP;
任意一个所述第二CMSP,用于接收目标组装装置发送的所述JSON格式的数据。
7.根据权利要求6所述的数据处理系统,其特征在于,
任意一个所述组装装置,进一步用于设置动态数组;
任意一个所述组装装置,用于将所述目标消息拷贝到所述动态数组中;从所述动态数组中依次获取各个字段,生成当前记录;将所述当前记录组装成所述JSON格式的数据。
8.一种可读介质,其特征在于,包括执行指令,当存储控制器的处理器执行所述执行指令时,所述存储控制器执行权利要求1或2所述的方法。
9.一种存储控制器,其特征在于,包括:处理器、存储器和总线;
所述存储器用于存储执行指令,所述处理器与所述存储器通过所述总线连接,当所述存储控制器运行时,所述处理器执行所述存储器存储的所述执行指令,以使所述存储控制器执行权利要求1或2所述的方法。
CN201711319889.XA 2017-12-12 2017-12-12 一种数据处理方法、装置及系统 Pending CN108228735A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201711319889.XA CN108228735A (zh) 2017-12-12 2017-12-12 一种数据处理方法、装置及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201711319889.XA CN108228735A (zh) 2017-12-12 2017-12-12 一种数据处理方法、装置及系统

Publications (1)

Publication Number Publication Date
CN108228735A true CN108228735A (zh) 2018-06-29

Family

ID=62649446

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711319889.XA Pending CN108228735A (zh) 2017-12-12 2017-12-12 一种数据处理方法、装置及系统

Country Status (1)

Country Link
CN (1) CN108228735A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109165225A (zh) * 2018-09-05 2019-01-08 浪潮软件股份有限公司 一种基于字节流格式的kudu数据导入系统及方法
CN109684331A (zh) * 2018-12-20 2019-04-26 浪潮软件股份有限公司 一种基于Kudu的对象存储元数据管理装置及方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109165225A (zh) * 2018-09-05 2019-01-08 浪潮软件股份有限公司 一种基于字节流格式的kudu数据导入系统及方法
CN109684331A (zh) * 2018-12-20 2019-04-26 浪潮软件股份有限公司 一种基于Kudu的对象存储元数据管理装置及方法

Similar Documents

Publication Publication Date Title
US9456229B2 (en) Parsing single source content for multi-channel publishing
CN104317928A (zh) 一种基于分布式数据库的业务etl方法及系统
CN106682036A (zh) 一种数据交换系统及其交换方法
CN103309904A (zh) 一种生成数据仓库etl 代码的方法及装置
CN108205577A (zh) 一种数组构建、数组查询的方法、装置及电子设备
CN109471851A (zh) 数据处理方法、装置、服务器和存储介质
CN111159265B (zh) 一种etl数据迁移方法和系统
KR20150091521A (ko) 데이터 정규표현식의 마이닝 방법 및 장치
CN111858760B (zh) 一种异构数据库的数据处理方法及装置
CN108228735A (zh) 一种数据处理方法、装置及系统
CN108241676A (zh) 实现数据同步的方法及设备
CN113760242B (zh) 一种数据处理方法、装置、服务器和介质
CN112948410A (zh) 数据处理方法、装置、设备及介质
CN104125252A (zh) 数据存储系统及方法
CN104462157B (zh) 一种文本数据二次结构化的方法及装置
CN106293862B (zh) 一种可扩展标记语言xml数据的解析方法和装置
CN111061927A (zh) 数据处理方法、装置及电子设备
CN104317906A (zh) Gps监控车台上报数据大规模入库的处理方法
CN105592097B (zh) 一种基于客户端的异步交互信息方法
US9483332B2 (en) Event processing method in stream processing system and stream processing system
CN107408060A (zh) 用于大数据应用的多个多维计算机架构
CN104462463A (zh) JavaScript基于SQL模板的数据访问方法
US8136121B2 (en) Graphical message format builder
CN109460346A (zh) 一种离线解析性能数据的方法、装置及存储介质
CN102253940A (zh) 树形控件处理数据的方法和装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication

Application publication date: 20180629

RJ01 Rejection of invention patent application after publication