论文范文网-权威专业免费论文范文资源下载门户!
当前位置:毕业论文格式范文>论文范文>范文阅读
快捷分类: 关于大数据的论文 毕业论文数据怎么找 大数据杂志 论文数据 有关大数据的论文 数据挖掘论文 编数据论文技巧 写社会学论文自杀数据 如何利用数据写论文 数据挖掘技术开题报告 什么是大数据论文 实证论文的数据分析

关于数据类毕业论文开题报告范文 跟一种漫游清算系统异构数据转换方法有关硕士论文范文

分类:论文范文 原创主题:数据论文 发表时间: 2024-04-10

一种漫游清算系统异构数据转换方法,该文是关于数据类毕业论文开题报告范文和数据转换和异构和清算有关毕业论文模板范文.

【摘 要】 本文要解决的技术问题在于针对现有的漫游业务清算系统中数据形态格式转换方法的缺陷,提供一种新的漫游业务清算系统数据表示方法,以及在基于该数据表示方法上实现一套数据形态格式转换的自动化中间件.

【关键词】 异构数据转换 内存数据描述 XML

一、背景

漫游业务清算系统对wlan、短信、彩信、IP 等业务的数据处理,校验,监控,统计分析,账务结算.

在对业务的数据处理流程中,漫游业务的同一份数据在其处理生命周期内,按照数据依附形态不同处理阶段会以文件、内存、数据库、网络等形态存在.并且在不同的处理模块,即便是同一形态,格式也可能不同.例如,文件形态时,格式可能是JSON 格式或CSV 格式,内存形态各个模块定义的数据结构也不尽相同.

各漫游业务清算系统模块在处理同一份数据时,根据自身模块职责,需要把不同形态的数据转换为符合自身的数据形态和格式才能后续处理.比如漫游业务清算系统中的IP校验、查重、结果发布模块,原始数据源是上发到深圳中心的IP 数据平面CSV 文件格式.

首先,校验模块解码该CSV 到内存数据结构按照规则校验,然后把校验结果以CSV 格式存入Redis 集群;

紧接着去重模块从Redis 集群读取校验后的CSV 格式结果,转换为相应的内存数据,再根据去重逻辑做查重,查重后的结果再以CSV 格式存入Redis 集群;

最后,结果发布模块从Redis 集群读取查重的结果,CSV 转换为内存数据格式后,再生成相应的存储SQL 语句存入数据库.

二、当前主要解决方案

数据形态格式转换常用的一种处理方法是:针对模块自身需要,每个模块各自写一套格式转换逻辑去适配模块之间不同数据形态格式转换.这是比较容易想到的方案,但该方案存在明显缺陷,模块之间可能使用共同的数据形态模式转换,重复逻辑每个模块都要实现一次,多个模块实现逻辑不一导致开发成本高,出错率增加.且在数据字段或格式变动时,每个模块都要去适配修改,扩展性不强.

另一种针对上述数据形态格式转换情况的解决方案是,不同模块之间需要用相同的数据形态格式的,剥离出一个共用转换逻辑,这样在该数据形态格式有改变时,只需要改动一处即可,各个模块复用转换逻辑.虽然该方案相比于每个模块独立实现数据形态格式转换逻辑有所改善,但仍存在显著的缺陷,需要针对每一个数据结构体,每一种数据形态格式都需要一套数据格式转换逻辑.并且,每一个结构体增加字段或结构改变时,其相应的转换逻辑也要随之修改,转换逻辑扩展性不强.

三、基于内存描述的异构数据转换方法

上文提到的两种异构数据转换逻辑在漫游业务清算系统中是可以实现数据处理流程的,但又具有不可避免的重要缺陷.

首先开发成本高,因为每新增字段或结构体改变时,转换逻辑都要相应适配修改;

其次容易出错,各种数据结构以及数据形态格式之间转换逻辑不固定,增加出错率;

最后扩展性不强,一个中间处理模块每新增加一个数据形态格式时,所有牵涉关联模块都要适配做相应修改.

故长远看来,需要存在一种方案,既能把各类数据形态和格式之间的转换自动化,又能在模块有新的数据形态格式时,只需要付出较小的成本就能完成新增数据形态格式相互自动化转换.

针对现有漫游业务清算系统中数据形态格式转换方法的缺陷,提供一种新的漫游业务清算系统数据表示方法,以及在基于该数据表示方法上,实现一套数据形态格式转换的自动化中间件.该方案主要以内存数据形态格式为中心,将内存以XML 数据表示出来,剥离转换逻辑,提供一套可复用、易扩展、规范化,从而降低成本的漫游业务清算系统数据表示方法.

漫游业务清算系统中数据一般有以下形态格式存在,比如一条IP 数据.

文件形态,即该条国际短信数据存在于文件中(JSON, CSV 等平面格式组织)

内存形态,即该条国际短信数据以语言结构体( 如C 语言结构体) 存在于内存中

数据库形态,即该条国际短信数据存储与数据库

虽然漫游业务清算系统中,同一份业务数据在其生命周期内不同模块具有不同的数据形态格式,但如果内存数据结构可以确定,内存数据形态格式与其它数据形态格式转换逻辑就可以确定,并且转换逻辑与数据的具体业务含义无关,如下内存数据形态格式转换CSV 或者JSON

#define MAX_PHONE_NUM_LEN 32

struct InternationalMessgae {

char user_num[MAX_PHONE_NUM_LEN];

char recv_num[MAX_PHONE_NUM_LEN];

uint32_t start_time;

uint32_t stop_time;

};

struct InternationalMessgae ims 等于 {“13603097202”,“13510607793”,

1467302414, 1467302434 };

转换CSV 格式为:

13603097202, 13510607793, 1467302414, 1467302434;

转换JSON 格式为:

{“recv_num”: “13510607793”, “start_time”:1467302414, “send_num”: “13603097202”, “stop_time”:1467302434}

可见InternationalMessage 的内存数据结构确定后,转换其它数据形态格式的结构进而确定.所以可通过数据抽象表示内存数据来确定内存数据结构,然后再把与业务无关的数据形态格式转换逻辑剥离,用内存抽象表示信息在程序运行时解释内存数据结构,进行各数据形态格式的自动转换,如图1 数据形态格式自动转换图.

本方案的主要特点有:

1)以内存数据格式为中心,抽象描述内存数据格式,内存数据结构( 如上文的InternationalMessage) 是一个复合数据结构,是由基本类型成员(user_num 等) 组合而成,基本类型成员具有以下基本特性

名字(user_num 等)

类型(char,uint32_t 等)

值(“13603097202”等)

基本类型成员抽象描述后,再定义一套复合数据结构抽象描述方法用于数据结构的嵌套,这样就可以描述内存数据格式结构.基于此,本方案将这些特性抽象为以下关键字,用这些关键字或关键字组合对内存数据结构进行抽象描述,属性关键字如下:

name 基本类型成员或复合数据结构名称,每一个基本类型成员或复合数据结构都必须包含该属性,并且要求名称唯一,不能重复.name 属性关键字,类似C 语言量( 基本类型或结构体) 的名字

macro 宏定义关键字,定义一个常量宏, 具有name和value 两个属性.

entry 基本数据类型成员,包含以下属性

type,标识基本数据类型成员类型,其值可以是C

语言内的内置变量类型(int,char,uint32_t 等), 也可是已定义的复合数据结构类型.

count,标识entry 是个数组,其值标识entry 的最大元素个数

id,唯一标识一个复合结构中entry,可选项.但在复合数据结构关键字为union 时,必须填写.

select,与id 配合使用,在复合数据结构关键字为union 时,标识当前有效的是哪个entry.

struct 复合数据结构关键字,包含以下子属性

pragma_pack,内存中结构体所有成员内存对齐大小.

primary_key, 复合数据结构作为数据库表时,标识主键是该结构中的哪些字段.可选属性,如果复合数据结构不作为数据库标,可不填.

index,复合数据结构作为数据库表时,标识索引是该结构中的哪些字段.可选属性,如果复合数据结构不作为数据库标或没有索引时,可不填.

entry,子成员,参见下面entry 成员描述

union 联合体复合数据结构关键字,子成员为entry元素.

基于上述关键字,InternationalMessage 可以描述如下(XML 语言描述):

<?xml version等于”1.0” encoding等于”utf-8”?>

< m a c r o n a m e 等于 ” M A X _ P H O N E _ N U M _ L E N ” ,value等于“32” />

< s t r u c t n a m e 等于 ” I n t e r n a t i o n a lMe s s a g e ” p r a g m a _pack等于”1”>

<entry name等于”user_num” type等于”char” count等于”MAX_PHONE_NUM_LEN />

<entry name等于”recv_num” type等于”char” count等于”MAX_PHONE_NUM_LEN />

<entry name等于”start_time” type等于”uint32_t” />

<entry name等于”stop_time” type等于”uint32_t”/>

</struct>

2)用抽象描述内存数据格式的信息,解释内存数据

复合数据结构的数据在内存中,从应用层角度看,是与复合数据结构体同等大小的一块连续内存,并且以复合数据结构体初始内存地址为起始,复合数据结构子成员按照定义顺序在这块连续内存中依次排列,所以若知道复合数据结构每个子成员的数据类型( 计算占用内存大小),以复合数据结构初始内存为地址起始可以获取任何一个子成员的值.比如上文中的ims 复合结构数据,起始地址若为p,则子成员start_time 的值为 &((uint32_t *)(p + sizeof(ims.user_num) +sizeof(ims.recv_num))).

由 1) 中结尾的XML 内存数据描述, 首先解析XML 文件描述, 很容易生成映射到InternationalMessage定义的C 语言结构体, 直接供各模块使用; 然后生成InternationalMessage 结构的内存描述,进行程序运行时内存解释,如表3-2 InternationalMessage 内存结构描述

3)基于 1),2)提供内存数据形态格式与其它数据形态格式自动转换的中间件

本方案在以内存数据形态格式为状态,抽象描述内存数据的基础上,实现一套由抽象描述语言到具体语言结构的转换、解释内存数据结构,最终实现已知数据形态格式之间的相互自动转换中间件.中间件由以下核心程序模块和结构组成:

XMLParser(XML 语言解析器).对抽象描述文件做基本解析,通过XMLParser 把抽像描述文件映射到内存具体的XML 结构,解析出文件中的节点、子节点及其节点属性.

KeyWordParser( 关键字解析器).在XMLParser 解析原始的XML 文件描述后,在解析后的结构基础上,对macro,struct,primary_key 等关键字解析,以便生成具体的编程语言结构、内存信息描述.MacroParser、StructParser、EntryParser、UnionParser 分别是具体的关键字实现,类关系图如图2.

EntryDescInfo( 基本成员类型描述信息).中间件根据自定义的XML 文件描述,对每一个基本成员类型生成一个EntryDescInfo 描述信息,其结构如下:

struct EntryDescInfo {

int id;

int type;

char *name;

int count;

uint32_t offset;

};

StructDescInfo( 复合数据结构描述信息).中间件根据自定义的XML 文件描述,对每一个复合数据结构生成一个StructDescInfo 描述信息,其结构如下:

strut StructDescInfo{

int id;

int type;

char *name;

int select_id;

int param_pack;

int primary_key_num;

struct EntryDescInfo *primary_key_entries;

int idx_num;

struct EntryDescInfo *idx_entries;

int entries_num;

struct EntryDescInfo *entries;

};

const strut StructDescInfo *get_desc_info_by_name(constchar *filename, const char *name).根据struct name 返回struct描述.

XMLToHeader( 根据XML 描述文件生成C/C++ 语言头文件).只需要定义XML 描述文件,对应的C/C++ 结构体定义可自动生成.

XMlToTable( 根据XML 描述文件生成SQL 建表语句).只需要定义XML 描述文件,指定需要的primary key 或Index,对应的SQL 建表语句可自动生成.

不同存储形态格式与内存格式转换API 簇

文件方式转换为内存数据结构格式

int input_by_csv(const struct StructDescInfo *descinfo,const char * line, void *out, size_t len), 文件形态CSV 格式方式转换为内存数据结构格式

int input_by_json(const struct StructDescInfo *descinfo,const char * line, void *out, size_t len), 文件形态JSON 格式转换为内存数据结构格式

int input_by_sql(const struct StructDescInfo *descinfo,const struct DBResult *row, void *out, size_t len), DB 形态SQL数据查询结果转换为内存数据结构格式

int output_to_xml(const struct StructDescInfo *descinfo,void *in, size_t in_len, char *out, size_t out_len), 内存数据结构模式转换为文件形态XML 格式

int output_to_csv(const struct StructDescInfo *descinfo,void *in, size_t in_len, char *out, size_t out_len), 内存数据结构模式转换为文件形态CSV 格式

int output_to_json(const struct StructDescInfo *descinfo,void *in, size_t in_len, char *out, size_t out_len), 内存数据结构模式转换为文件形态JSON 格式

int output_to_sql(const struct StructDescInfo *descinfo,const void *data, size_t in_len, int op_type, char *out, size_t out_len), 内存数据结构模式转换为DB 形态下的SQL 存储语句

运用本方案的API 簇,对不同形态数据格式转换的典型流程图如图3.

在漫游业务清算系统数据字段运用XML 描述、数据形态格式确认后,运用本框架的服务核心流程如下:

1、生成头文件.根据XML 文件表示,调用中间件的XMLToHeader 生成包含相应结构体的头文件.如果是数据库数据形态格式,然后再调用XMLToTable 生成建表语句,对DB 建表.

2、以内存数据格式为中心,XML 文件描述为依据,调用中间件的转换API 簇,对不同数据格式之间进行转换.基于上述方案,在漫游业务清算系统数据表示及不同数据格式转换可采用如下步骤实现:

3、XML 数据表示.根据漫游业务清算系统业务需求,提取每一个数据字段的名字、类型、所属结构体后,用XML语言表示系统中用到这些数据字段、结构体、宏等,XML 文件描述每个数据字段的属性,归属结构体信息.同样,如果有新增数据字段或数据结构, 直接在原有的XML 文件添加相应表示即可.

4、生成头文件.数据表示XML 完成后,调用中间件XMLToHeader 生成对应头文件,业务使用中间件时包含这个头文件即可使用里面自动生成的结构体声明.如果是DBSQL 结构,可再生成相应的DB SQL 建表语句建表用,流程如下图4:

5、数据形态格式转换.1, 2 完成后,以XML 文件表示为依据,调用中间件的转换API 簇,对不同数据格式之间进行转换.

四、总结应用

本文中的数据转换方案具有以下优点:通用性高,对已知的数据字段和形态格式,只需通用的XML 表示,再调用中间件内置的接口即可生成包含相应的结构体头文件,以及实现各数据形态格式间的转换;扩展性好,即使出现新的字段结构体或数据形态格式,对于新增的字段或结构,直接在XML 文件添加表示重新生成即可,而对于新增的数据形态格式,只需要在中间件加上相应的转换接口即可,并不需要付出太大成本;可复用性好,每一个字段,每一个结构体,每一种数据形态格式,只需要一处定义描述和实现,就处处可用,每一种数据格式转换逻辑都可以作为基础设施沉淀下来,最终拥有大量完整的组件,在处理新类型数据格式时,利用这些组件简单装配就能高效完成.

五、展望

基于内存描述的XML异构数据转化方法能为数据集成、数据挖掘提供强有力的支持,为构建分布式网络数据处理提供解决方案,在数据处理领域应用前景非常广泛.

参 考 文 献

[1] 许雪松, 赵龙军, 杨贯伟. 一种异构数据环境下的数据交换与集成方法计算机工程与应用[P].

中国:105488229A.2016-04-13

[2] 徐晓光. 解释内存数据块的数据结构的方法[P]. 中国:1501624.2004-06-02

本文评论,这篇文章为一篇适合数据转换和异构和清算论文写作的大学硕士及关于数据本科毕业论文,相关数据开题报告范文和学术职称论文参考文献.

参考文献:

1、 异构数据文本挖掘技术 摘要本文主要研究基于自然语言处理技术和数据挖掘技术,面向出版行业,对海量、异构的数字出版文本内容进行智能分析与挖掘,研究与实现命名实体识别与语义关系抽取、自动摘要提取、自动关键词提取、自动分类、自动过.

2、 基于异构数据库的智慧校园系统的设计和实现 摘要“智慧校园”的概念建立在物异构数据库技术基础上,随着新一代信息技术的快速发展,将传统的人事管理系统、资产管理系统、教务管理系统、财务管理系统……校内业务系统存在分散问题进行.

3、 学会回首:数学教育的理性呼唤对同课异构之异 摘要对“同课异构”之“异”提出质疑,认为教师应学会“教学言语”“教学行为”“回首&rdquo.

4、 我善养吾浩然之气同课异构教学谈 摘要从调动学生学习积极性的角度看,对于一篇具体课文,不同的教学设计,效果肯定有着优劣之分 追求专业成长的语文教师要勇于探索,勇于实践,在吃透文本、熟悉学情的前提下,可以兼顾“巧&rdquo.

5、 将关联进行到底和特级教师同课异构学到的 摘 要与北京市特级教师张海滨老师同课异构草船借箭,课后进行对比分析,发现张老师的课注重一课一得 他将“关联”做足,做透,让学生关联着看,关联着想,关联着找,关联着读,引领学生通.

6、 彰显新诗教学的魅力简评三堂《乡愁》同课异构课 贾龙弟(浙江省平湖市黄姑中学,314203)摘要三位教师执教乡愁,教“新”不忘“旧”,教“诗”不忘“言”.