数据库表和 XML 怎么关联


关键词导读:数据库  XML   关联  Join

这个确实没法直接关联,一般常规做法:在数据库创建临时表,解析XML入库(xml数据对应上去),然后再做两个表的关联。但做起来比较麻烦:解析入库的动作,增加额外工作量;计算的实时性也不好。

如果有库外计算引擎(集算器),这样的问题就好办多了,它拥有不依赖于数据库的计算能力,可直接获取XML数据和数据库表进行关联计算。

比如处理这么个场景:cities表来自Mysql数据库,state数据来自xml文件,关联计算后,分组统计每个州的人口数。

Mysql Table cities:

CID     NAME    POPULATION       STATEID

1       New York 8084316.0        2

2       Los Angeles      3798981.0        5

3       Chicago 2886251.0        1

4       Houston 2009834.0        1

5       Philadelphia     1492231.0        2

6       Phoenix 1371960.0        1

state.xml:

<?xml version="1.0" encoding="utf-8"?>

<data>

  <state>

    <STATEID>1</STATEID>

    <NAME>"Alabama"</NAME>

    <ABBR>"AL"</ABBR>

  </state>

  <state>

    <STATEID>2</STATEID>

    <NAME>"Alaska"</NAME>

    <ABBR>"AK"</ABBR>

  </state>

</data>

计算结果:

集算器SPL5行就搞定了:

 

A

1

=Mysql.query("select * from cities where STATEID<=2")

2

=xml(file("/workspace/state.xml").read(),"data/state")

3

=A2.new(STATEID,NAME,ABBR).keys(STATEID)

4

>A1.switch(STATEID,A3:STATEID)

5

=A1.groups(STATEID.NAME:STATE;sum(POPULATION):POPULATION)

利用集算器的计算体系直接取数计算,实时性好;也无须入库,减少开发量,体系结构更精简;不管什么数据源,都可以采用一致的计算接口,统一的风格来计算。

其实还有很多类似的计算问题不太方便,但有集算器SPL的辅助却很简单,感兴趣可以参考:XML数据解析与计算

集算器还很容易嵌入到Java应用程序中,Java如何调用SPL脚本有使用和获得它的方法。

关于集算器安装使用、获得免费授权和相关技术资料,可以参见如何使用集算器

以下是广告时间

对润乾产品感兴趣的小伙伴,一定要知道软件还能这样卖哟性价比还不过瘾? 欢迎加入好多乾计划。
这里可以低价购买软件产品,让已经亲民的价格更加便宜!
这里可以销售产品获取佣金,赚满钱包成为土豪不再是梦!
这里还可以推荐分享抢红包,每次都是好几块钱的巨款哟!
来吧,现在就加入,拿起手机扫码,开始乾包之旅



嗯,还不太了解好多乾?
猛戳这里
玩转好多乾