海量用户数据范文
海量用户数据范文(精选7篇)
海量用户数据 第1篇
关键词:谐波污染,谐波分析,建模,监测数据,拉丁超立方采样,概率分布
1 已有的谐波污染用户模型
由于大量电力电子装置及其他类型非线性负荷的不断增加,电网中的谐波污染日益严重,降低了电网运行可靠性[1]。建立谐波污染用户模型有助于分析用户污染域[2],设计治理方案。
在稳定工作状态下,污染用户的谐波特性可统一表述成式(1)的形式[3]。
其中,Ih为用户发出的h次谐波电流;U1和U2、…、Uh分别为用户节点电压中的基波和各次谐波分量;C为用户控制参数。
式(1)考虑了不同次数谐波电压对用户谐波电流的影响,可称之为耦合模型。理论上只要给出电压波形和控制参数,通过供电电压和负荷的伏安特性就能够精确求解其注入系统的谐波电流值。但是在实际应用中往往不能得到式(1)的精确表达,并且也难以获得参数C,因而工程中常常对该模型进行不同程度的简化以得到一些实用化模型。文献[4]提出了配电网建模的诺顿等效法,将谐波源负荷表示成阻抗、电流源的组合模型,用一个恒定的阻抗模拟负荷的线性部分,用一个谐波电流源模拟负荷的非线性部分。文献[5]将不同次的谐波电压、电流之间的耦合关系线性化,提出了基于交叉频率导纳矩阵的谐波源模型。文献[6]将谐波源等效为恒流源和受控电流源,然后利用谐波监测数据进行模型参数辨识。
文献[7-8]利用时域状态估计技术对通用模型进行参数辨识。文献[9]利用模型中电压、电流之间的物理关系,通过对电流的最佳平方进行逼近辨识出模型参数,可对各种类型的负荷进行谐波建模。文献[10]利用现场测量数据来提高模型参数辨识的精度。这些参数辨识方法能够准确地得到通用模型的各个参数,但谐波幅值和相角的测量值是模型参数辨识必不可少的条件。由于判断谐波是否超标是以谐波幅值作为基准,同时为了节省存储空间,当前的电能质量监测数据往往只保存谐波幅值,而不保存相角,这就限制了以上参数辨识方法的应用。此外,谐波污染用户的工作状态具有随机性和时变性,模型参数不可能恒定不变。如果参数辨识样本集包含用户的多个工况数据,那么基于最佳估计思想的参数辨识结果并不能表征用户运行特性的变化。
本文提出一种基于谐波幅值监测数据的谐波用户建模思路,同时考虑用户模型参数的波动特点,建立谐波污染用户的统计模型。该方法采用用户的历史监测数据,不需要进行额外测量。计算结果为统计型模型参数,包含了用户工况的变化特征,因而能够更全面地评估用户运行污染。
2 基于谐波幅值监测数据的污染用户建模
2.1 用户污染模型
大电力用户由变压器和各种类型的用电设备构成,运行具有时变性和随机性,在高次谐波情况下还存在多种耦合作用,因此无法精确模拟。在谐波分析中,通常采用图1所示的负荷集总效应电路结构模拟污染用户。
图1中,Us、Zs分别为系统电压和系统阻抗;Upcc、Ipcc分别为公共连接点(PCC)的电压、电流;R、X分别表示用户负荷中电阻、电感元件部分的集总效应,一般电力用户负荷为感性负荷,因此模型中不含有电容元件;谐波电流源Ich表示非线性负荷产生的谐波交叉耦合效应。该模型将谐波污染用户负荷分为线性负荷部分和非线性负荷部分分别建模。在忽略系统背景谐波的情况下,可由图2所示的基波等效电路和谐波等效电路分别求解。其中,Upcc1、Upcch分别为PCC的基波电压和谐波电压监测值,Ipcc1、Ipcch分别为PCC的基波电流和谐波电流监测值。
2.2 线性负荷模型参数
将用户的线性负荷部分等效为并联阻抗,则其基波阻抗与谐波阻抗的关系如式(3)所示。
其中,Zc h为线性负荷谐波等值阻抗;Zc1为线性负荷基波等值阻抗。
基波阻抗值可以由用户的基波电压、电流和功率因数测量值计算得到。
根据式(2)可以推导出基波电抗的计算公式,如式(6)所示。
2.3 非线性负荷模型参数
根据图2(b)所示电路,有如下关系式:
其中,Upcch、Ich分别为Upcch、Ich的相量形式。
推导可得谐波电流源的幅值,如式(8)所示。
其中,Zsh为系统谐波等值阻抗,一般表示为串联阻抗。系统谐波阻抗与系统基波阻抗满足如式(19)所示关系。
许多相关文献已经研究了辨识系统谐波阻抗参数的方法,如文献[11]利用改进的偏最小二乘法求解系统阻抗,文献[12]应用秩次回归估计系统谐波阻抗。这些方法都能精确地估计出系统等效阻抗值。因此,本文在负荷谐波建模时假设系统阻抗已知。
由式(4)—(6)能够从谐波污染用户接入点的监测数据计算得到用户的线性负荷参数,由式(3)计算得到用户的非线性负荷参数,根据式(8)可计算得到谐波污染用户产生的谐波电流值。
3 基于拉丁超立方采样的统计建模
电力系统中的负荷类型复杂,运行方式也处在不断的变化之中,因而PCC的监测数据包含大量的随机波动成分,更适合采用统计型的模型参数描述用户的污染特性。
利用蒙特卡罗模拟(MC)法,对监测数据分组计算模型参数,进而进行概率统计分析,可得到统计型模型参数。根据GB/T19862—2005《电能质量监测设备通用要求》中的相关规定:谐波监测的一个基波记录周期为3s,存储记录周期为3min,即每3min产生一个保存记录。因此谐波污染用户接入点的监测数据有成千上万组,若对每组数据都进行计算,则存在计算量太大、占用内存太多的缺点,并不实用。为了缩短计算时间,提高计算效率,本文引入基于分层采样原理的拉丁超立方采样(LHS)方法处理海量历史监测数据,该方法可以在保证计算精度的前提下大幅减小采样数,提高计算效率。
3.1 拉丁超立方采样方法
拉丁超立方采样是M.D.Mckay等学者在1979年提出的一种分层采样方法[13],具有采样效率高和稳健性好等优点。在进行相同规模的抽样时,该方法可以获得更高的精度。
拉丁超立方采样方法分为采样和排序2个步骤。采样时把随机变量累积分布函数的取值空间均分为N等份,从每个区间中随机选取一个数(或选择区间中间)作为累积分布函数的采样值,通过求反函数得到随机变量的采样值,形成采样矩阵S。
电力系统中输入随机变量的概率分布特性受众多因素影响,难以建立概率分布函数的准确模型。一般只能得到大量离散的监测数据。针对这种情况,本文利用离散拉丁超立方采样法处理用户接入点含有大量离散的历史监测数据而没有其准确的概率分布函数的情形。
根据大数定律,随机事件发生的频率依概率收敛于该事件发生的概率。因此,离散拉丁超立方采样并不计算具体的样本值,而是计算在一定的样本容量下某一状态的数据。对于采样规模N,输入随机变量X处于状态xi的个数与其处于该状态的概率成正比,即:
其中,xi为随机变量X的第i个样本值;n(xi)为随机变量X处于状态xi的个数;P(xi)为随机变量X处于状态xi的概率。
采样过程具体实现如下。
将单个随机变量的离散数据按从小到大的顺序排序,并分成N等份,则每个子区间中包含n/N个样本。第j个子区间((j-1)/N,j/N]的元素在数组中的分布范围可由式(11)确定。由拉丁超立方采样法的原理可知,第j个子区间对应的样本可取区间内任意的值,根据式(12)确定。
其中,a为子区间元素范围下限;b为子区间元素范围上限;k为第j个子区间采样值在排序后的数字的位置;round为小数部分四舍五入取整函数;rand为随机数生成函数。
所有随机变量都完成采样后,对采样样本进行排序,降低采样值之间相关性对拉丁超立方采样模拟精度的影响[14]。排序方法有多种,如Gram-Schmidt序列正交化方法[15]、Cholesky分解法[16]等。对于具有相关性的随机变量,亦可通过排序方法[17,18]使得随机变量采样值间的相关性尽可能接近随机变量间的相关性。对于离散的历史监测数据,各个变量之间的相关性可用其相关系数矩阵表示,结合Cholesky分解法进行排序能够很方便地处理变量之间的相关性。
3.2 统计建模步骤
利用拉丁超立方采样法进行谐波污染用户统计建模的步骤如下:
a.输入PCC的历史监测数据,包括电压、电流幅值和功率因数;
b.利用上述单个随机变量的采样方法对离散数据中的各个变量进行采样,得到初始样本矩阵;
c.利用Cholesky分解法,根据相关系数矩阵对初始样本矩阵进行排序,形成计算样本;
d.对每一组样本数据按式(4)—(6)和式(8)计算模型参数,并保存计算结果;
e.按步骤a—d完成对所有样本数据的计算后,通过统计学方法求得负荷谐波模型中电阻、电抗、阻抗和谐波电流的期望值与方差等数字特征及其概率分布曲线。
4 仿真算例
为了验证本文所提方法的正确性,通过仿真模拟了污染用户的运行工况,此后采用MATLAB进行建模。仿真中系统侧基波阻抗参数为:Rs1=0.03Ω、Xs1=0.1Ω;用户侧基波阻抗参数为:Rc1=5Ω、Xc1=15Ω,用户5次谐波注入电流均值为14.14 A。假设谐波用户负荷参数服从正态分布,其标准差为均值的10%。利用MATLAB的随机数生成器得到负荷节点的运行样本数据作为监测数据。
利用拉丁超立方抽样法对监测数据进行抽样,得到基波电压、电流,谐波电压、电流和功率因数的采样数据,本文采样次数取500次。对500组采样数据分别进行确定性的负荷模型参数计算,得到500组结果,进行概率统计分析后可得到模型参数的期望值、方差和累积分布曲线等。将计算结果与实际的仿真参数进行对比,结果列在表1中。模型参数的概率分布曲线分别如图3所示。根据图中结果和表中数据对比可以看出,采用拉丁超立方抽样的计算结果能够准确地估计模型的统计特征参数,在大幅减小计算量的情况下,精度较高。
5 工程算例
实测数据来源于某变电站10 k V出线,每3 min记录一次,记录数据为基波和各次谐波电压、电流幅值,同时可以获取运行时的功率因数。此处采用的是基波电压、电流幅值与5次谐波电压、电流幅值进行参数辨识。15 d的6 900组监测数据波形如图4所示,波形从上至下分别为基波电压、电流幅值与5次谐波电压、电流幅值。
分别采用蒙特卡罗模拟法和拉丁超立方采样法进行参数辨识。其中,蒙特卡罗模拟法需要对每一组监测数据进行一次计算,即需要6 900次计算,而拉丁超立方采样法在500次抽样时就能达到较好的计算精度。对比可以看出,拉丁超立方采样法降低计算量的效果十分明显,而该方法所增加的只是对大量离散监测数据的采样过程,该过程额外增加的时间相比于节省的计算时间要少得多。由此可知,拉丁超立方采样法具有减小蒙特卡罗法计算量的作
用,并且监测数据的规模越大,其效果越明显。
蒙特卡罗模拟法和拉丁超立方采样法进行统计建模的计算结果的期望值和标准差列在表2中,其概率分布曲线如图5所示。
通过仿真对比可以看出,本文方法能从大量的历史监测数据中准确得到用户模型参数的统计特征参数,从而快速地建立用户的谐波污染统计模型,具有较好的工程应用价值。
6 结论
海量用户数据 第2篇
随着电力企业信息化水平的不断提升,能源互联网和电力体制改革的不断推进,电力营销系统在企业日常生产中的重要性日益凸显。2015年云南电网推广CSG II营销管理系统,重点包括业扩报装、抄核收、客户服务和用电检查四大功能,覆盖了20个客户全方位服务流程、10类营销客服业务专业、342项协同业务。负责存储和管理云南电网下属供电单位的用户数据、业扩数据、计量数据、计费参数、银电互联、抄表信息、电费台账、账务数据和财务结算等数据。由于系统横向协同关系复杂,涉及与营业厅、自助终端、第三方支付、移动应用等系统的接口,同时还与安全级别程度较高的电网运行系统对接,如调度自动化系统、配电自动化系统、负荷控制系统等。系统用户数量众多,任何一个环节的安全破坏极易导致自身及其他系统的安全相继受损,甚至造成较大的社会影响,因此其安全性十分重要。
目前云南电网营销系统配备了较为完善的安全防护措施,能够抵御常规的攻击,但对于目前流行的APT渗入等攻击方式,以及内部人员恶意行为,缺少快速、及时的发现手段,仅能通过操作日志后期审计发现,效率低、时间长,仅能用于事后追责,无法在初始阶段发现异常并阻断。利用海量用户行为日志分析技术,可以实现用户异常行为的及时检测与报警,管理人员能够快速确认异常,并及时采取措施,能够有效避免严重后果的产生。
1 用户行为分析技术现状
最初的用户行为分析更关注于电子商务平台对用户点击、停留时间等一系列行为的分析,从而分析出用户的兴趣点,并针对性的给出推荐产品,从而提升用户体验和销售额。
在信息安全领域,Malek Ben Salem和Shlomo Hershkop首次利用大量用户行为记录进行数据挖掘从而实现内部威胁检测的方法进行了研究,第一次正式提出了内部威胁,并且将其细化为了Traitor(组织合法成员)和Masquerader(外部伪装的内部成员)两类攻击,并且根据两类攻击者的特点进行了分析,提出了可行的应对建议。[1]。
2013年,美国国际科学应用国际公司SAIC联合美国四家高校联合开发了PRODIGAL[2]系统,专门用于美国敏感部门的内部威胁检测。目前PRODIGAL已经在美国的部分涉密企业实际部署。该产品使用与IT相关的7类111个数据集进行计数与比例作为特征,同时使用人员关系图作为辅助分析,应用指示器、异常和场景三个维度作为异常检测的起点,综合使用了15种机器学习算法实现内部威胁的检测。
随后陆续有研究人员提出基于多域信息融合的内部威胁检测方法[3]、基于用户行为动态变化的内部威胁检测方法[4]等,均在一定程度上降低了误报率。然而仍然存在一定的应用困难,无法形成成熟产品应用于实际企业环境中。
同时,上述研究成果难以直接应用于营销系统用户行为分析当中,主要原因是营销系统记录了用户登录时间、修改数据、功能访问的信息,与现有研究成果中记录用户登录终端、使用Email、浏览网页、使用/连接设备等数据模型差异较大,特征点也存在较大差异。
2 电力营销系统海量用户行为日志分析技术研究
2.1 营销系统日志数据清理与数据提取
(1)系统原始日志结构分析
目前,云电营销系统主要记录有3类日志信息:功能访问日志、系统数据修改日志、系统登录注销日志,分别存放在数据库3个系统表中。
登录日志的信息包括:登录日志标识、人员标识、登录类型、登录账号、用户姓名、登录IP、服务器IP、服务器名称、注销时间、登录时间、失败次数、响应时长等字段。
功能访问日志包括日志记录标识、人员标识、功能菜单标识、菜单名称、访问时间、访问URL、访问IP等。
系统数据修改日志包括记录标识、修改的数据表名、修改的数据记录主键与记录行、修改类型(增、删、改)、修改日期、修改人员标识、修改说明(本条日志的可读概要说明)、时间戳(精确时间)、修改人员访问IP。
三类日志基本上记录了用户在本系统上进行的操作,部分涉及IP的字段也无参考意义,比如服务器IP,在登录时往往由负载均衡分配,并且仅在登录日志中出现,相关用途并不大。
并且这三张日志表对于用户行为来说,是存在依赖关系的,比如数据修改日志一定是和特定的功能调用日志相关联的,而文献[3]提出的多域信息融合方法适用于关联性较弱的领域,如登录、设备、HTTP、Email等,难以直接应用该成果。
根据分析结果,如果需要对某个用户的操作记录进行分析,那有必要将三个记录表合成1份进行分析;而如果需要对系统总体的操作情况进行分析,那么保持操作内容的分离性是十分有必要的。
(2)营销系统日志数据清理
为了去除原始日志中多余的信息,使日志记录更适合于数据挖掘工具分析,并能够同时适用于单用户行为分析和多用户综合操作分析,需要在现有日志中提取关键特征,并根据特征进行日志格式的设计。
我们遵循3W2H原则,设计了who what how where when日志格式,设计有日志记录主键、操作账户、操作、操作细节、源IP、操作时间4个字段。数据库表结构如图1所示。
其中LOGID为本条日志的唯一索引,用于数据库对记录进行管理,实际挖掘中可以去除本属性。
RYBS和DLZH是一个一一对应的字段,DLZH是人可读的账号名称,RYBS是账号表中的主键数字编码,实际挖掘中可以仅使用DLZH,原始日志记录中不仅保存了用户标识,还保存有用户中文名、用户全网统一的用户名(形如xxx@xxx.cn),为了后续便于联合准入系统进行关联分析,DLZH字段保存了用户全网统一的用户名。
ACT字段描述了本条记录的行为,我们设计了营销系统中有Login、Logout、Func Invoke、Add_data、Modify_data、Del_data共6种操作类型,分别代表登录、注销、功能调用、增加数据、修改数据和删除数据,可以用于粗略的行为分析,也可以用于对每一类操作进行过滤,以进行深入挖掘。
Detail字段是ACT字段的详细描述,对于Login、Logout来说没有详细信息,仅重复填充;对于Func Invoke来说,由于原日志中记录的菜单编码、URL和菜单名称均是一一对应的,为保证可读性,Detail字段记录了调用的功能菜单名称;而Add_data、Modify_data、Del_data字段在原始日志中记录的内容包括修改的数据表名以及该条数据的记录主键值,实际应用中单独参考数据主键没有实际意义,而结合实际记录进行分析将给系统带来较大压力,极可能影响系统稳定运行,因此此处Detail字段仅记录修改的表名。
IP字段记录的是该账户进行本次操作的源IP地址。
DLSJ字段记录的是本次操作发生的时间。
(3)数据清理总结
通过上述数据清理工作,将不同类型的日志进行特征提取、日志合并,去除对数据挖掘意义不大或目标不明确的记录字段,形成一个适合进行数据挖掘的日志记录格式,为后续的挖掘工作奠定了基础。
而要想获得良好的数据挖掘结果,成功应用聚类、决策树等挖掘算法,还需要对记录进行分类,针对本项研究内容需要从海里日志记录中提取一定数量的日志样本,对样本中每一个操作记录进行人工分析,标识该记录的异常、正常等,作为挖掘模型的训练数据集,并保留一部分识别出的记录,去除标识字段结果,用于数据挖掘模型测试。
由于时间有限,目前暂未进行上述工作,在后续工作中将开展相关工作。
2.2 电力营销系统用户行为日志分析
分析特征提取与模型设计
(1)账号共享情况检测
通过对账号登录的IP地址进行统计,能够发现多人共用账号的情况,进一步对登录和注销时间内同一账号同一IP的登录注销记录统计,可以发现单机多重登录的情况,便于落实安全管理制度。针对营销系统登录情况,针对同一账号统计登录IP的个数,个数大于1认为账号存在账号共享使用的情况。
(2)账户异常登录情况检测
对账号登录的IP地址进行次数统计,提取出最常登录的3个IP地址,当最常登录的IP地址变化时,结合网络准入系统协同验证,对于未在本人证书插入的终端IP上的登录行为认为是异常。
(3)账号口令破解情况检测
通过检测一个较短时间周期(1小时)内单个IP上登录的账户数量以及不同账号的登录失败次数,其数量显著较高的IP可以怀疑其进行账户口令破解或登录测试。
(4)用户在线与登录情况统计
通过对用户工作时段和非工作时段的登录时长进行统计,分析营销系统各账户每天使用系统的情况,包含单帐户登录时长和总用户在线时长,可以用来识别僵尸账号和时间过长的异常账户。统计一段时间每天(8:00-18:00,18:01-次日7:59)各账户的登录记录,根据记录中的登录时间和注销时间及登录次数计算每个时间区间内的账号在线时长,最后计算总用户在线时长。
(5)用户菜单访问情况统计
通过对账号菜单调用情况进行统计,分析用户访问功能的情况,统计一段时间内(1天或1周)各菜单的调用情况并进行排序,获得该用户最常用的前10个菜单列表,当菜单列表变化时认为用户行为存在改变,需要进一步调查。
(6)用户数据修改情况统计
通过对单个用户的数据修改情况进行统计,分析用户在数据修改方面的情况,统计一段时间内(1天或1周)用户执行新增、修改、删除的数据表名数量,获得该用户最经常增加、修改、删除的前10个数据表,当数据列表变化时认为用户行为存在改变,需要进一步调查。
2.3 检测模型在信息安全统一检索平台的实现
(1)账号共享情况检测及账户异常登录情况检测
通过对每个账户的登录次数进行计数并对每个账户进行聚合,搜索过去110天内所有登录行为日志,同时对总计数情况使用分割条形式的账户字段聚合,利用统一信息安全检索平台中的可视化工具进行绘图,纵轴为登录次数,横轴为登录账户,不同颜色代表登录的IP,如图2所示。可以看出有10个账户涉及账户共享。
(2)账号口令破解情况检测
通过检测一个较短时间周期(1小时)内单个IP上登录的账户数量以及不同账号的登录失败次数,其数量显著较高的IP可以怀疑其进行账户口令破解或登录测试。对总计数情况使用分割条形式的IP字段聚合,利用统一信息安全检索平台中的可视化工具进行绘图,纵轴为登录次数,横轴为IP,不同颜色代表登录的账户,如图3所示。可以看出第二列的IP存在多个账户登录的情况,需要进行深入调查。
(3)用户在线与登录情况统计
通过统计用户登录与在线时长,形成如图4所示的账户在线情况,通过排列趋势的变化发现异常用户使用系统的情况。
(4)用户菜单访问情况统计
用户对菜单的访问情况统计如图5所示,即实际应用中需要跟踪前5个账户的情况。
(5)用户数据修改情况统计
对用户修改数据情况的统计,将新增、修改、删除分别统计,纵轴为修改次数,横轴为用户账户,不同颜色表示修改的数据表名,如图6所示。实际应用中重点关注图中展示的用户名称及其图示的变化情况。
3 结束语
通过对营销系统原始日志进行清理,形成适合数据挖掘的日志格式,并提取了主要安全行为特征,通过一系列挖掘语句和统计聚合函数的应用,形成了可视化的数据挖掘分析图形,对于直观地展示系统安全状态起到了较好的效果,也可以根据安全模型生成安全警报,帮助安全管理人员快速发现隐患并进行处理。
后续可以利用时间序列的数据挖掘方法,对单个用户的行为稳定程度进行分析,设计合理的告警门限,当用户行为发生较大变化时进行提示,便于开展调查,将隐患消除在起始阶段。
参考文献
[1]Malek Ben Salem,Shlomo Hershkop,A Survey of Insider Attack Detection Research[J].Insider Attack and Cyber Security,vol.39,pp.69–90(2008).
[2]Ted E.Senator,Henry G.Goldberg,Alex Memory,etc.Detecting insider threats in a real corporate database of computer usage activity[M].KDD'13 Proceedings of the 19th ACM SIGKDD international conference on Knowledge discovery and data mining,ACM New York,NY,USA 2013.
[3]H Eldardiry,E Bart,J Liu,J Hanley,Multi-Domain Information Fusion for Insider Threat Detection[J].Security and Privacy Workshops IEEE,May 2013.
海量数据存储系统研究 第3篇
本论文主要以遥感地面站的工程研制为研究背景,对实现地面站数据记录存档子系统的主要技术进行了深入研究,并以此为基础,提出了满足系统工程研制需求的设计方案。
1 系统总体结构设计
海量数据存储系统主要由高速数据采集卡、数据记录服务器、磁带库、RAID磁盘阵列、网络设备、数据记录存档管理软件等组成。
高速数据记录卡完成输入信号ECL到TTL电平的转换、串并转换、数据缓存、数据管理及高速PCI接口。高速数据记录卡上设置4个缓冲区数据,并由数据管理模块来保证不同通道间的数据同步。
数据回放卡采用与数据记录卡类似的PCI技术,并与数据记录卡一同插在数据记录服务器中。工作时,需要解决数据记录卡和数据回放卡的并存和工作协调。
在高速数据的记录系统设计中,高速数据在主机内部的传输受到计算机系统结构的影响,如果在高速数据传输系统的设计中忽略对现代微机系统内部数据传输通道结构的分析,会成为设计系统中的一道潜在的瓶颈。服务器作为系统架构的平台是必不可少的,它必须具有较强的处理能力和较强的I/O能力,才能够适应海量数据存储和交换的要求。
磁盘阵列作为实时数据的存储介质,与高速服务器的接口采用SCSI以保证传输速度。RAID盘具有高速度、高可靠性,支持RAID硬盘具有热插拔功能。支持多种RAID模式,这些RAID功能保证了用户数据的高可用性,保证数据的高可靠性。同时磁盘阵列容量具有扩展性,支持后续任务的增加,易于扩容。数据记录子系统中提供的LTO-2磁带驱动器,作为数据备份设备,用于事后数据的转存。
时码模块主要接收站内时频设备的时间信号,完成时间信息的转换,实现对数据记录存档系统的时间统一,用于数据记录存档数据的时间标记。
卫星数据接收过程中,在记录存档管理软件的管理和调度下,解调后的基带数据I、Q数据实时数据经过高速数据记录卡实时读入服务器,并实时记录在RAID磁盘阵列上。也就是说,在主机管理和调度下,经过解调后的高速基带数据流首先输入到高速数据记录卡,在完成接口匹配及速率调整后进行数据缓冲,然后经主机PCI总线将数据写入到RAID盘上,实时完成卫星数据的记录。卫星过境后将数据事后转存到磁带上。数据记录存档子系统具有卫星侦察数据的网络传输能力,通过千兆网络接口可以实现与外部之间的数据导入与导出。
2 系统存储结构模式
由于每颗遥感卫星设计上的独立性,无论下行数据码速率还是数据格式都没有一个统一的规范。从卫星地面站数据记录系统的发展来看,工作站的处理能力不断提高,所处理数据的码速率和数据容量不断提高,存储技术也不断更新提高。因此,如何选择相对通用的数据存储方法和存储介质,是遥感卫星地面站运行中的一个重要问题。
在存储技术中,应用比较广泛的存储模式有三种:直接连接存储(Direct Attached Storage,DAS)、网络附加存储(Network Attached Storage,NAS)及存储区域网络(Storage Area Networks,SAN)。它们都是以RAID技术为基础,一般都会提供RAID0、1、5的支持。
DAS是指将存储设备直接连接至一台服务器上。NAS是一种特殊的、可以通过网络对各种的系统平台提供文件共享服务、能完成单一或一组指定功能(文件服务、HTTP服务、EMAIL服务等)、基于网络的存储模式。SAN是一种类似于普通局域网的高速存储网络,是一个独立的、专门用于数据存取的高速专用网络。
由于本课题直接应用于遥感地面站的数据记录存档系统,对数据安全性、存储性能要求高,在系统存储方面方面需要有可扩展性和灵活性。同时,站内接收存储的数据存储时物理集中,数据管理逻辑上又彼此独立,并要求能够对物理分散的两个地面站的数据完成高速集中备份。
根据对以上存储设备和存储模式的优缺点的比较,选用DAS与SAN相结合的混合存储结构模式。选择磁盘阵列作为在线存储设备,LTO磁带库作为离线存储设备。
3 结束语
海量数据存储系统是遥感卫星地面站重要的一个组成部分,本文简要介绍了遥感地面站各部分的功能和数据存档系统的总体结构。由于卫星数据存档时,要求达到较高的速率,因此对服务器的选择尤为重要。卫星数据实时接收后存档到RAID磁盘阵列,一定天数后备份到磁带库,系统存储结构选择DAS与SAN相结合的混合存储结构模式。
参考文献
[1]葛成辉,朱正中.气象卫星遥感原理[M].北京:清华大学出版社,1992:13-15.
[2]梅安新,秦其明.遥感导论[M].北京:高等教育出版社,2001:21-23.
[3]伍尚志,杨仁忠.高速遥感卫星数据采集系统的研究与实现[J].微计算机信息,2005(21):69-70.
海量测绘成果数据的存取 第4篇
在日常工作程中, 我们存在大量的成果数据需要管理, 对这些成果进行分类存取。在这些教学成果中, 不乏存在一些如图像, 多媒体等巨型文件。这些数据被称为二进制大对象 (BLOB) , 对于这些文件要采取不同的存储方法。一种存储方法是表+实体的方法, 即在数据库中存储文件在硬盘上的存储路径, 这种存储方法给数据的管理和安全带来一定的隐患;另外一种方法是将BLOB对象进行分块存切割储于数据库中, 采用这种方法可以避免因为文件路径改变而出现的一系列问题, 能够高效率、安全的对成果数据进行管理。
1 系统设计
1.1 系统总体功能设计
系统在总体上划分为用户管理、成果数据上传、成果数据查询和成果数据下载模块
1.1.1 用户管理
由于测绘成果数据多为涉秘数据, 对用户权限进行了普通用户和管理用户设置。普通用户登陆后能检索成果目录, 管理用户能对成果进行上传, 下载, 检索等操作。
1.1.2 成果数据上传
测绘成果数据分为矢量和栅格2大类。管理员用户可以进行矢量数据上传和栅格数据上传。成果数据在存储之前均以压缩为RAR格式。
1.1.3 成果数据查询
用户可以对所有的成果数据进行检索, 支持多条件模糊查询, 如产品名称、产品类型、入库时间、数据类型等。
1.1.4 成果数据下载
用户在获得管理员的认可后, 对需要使用的矢量数据和栅格数据进行下载。
1.2 系统数据库设计
根据系统设计, 数据库分为用户数据库、矢量成果数据库和栅格成果数据库。
1.2.1 用户数据库
根据用户的不同权限设置了不同的功能, 在用户数据库中设置了name和admin字段。管理员用户admin字段值固定为1, 普通用户admin字段值为0.
1.2.2 矢量成果数据库
矢量成果数据库中设计了成果名称、产品类型、产品比例尺、压缩格式 (默认为.RAR) 、生产日期、入库时间、产品说明和备注信息等字段。
1.2.3 栅格成果数据库
设计栅格成果库是为了便于能够对成果进行快速检索和分类管理, 其字段同矢量成果相同。
1.2.4 产品使用数据库
为了数据安全性, 设计的管理员下载权限, 普通用户可向管理提交申请下载使用数据, 管理员对用户进行登记。数据库中设置了用户名, 单位, 使用成果名称, 归口单位, 用途, 下载日期等字段。
2 系统实现
根据系统设计, 实现了用户上传、检索、下载和客户使用登记功能。
2.1 成果上传
成果上传分为矢量成果上传和栅格成果上传, 鉴于系统设计的成果均以要所文件方式入库, 所以两种成果上传入库实现方式基本相同, 这里以矢量成果上传为例介绍。
首先设置的几个必填字段需要填写, 如产品名称, 产品类型, 比例尺, 文件类型和产品说明。
在本机浏览添加需要入库的产品, 选择数据入库按钮入库进行入库。鉴于许多文件较大, 对成果设置为blob字段, 但是普通的方式是不能把一个几百兆甚至几GB的文件写入数据库的。所以, 在这里首先要计算文件的大小, 根据大小来进行判断是否应该进行分块上传, 然后对文件进行逻辑分割, 实现文件的分割上传, 值得注意的是, 在数据加载过程中一定要锁定, 同样, 上传完成后要进行解锁。
2.2 成果检索
用户可以对库中的成果进行检索, 以查看库中存在的成果。在这里, 可以通过产品名称、产品类型和比例尺进行但条件或多条件组合的模糊查询。查询结果将显示产品的所有属性及详细信息。
2.3 成果下载
成果下载分为矢量成果下载和栅格成果下载, 两者实现方式相同。首先根据设定条件对成果进行检索, 选择需要的成果进行下载。下载文件的实现方式同上传原理基本相同。先判断数据库是否存在需要下载的文件, 如果存在, 则计算文件的大小, 根据文件大小判断是否需要分块下载, 有时候会因为分块不均匀, 导致文件的取值较大。实现文件下载函数核心代码如下:
2.4 客户使用登记
由于测绘成果具有涉密性, 对成果使用要进行登记备案。管理员对需要使用成果的客户信息及使用成果名称, 用途, 时间等进行登记并传入数据库。同样, 管理员可以通过成果使用的归口单位, 名称, 登记日期等进行成果使用统计。
3 结论
利用ORACLE对海量数据进行存储, 极大的提高了数据的管理效率, 对成果的使用进行规范化管理, 增加了数据的安全保障性, 并能够实时的对数据使用情况和使用单位进行快速查阅统计。
参考文献
海量数据存储管理方法的研究 第5篇
关键词:数据库,存储原则,数据查询
0 引言
当今数据库应用中,经常面临大数据信息的管理,如视频、音频、图形图像等数据的管理。单个数据文件的数据量往往高达几GB,甚至几十或上百GB。特别是近几年来,视频数据的积累成集合增长,如何有效地将此类数据存储到数据库中,以及在数据库中实现数据的查询是数据库应用技术必须面对的问题。
1 海量数据存储的原则
随着人们对音频、视频以及高清视频的需求,传统意义的服务器硬盘存储已无法满足此类数据的存储要求。为了解决这一问题,引入两个新的概念,分级存储和SAN。分级存储是将“一级Cache”、“二级Cache”、“内存”和“硬盘”的层级模式再次扩展,将最常用的数据存放在性能极高的大型磁盘阵列或超大型磁盘阵列,不常用的数据存储在低速磁盘阵列,几乎不用的数据存储在磁带介质上。大型的存储系统中可能要连接成百上千台存储设备,而传统的SCSI,IDE的数据连接方式由于其先天的缺陷无法胜任这样庞大的系统,因此引入存储区域网的概念,可将整个存储系统构架在一个网络架构上面,将各种计算设备、存储设备通过光纤连接在一起实现各种数据的高速互通[1]。
在组建大型存储系统时,存储设备型号的选择是重要核心环节之一,根据系统需求选择存储设备的性能、扩展性、安全性、稳定性和容量等方面的因素。访问频率高但价值不高的数据可采用在线系统的磁盘阵列存储,访问频率低、价值高、安全要求高的数据可采用非在线的电子磁盘或磁带存储[2]。同时磁盘阵列与磁带库之间的配合也尤为重要,将常用的数据存储到在线系统的磁盘阵列中,实现数据的正常访问和使用;定时采用覆盖或非覆盖的模式可将数据备份到磁带。当数据量达到一定程度后,人工实现数据的备份、迁移、归档和恢复等操作不仅工作量特别大,同时也无法保证工作的准确性和实效性。针对这种需求,必须在配备足够容量的高性能阵列的基础上再配置能够胜任存储海量数据的高性能自动化磁带库,并配置与之相关的数据管理软件来实现数据的自动备份、迁移、归档和恢复等存储管理操作。
2 海量数据存储的设计与实现
设计海量数据存储系统时,不仅要考虑系统的高性能,同时其数据的安全、可靠存储也是系统的关键问题。数据存储的任何失误,会给系统带来巨大的损失,甚至造成整个系统的瘫痪。数据丢失的隐患具有长期性、多样性和不可预测性等特点,其原因主要有设备故障、人为因素、黑客攻击和各种灾害等。因此数据存储系统必须拥有一套稳定、安全、可靠的存储框架来承担系统数据的增长,并能够主动对不可预测的灾难事先进行有效的预防。
海量数据存储系统业务应用管理主要有两个方面:基于应用层面,主要解决具有不同数据特性信息资料的应用管理,为用户提供准确、快速的检索手段;针对安全存储层面,主要解决系统和数据的备份、恢复、归档、分级管理、数据共享等,在为用户提供透明数据访问的基础上,以最安全、最经济和最有效率的方式在系统中管理全部数据资料。在系统设计和建设中仅考虑应用层面是远远不够的,应用层面虽然给用户一个很好的数据查询检索手段,但这一切都是建立在系统完全正常的基础上,同时也是完全不计存储成本的。一旦存储层面出现故障,再优秀的数据管理机制也会陷入瘫痪。因此海量数据存储系统不仅在设计时应考虑两个层面的协调建设,同时应将两个层面都纳入使用维护体系中,不能片面地只考虑某一层面。第一层面建立在第二层面的基础上,第二层面为第一层面提供有效保障。为更好实现第二层面对第一层面的有益补充,仅有一个高效的硬件存储平台是远远不够的,必须通过相关管理软件和性能优越的硬件平台相配合来达到目标。同时,这个实现过程还要以科学准确的管理策略、全面应用测试为基础,来完成这个数据管理过程。
2.1 备份与恢复
任何拥有大量数据的存储系统,都必须具有备份功能和恢复功能来保证数据不会因为逻辑故障而损失,包括操作系统的备份与恢复、业务数据的备份与恢复。备份是对操作系统或者是应用数据做出一个或多个复制版本,在系统发生问题时可以使用这个复制的版本进行恢复,使得系统应用中断时间最小、业务数据损失最少。系统中断时间取决于系统架构的搭建,系统如果有冗余设备就不会因为部分设备损坏而中断,但可能因为管理员的误删除导致系统无法正常运行;业务数据的损失控制取决于备份的粒度,备份的粒度越密集,业务数据损失的越小。同时对于应用架构搭建的非常合理的系统采用多点备份,几乎可以完全杜绝数据的缺失。
海量数据存储系统必须采用基于软硬件平台相互配合的自动备份方式。备份主要包括下面几个环节:各环节服务器操作系统的备份;各种结构化数据库的备份;各种非结构化数据的备份;对需要长期保存数据的归档备份;各种备份过程制定备份策略。
2.2 数据归档
当海量数据存储系统中磁盘阵列内的数据积累到一定程度,可以将这些文件按照一定的策略迁移到磁带库中。数据存储系统的特点决定数据资料的保存期限几乎是没有限期的,所以磁带库中的数据会不断膨胀,最终会膨胀到巨型磁带库难以承受的程度。为提高磁带库的利用率,可采用离线归档的手段将磁带库中使用率最低的数据归档移出磁带库,将这些归档磁带存放在另外一个大型仓库内,同时管理软件会记录所有的归档信息和过程,将来需要调用时可根据管理软件提示信息,找到归档数据、回调数据。
另外,从数据容灾的角度考虑,可以采用管理软件的备份、迁移或复制等自动功能,一份在线保管,另一份离线归档提高系统容灾能力。这一切都有管理软件全程监控和管理,简化了对大量数据的查找和使用。
2.3 迁移与分级管理
海量数据存储系统在日常资料收集过程中会产生大量的数据,这些数据不管其性质如何,使用频率如何,对大型数据中心来讲都是十分重要的,需要永久保存。访问频率极低的数据保存到在线存储上是对存储资源的浪费,但是完全对这些数据进行离线存储又会给应用带来不便,因此可利用存储系统运行的硬件平台配置相关软件来实现分级存储的解决方案。分级存储方案的功能实际上就是系统根据策略实现一定的数据迁移和数据回迁过程。数据的迁移与回迁是发生在在线存储盘阵与离线磁带库之间的,并且这个过程是自动化的,对用户的应用来讲是透明的[3]。
将阵列中不常使用的数据迁移到磁带库上,以节省阵列的数据存放空间,优化空间利用率,当数据被访问时再将数据从磁带库中装载进阵列。通过虚拟存储管理软件,对磁盘存储阵列与自动磁带库进行逻辑虚拟,构成了一个透明的存储系统。通过这种分层存储管理,可实现拥有“无限”的硬盘空间。
2.4 SAN文件共享
在海量数据存储系统中,多个服务器之间的应用需求仅仅依靠网络传输数据是无法满足的。如存储系统中多个服务器都需要对同一个视频进行编辑,传统的做法是一个服务器编辑完后,传送给另外一个服务器,依此类推。这种方法不仅网络传输占用大量时间,同时还需占用服务器大量的存储空间。为了解决这个问题,可建立一套基于SAN的共享文件系统,SAN共享文件系统是在需要共享资料的各个服务器之间形成一个类似于共享文件夹的存储池,各个服务器与这个存储器之间的数据交换是通过SAN网来传输的。IP网络只用来传输他们之间的一些控制信息、同步信息等内容。
通过使用SAN共享文件系统虚拟化存储系统,为系统内服务器提供数据共享,是数据高效率使用的基础。通过使用SAN共享文件系统,可以使系统内现有的以及未来各种异构平台,如AIX,Solaris,W2K等都使用相同的文件系统,并通过SAN系统保证为存储系统提供所需的高速数据访问,如图1所示。
3 数据查询
3.1 数据查询的优化方法
海量数据的查询优化方法主要有:(1)代数优化,对查询语句进行变换不涉及存储路径,变换后的语句执行更有效;(2)物理优化,根据存储路径选择存储策略;(3)规则优化,根据启发式规则选择执行策略;(4)代价估算优化:对已有优化策略进行代价估算,选择执行代价最小策略。对于海量数据查询方式优化往往采用一种综合的方法,以获得最好的效果[4]。
海量数据的查询优化最终实现是查询优化程序,确定每一次查询的最佳策略。查询优化程序转换SQL语句,使复杂的语句转换成为等价的但执行性能更好的SQL语句。查询优化程序的典型特征是基于开销。在基于开销的优化策略中,对于给定查询生成多个执行计划,查询优化程序选用估算开销最低的计划。查询计划是用户所编写的确定后提交的SQL语句的集合,是经过优化处理之后所产生的语句集合。DBMS处理查询计划要经历这样的过程:在执行完查询语句的词法、语法查询之后,将语句提交给DBMS的查询优化器,查询优化器先做代数优化和存取路径的优化,执行完毕后,由预编译模块对语言进行处理并生成查询规划,然后在合适的时间提交给系统处理执行,最后将执行结果返回给用户。因此用户所写语句的优劣至关重要。
3.2 海量数据的查询优化处理
代数优化处理。它是优化过程中的一个最基本的方法,是对查询进行等效变换,以减少执行开销。在变换查询时,总是让选择和投影先作,在做连接等二元操作。在连接时先做小关系的连接再做大关系的连接。在关系数据库系统中,用户使用SQL语言发出查询请求时,要采用不同的处理步骤对原始查询进行变换,这些变换工作都必须在处理查询请求和返回查询结果前处理完毕,首先词法分析处理,将最初的SQL查询语句转换成标准化的规范查询树。接着是标准后查询优化处理,即由查询处理器将规范查询树转换成有效的执行计划。常用的优化技术有启发式优化、语法优化、基于成本的优化和语义优化等[5]。
规则优化处理。合理的选择存储路径对海量数据表现的优化效果会特别明显。数据库内核向系统发出的数据查询操作,先是查询分析,优化器查询由规范查询树表示的有关查询的每个短语,确定它是可以被优化。接着索引选择,对于每个可优化子句,优化器首先检查数据库系统,看是否存在对访问数据有用的管理索引,如果子句中存在有用的索引,优化器就试图确定该子句的选择性,并根据海量数据的统计信息计算出子句的成本估计值。最后进行连接选择,优化器比较句子的各种顺序,然后选择能使连接物理磁盘I/O有最低估计处理成本的连接计划。
代价优化处理。优化过程的目的是为了提高海量数据查询的效率和性能,还要考虑各种数据库系统产品的硬件因素,如:网络性能、服务器的性能、操作系统的性能,甚至网卡、交换机等。在网络数据库系统中,系统的性能主要受I/O,CPU或网络的瓶颈的影响,为了提高系统性能,必须精心设置服务器、数据库、进程并减少数据库的冲突,消除瓶颈,使系统的处理时间最短。
3.3 海量数据查询优化的具体方法
合理使用索引。索引的使用要恰到好处,对海量数据尤为重要。其使用原则如下:在最频繁使用,用以缩小查询范围的,需要排序或分组的字段上建立索引。如果待排序的列有多个,可以在这些列上建立符合索引。尽量使用聚合索引,用聚合索引比用不是聚合索引的主键速度明显的快。
变换正规表达式。MATCHES和LIKE关键字支持通配符匹配,属于正规表达式,但这种匹配效率特低。如果把语句改为SELECT*FROM product WHERE pdate>“19980000”,在执行查询时就会利用索引来查询,显然会大大提高速度。
注意使用临时表。把表的一个子集进行排序并创建临时表,也能加速查询。临时表中的行要比主表中的行少,而且物理顺序就是所要求的顺序,减少了磁盘I/O,所以对海量数据的查询的工作量可以得到大幅减少。
4 结束语
随着现代科技水平的提高和人们对科技信息的依赖,使得数据存储量迅速增加,海量数据存储逐渐起到越来越重要的作用,怎样建设一个合理、优化的海量数据存储系统已成为数据存储服务面临的问题。在介绍海量数据存储原则的基础上,对海量数据存储的备份与恢复、归档、迁移和数据共享等方面进行设计,并对怎样优化数据查询的效率进行了分析。为海量数据存储系统的建设和优化进行了技术探索和尝试,对海量数据库的建立具有一定的意义。
参考文献
[1]路川,胡欣杰等.Oracle 10g宝典[M].北京:电子工业出版社,2008:205-240.
[2]姚书怀,刘兴伟.大型数据中心海量数据存储解决方案的设计[J].四川工业学院学报,2004,27(4):27-30.
[3]谭平平.基于ORACLE的海量数据实时处理系统的性能优化[J].华南金融电脑,2002,2:46-48.
[4]韩中,汪伟.海量数据的查询优化[J].科技资讯,2008,14:3-4.
基于云计算的海量数据存储 第6篇
随着计算机技术的快速发展和网络的日益普及, 越来越多的人利用网络来获取信息、存储资料和进行电子商务。各种类型的网站不断产生, 比如政府利用网络进行公务, 教育行业利用网站资源进行教学的开展, 医院利用网站进行挂号、在线诊疗等等。整个网络产生了巨大的数据量, 如何存储网站中的这些数据, 成为了一项亟待解决的问题。传统的存储方式已经很难满足海量数据存储在容量、性能、存储效率和安全性等方面的要求, 现在常见的海量数据存储技术可以分为直接附加存储[1] (DAS) 和网络存储两种, 其中网络存储又分为网络附属存储 (NAS) 和存储域网络 (SAN) 。但是网络存储量日益增大, 网络中的存储负荷也越来越重, 传统的存储方式不可避免地产生了很多弊端。比如DAS简单易用, 但磁盘利用率很低, 存储分散。NAS对数据库支持不如盘阵和SAN。SAN存储效能优异, 但投资成本太高, 而且数据共享比较困难。
“云[2]”的概念最早是由谷歌公司在2006年底提出, 这就为解决网络中海量数据的存储带来了可能。云计算是一种共享资源的计算模式, 具有强大的信息存储与处理能力。本文首先介绍了云计算中的Map Reduce[3]模式, 该模式是云计算中的核心计算模式, 然后结合Map Reduce模型的Hadoop[3]分布式并行编程框架, 最后提出海量数据存储的技术架构图, 并对基于云计算的海量数据存储进行了分析和研究。
1 云计算环境下的海量数据存储模型
1.1 Map Reduce模型
Map Reduce模式在云计算的计算模式中处于核心地位, 用于大规模数据集的分布式[4]并行运算。map (映射) 和reduce (化简) 是Map Reduce模式的主要思想, 指定一个Map (映射) 函数, 接受一个键值对 (key-value pair) , 产生一组中间键值;Reduce (化简) 函数, 接受一个键, 以及相关的一组值, 将这组值进行合并产生一组规模更小的值 (通常只有一个或零个值) 。Map Reduce的流程如图1所示。
映射 (map) 函数就是对一些独立元素组成的概念上的列表。事实上, 每个元素都是被独立操作的, 而原始列表没有被更改, 也就是说Map操作是可以高度并行的, 这对高性能要求的应用以及并行计算领域的需求非常有用。化简 (reduce) 操作指的是对一个列表的元素进行适当的合并。虽然他不如映射函数那么并行, 但是因为化简总是有一个简单的答案, 大规模的运算相对独立, 所以化简函数在高度并行环境下也很有用。由图1可见, Map函数的程序将分割后的数据映射成不同块分配给计算机处理, 以此达到分布式计算的效果, 然后利用Reduce函数的程序汇总和输出结果。Map Reduce借鉴了函数式程序设计语言[5]的设计思想, 其软件实现是先指定一个Map函数, Map函数的任务就是完成映射, 即把将输入的
Map Reduce在处理海量数据的过程中, 运用了数据的局部性原理。Map Reduce的集群采用无共享式的架构, 只需普通PC机就可构成。在数据处理之前, 数据集被分配至各个节点。处理过程中, 由各个节点通过map程序就近读取本地数据, 数据经过map处理后, 再进行归并和排序, 然后再分发给reduce节点, 这样就避免了大量数据的传输, 大大提高了处理效率。Map Reduce集群采用无共享式架构的另一大优势就是集群具有良好的容错性, 一部分节点如果产生死机不会影响整个集群的正常工作。
1.2 Hadoop框架技术简介
Hadoop是一个用于运行应用程序在大型集群的廉价硬件设备上的框架。Hadoop可以为应用程序提供一组稳定而可靠的接口和数据运动。在Hadoop中实现Map Reduce算法, 可以将应用程序分割成许多很小的工作单元, 每个单元可以在任何集群节点上执行或重复执行。Hadoop还提供了一个分布式文件系统用来在各个计算节点上存储数据, 并提供了对数据读写的高吞吐率。因此, 我们也可以这样来理解:Hadoop=HDFS (文件系统) +HBase (数据库) +Map Reduce (数据处理) 。Hadoop的框架结构和内部结构图分别如下表2、图2所示:
Hadoop HDFS分布式文件系统具有高容错性, 并且可以被部署在低价的硬件设备之上。HDFS很适合大数据集的应用, 并且提供了对数据读写的高吞吐率。HBase是一个分布式的开源数据库, 基于Hadoop分布式文件系统, 模仿并提供了基于Google文件系统的Bigtable数据库的所有功能。HBase主要用来处理庞大的数据表, 可以用普通PC机处理超过10亿行的数据, 和有数百万列数据构成的数据表。Hadoop Map Reduce是一个使用简单的软件框架, 基于这个框架写出的应用程序, 能够在大型商用机的集群上运行, 并且以一种可靠容错的方式并行处理TB级别上的数据集。
由图2看出, 海量的数据交给Hadoop处理后, 在Hadoop的内部, Hadoop提供了HDFS和HBase, 来存储或部署到各个计算节点上, 最终再在Hadoop内部对其数据采用Map Reduce的模式进行处理, 然后输出最终的处理结果。
2 海量数据存储模型分析
在对Hadoop框架和Map Reduce的计算模式分析的基础上, 我们来分析下海量数据的存储模型是如何进行架构的。如下图3[6]所示为海量数据的技术架构图:
由上图我们可以看到, 对于海量数据产品技术架构, 我们将其分为5个层次, 从上至下依次是数据源层、计算层、存储层、查询层和输出层。这里, 我们来重点理解1-4层:
1) 数据源层。存放着网站中 (比如教育网站或电子商务网站) 的交易数据。在数据源层产生的数据, 通过Data X, Db Sync和Timetunnel准实时的传输到下面计算层的Hadoop集群中。
2) 计算层。在这个计算层内, 我们采用Hadoop集群, 这个集群是计算层的主要组成部分。在这个集群上上, 系统每天会对数据进行不同的Mapreduce计算。
3) 存储层。在这一层, 我们采用了My Fox和Prom。My Fox是基于My SQL的分布式关系型数据库的集群, Prom是基于Hadoop Hbase技术的一个No SQL的存储集群。
4) 查询层。在这一层中, 有一个数据中间层 (glider) , glider起着接口的作用, 它是通过HTTP协议来对外提供restful方式的接口, 数据获取通过一个唯一的URL地址。同时, 数据查询通过My Fox来查询。
对于海量数据的存储分析, 我们重点来研究技术架构图中的第三层, 也就是存储层。依次对存储层中的My Fox、Prom和glide的技术架构进行分析。
2.1 存储层中的查询代理层My Fox
在这一层中, 底层的数据存储引擎采用了My SQL的默认存储引擎 (My ISAM) , 我们还设计了一个查询代理层My FOX。My FOX基于分布式My SQL的集群, 可以很好应对海量数据的查询。如下图4所示为My FOX的数据查询过程。
在设计My FOX的每一个节点时, 我们采用热节点和冷节点两种节点类型。热节点主要是用来存放最新的以及被访问频率比较高的数据;冷节点主要是用来存放相对陈旧的以及访问频率比较低的数据。在存储这两种类型的节点数据的过程设计中, 我们分别从硬件条件和存储成本的角度考虑, 选择了用两种不同类型的硬盘来存储访问这两种不同类型的节点数据。如下图5所示:
对于“热节点”的数据, 选择了SAS硬盘, 转速为15000转/分。如果按照一个节点使用两台机器来计算的话, 单位数据的存储成本约为4.5W/TB。那么对于“冷节点”的数据, 选择了选择了SATA硬盘, 转速为7500转/分, 单位数据的存储成本约为1.6W/TB。从容量来看, “热节点”的硬盘容量更大, 但是存储成本也相对更高。
2.2 存储层中的Prom
如下图6表示了Prom的数据存储结构, 图7表示了Prom的查询过程:
由图6可以看出, Prom是基于HBase技术的一个存储集群, 在Prom中存放若干的数据属性对, 以备进行查询计算等操作。图7是以商务网站笔记本信息为例, 使用Prom的一个求和运算的查询过程, 通过查索引, 从节点获取数据, 进行运算, 将结果放入缓存。
2.3 数据中间层glider
中间层的作用是用来隔离前后端, 也正基于这个思想来进行设计。中间层glider主要负责各个异构表之间数据的JOIN和UNION等计算, 并起到隔离前端数据和后端存储的作用, 为数据查询提供统一的服务。如下图8所示为glider的技术架构:
除了起到异构“表”之间的数据整合以及隔离前后端的作用之外, glider还有一个很重要的作用就是缓存管理。从图8中可见, 中间层glider实际存在两层缓存, 一级缓存是用来整合之后基于独立请求的作用, 二级缓存是基于各个异构“表” (datasource) 的。除此以外, 在各个异构“表”的内部还可能存在自己表内部的缓存机制。在设计缓存系统的时需要考虑两个问题:缓存穿透[7]和失效时产生的雪崩效应[8]。缓存穿透的含义是查询一个必然不存在的数据。缓存是的写入是在不命中时被动进行的, 出于容错的考虑, 如我们在存储层中查不到数据, 那么就不写入缓存, 这样就会导致每次对这个不存在的数据发出请求都要到存储层进行一次查询, 那么就失去了缓存的意义。我们采用的方法就是如果一个查询返回的数据为空, 对这个空结果仍旧进行缓存, 但要控制它的过期时间最长不能超过五分钟。缓存失效时会产生雪崩效应, 这会对底层系统产生很可怕的冲击, 在设计时我们采用缓存过期机制。从理论角度来看, 能够将各个客户端数据的失效时间在时间轴上进行均匀地分布, 这就在一定程度上避免了缓存失效带来的雪崩效应。
3 结束语
文章提出的海量数据存储架构主要是基于云计算的Hadoop分布式平台和Map Reduce的计算模型。此架构存储层的Myfox可以对不同类型数据进行分类处理, 提高存储效率;Prom集群处理时使用大量低成本低耗的计算机组成, 系统的使用成本降低, 更加经济实用;Glider缓存技术的使用可以有效避免海量数据存储中经常发生的安全问题, 使系统更加有效可靠。该技术架构具有一定的推广价值, 可进一步应用在教育、商务等网站中。
参考文献
[1]侯建, 帅仁俊, 侯文.基于云计算的海量数据存储模型[J].通信技术, 2011, 44 (5) :163-165.
[2]钱戴明, 乐嘉锦.云计算在校园多媒体系统中的应用[J].计算机应用与软件, 2011, 28 (12) :239-242.
[3]多雪松, 张晶, 高强.基于Hadoop的海量数据管理系统[J].微计算机信息, 2010, 26 (5-1) :202-204.
[4]徐小龙, 吴家兴, 杨庚等.基于大规模廉价计算平台的海量数据处理系统的研究[J].计算机应用研究, 2012, 29 (2) :582-585.
[5]程苗, 陈华平.基于Hadoop的Web日志挖掘[J].计算机工程, 2011, 37 (11) :37-39.
[6]彭宏, 杜楠.基于并行数据库的海量商务数据管理系统研究[J].计算机应用研究, 2009, 26 (2) :614-616.
[7]赵宏伟, 宋宝燕, 邵一川.云计算环境下的一种高效的资源管理策略[J].计算机科学, 2012, 39 (2) :212-215.
海量数据的容灾实施方法 第7篇
随着信息化进程的不断深入,企业的业务流程的运转越来越高度依赖于数据,使得数据成为了支撑企业运作的重要基石。同时,IT数据大集中的趋势越来越明显,而且业务的运行对数据的依赖程度也在不断增强,系统中的数据已经由TB级向PB级迈进,如何保护海量数据是目前越来越多企业面临的问题。
2. 目前的容灾实施方法
2.1 容灾概念
容灾是在相隔较远的异地,建立两套或多套功能相同的IT系统,互相之间可以进行健康状态监视和功能切换,当一处系统因意外(如火灾、地震等)停止工作时,整个应用系统可以切换到另一处,使得该系统功能可以继续正常工作。
2.2 主流容灾实施方法
整体而言,容灾的实施过程是根据企业本身的业务特征、技术能力、财力、信息技术环境对信息技术的依赖程度,制定一套应对信息系统灾难打击的措施的实施过程,是一个周而复始,持续改进的项目过程,包含图1所示的六个阶段:
具体来说,各个服务厂商会根据各自的理念和经验设计自己的实施方法模型。如:EMC公司的容灾实施方法模型包括规划、建立和管理三个阶段,如图2所示:
在IBM的业务连续性和灾难恢复方法论中,由分析评估、设计实施和维护管理三个阶段(包括八个步骤)组成一个循环往复的闭合系统,如图3所示:
以上的容灾实施方法都比较全面地提供了实施各阶段的指引,但由于海量分析数据牵涉的系统多、覆盖的部门广、涉及的业务流长,在风险分析阶段,全面的实施方法会大大增加实施的难度、拉长实施的时间和增加实施的成本,因此,我们对目前的实施方法尤其是风险分析阶段进行了细化和优化,提出了针对海量数据容灾的便于企业实施的方法。
3. 海量数据容灾实施方法
海量数据的容灾实施分成三个阶段进行:
3.1 分析评估阶段
本阶段勾画海量数据所涉及的系统、数据、业务范围,分析关键风险,并根据对业务的影响程度,确定容灾需求,是本实施方法的重点。具体包括:现状分析、风险分析、业务影响分析、确定灾难恢复目标四个步骤。
(1)现状分析
1)描述海量数据所涉及的系统概况:包含的业务系统、核心系统、系统间的数据交流和依赖关系。
2)了解系统的硬件情况:主机、存储、网络。
3)了解系统的软件情况:操作系统、数据库版本、是否采用集群、是否存在异构。
4)分析数据的部署情况:分析系统中的数据特性,掌握哪些数据是基础数据,哪些数据是过程数据等,并掌握每种数据的数据量大小,更新频率以及数据的重要程度。
5)分析数据的使用情况:了解各类数据所涉及的应用,各种应用的优先级。
6)了解数据的容灾现状:数据的规划容量、实际容量、增长速度、生命周期、保护措施等。
在此过程中,可以使用表格、图形等方式进行直观的对比分析,如:
(2)风险分析
根据对系统现状的分析,识别信息系统面临的自然和人为的威胁、识别现有风险防范和控制措施,了解企业存在的薄弱环节,预知信息系统面临的风险,分析每类风险可能造成的后果和影响。主要从以下几个方面进行分析:
1)计算机硬件故障。例如服务器损坏、硬盘的磁道损坏。
2)计算机软件系统的不稳定。由于用户使用不当或者系统的可靠性不稳定等原因,计算机软件系统有可能瘫痪,无法使用。
3)误操作。这是人为的事故,不可能完全避免。例如,在使用DELETE句的时候,不小心删除了有用的数据。
4)破坏性病毒。病毒是系统可能遭到破坏的一个非常重要的原因。
5)自然灾害,例如大火、洪水、地震等。这是一种人力几乎无法抗拒的原因。
(3)业务影响分析
分析海量数据所涉及的关键企业业务流程,以便在灾难发生之后,企业优先恢复关键业务流程。其重点是确定关键功能、其恢复优先顺序和相关性。在此过程中,可以使用表格、图形等方式进行直观的对比分析,如:
(4)确定灾难恢复目标
按照数据的风险情况和对业务的影响程度,选定关键数据并确立灾难恢复目标。一般可以分为:实时、分钟级、小时级、日级。
3.2 方案设计
根据容灾需求,分析所适用的技术,制定相应的策略,并设计容灾方案。包括:容灾技术分析、容灾策略制定和容灾方案设计。
(1)容灾技术分析
针对海量数据的特性,以及灾难恢复的目标选定业界适合做海量数据灾备的技术。对于不同的RTO、RPO,合理选择实时级、小时级、日级的容灾技术。
(2)容灾策略制定
从以下方面制定容灾策略:
1)容灾中心选择:一方面需要考虑生产中心和容灾中心的距离,两个中心的距离越远,两个中心之间共同依存的因素就越少,但容灾技术要求就越高,容灾实施的难度也就越大;另一方面要考虑容灾中心建设的地点是否具备所需的通信、电力等资源和符合条件基础设施。
2)建设模式选择:企业可根据管理成本、建设成本选择适当的建设模式。其中包括了生产中心容灾中心的单向灾难恢复模式,生产中心容灾中心、容灾中心生产中心的两个中心模式,对关键的业务一对多容灾模式,对多个生产中心集中容灾的多对一模式,生产中心同城容灾中心远程容灾中心结合模式,容灾外包模式。
3)设备部署选择:容灾中心需要部署存储设备、服务器和网络设备,以及其它一些必须的基础设施。(下转第52页)(上接第49页)
这时,需要考虑这些设备的规模选择、获取方式选择、网络链路状态的选择等诸多因素。
4)容灾技术选择:选择容灾技术应遵循成熟稳定、先进性、可靠性、可扩展和易于集成、开放性和相对透明的原则。
(3)容灾方案设计
按照各种业务应用场景需要,结合选定的容灾技术,制定解决容灾需求的综合方案。
3.3 方案实施与评估
根据方案部署软硬件,制定相关的制度,并进行必要的培训。在方案实施后,定期进行方案的评估。
4. 总结
通过细化并优化的分析评估方法,我们能快速梳理出海量数据关键的容灾需求,并结合简化后的容灾实施方法,能加快企业数据容灾机制的建立和实施。该方法已在电信某企业内部进行了实验室级的实施,能快速地明确容灾需求,并提高了容灾方案的实施效率。
参考文献
[1]王胜航.IBM容灾白皮书.IBM,2009.
[2]EMC、EMC容灾与业务连续性解决方案.EMC,2008,6.
海量用户数据范文
声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。


