国产成人精品亚洲777人妖,欧美日韩精品一区视频,最新亚洲国产,国产乱码精品一区二区亚洲

您的位置:首頁技術(shù)文章
文章詳情頁

java - 如何設(shè)計(jì)大型分布式系統(tǒng)報(bào)表?

瀏覽:108日期:2022-06-11 11:19:11

問題描述

真是無語了,第二次提交又被拒絕了,理由是“該內(nèi)容屬于技術(shù)討論,建議就該問題,簡單地談一談你的想法思路,以便更好地和他人做一個(gè)技術(shù)交流“,要是第一次的是因?yàn)榕虐娴脑蛭乙舱J(rèn)了,想發(fā)個(gè)問答貼怎么就這么難呢?行吧,就按要求稍微表達(dá)一下吧,要是真的沒有思路難道也必須得胡編亂造嗎?相信網(wǎng)站團(tuán)隊(duì)的出發(fā)點(diǎn)是好的,但是對(duì)于新人來說,很可能會(huì)因此棄用。最后一次,再不過就不用這個(gè)論壇了,實(shí)在是提問好難。

以下是原文,最后將附上部分自己的思路。

初來乍到,第一次應(yīng)該是自己的排版太亂,導(dǎo)致審核沒有通過,后面還為此特地學(xué)些了markdown的語法。廢話不多說,進(jìn)入正文。

系統(tǒng)背景

某大型上市國有企業(yè),在各個(gè)省市都有分公司,為了統(tǒng)一管理全國各地市分公司子公司業(yè)務(wù)過程及財(cái)務(wù)數(shù)據(jù),統(tǒng)一開發(fā)了一個(gè)管理平臺(tái),再下發(fā)給各個(gè)省市根據(jù)實(shí)際需求進(jìn)行二次開發(fā),以取代各地市原有的分散的財(cái)務(wù)系統(tǒng)、業(yè)務(wù)管理系統(tǒng)等。

平臺(tái)介紹

前臺(tái)用angularJs,bootstrap,html,后臺(tái)用springMVC,MyBatis,數(shù)據(jù)庫有Oracle有Mysql,rpc框架用dubbo,注冊中心用zookeeper,緩存用redis,系統(tǒng)整體架構(gòu)為分布式+集群。整個(gè)系統(tǒng)包含了以“項(xiàng)目管理”,“合同管理”,“采購管理”,“銷售管理”,“核算管理” 5個(gè)模塊為主的多個(gè)業(yè)務(wù)模塊。

現(xiàn)有需求

基于現(xiàn)有業(yè)務(wù),做100+張報(bào)表。報(bào)表模塊將有獨(dú)立的數(shù)據(jù)庫及應(yīng)用。

技術(shù)難點(diǎn)

如何建大表供所有報(bào)表使用?業(yè)務(wù)部分理清楚自然是最基本的,但是每個(gè)模塊之間通過接口來調(diào)用服務(wù)。

如何從分布式的數(shù)據(jù)庫抽取大數(shù)據(jù)量?每個(gè)模塊有各自的數(shù)據(jù)庫,部分使用oracle,部分mysql,數(shù)據(jù)量級(jí)別在千萬以上。

數(shù)據(jù)的同步方式又應(yīng)該怎樣比較合理?以什么技術(shù)實(shí)現(xiàn)? 增量同步的難度較大,從業(yè)務(wù)模塊沒有很好的方式能保證不遺漏增量數(shù)據(jù);若是全量數(shù)據(jù),每次數(shù)據(jù)的量又實(shí)在是太大了。另外報(bào)表展示的時(shí)候以及數(shù)據(jù)導(dǎo)出又如何能保證其性能?

第一次做這么大的項(xiàng)目,實(shí)在是有些摸不著頭腦。可能表達(dá)的不太清楚,有需要補(bǔ)充的地方歡迎留言。希望論壇里的各位前輩多多指教,不勝感激。

ps: markdown好多地方還不太明白,比如有序無序列表嵌套的時(shí)候?yàn)槭裁磳?shí)心的黑點(diǎn)變成空心的了?為什么無序列表換行只有當(dāng)前行有效,而當(dāng)前行有效的時(shí)候上面已經(jīng)換過行的又無效了?有點(diǎn)不懂,難道說不同的編輯器的語法還不一樣?還有怎么才能看到人家發(fā)布的帖子的markdown怎么寫的?能看到的話好歹也能學(xué)習(xí)一下.

個(gè)人設(shè)計(jì)思路

分析所有報(bào)表的統(tǒng)計(jì)維度和共同字段,在報(bào)表模塊新建一個(gè)oracle用戶,將所有字段根據(jù)模塊分表,作為報(bào)表的基礎(chǔ)大表;

需要考慮數(shù)據(jù)的抽取方式,目前我能想到的方式有兩種:

通過各個(gè)模塊提供接口,取數(shù)后插入至報(bào)表模塊基礎(chǔ)大表;優(yōu)點(diǎn):抽取規(guī)則好維護(hù);缺點(diǎn):性能太差;

通過DBLink將oracle數(shù)據(jù)庫和Mysql數(shù)據(jù)庫打通,用存儲(chǔ)過程直接將數(shù)據(jù)插入至基礎(chǔ)大表。優(yōu)點(diǎn):性能提升;缺點(diǎn):規(guī)則由他人維護(hù)將變得很難。

數(shù)據(jù)每次全量同步。優(yōu)點(diǎn):邏輯簡單;缺點(diǎn):數(shù)據(jù)同步量太大,時(shí)間太久。

以上是個(gè)人的一些拙見,希望各位前輩多多指教。

問題解答

回答1:

你說的需求基本算是建設(shè)數(shù)據(jù)倉庫,基本的思路是:

1、數(shù)據(jù)倉庫和業(yè)務(wù)系統(tǒng)的數(shù)據(jù)庫獨(dú)立,數(shù)據(jù)倉庫的建模一般要分層設(shè)計(jì),不是簡單的建成大表。普遍會(huì)分為緩沖層、基礎(chǔ)層、聚合層、報(bào)表層等,每層的側(cè)重點(diǎn)不太一樣,基礎(chǔ)層還是以范式模型為主,聚合層就要普遍要做數(shù)據(jù)冗余,報(bào)表層一般是列很多的寬表設(shè)計(jì)。

2、數(shù)據(jù)同步,在數(shù)據(jù)量大的情況下必須有增量機(jī)制,如果沒有需應(yīng)用系統(tǒng)改造。

3、同步方法有幾種思路:

a. 用dblink打通數(shù)據(jù)庫,人工寫存儲(chǔ)過程。b. 用informatic powercenter 或kettle類似的ETL工具c. 專用的數(shù)據(jù)庫層同步軟件,如oracle的ogg等

相關(guān)文章:
主站蜘蛛池模板: 麻阳| 秭归县| 怀来县| 霍州市| 兴义市| 新津县| 全州县| 临安市| 昌邑市| 从化市| 孙吴县| 开远市| 呼玛县| 湄潭县| 崇明县| 鹤山市| 宜宾市| 丰台区| 温州市| 通辽市| 广德县| 都昌县| 绵竹市| 溧水县| 商洛市| 纳雍县| 芦山县| 巢湖市| 舒兰市| 高雄市| 莲花县| 云林县| 星子县| 威宁| 金湖县| 大姚县| 黄陵县| 依安县| 沐川县| 汨罗市| 临桂县|