導航:首頁 > 編程語言 > 編程語言內存模型

編程語言內存模型

發布時間:2024-01-16 21:42:03

1. 如何系統地自學 python

是否非常想學好 Python,一方面被瑣事糾纏,一直沒能動手,另一方面,擔心學習成本太高,心裡默默敲著退堂鼓?

幸運的是,Python 是一門初學者友好的編程語言,想要完全掌握它,你不必花上太多的時間和精力。

Python 的設計哲學之一就是簡單易學,體現在兩個方面:

2. 銀行數據倉庫體系實踐(7)--數據模型設計及流程

        數據倉庫作為全行或全公司的數據中心和匯流排,匯集了全行各系統以及外部數據,通過良好的系統架構可以保證系統穩定性和處理高效性,那如何保障系統數據的完備性、規范性和統一性呢?這里就需要有良好的數據分區和數據模型,那數據分區在第三部分數據架構中已經介紹,本節將介紹如何進行數據模型的設計。

1、各數據分區的模型設計思路:

       數據架構部分中提到了在數據倉庫中主要分為以下區域,那各數據區域的主要設計原則如下:

       (1)主數據區:主數據區是全行最全的基礎數據區,保留歷史並作為整個數據倉庫的數據主存儲區,後續的數據都可以從主數據區數據加工獲得,因此主數據區的數據天然就要保留所有歷史數據軌跡。

        1) 近源模型區:主要是將所有入數據倉庫的數據表按歷史拉鏈表或事件表(APPEND演算法)的方式保留所有歷史數據,因此模型設計較簡單,只需要基於源系統表結構,對欄位進行數據標准化後,增加保留歷史數據演算法所需要的日期欄位即可。

        2)整合模型區:該模型區域按主題方式對數據進行建模,需要對源系統表欄位按主題分類劃分到不同的主題區域中,並主要按3範式的方式設計表結構,通過主題模型的設計並匯總各系統數據,可以從全行及集團角度進行客戶、產品、協議(賬戶、合同)分析,獲得統一視圖。比如說,全行有多少客戶、有多少產品?通過主題模型事先良好的設計和梳理,可以很快獲得相關統計數據。

       主數據區的模型設計按頂層設計(自上而下)為主,兼顧應用需求(自下而上)的方式,即需要有全局視角,也要滿足應用需求。那頂層設計主要是需要從全行數據角度對源系統的主要業務數據進行入倉,獲得全行客戶、業務數據的整體視角,同時又保存所有交易明細數據,滿足後續的數據分析需求;應用需求指源系統數據的入倉也需要考慮當前集市、數據應用系統的數據需求,因為數據需求是千變萬化的,但是只要保留全面的基礎的業務數據,就有了加工的基礎,當前的數據需求只是考慮的一部分,更多的需要根據業務經驗以及主題模型進行數據入倉和模型設計。

        主數據模型的設計主要自上而下,近源模型層雖然比較簡單,但設計步驟和整合模型類型,分為以下幾個步驟:

       步驟1:系統信息調研,篩選入倉的系統並深入了解業務數據;

       步驟2:對入倉系統進行表級篩選和欄位篩選,並將欄位進行初步映射;

        步驟3:根據入倉欄位按一定規范設計邏輯模型;

       步驟4:對邏輯模型進行物理化;

       (2)集市區:集市區的設計表結構設計主要按維度模型(雪花模型、星形模型)進行設計,主要是為了方便應用分析,滿足數據應用需求,集市區一般以切片的形式保留結果歷史數據,但保留期限不會太長,比如只保留月末數據以及當前月份的每日切片數據。

       數據集市需要從數據倉庫獲得基礎數據,對於倉內集市,可以直接訪問或通過視圖訪問,減少數據存儲,倉外集市則需要從數據倉庫獲得批量數據作為基礎數據進行存儲加工。因此倉外集市還需要設計基礎數據的保留策略。

      集市區的設計步驟如下:

       (3)介面區:介面區的設計完全根據數據應用系統的介面方式來進行,一般也是維度模型(事實表+維度表)方式,介面區之前也提到過,不做復雜計算,只做簡單關聯,可以將復雜計算放到集市或指標匯總層加工。

        (4)指標匯總區:作為集市介面區和主數據區的中間層,主要是提供基於各集市和介面數據的共性需求,基於主模型區數據進行統一加工。即面向所有的應用需求來設計,那中間層一般採用維度模型,按從細粒度到粗粒度的方式逐步匯總。由於各數據應用及集市的需求不斷變化,指標匯總區也是不斷進行完善,許多一開始在集市的加工由於其它集市或應用也需要,則會從集市轉移到指標匯總層。常見的數據就是客戶、賬戶、合同等常用的數據實體的寬表(事實表),統一進行匯總後供各數據應用使用。

        另外指標匯總層也包括共性指標的加工,指標可以通過基礎指標配置指標計算加工方式獲得衍生指標,那這些基礎指標和衍生指標的定義、口徑以及加工方式可以由指標管理系統來維護並集成到數據標准系統和元數據管理系統中。

        指標匯總區設計步驟如下:

        (5)非結構化數據存儲區:非結構化存儲區的設計不僅需要考慮非結構化數據本身的存儲,同時需要考慮非結構化數據所帶有的結構化屬性,因此在設計時主要考慮以下幾點:

         1)存儲路徑規劃:是需要將非結構化數據按源系統、類型、日期、外部來源等角度進行存儲路徑的規劃,分門別類,便於管理。

         2)對非結構化數據的元數據建立索引:比如對於憑證的影像,需要有賬戶、流水號、客戶名等相關結構化數據,以便完整描述影像圖片的來源,通過對這些結構化數據建立索引,方便查找。

         3)對部分文檔內容建立索引:對於部分文檔如合同電子版、紅頭文件PDF需要建立內容索引,以便快速搜索查找文件內容,一般可用支持HADOOP的ElasticSearch來實現。

         4)設立計算區和結果區:由於非結構化數據往往需要使用MAPREDUCE或程序化語言進行處理,也會產生中間臨時文件和結果數據,因此需要規劃計算區和結果區來存放這些數據。

        (6)歷史數據存儲區:歷史數據區作為歷史數據的歸檔,即包括結構化數據,也包括非結構化數據,對於歷史數據除了存儲也需要方便查找,歷史數據區的規劃設計需要考慮非結構化數據存儲區的存儲、索引設計外,還需要考慮以下幾點:

        1)壓縮,由於歷史數據使用頻率低,可以選擇壓縮率較高的演算法,降低存儲空間。

         2)容量規劃:由於歷史數據歸檔會越來越大,因此需要提前進行容量規劃以及歷史數據清理。比如10年以上的數據進行刪除。

         3)可設計一個管理系統對歷史數據進行歸檔、查找以及管理。

        (7)實時數據區:實時數據區需要使用部分批量數據來和實時流數據進行關聯加工,因此可從主數據區獲得所需要的數據後進行存放在實時數據區的關聯數據區,同時對於加工結果不僅可以推送到KAFKA等消息中間件,同時也可輸出到實時數據區的結果區進行保留。

        (8)在線查詢區:在線查詢區主要在線提供計算結果查詢,常用HBASE來實現,設計按照介面來分別存放到不同的HBASE表,欄位內容也主要是介面欄位內容。HBASE表可以根據應用或者介面類型進行分目錄和分用戶。由於在線查詢區和實時數據區考慮到作業的保障級別以及資源競爭,往往會單獨建立一套集群,與批量作業集群進行隔離,在線查詢的結果計算可以在批量集群計算後載入到在線查詢區。

        後續將分別對主數據區、集市及匯總指標層模型設計進行介紹,敬請關注。

3. 計算機程序員應該學什麼

需要學習VB程序設計,它是很基礎臘隱的一門程序語言,有它作基礎在以後的枯滲學習中會更容易。然後學C語言,學完C語言之後可以多練習練習,之後再多學習別的計算機語言會很容易。同時要學好數據結構、操作系統、編譯原理這三門課程。程序員包括的專業類型可以有計算機專業 、軟體開發專業、電子信息專業、通信專業、軟體工程等,程序員的范圍很廣,主要包括軟體設計開發以及程序編碼兩大類,現在辦公的技術人員也可以稱為程序員。所以,一名計算機程序員應當熟練掌輪敗廳握代碼的應用,學習創新能力的培養,熟練掌握電腦的一系列操作。

4. Python 使用對象模型來存儲數據

Python使用對象模型來存儲數據。構造任何類型的值都是一個對象。盡管Python通常被當成一種「面向對象的編程語言」,但你完全能夠寫出不使用任何類和實例的實用腳本。不過Python的對象語法和架構鼓勵我們使用這些特性,下面讓我們仔細研究一下Python對象。所有的Python對像都擁有三個特性:身份,類型和值。
身份:每一個對象都有一個唯一的身份標識自己,任何對象的身份可以使用內建函數id()來得到。這個值可以被認為是該對象的內存地址。你極少會用到這個值,也不用太關心它究竟是什麼。
類型對象的類型決定了該對象可以保存什麼類型的值,可以進行什麼樣的操作,以及遵循什麼樣的規則。你可以用內建函數type0查看Python對象的類型。因為在Python中類型也是對象(還記得我們提到Python是面向對象的這句話嗎?),所以type0返回的是對象而不是簡單的字元串。
值:對象表示的數據項。
上面三個特性在對象創建的時候就被賦值,除了值之外,其他兩個特性都是只讀的。對於新式類型和類,對象的類型也是可以改變的,不過並不推薦初學者這樣做。如果對象支持更新操作,那麼它的值就可以改變,否則它的值也是只讀的。對象的值是否可以更改被稱為對象的可改變性(mutability),我們會在後面的4.7小節中討論這個問題。只要一個對象還沒有被銷毀,這些特性就一直存在。Python有一系列的基本(內建)數據類型,必要時也可以創建自定義類型來滿足你對應用程序的需求。絕大多數應用程序通常使用標准類型,對特定的數據存儲則通過創建和實例化類來實現。

閱讀全文

與編程語言內存模型相關的資料

熱點內容
手機文件夾刪除又出現怎麼解決 瀏覽:285
php時間段分析 瀏覽:210
redisjava類 瀏覽:909
剪力牆錯開部分鋼筋是否加密 瀏覽:477
linux字元設備驅動程序 瀏覽:57
全排列演算法java 瀏覽:465
中國銀行app轉賬電子回單在哪裡 瀏覽:51
操作簡單的程序員 瀏覽:600
數值積分演算法求pi 瀏覽:18
按鈕怎麼連命令方塊 瀏覽:909
房貸還清後不解壓能貸款嗎 瀏覽:36
程序員哄老婆開心技術 瀏覽:672
oracle自動備份壓縮文件 瀏覽:855
遵義人字形加密網帶 瀏覽:255
寧波人社在哪裡下載app 瀏覽:92
好噠商戶app下載在哪裡下載 瀏覽:609
廣發兌星巴克是在app哪裡操作 瀏覽:783
linuxgetline 瀏覽:215
app的懸浮窗許可權在哪裡設置 瀏覽:686
51單片機定時器溢出標志 瀏覽:373