o***i 发帖数: 603 | 1 【 以下文字转载自 Database 讨论区 】
发信人: olivi (笨笨), 信区: Database
标 题: Re: salesforce用的什么数据库产品呀?
发信站: BBS 未名空间站 (Fri Apr 5 11:34:02 2013, 美东)
最近有个项目,需要从salesforce扒数据下来,倒进我们自个的Sqlserver
大概10来万的数据
sf一次只能给你2k条,此为一ft
下来的数据,搞成json格式,有一堆嵌套,带一堆的attributes(不需要),此二ft
我转成xml格式,再传进我们的DB(我们用的java)
那个慢呀。。。。
请教版上各位大拿,以上步骤有什么可以优化的? |
p*****2 发帖数: 21240 | |
o***i 发帖数: 603 | 3 二爷威武!
请看我转贴中的新问题?
【在 p*****2 的大作中提到】 : oracle
|
g*****g 发帖数: 34805 | 4 扒数据可以并行,转格式可以并行。
【在 o***i 的大作中提到】 : 二爷威武! : 请看我转贴中的新问题?
|
t*******e 发帖数: 684 | 5 用Spring Batch,典型的batch data processing. 有必要的话和spring integration
或camel并用。 |
o***i 发帖数: 603 | 6 我也想并行呀
但是salesforce给是这样的:发个query给他,他给你回复
uery response: {
"done": false,
"nextRecordsUrl": "...",
"records": ....
...
只能循环看是不是done,用nextRecordsUrl获取更多数据呀
【在 g*****g 的大作中提到】 : 扒数据可以并行,转格式可以并行。
|
o***i 发帖数: 603 | 7 另外,性能的最大瓶颈在Sqlserver处理XML数据上
【在 g*****g 的大作中提到】 : 扒数据可以并行,转格式可以并行。
|
g*****g 发帖数: 34805 | 8 In that case, you probably want to process XML in app server. e.g. Even if
your data retrieval has to be sequential. You can read the data and send the
data to an app cluster for processing. The app cluster then send raw sql
queries to your DB for persistence.
【在 o***i 的大作中提到】 : 另外,性能的最大瓶颈在Sqlserver处理XML数据上
|
t*******e 发帖数: 684 | 9 The returns are pagnated. it is not a limitation of salesforce, but your
queries. why not narrow down data range with filters, and fire many queries
covering different ranges simultaneously.
【在 o***i 的大作中提到】 : 我也想并行呀 : 但是salesforce给是这样的:发个query给他,他给你回复 : uery response: { : "done": false, : "nextRecordsUrl": "...", : "records": .... : ... : 只能循环看是不是done,用nextRecordsUrl获取更多数据呀
|
o***i 发帖数: 603 | 10 这是我最初的想法了,我原来是是按照username来,a-g, h-l之类的分割,但是这个SF
的数据不知道是谁设计的,很不规范,用filter经常会漏掉一部分数据,还得测试怎么
划分才比较合理,太麻烦了
这个SF的数据库很诡异的,有一个email地址,我不带条件直接返回的结果里没有的,但
是我用where Email='the address',又有这个email的
但是今天我测试一下,返回结果又正常了
queries
【在 t*******e 的大作中提到】 : The returns are pagnated. it is not a limitation of salesforce, but your : queries. why not narrow down data range with filters, and fire many queries : covering different ranges simultaneously.
|
t*******e 发帖数: 684 | 11 不能partition query的话就没办法了,用spring batch至少保证不会为一两个bad
records fail整个job。
SF
,但
【在 o***i 的大作中提到】 : 这是我最初的想法了,我原来是是按照username来,a-g, h-l之类的分割,但是这个SF : 的数据不知道是谁设计的,很不规范,用filter经常会漏掉一部分数据,还得测试怎么 : 划分才比较合理,太麻烦了 : 这个SF的数据库很诡异的,有一个email地址,我不带条件直接返回的结果里没有的,但 : 是我用where Email='the address',又有这个email的 : 但是今天我测试一下,返回结果又正常了 : : queries
|