PB中,如何将xml中的数据导入到数据窗口中

zhtch 2009-08-01 04:12:17
PB中,如何将xml中的数据导入到数据窗口中,格式如下
<?xml version='1.0' encoding='gb2312'?>
<function>
<function_id>GetPersonInfo </function_id>
<out_code>000 </out_code>
<out_text>执行成功 </out_text>
<data rowcount="5" columns="10">
<row rownum="0">
<column colnum="0" colname="memberNO">43122901010100033 </column>
<column colnum="1" colname="name">贺丽芹 </column>
<column colnum="2" colname="countryTeamCode">431229020101 </column>
<column colnum="3" colname="familySysno">431229020101 </column>
<column colnum="4" colname="sexId">2 </column>
<column colnum="5" colname="idcardNo">431229198504050820 </column>
<column colnum="6" colname="age">25 </column>
<column colnum="7" colname="birthday">1985-04-05 </column>
<column colnum="8" colname="bookNo">4312290101010003 </column>
<column colnum="9" colname="cardNo">4312290101010003 </column>
<column colnum="10" colname="familyAddress">测试县甘棠镇红光村村一组 </column>
<column colnum="11" colname="tel"> </column>
<column colnum="12" colname="ideName">农业人口 </column>
</row>
</data>
</function>
...全文
1149 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
newease 2009-08-03
  • 打赏
  • 举报
回复
收藏
DW导入导出XML,在设计DW画板中可以建立XML模板,一个DW可以设置多个不同的XML模板,也就是可以为导出或导入设置不同的模板。模板可以通过SAVEAS 另存成一个模板,可以OPEN一个存在的模板,可以DELETE当前编辑的模板。不同的DW可以有相同名称的模板,模板的设置是放在DW源代码的最后。模板设计好后就可以在DW的属性中的数据导出 数据导入标签页中指定对应的模板。也可以在脚本中动态指定模板。
设计模板时,DW中的选择的字段不一定都放到模板里,没有在模板指定的就不会被导出或导入时有数据,没有放到DW画板中的字段,一定不会在模板画板中被选上,模板中字段的顺序与DW画板中字段的排列次序无关。
主子表模板的设计,XML模板可以设计成多层次的XML格式,只要依照XML格式顺序设定标识。标识名要与XML的标识名一一对应,可以用中文标识名,字段名可以不是中文名。
对于导入的模板,如果是主子表关系统的,在子表标识开始处不可以加STARTS DETAIL标记。而对于导出的模板,如果是主子表关系的,在子表标识开始处必须添加STARTS DETAIL标记。
对于主子表导入后的数据会怎么样,主表数据只会在首行出现,其他的明细行中没有主表数据。如果你是把数据导入到数据库的,需要在这里处理一下,把数据分别转到主、子表对应的DW再来存盘会好点。
如果导入的XML的标识顺序与XML模板的标识顺序不同时会有什么后果,我试了将XML文件的第一和第二标识对调,导入后,被调后面的数据出现在第二行,所以这里非常要注意,一定要确保两者顺序一致。
同时也测试了如果XML文件中没有XML模板中的标识,那么DW此字段值为空。不影响其他数据的导入。
也有人测试了,可以在XML模板中添加计算列。
jlwei888 2009-08-02
  • 打赏
  • 举报
回复
做个DW,列和xml中列一致!
再保存个xml模板,就可以导入了!
PB9.0及以上才有这功能
WorldMobile 2009-08-02
  • 打赏
  • 举报
回复
xml可以直接导入数据窗口内

importfile即可

如果格式不对,可以解析,然后写入数据窗口
数据窗口源码介绍 (举例见d_dbit_example.srd,测试数据库为PB自带的EAS Demo DB V120) 1.第一行:release 12; 数据窗口所属PB的版本号,如果想把高版本的datawindow导入低版本的PB要修改此数字; 2.datawindow()行 通常用修改processing属性,可以把你的数据窗口由grid变成freeform或其它类型 例:freeform:0 grid:1 3.header()行 可以整行复制粘贴,并命名为header[1],header[2],这样可以让数据窗口有多个header 4.table()行 这里全是定义的数据属性,是setitem,update,object.data等方法访问的根源 如果存在table()里的column,数据窗口里可以不存在任何对象,仍然可以访问数据窗口数据 如果想创建一个空的数据窗口,可以只定义: release 12; table() 5.table(column行) 是第几个column,它的ID就是多少,其也定义了是否可以update时和更新到数据表的字段名 6.table(retrieve行) 检索数据时使用的SQL语句,可以通过setsqlselect或modify("table.sqlselect")方法去动态修改 修改后要重新定义数据窗口的更新属性 7.column()行 id即是对应table(column行)里的行次,名称(name)可以随便命名,也可以没有,则默认为table(column行)里的name 8.compute()行 计算列,可以通过表达式计算显示特定值(具体函数可以见共享里的画笔函数). 9.text()行 有时可以代替计算列; 通过定义text的表达式,可以实现一列显示两个字段值,注意结果必须要转换成string类型(而column和compute则不行); 10.htmltable()行 按照格式导出(saveas)html文件,为了保证格式的完整,数据窗口的单位最好设置成pixels GenerateCSS='1' //保持格式及颜色 Border='0' //不要table边框 CellSpacing='0' //单元格无间距(此项在界面上经常设置不上) 注: (1)Grid生成标签,Freeform生成
+ 标签; (2)生成htmltable时,不知为何会在CSS的开始自动加一个分号";",导致excel等浏览器打开不能正常显示格式; (3)band为foreground或background的对象导不出来,可以动态修改后再导出. 11.export.xml()行 定义导出xml文件的格式,并为模板保存名称 使用时一定要设置usetemplate值 12.import.xml()行 定义导入xml文件的格式,并为模板保存名称 使用时一定要设置usetemplate值 13.表达式介绍 略 14.其它也略
版本:presto-server-0.214.tar软件版本 presto-cli-0.214-executableCentOS71、presto的起因 hadoop ---hdfs----MR(java)-----hivehive底层原理用MR,速度比较慢,公司hadoop集群主要集于晚上到凌晨,平日工作时间负载不是很高。但在工作时间内,公司业务人员有实时查询的需求,现在主要借助于hive提供业务人员的查询。hive是基于MR类的SQL查询工具,他会输入的查询SQL解析为MapReduce,能极大的降低使用大数据门槛,让一般的业务人员可以直接准对大数据进行查询,但是有一个利弊,它的查询基于MR,会让人等待比较着急,等待的时间可能是几个小时或者一天。 spark基于内存提高改良的hive,sql,现在factbook在hive上面开发一套利器,准对hive可以通过sql语句快速查询,presto。2、Facebook为何开发Presto  Facebook的2011的数据仓库存储在少量大型hadoopfs集群,Hive是FaceBook在几年前专门为Hadoop打造的一款数据仓库工具,在以前,facebook的科学家和分析师一直靠hive进行数据分析.但hive使用MR作为底层计算框架,是专为批处理设计的,但是随着数据的不断增多,使用hive进行一个简单的数据查询可能要花费分钟或者几个小时,显然不能满足查询需求,FaceBooke也调研了其他比hive更快的工具,但是他们需要在功能有限的条件下做简单操作,以至于无法操作Facebook庞大的数据要求。2012年开始研究自己的框架--presto,每日可以超过1pb查询,而且速度比较快,faceBook声称Presto的性能比hive要好上10倍或者100倍,presto和hive都是facebook开发的 Presto是一个开源的分布式SQL查询引擎,适用于交互式查询,数据量支持GB到PB字节。Presto的设计和编写完全是为了解决Facebook这样规模的商业数据仓库交互式分析和处理速度的问题Presto可以做什么 Presto支持在线数据查询,包括Hive kafka Cassandra关系数据库以及专门数据存储,一条Presto查询可以将多个数据源进行合并,可以跨越整个组织进行分析。Presto以分析师的需求作为目标,他们期望相应速度小于1秒到几分钟,Presto要么在使用速度的快的昂贵的商业方案,提高内存,要么是消耗大量的硬件进行快速查询。(128G 64G)本套课程教给如何在企业环境使用Presto技术。

662

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder Web 应用
社区管理员
  • Web 应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧