云计算环境下基于文件实现异步数据存储的方法_3

文档序号:9766023阅读:来源:国知局
lt;xs :. element, name二"da-t过f i.l.e__pa亡h" typs二.".xs:d:陆t.ri.n'g" ./> <xs::- e.l.培抑e:n't name= " data'fi.le_si 玄赁"type= ".xs'd::.居txing" ./> <.xs 食Ie阻货n亡 n乱阻e二',datafil.e:_le.打-gth." 亡ype二.".Ksd: string"/> < X思:.e 1 芭me.nt. name-d讶t 过'f i 1 e_p.r e.f i X." t yp.e二"x.s d:思亡玉 i 几 g."./ > <xs:element name二"dataindex_prefix" type="xs过:string"/> <xs :.elem'e打t. name二"da-tan;am-ing-n;am培"type二"x狂过::st.ring"/> <./ X思:巧营 iqu 货 n.'c.e >' </.x.s:: CO抑pl.e:xTyps> <-/x's.: el.em.e打t>' </21哲;s.Gh'贷ma>
[01化]其中元素 da1:af i le_path表示数据文件的存储路径;dataf i le_size表示数据文件 的大小,超大后则会自动转换文件;datafile_length表示数据文件生成个数的设置,原始 按从0开始进行递增,如果达到最大个数,则重新从1开始;dataf i le_pref ix表示数据文件 名前缀;dataindex_pref ix表示数据索引文件名前缀;datanaming_name表示数据处理指针 文件名称。
[0166] 各文件之间的关系如图6所示。
[0167] b)配置数据文件的存储路径
[0168] 对应配置文件 f i le_store_conf ig. xml 中元素 da1:af i le_path的值。
[0169] c)配置每个数据文件的大小
[0170] 对应配置文件 f i le_store_conf ig. xml 中元素 da1:af i le_size的值。
[0171] d)配置数据文件生成的个数
[0172] 对应配置文件 f i le_store_conf ig. xml 中元素 da1:af i le_length的值。
[0173] e)配置数据文件相关文件的命名方式,包括数据存储文件、数据牵引文件、数据处 理指针文件
[0174] 分别对应配置文件f i le_store_conf ig. xml 中元素 da1:af i le_pref ix、da1:aindex_ pref ix、d曰 t 曰naming_name 的值。
[0175] (2)定义数据存储文件的存储格式,包括W下步骤:
[0176] a)配置数据存储文件的存储格式,其文件存储格式如图1所示。
[0177] 在配置文件file_store_config.xml中增加数据文件的存储格式,数据的格式如 下: <xs : schema xmlris: x.s二"http : //www. w3 *.o.r'g/200.1/XML贷:c.h'ema".> <xs : ele抓ent. na扣e:='" file这亡ore_dat.afll.e."> <xs.:; CQmpl ex.Typ:e> <-文这货equen'c:e> 「1 <x适elem毎nt 11.盘化篇二'"过身亡3亡皆护6" type二"x苗d :度亡ring" /'> L 」 <x.s-; element n:ame二"臣'har却広tor" t.ype:-,,x忍过.:-茵亡ring"/> </xs:S芭quence> <./XS : G〇raplexType> < /xs' : si em'en.t>' </:KS : .sche曲註>
[0179]其中元素 da化type表明数据的存储格式,支持二进制的存储方式;元素 charactor 表明数据的编解码格式,如GBK,UW8等。
[0180] b)数据文件中数据W二进制存储
[0181] 设置元素 da化type的值为byte,表明数据的保存格式为二进制方式存储。
[0182] (3)定义数据索引文件的存储格式,包括W下步骤:
[0183] a)配置数据索引文件的存储格式,其文件存储格式如图2所示。
[0184] 在配置文件f i le_store_conf ig. xml中增加数据索引文件的存储格式,数据的格 式如下: <xs:schema xmlns:xs二"http://www.扣3.org/200 l/XMLSchema"> <xs :element, name二"f ilestare_da.tai'n.dex"> <xs:complexTyps> <x百:=ssqu污打広e>
[018己] <x忌::e.leme.jat:.巧aine二"le巧巧t妃,I .t:yp.e:二,|.x巧过:stxl打g"./> :语:equsB:c.6> </xs.: complexType> </x这:-elem芭nt> </xs : SGh:ema>
[0186] 其中元素 length表明数据索引位置存储在文件占用的字节长度,配置为8位,支持 长整形的文件长度。
[0187] b)数据索引文件中记录数据的起始、结束位置
[0188] 在数据保存时,在相应数据的索引文件中记录数据所在的位置,每个位置占用设 置的长度字节数。
[0189] (4)定义数据处理指针文件的存储格式,包括W下步骤:
[0190] a)配置数据处理指针文件的存储格式,其文件存储格式如图3所示。
[0191] 在配置文件file_store_config.xml中增加数据处理指针文件的存储格式,数据 的格式如下: <xs : schema xmlns : xs="http : / /w材w. w3 . org/2〇 日l/XMLSchema:"> <xsele風色n:t. name二芭si:or€_dat.a打amin.g,,> <xs:complexType> <xs:sequence>
[0192] <xs: el':e:iri色凡t.打am房二"I巧打gtk" typ皂二"x这过狂tr'i打/> </xs:sequence> </xs:complexType> </.X 芭:投I ein.e n't > </xS ::擇0.1:16打1妊>
[0193] 其中元素 length表明当前数据处理所在的索引位置,占用长度与索引文件中数据 位置所占用的字节长度一致,配置为8位,支持长整形的文件长度。
[0194] b)数据处理指针文件中记录当前数据的处理进度
[0195] 在数据读取处理时,在相应数据的数据处理指针文件中记录当前处理的数据所在 的索引文件位置,其后数据为正在处理的索引文件名称。
[0196] 该实施例中的存储的数据按一定的要求和格式保存到文件中的操作包括W下步 骤:
[0197] (5)定义要存储数据的格式,包括W下步骤:
[0198] a)配置每条数据的存储格式
[0199] 修改配置文件f i le_store_conf ig ? xml 中节点f i lestore_dataf i 1 e下属性 datatype的值,默认系统支持二进制方式存储,对于特定格式可W通过扩展方式进行。
[0200] b)存储数据的编码格式定义
[0201 ]修改配置文件 file_store_conf ig. xml 中节点files tore_datafi Ie下属性 charactor的值,默认系统支持G服编码格式。
[0202] (6)组装存储的数据,包括W下步骤:
[0203] a)存储的数据按指定格式存储
[0204] 对象转换为二进制字节数组的伪代码如下:
[020日]Serializable dataObject二......
[0206] ByteArrayOutputStream elementOutstream = new ByteArrayOutputStreamO ;
[0207] ObjectOutputStream elementObjstr = new ObjectOutputStream (elementOutstream);
[020引 eIementObjstr.writeObject(dataObject);
[0209] elementObjstr.close();
[0210] byte[]elementBuffer=elementOutstream.toByteArray();
[0211] elementOutstream. closeO ;
[0212] b)数据按指定的编码格式进行编码
[0213] 对于保存对象为字符串的,如果转换为字节数组,需要按指定的编码进行编码,这 样的就能按指定的编码格式进行原来字符串的还原,编码的伪代码如下: 口Ublic .byte [] encode (String.' data,芭trin.g charset) { 「1 byte [ ] r.技suli: -= data..gstB:yt:色苗-Ccharset).; L 」 retu亡'打.resul't,-- }
[0215] (7)保存数据到数据文件,包括W下步骤:
[0216] a)调用数据存储的接口 IDataStore,接口类图如图4所示
[0217] IDataStore dataStore = DataStoreFactory.createDa
当前第3页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1