返回信息流原始数据是多个xml文件(30G),每个文件中都包含如下数据元素
............
<!-- 其他元素 -->
............
<datacatalogue>
<!-- 字段 -->
<string-array>
<string>ClpId</string>
<string>PortId</string>
<string>LinkId</string>
<string>Iteration</string>
<string>Interval</string>
<string>Reserved1</string>
</string-array>
<!-- 数据 -->
<string-array>
<string>0</string>
<string>0</string>
<string>0</string>
<string>1</string>
<string>1</string>
<string>0</string>
</string-array>
<string-array>
<string>0</string>
<string>0</string>
<string>1</string>
<string>1</string>
<string>1</string>
<string>0</string>
</string-array>
<string-array>
<string>0</string>
<string>0</string>
<string>2</string>
<string>1</string>
<string>1</string>
<string>0</string>
</string-array>
............
</datacatalogue>
............
<!-- 其他元素 -->
............
每个文件字段个数和名称都不相同,如何把这些数据存储到mysql数据库中?
求大神帮忙解答……
这是一条镜像帖。来源:北邮人论坛 / database / #8167同步于 2014/6/15
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Database机器人发帖
[问题]如何把XML文件的部分数据导入到数据库中?
focus
2014/6/15镜像同步6 回复
订阅后,新回复会通过你的通知中心匿名送达。
6 条回复
现有工具类似navicat for MySQL/Oracle这种可以支持xml的import,比较慢;
你也可以自己写方法迭代xml去按batch写入,一般慢;
或者是自己处理xml成为sql插入的语句,然后source到表格中去;
最快的方式是自己先处理下xml,然后使用sqlldr(oracle下的工具,其他数据可以找找类似的原生工具),导入速度最快(应该是没有更快的了!否则30G导入会耗时异常地长。)。
【 在 michael2008 的大作中提到: 】
: 现有工具类似navicat for MySQL/Oracle这种可以支持xml的import,比较慢;
: 你也可以自己写方法迭代xml去按batch写入,一般慢;
: 或者是自己处理xml成为sql插入的语句,然后source到表格中去;
: ...................
同意最后一种
sqlldr用着真是爽
谢谢,我去试试
【 在 michael2008 (Be an independent thinker!) 的大作中提到: 】
: 现有工具类似navicat for MySQL/Oracle这种可以支持xml的import,比较慢;
: 你也可以自己写方法迭代xml去按batch写入,一般慢;
: 或者是自己处理xml成为sql插入的语句,然后source到表格中去;
: ...................
通过『我邮2.0』发布
两种办法
①用程序,解析xml,得到每一条记录然后插入数据库
②编辑xml成为一个个sql或者分隔符表示的数据文件,用工具导入
编辑成sql,格式像这种 insert into tablename (..)values(..),然后直接执行就行
分隔符的话就像这种 0^G1^G2^G0^G ,用^G分隔,然后用sqlldr类似的工具导入