關於資料建模(面向ER)和領域模型建模(面向OO)在企業應用中的作用的討論

gudesheng發表於2008-01-03

號稱排在國內四大Java組織之後的Java老鳥群(qq群:1775725)的一次討論:略微刪減聊天的部分後的對話,貼在這裡,歡迎大家指正:

  magicgod 
 (2240529) 15:27:08
ror還是比較適合個人和小型團隊 
 
 magicgod 
 (2240529) 15:27:25
短平快的東西,不太適合大公司 
 
 米米飯 
 (582197) 15:27:40
怎麼不說,JAVA也適合比較小的公司或團隊 
 
 magicgod 
 (2240529) 15:27:43
公司大了,這麼多人,這麼多角色總得找點事做吧 
 
 米米飯 
 (582197) 15:27:56
其實ROR壓根就沒有生存的必要 
 
 magicgod 
 (2240529) 15:28:18
已經存在了,還討論什麼生存的必要啊 
 
 NO.1狗狗 
 (200865271) 15:28:24
那python呢? 

 米米飯 
 (582197) 15:28:51
那就讓他滅亡,研究點JAVA敏捷,或PHP敏捷多好 
 
 magicgod 
 (2240529) 15:29:35
倒,滅亡不是個人說了算的,如果它不適應時代,必然滅亡 
 
 米米飯 
 (582197) 15:29:43
多搞出一個敏捷來,其實壓根不比別的敏捷更好,又不能比別的有更強的企業特性 
 
 ♂純月♀ 
 (88659854) 15:29:53
這種東西既然出現了,就讓他出現吧 
 
 magicgod 
 (2240529) 15:30:41
php剛出來的時候也是這樣說的 
 
 magicgod 
 (2240529) 15:30:53
有生命力的東西會自然延續下去的 
 
 米米飯 
 (582197) 15:32:23
支援ROR不應該用這種理由:) 
 
 magicgod 
 (2240529) 15:32:39
至少我個人覺得在寫ror的時候比java流暢 
 
 米米飯 
 (582197) 15:33:49
存在即合理,是懶人的託辭,我覺得實踐的比較最有價值,這點,我非常欣賞matt raible,他是個老實人 
 
 magicgod 
 (2240529) 15:34:05
我記得有個人說了一種語言的時代已經過去了,什麼東西適應就用什麼 
 
 米米飯 
 (582197) 15:34:32
但是有優劣高下之分:)你做為嚴肅的比較麼 
 
 米米飯 
 (582197) 15:36:03
優秀的技術適合優秀的人,普通的技術適應普通的人。最差的就是譁眾取寵的技術適應被廣告矇蔽的人 
 
 ♂純月♀ 
 (88659854) 15:36:05
magicgod寫過php麼 
 
 magicgod 
 (2240529) 15:36:33
是指ejb? 
 
 magicgod 
 (2240529) 15:37:06
j2ee的架構在今天 來看也算是偉大的結構,但是總用著不是味兒 
 
 米米飯 
 (582197) 15:38:25
開源社群需要每個人的貢獻:)用著不是味就學rod johnson 
 
 米米飯 
 (582197) 15:39:00
spring我覺得和ejb並不衝突,在java ee裡對spring和hibernate都可以和平共處 
 
 米米飯 
 (582197) 15:39:25
只有ROR,我覺得這個人真是個浮躁的人,我那天說過了 
 
 米米飯 
 (582197) 15:39:32
個人英雄主義 
 
 米米飯 
 (582197) 15:40:04
把這個水平,放在JAVA社群,說不定可以發揮更大的作用 
 
 米米飯 
 (582197) 15:40:11
搞ROR真是浪費 
 
 ♂純月♀ 
 (88659854) 15:40:22
RoR的讓那些沒用過PHP的人看到指令碼語言原來這麼方便 
 
 米米飯 
 (582197) 15:41:07
反對個人英雄主義誤導消費者 
 
 magicgod 
 (2240529) 15:42:18
我覺得我還是厭倦了頻繁啟動伺服器 
 
 米米飯 
 (582197) 15:42:24
瞧人家matt raible,用JAVA一樣可以搞出ROR 
 
 米米飯 
 (582197) 15:42:34
比ROR強N多 
 
 magicgod 
 (2240529) 15:44:10
他也用ubuntu? 
 
 米米飯 
 (582197) 15:44:18
我那天講過一個APPFUSE和敏捷開發:) 
 
 Totodo 
 (888669) 15:44:29
 Ruby 都用什麼開發呢。。 

 ♂純月♀ 
 (88659854) 15:44:40
[自定義表情] 
 
 magicgod 
 (2240529) 15:45:16
appfuse是不是還是用ant? 
 
 Jtwo易易 
 (65541585) 15:45:25
是 
 
 ♂純月♀ 
 (88659854) 15:45:32
php開發的門戶首頁,經過優化後,平均只要30ms的響應時間 
 
 magicgod 
 (2240529) 15:45:52
說實在的為什麼java的速度是那麼地慢,儘管語言方面效能還是很強的 
 
 magicgod 
 (2240529) 15:46:14
我一直期待它的效能能提高,可是非常失望 
 
 米米飯 
 (582197) 15:46:19
所有的東西只討論思想的高下,不討論語言的高下 
 
 [/wx]newsky 
 (41561701) 15:46:22
加的功能太多了 
 
 [/wx]newsky 
 (41561701) 15:46:37
如果只用servlet做也是很快的 
 
 米米飯 
 (582197) 15:46:56
比較語言,就太沒意思了 
 
 magicgod 
 (2240529) 15:47:12
倒,說實在的,tomcat的速度我已經無法忍受了 
 
 ♂純月♀ 
 (88659854) 15:47:31
是的,就像比較武功一樣,少林和武當那個強? 
 
 NO.1狗狗 
 (200865271) 15:47:50
我覺的能做出好的東西來就是好東東  
 
 magicgod 
 (2240529) 15:48:01
兩年前我使用ror,那時候還是webbrick,速度非常糟,現在有了mongrel,好多了 
 
 米米飯 
 (582197) 15:48:07
速度很快. 
 
 米米飯 
 (582197) 15:48:09
java 
 
 ♂純月♀ 
 (88659854) 15:48:10
沒有優化的程式,平均在200ms,優化之後20ms,提升了10倍 
 
 ♂純月♀ 
 (88659854) 15:48:28
而這個優化技術和語言是無關的 
 
 米米飯 
 (582197) 15:48:29
請使用思想來提高速度 
 
 Jtwo易易 
 (65541585) 15:48:35
tomcat還可以啊 
 
 ♂純月♀ 
 (88659854) 15:48:40
無非是靜態快取,記憶體駐留 
 
 magicgod 
 (2240529) 15:49:03
我現在一邊做java,一邊做ror,做java的時候必須關閉大部分東西 
 
 magicgod 
 (2240529) 15:49:30
做ror的時候還可以起個vm 
 
 ♂純月♀ 
 (88659854) 15:49:36
我開發php應用,只要一個ultraedit 
 
 ♂純月♀ 
 (88659854) 15:49:51
apache
 
 
 magicgod 
 (2240529) 15:50:07
php確實不錯,還有zend,可惜沒機會用 
 
 NO.1狗狗 
 (200865271) 15:50:32
php快被淘汰拉 
 
 米米飯 
 (582197) 15:50:37
 
 
 NO.1狗狗 
 (200865271) 15:50:46
以後會出來一種三維瀏覽器指令碼技術 
 
 ♂純月♀ 
 (88659854) 15:50:46
你認為VB被淘汰了麼 

 magicgod 
 (2240529) 15:50:47
不可能吧,php正在第二個大發展時期呢 
 
 NO.1狗狗 
 (200865271) 15:51:01
html也會被淘汰的 
 
 ♂純月♀ 
 (88659854) 15:51:03
或者說VB6,delphi6 
 
 NO.1狗狗 
 (200865271) 15:51:10
瀏覽器也會被淘汰 
 
 NO.1狗狗 
 (200865271) 15:51:16
整個革命新時代到來了 
 
 ♂純月♀ 
 (88659854) 15:51:17
現在用這些開發的公司多如牛毛  
 
 米米飯 
 (582197) 15:51:18
語言又來討論了。還是討論點實在的 
 
 Jtwo易易 
 (65541585) 15:51:45
要有高度 

 magicgod 
 (2240529) 15:51:59
我覺得java正在學習ror的東西,建立新的敏捷 
 
 米米飯 
 (582197) 15:52:24
要是JAVA在七年前就像今天這個水平,月月可能就不會用PHP了 

 Jtwo易易 
 (65541585) 15:52:47
java=拼裝,笨的很 
 
 米米飯 
 (582197) 15:52:51
敏捷不是ROR的 
 
 NO.1狗狗 
 (200865271) 15:53:15
java=bug 
 
 米米飯 
 (582197) 15:53:21
敏捷是軟體開發的共同的思想 
 
 Jtwo易易 
 (65541585) 15:53:25
java的東東太多太多了 
 
 ♂純月♀ 
 (88659854) 15:53:29
4年前我就用ssh,但是現在我還是用php,因為很多web應用的本質,不就是把資料存到資料庫麼 
 
 米米飯 
 (582197) 15:54:04
oo很重要:0 
 
 magicgod 
 (2240529) 15:54:08
我覺得不能忍受java的是:1.頻繁重啟。2.無法即時debug。 
 
 ♂純月♀ 
 (88659854) 15:54:10
搞再多的中介軟體也無非是這個目的,我用php把響應時間控制在幾十ms,每秒也能處理幾百次事務 
 
 米米飯 
 (582197) 15:54:47
java社群的生生不息,離不開OO的增強,MDA,XDOCLET.... 
 
 magicgod 
 (2240529) 15:55:05
其實oo還是smalltalk好 
 
 米米飯 
 (582197) 15:55:43
SOA說白了,我覺得也是OO 

 米米飯 
 (582197) 15:55:51
反正OO才是王道 
 
 ♂純月♀ 
 (88659854) 15:56:00
smalltalk太學院派了,不適合工業生產 
 
 米米飯 
 (582197) 15:56:07
JAVA最適合OO,因此JAVA是王道 
 
 magicgod 
 (2240529) 15:56:12
smalltalk可惜不是ms搞的 
 
 magicgod 
 (2240529) 15:56:28
實際上java並不是最適合OO的,應該是smalltalk 
 
 magicgod 
 (2240529) 15:56:49
smalltalk很適合M$的思路, 如果在裡面會有大發展,真是可惜了 

 米米飯 
 (582197) 15:58:54
使用 CakePHP 快速打造 Web 站點,這是什麼東東》? 
 
 ♂純月♀ 
 (88659854) 15:59:09
是的,所以很多東西不是好就能有市場 
 
 magicgod 
 (2240529) 15:59:18
smalltalk世界裡所有的東西真正是物件啊 
 
 ♂純月♀ 
 (88659854) 15:59:28
類似於java的turbine,jboss的seam這樣的東西 
 
 ♂純月♀ 
 (88659854) 15:59:53
物件導向並不是最好的開發思想,目前階段的應用是面向資料(庫)的多 
 
 magicgod 
 (2240529) 15:59:57
而且沒有明顯的執行時和開發時 
 
 magicgod 
 (2240529) 16:00:41
在現實世界中OO被人為地分割為多個物件空間,導致耦合成本增加,帶來許多問題 
 
 Jtwo易易 
 (65541585) 16:01:09
在國內有物件導向的產品? 
 
 ♂純月♀ 
 (88659854) 16:01:18
你OO,人家olap還多緯度呢,到時候又要抽象很多物件 
 
 Jtwo易易 
 (65541585) 16:01:36
複雜的很 
 
 Jtwo易易 
 (65541585) 16:01:42
還是MS強 
 
 ♂純月♀ 
 (88659854) 16:01:48
天橋說的對,大部分產品是面向db的 
 
 Jtwo易易 
 (65541585) 16:02:01
複雜的在MS那都簡單了 
 
 米米飯 
 (582197) 16:02:14
面向DB,DB的設計原則是什麼呢 
 
 米米飯 
 (582197) 16:02:29
那還是主要以OO為主 
 
 Jtwo易易 
 (65541585) 16:02:37
從資料庫利用工具反向生成hb所要的檔案 
 
 Jtwo易易 
 (65541585) 16:02:41
不知是在做什麼 
 
 ♂純月♀ 
 (88659854) 16:02:45
資料優先,最先考慮資料,關係的穩定,效能 
 
 ♂純月♀ 
 (88659854) 16:03:23
正如我說的,domain model和table做一一對映 
 
 米米飯 
 (582197) 16:03:28
RDB,關係和物件的  關係 ,誰研究過 
 
 Jtwo易易 
 (65541585) 16:03:55
domain model設計階段的產物 
 
 ♂純月♀ 
 (88659854) 16:04:12
嗯 

 Jtwo易易 
 (65541585) 16:04:18
現在很多都是反的 
 
 Jtwo易易 
 (65541585) 16:04:22
沒有domain model 
 
 Jtwo易易 
 (65541585) 16:04:38
反向來生成“domain model” 
 
 ♂純月♀ 
 (88659854) 16:04:47
應該是先ER,在Domain 
 
 Jtwo易易 
 (65541585) 16:05:23
我是先概念 
 
 ♂純月♀ 
 (88659854) 16:06:07
哦 
 
 Jtwo易易 
 (65541585) 16:06:19
這樣好生成目標資料庫模型 
 
 米米飯 
 (582197) 16:06:57
資料庫設計範型,是不是就是為了設計出一個好好的OO模型 
 
 Jtwo易易 
 (65541585) 16:07:00
概念模型-》資料庫模型/對像模型 
 
 米米飯 
 (582197) 16:07:39
資料庫的產生比OO產生得早,要是晚,那肯定沒有範型,直接說OO就是設計範型 
 
 magicgod 
 (2240529) 16:07:43
關係型資料庫來描述OO天生有缺陷,但是沒辦法 
 
 magicgod 
 (2240529) 16:08:07
其實樹型資料庫來描述更好一點 
 
 Jtwo易易 
 (65541585) 16:08:11
歷史不容改變 
 
 ♂純月♀ 
 (88659854) 16:08:42
你說正規化吧 
 
 米米飯 
 (582197) 16:08:51
對。 

 ♂純月♀ 
 (88659854) 16:09:11
正因為有正規化,所以要把OO和ER結合起來,反覆推敲,找出最合適得正規化 
 
 ♂純月♀ 
 (88659854) 16:09:36
OO往往都是考慮最優的正規化,但實際生產中,需要大量的容易 
 
 ♂純月♀ 
 (88659854) 16:10:41
華為的資訊機的表是這樣建的,每一分鐘建一張表,表的名字是0000-1259,你說這是什麼正規化 
 
 ♂純月♀ 
 (88659854) 16:11:02
錯了是0000-2359 
 
 magicgod 
 (2240529) 16:11:09
糟糕的正規化吧 
 
 看上去很美 
 (965243) 16:11:16
效率考慮 
 
 看上去很美 
 (965243) 16:11:31
正規化沒必要過分遵循要考慮效率 
 
 ♂純月♀ 
 (88659854) 16:11:44
這是工業生產和學院派的不同 
 
 看上去很美 
 (965243) 16:11:46
不糟糕不這麼做沒辦法達到效率要求 
 
 米米飯 
 (582197) 16:11:54
效率有資料效率和開發效率 
 
 米米飯 
 (582197) 16:12:01
那應該考慮哪個呢 
 
 看上去很美 
 (965243) 16:12:26
技術為生產服務 
 
 ♂純月♀ 
 (88659854) 16:12:38
清華的學生可以設計一個相當複雜的演算法,印度班加羅二的工人們只要一個又臭又長的hash表來解決問題 
 
 米米飯 
 (582197) 16:12:48
如果用OO,一個月就開發完了,不用,結果開發了一年,並且後期維護像是一場惡夢 

 米米飯 
 (582197) 16:12:58
你說什麼是效率 
 
 ♂純月♀ 
 (88659854) 16:13:30
OO和ER來結合起來考慮 
 
 ♂純月♀ 
 (88659854) 16:13:42
找到一個平衡點 
 
 看上去很美 
 (965243) 16:13:52
開發效率實際使用效率都要考慮找平衡點 
 
 米米飯 
 (582197) 16:14:21
用DB4O 
 
 米米飯 
 (582197) 16:14:29
就不用都考慮了 
 
 ♂純月♀ 
 (88659854) 16:14:34
和具體框架無關 

 米米飯 
 (582197) 16:14:54
浪費程式設計師的青春,資料效率應該是資料庫提供商來解決的 
 
 米米飯 
 (582197) 16:15:03
程式設計師應該關注OO,而不是資料的效率 
 
 看上去很美 
 (965243) 16:15:03
。。。。。。 
 
 ♂純月♀ 
 (88659854) 16:15:11
正因為這樣,我才覺得RoR純粹的DSL沒有生命力 
 
 看上去很美 
 (965243) 16:15:15
謬論 
 
 看上去很美 
 (965243) 16:15:26
程式設計師也需要考慮效率 
 
 看上去很美 
 (965243) 16:16:01
資料庫提供商考慮得出了效率還有一致性、完整性、魯棒性、容量、維護。。。。多了去了 
 
 foxcrane 
 (6947930) 16:16:55
清華的學生 和 印度班加羅二的工人 教育成本不一樣啊 
 
 米米飯 
 (582197) 16:16:56
讓資料庫提供商考慮去吧。我認為程式設計師不是DBA 
 
 Jtwo易易 
 (65541585) 16:16:56
小字打出來,鳥還沒打出來,你就出來啦 

 foxcrane 
 (6947930) 16:17:07
開發出來的東西穩定性也不一樣 
 
 foxcrane 
 (6947930) 16:17:17
人家成本又低,開發出來的東西又穩定 
 
 米米飯 
 (582197) 16:17:32
資料庫和程式設計師不搭,所以持久層的作用是隔離程式設計師和資料庫 
 
 Jtwo易易 
 (65541585) 16:17:33
其實這些不是主要的 
 
 magicgod 
 (2240529) 16:17:42
軟體開發勢必走兩個極端,個性藝術和大規模工廠式 
 
 看上去很美 
 (965243) 16:17:51
效能優化案例的分析結果:DBA能提升的效率不到20%,而程式設計師通過優化編碼提升的效率往往是數量級的 
 
 米米飯 
 (582197) 16:17:58
程式設計師是脫離資料庫,面向企業業務邏輯的。 
 
 看上去很美 
 (965243) 16:18:11
你說的程式設計師是程式工人 

 ♂純月♀ 
 (88659854) 16:18:22
企業業務邏輯的核心就是資料(庫) 
 
 米米飯 
 (582197) 16:18:36
不是吧。 
 
 米米飯 
 (582197) 16:18:41
應該是流程 
 
 看上去很美 
 (965243) 16:18:45
做架構是從優良的資料結構設計開始的 
 
 magicgod 
 (2240529) 16:18:46
應該還有流程吧 
 
 foxcrane 
 (6947930) 16:18:50
另外,清華學生可不是萬里挑一出來的,是精英中的精英 
 
 看上去很美 
 (965243) 16:18:53
♂純月♀@老鳥(88659854) 16:30:22 企業業務邏輯的核心就是資料(庫)  ---agree 
 
 ♂純月♀ 
 (88659854) 16:18:55
資料+流程 
 
 magicgod 
 (2240529) 16:19:12
不會吧,清華現在的高度有這麼高了? 
 
 米米飯 
 (582197) 16:19:13
資料庫和平臺一樣,都要跨平臺 
 
 ♂純月♀ 
 (88659854) 16:19:20
流程也很重要,不是那是後話 
 
 看上去很美 
 (965243) 16:19:33
流程----通過資料來實現最終還是落到資料上 
 
 foxcrane 
 (6947930) 16:19:35
印度班加羅二的工人 工人比就有這麼高,人家是高中畢業的..... 
 
 米米飯 
 (582197) 16:19:40
依賴一種資料庫的不是好的企業應用,純資料應用除外 
 
 magicgod 
 (2240529) 16:19:48
資料為中心是資料庫興起來的主流 
 
 米米飯 
 (582197) 16:20:29
弱化資料庫依賴,也是我認為的JAVAEE的設計原則之一 
 
 ♂純月♀ 
 (88659854) 16:20:30
你就是開發一個網路遊戲,首要考慮的也是所有人物,事件,狀態的資料如何高效的儲存 
 
 ♂純月♀ 
 (88659854) 16:21:07
儲存過程在很多情況下,是非常必要 
 
 看上去很美 
 (965243) 16:21:17
太必要了... 
 
 ♂純月♀ 
 (88659854) 16:21:22
弱化對資料庫的依賴固然好,但有沒有想過弱化對java,對中介軟體的依賴呢 
 
 看上去很美 
 (965243) 16:21:25
這個月一直在寫 

 Jtwo易易 
 (65541585) 16:21:35
沒有 
 
 Jtwo易易 
 (65541585) 16:21:44
都被java給矇蔽了 
 
 magicgod 
 (2240529) 16:21:49
花在中介軟體上的錢未必是有用的 
 
 Jtwo易易 
 (65541585) 16:21:55
總想著怎麼拼裝的漂亮 
 
 Jtwo易易 
 (65541585) 16:22:04
顯得多麼的高深 
 
 ♂純月♀ 
 (88659854) 16:22:05
如果有一個好的proc,不管任何語言,只要有db的api,都能呼叫proc,這種相容性不是更好 
 
 米米飯 
 (582197) 16:22:36
OO和MDA的目標是工業化生產 
 
 Jtwo易易 
 (65541585) 16:22:43
實際點 

 米米飯 
 (582197) 16:22:45
依賴資料庫是特殊應用 
 
 看上去很美 
 (965243) 16:22:46
♂純月♀@老鳥(88659854) 16:34:05 如果有一個好的proc,不管任何語言,只要有db的api,都能呼叫proc,這種相容性不是更好   ---是不錯 
 
 看上去很美 
 (965243) 16:22:54
但是過分依賴儲存過程也有問題 
 
 Jtwo易易 
 (65541585) 16:23:04
不要走極端 
 
 ♂純月♀ 
 (88659854) 16:23:09
是的,那樣業務邏輯會過於分散 
 
 看上去很美 
 (965243) 16:23:15
資料庫應用為了保障一致性完整性等等 
 
 Jtwo易易 
 (65541585) 16:23:16
1+1都不會絕對=2呢 
 
 ♂純月♀ 
 (88659854) 16:23:19
不走極端,找到一個平衡 
 
 看上去很美 
 (965243) 16:23:21
會有很多額外的開銷 
 
 米米飯 
 (582197) 16:23:32
主要目標不同啊。 
 
 Jtwo易易 
 (65541585) 16:23:41
可行性 
 
 Jtwo易易 
 (65541585) 16:23:58
目標其實沒麼重要 
 
 ♂純月♀ 
 (88659854) 16:24:04
辯證法的核心就是在矛盾中找到平衡點 
 
 米米飯 
 (582197) 16:24:10
敏捷也是一種工業生產的思想 
 
 米米飯 
 (582197) 16:24:28
幹部說的那種不在這個範圍之內 
 
 Jtwo易易 
 (65541585) 16:24:34
那你還不是跟著國外的那些人唱和 
 
 ♂純月♀ 
 (88659854) 16:24:46
華為資訊機提供了dll,jar的介面,但是我php就不方便呼叫,好在它有儲存過程,這樣還是可以很方便的傳送簡訊 
 
 Jtwo易易 
 (65541585) 16:24:50
不都是看他們的文件聽他們說 
 
 看上去很美 
 (965243) 16:24:58
我是最近被效率問題搞怕了..... 
 
 Jtwo易易 
 (65541585) 16:25:17
實踐過了的才是真的 
 
 Jtwo易易 
 (65541585) 16:25:29
光看文件搞拼裝有什麼用 
 
 ♂純月♀ 
 (88659854) 16:25:39
敏捷是口號,重構是方法,快速原型是工具 
 
 ♂純月♀ 
 (88659854) 16:25:46
你什麼效率問題啊 
 
 看上去很美 
 (965243) 16:26:03
大資料量入庫並作業務,業務查詢為主 
 
 米米飯 
 (582197) 16:26:39
幹部一直在搞特殊應用...所以沒辦法啊。你的想法很難複製和工業化 
 
 看上去很美 
 (965243) 16:26:40
1000個終端,一小時產生4條明細記錄一條記錄500多個欄位 
 
 看上去很美 
 (965243) 16:27:02
不是特殊應用企業應用中這問題太常見了 
 
 看上去很美 
 (965243) 16:27:17
機器是pcserver 還是32位oracle 
 
 ♂純月♀ 
 (88659854) 16:27:44
這樣應用只有拼命壓榨系統效能了 
 
 米米飯 
 (582197) 16:27:45
五百個欄位,還不特珠 
 
 Jtwo易易 
 (65541585) 16:27:51
強 
 
 看上去很美 
 (965243) 16:27:58
還有很多業務邏輯 
 
 看上去很美 
 (965243) 16:28:14
這些資料傳上來的時候有明細也有歷史 
 
 Jtwo易易 
 (65541585) 16:28:22
現實問題 
 
 看上去很美 
 (965243) 16:28:34
業務需要取極值,取最後時間點值 
 
 看上去很美 
 (965243) 16:28:50
資料上傳得先後和實際產生的先後並不一致 
 
 看上去很美 
 (965243) 16:29:47
我逼得沒辦法跟他們談了一下,放棄實時處理,每一小時批量轉換處理一次。實時處理只做update 
 
 看上去很美 
 (965243) 16:29:57
update只針對小資料量表 
 
 ♂純月♀ 
 (88659854) 16:30:26
有沒有采用MoM結構 
 
 看上去很美 
 (965243) 16:30:40
原來停機一天,再啟動,一天曆史資料處理完畢要6-7小時現在只需要7-8分鐘 
 
 [/wx]newsky 
 (41561701) 16:30:56
MoM結構是什麼結構?? 
 
 看上去很美 
 (965243) 16:30:58
通訊時間除外,通訊大概要幾十分鐘 
 
 看上去很美 
 (965243) 16:31:01
沒有 
 
 ♂純月♀ 
 (88659854) 16:31:07
基於訊息的非同步處理 
 
 [/wx]newsky 
 (41561701) 16:31:14
哦 
 
 看上去很美 
 (965243) 16:31:30
是gprs傳輸用的是老外的中介軟體是否基於訊息機制不得而知 
 
 ♂純月♀ 
 (88659854) 16:31:57
還是用了中介軟體啊 
 
 看上去很美 
 (965243) 16:32:06
不過實現上原理應該是一樣的達到非同步訊息處理的要求  
 
 看上去很美 
 (965243) 16:32:21
也就是老外做的dll 編碼還是自己做 
 
 看上去很美 
 (965243) 16:33:49
7-8分鐘還有優化的餘地不過懶得動腦筋了大大的滿足目前要求就行了 
 
 ♂純月♀ 
 (88659854) 16:34:45
所有的處理都是基於儲存過程? 
 
 看上去很美 
 (965243) 16:35:21
通訊入庫不是我做了張500多欄位的介面表 
 
 看上去很美 
 (965243) 16:35:27
是不是覺得很愚蠢 
 
 看上去很美 
 (965243) 16:35:38
沒辦法,我測試多次,這樣最快 
 
 看上去很美 
 (965243) 16:35:54
因為轉換邏輯中很多1條記錄變3-6條的 
 
 看上去很美 
 (965243) 16:36:13
如果直接分表存放,通訊程式作了太多事情 
 
 看上去很美 
 (965243) 16:36:32
他獲取連線次數很多 
 
 foxcrane 
 (6947930) 16:38:22
500多欄位的介面表 那維護不累死了啊,你的業務真BT啊 
 
 ♂純月♀ 
 (88659854) 16:38:38
無所謂,因為你最終還是要解析這些引數 

 ♂純月♀ 
 (88659854) 16:38:41
放在那裡解析都一樣啊 
 
 看上去很美 
 (965243) 16:38:43
是的 
 
 看上去很美 
 (965243) 16:38:55
分表放我解析起來邏輯還複雜 
 
 米米飯 
 (582197) 16:39:43
這是面向效率程式設計:0 
 
 米米飯 
 (582197) 16:39:45
:) 
 
 ♂純月♀ 
 (88659854) 16:39:47
這個無所謂,反正表都做索引 
 
 看上去很美 
 (965243) 16:40:12
介面表處理完就清空 
 
 看上去很美 
 (965243) 16:40:21
保證介面表資料量最小 
 
 看上去很美 
 (965243) 16:40:44
業務表做成分割槽表所以按業務需要做成全表索引和分割槽索引 
 
 ♂純月♀ 
 (88659854) 16:40:47
介面表是臨時表吧 
 
 看上去很美 
 (965243) 16:40:57
索引優化還沒完全做完 
 
 看上去很美 
 (965243) 16:41:16
介面表是固定表 
 
 看上去很美 
 (965243) 16:41:28
建立臨時表的開銷我也給省掉了 
 
 ♂純月♀ 
 (88659854) 16:41:48
臨時表駐留記憶體不是更快 
 
 看上去很美 
 (965243) 16:42:24
入介面表是通訊作轉換介面表的資料是儲存過程作 
 
 看上去很美 
 (965243) 16:42:30
沒辦法用臨時表 
 
 ♂純月♀ 
 (88659854) 16:43:01
o  
 
 看上去很美 
 (965243) 16:43:30
我的系統分割槽錶快達到上限了 
 
 米米飯 
 (582197) 16:43:43
這個問題困撓了你很久了:) 
 
 看上去很美 
 (965243) 16:44:14
因為終端使用者it水平很低我也沒辦法今後保證給他們做長期db維護所以預先建了10年的按日分割槽 
 
 看上去很美 
 (965243) 16:44:27
呵呵,估計5年就換 
 
 ♂純月♀ 
 (88659854) 16:45:10
難道5年換的時候,以前的資料都不要了 
 
 看上去很美 
 (965243) 16:45:15
困擾了一段時間解決方案早就有了但是一直沒實際測試 
 
 看上去很美 
 (965243) 16:45:22
這次測試通過了 
 
 看上去很美 
 (965243) 16:45:38
資料保留2年即可超過的匯出來備份 
 
 米米飯 
 (582197) 16:45:45
企業倒閉資料就沒用了。:) 
 
 米米飯 
 (582197) 16:46:17
不倒閉,再上新系統,再搞大量的ETL..真是累啊 
 
 米米飯 
 (582197) 16:46:36
典型的中國式軟體:) 
 
 ♂純月♀ 
 (88659854) 16:46:40
哦,是什麼行業的客戶? 
 
 看上去很美 
 (965243) 16:46:56
不需要阿  

 看上去很美 
 (965243) 16:47:08
歷史資料為什麼要etl? 
 
 看上去很美 
 (965243) 16:47:11
電力 
 
 看上去很美 
 (965243) 16:47:26
我們這資料量不算多的不過機器配置算低的 
 
 ♂純月♀ 
 (88659854) 16:48:41
哦,ETl到DW,那就安全了 
 
 米米飯 
 (582197) 16:49:02
其實我在搞NMS,資料採集,在很久以前,中興就開始學習OO思想 
 
 米米飯 
 (582197) 16:49:20
現在開源的NMS,已經用上SPRING hibernate了 
 
 ♂純月♀ 
 (88659854) 16:50:00
資料採集就更不能oo了,我們監控主幹的netflow流量,每天都幾個G的資料 
 
 ♂純月♀ 
 (88659854) 16:50:17
一直再等google 的GFS開源,用它的那套儲存 
 
 米米飯 
 (582197) 16:50:21
:)你看中興的系統就知道了,節點完全是OO的 
 
 NO.1狗狗 
 (200865271) 16:50:49
開源?  
 
 米米飯 
 (582197) 16:50:52
業務上OO,底層交給snmp 
 
 NO.1狗狗 
 (200865271) 16:50:53
不可能吧  
 
 ♂純月♀ 
 (88659854) 16:50:55
結點是可以oo,不過流量資料,你要處理的話,OO就沒用了 
 
 米米飯 
 (582197) 16:52:21
分層開發,各司其所,底層資料寫入怎麼寫無關緊要,只要提供介面就可以 
 
 ♂純月♀ 
 (88659854) 16:53:04
你談的是web應用的開發 
 
 米米飯 
 (582197) 16:54:03
算是吧,不過我還是覺得核心做的事,是很小的一部分,大部分軟體的價值通過上層應用來體現 
 
 ♂純月♀ 
 (88659854) 16:55:16
web應用只是NMS的一部分,還有大量的演算法例如,拓撲發現,定位等等 



Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1623465


相關文章