由于工作需要淮韭,最近在弄數(shù)據(jù)庫相關(guān)的項目,對于很多地方不甚了解顿颅,特別是一些概念性的東西缸濒,知其然而不知其所以然,這里列出一些基本知識粱腻,做個印記,也和讀者共享斩跌。
數(shù)據(jù)倉庫:
數(shù)據(jù)倉庫(Data Warehouse)是一個面向主題的(Subject Oriented)绍些、集成的(Integrate)、相對穩(wěn)定的(Non-Volatile)耀鸦、反映歷史變化(Time Variant)的數(shù)據(jù)集合柬批,用于支持管理決策啸澡。
對于數(shù)據(jù)倉庫的概念我們可以從兩個層次予以理解,首先氮帐,數(shù)據(jù)倉庫用于支持決策嗅虏,面向分析型數(shù)據(jù)處理,它不同于企業(yè)現(xiàn)有的操作型數(shù)據(jù)庫上沐;其次皮服,數(shù)據(jù)倉庫是對多個異構(gòu)的數(shù)據(jù)源有效集成,集成后按照主題進行了重組参咙,并包含歷史數(shù)據(jù)龄广,而且存放在數(shù)據(jù)倉庫中的數(shù)據(jù)一般不再修改。
根據(jù)數(shù)據(jù)倉庫概念的含義蕴侧,數(shù)據(jù)倉庫擁有以下四個特點:
1择同、面向主題。
數(shù)據(jù)倉庫中的數(shù)據(jù)是按照一定的主題域進行組織净宵。
主題是一個抽象的概念敲才,是指用戶使用數(shù)據(jù)倉庫進行決策時所關(guān)心的重點方面,一個主題通常與多個操作型信息系統(tǒng)相關(guān)择葡。
而操作型數(shù)據(jù)庫的數(shù)據(jù)組織面向事務(wù)處理任務(wù)紧武,各個業(yè)務(wù)系統(tǒng)之間各自分離。
2刁岸、集成的脏里。
數(shù)據(jù)倉庫中的數(shù)據(jù)是在對原有分散的數(shù)據(jù)庫數(shù)據(jù)抽取、清理的基礎(chǔ)上經(jīng)過系統(tǒng)加工虹曙、匯總和整理得到的迫横,必須消除源數(shù)據(jù)中的不一致性,以保證數(shù)據(jù)倉庫內(nèi)的信息是關(guān)于整個企業(yè)的一致的全局信息酝碳。
面向事務(wù)處理的操作型數(shù)據(jù)庫通常與某些特定的應(yīng)用相關(guān)矾踱,數(shù)據(jù)庫之間相互獨立,并且往往是異構(gòu)的疏哗。
3呛讲、相對穩(wěn)定的。
數(shù)據(jù)倉庫的數(shù)據(jù)主要供企業(yè)決策分析之用返奉,所涉及的數(shù)據(jù)操作主要是數(shù)據(jù)查詢贝搁,一旦某個數(shù)據(jù)進入數(shù)據(jù)倉庫以后,一般情況下將被長期保留芽偏,也就是數(shù)據(jù)倉庫中一般有大量的查詢操作雷逆,但修改和刪除操作很少,通常只需要定期的加載污尉、刷新膀哲。
操作型數(shù)據(jù)庫中的數(shù)據(jù)通常實時更新往产,數(shù)據(jù)根據(jù)需要及時發(fā)生變化。
4某宪、反映歷史變化仿村。
數(shù)據(jù)倉庫中的數(shù)據(jù)通常包含歷史信息,系統(tǒng)記錄了企業(yè)從過去某一時點(如開始應(yīng)用數(shù)據(jù)倉庫的時點)到目前的各個階段的信息兴喂,通過這些信息蔼囊,可以對企業(yè)的發(fā)展歷程和未來趨勢做出定量分析和預(yù)測。
而操作型數(shù)據(jù)庫主要關(guān)心當(dāng)前某一個時間段內(nèi)的數(shù)據(jù)瞻想。
數(shù)據(jù)倉庫的存儲模式
數(shù)據(jù)倉庫存儲的兩個基本的元素是維度表和事實表压真。(維是看問題的角度,比如時間蘑险,部門滴肿,維度表放的就是這些東西的定義,事實表里放著要查詢的數(shù)據(jù)佃迄,同時有維的ID)
事實表:是反映業(yè)務(wù)核心的表泼差,表中存儲了與該業(yè)務(wù)相關(guān)的關(guān)鍵數(shù)據(jù),我們稱其為“度量值”呵俏,是今后用來計算及統(tǒng)計的主要字段堆缘。除此之外,事實表中還存儲著與該業(yè)務(wù)相關(guān)的所有表的關(guān)聯(lián)信息普碎,也就是數(shù)據(jù)庫中外鍵吼肥。能夠與其他表建立起聯(lián)系,從而獲得所需要的所有業(yè)務(wù)信息麻车。而被關(guān)聯(lián)的其他表就是維度表缀皱。
維度表:存儲與業(yè)務(wù)相關(guān)的非核心信息的表。
事實表與維度表之間通過主外鍵關(guān)聯(lián)动猬,結(jié)構(gòu)有兩種:星型結(jié)構(gòu)和雪花型結(jié)構(gòu)啤斗。
星型結(jié)構(gòu):如圖,是指一個事實表連接一個或多個維度表構(gòu)成的結(jié)構(gòu)赁咙,維度表不再關(guān)聯(lián)其他維度表钮莲。
雪花型結(jié)構(gòu):是指一個事實表關(guān)聯(lián)一個或多個維度表,并且維度表還關(guān)聯(lián)了其他的維度表彼水,構(gòu)成多層級的結(jié)構(gòu)崔拥,稱為雪花型。
聯(lián)機分析處理OLAP:
OLAP(聯(lián)機分析處理On-Line Analytical Processing)也叫多維DBMS凤覆。
OLAP是數(shù)據(jù)倉庫系統(tǒng)的主要應(yīng)用握童,支持復(fù)雜的分析操作,側(cè)重決策支持叛赚,并且提供直觀易懂的查詢結(jié)果澡绩。
OLAP的目標(biāo)是滿足決策支持或者滿足在多維環(huán)境下特定的查詢和報表需求,它的技術(shù)核心是"維"這個概念。
“維”是人們觀察客觀世界的角度,是一種高層次的類型劃分俺附》士ǎ“維”一般包含著層次關(guān)系,這種層次關(guān)系有時會相當(dāng)復(fù)雜。通過把一個實體的多項重要的屬性定義為多個維(dimension)事镣,使用戶能對不同維上的數(shù)據(jù)進行比較步鉴。因此OLAP也可以說是多維數(shù)據(jù)分析工具的集合。也叫做多維數(shù)據(jù)集璃哟。一般一個多維數(shù)據(jù)集可以用一個立方體的方式進行描述氛琢。
多維數(shù)據(jù)集是聯(lián)機分析處理 (OLAP) 中的主要對象,是一項可對數(shù)據(jù)倉庫中的數(shù)據(jù)進行快速訪問的技術(shù)随闪。多維數(shù)據(jù)集是一個數(shù)據(jù)集合阳似,通常從數(shù)據(jù)倉庫的子集構(gòu)造,并組織和匯總成一個由一組維度和度量值定義的多維結(jié)構(gòu)铐伴。
每個多維數(shù)據(jù)集都有一個架構(gòu)撮奏,架構(gòu)是數(shù)據(jù)倉庫中已聯(lián)接的各表的集合,多維數(shù)據(jù)集從數(shù)據(jù)倉庫提取其源數(shù)據(jù)当宴。架構(gòu)中的核心表是事實數(shù)據(jù)表畜吊,事實數(shù)據(jù)表是多維數(shù)據(jù)集度量值的源。
OLAP的基本多維分析操作有鉆然浮(roll up和drill down)玲献、切片(slice)和切塊(dice)、以及旋轉(zhuǎn)(pivot)梯浪、drill across捌年、drill through等∏ぃ·鉆取是改變維的層次延窜,變換分析的粒度。它包括向上鉆饶ǔ(roll up)和向下鉆饶嫒稹(drill down)。roll up是在某一維上將低層次的細節(jié)數(shù)據(jù)概括到高層次的匯總數(shù)據(jù)伙单,或者減少維數(shù)获高;而drill down則相反,它從匯總數(shù)據(jù)深入到細節(jié)數(shù)據(jù)進行觀察或增加新維吻育∧钛恚·切片和切塊是在一部分維上選定值后,關(guān)心度量數(shù)據(jù)在剩余維上的分布布疼。如果剩余的維只有兩個摊趾,則是切片币狠;如果有三個阻肩,則是切塊骇陈。·旋轉(zhuǎn)是變換維的方向魏身,即在表格中重新安排維的放置(例如行列互換)肛炮。
ETL介紹:
ETL(Extract-Transform-Load的縮寫止吐,即數(shù)據(jù)抽取、轉(zhuǎn)換侨糟、裝載的過程)作為BI/DW(Business Intelligence)的核心和靈魂碍扔,能夠按照統(tǒng)一的規(guī)則集成并提高數(shù)據(jù)的價值,是負責(zé)完成數(shù)據(jù)從數(shù)據(jù)源向目標(biāo)數(shù)據(jù)倉庫轉(zhuǎn)化的過程秕重,是實施數(shù)據(jù)倉庫的一重要組成部分 不同。
企業(yè)使用ETL工具后,利用起了已存在的數(shù)據(jù)資源悲幅,避免大量的聯(lián)機事務(wù)處理套鹅。ETL工具的典型代表有:OWB、微軟DTS, Informatica汰具,Datastage 等
ETL的質(zhì)量問題具體表現(xiàn)為:正確性卓鹿、完整性、一致性留荔、完備性吟孙、有效性、時效性和可獲取性聚蝶。
不同時期系統(tǒng)業(yè)務(wù)過程有變化杰妓,遺留系統(tǒng)和新業(yè)務(wù),遺留系統(tǒng)模塊在運營碘勉、人事巷挥、財務(wù)、辦公系統(tǒng)等相關(guān)信息的不一致验靡,ETL轉(zhuǎn)換的過程主要包含空值處理倍宾、規(guī)范化數(shù)據(jù)格式、拆分數(shù)據(jù)胜嗓、驗證數(shù)據(jù)正確性及數(shù)據(jù)替換高职。.
DTS介紹:
DTS (Data Transformation Services的縮寫)能處理數(shù)據(jù)導(dǎo)入、分析操作過程中與數(shù)據(jù)轉(zhuǎn)換有關(guān)的步驟 .進行校驗,清理等.可以自動或交互的從多個異構(gòu)數(shù)據(jù)源向數(shù)據(jù)倉庫或數(shù)據(jù)集市裝入數(shù)據(jù)的技術(shù)辞州。
大多數(shù)機構(gòu)都有數(shù)據(jù)的多種存儲格式和多個存儲位置怔锌。為了支持決策制定、改善系統(tǒng)性能或更新現(xiàn)有系統(tǒng),數(shù)據(jù)經(jīng)常必須從一個數(shù)據(jù)存儲位置移動到另一個存儲位置埃元,都可由DTS來做涝涤。DTS還允許用戶定期導(dǎo)入或變換數(shù)據(jù),以實現(xiàn)數(shù)據(jù)轉(zhuǎn)換的自動化亚情。
可以將 DTS 解決方案創(chuàng)建為一個或多個包妄痪。每個包都可能包含一組用來定義要執(zhí)行工作的經(jīng)過組織的任務(wù)、對數(shù)據(jù)和對象的轉(zhuǎn)換楞件、用來定義任務(wù)執(zhí)行的工作流約束以及與數(shù)據(jù)源和目標(biāo)的連接。DTS 包還提供了一些服務(wù)裳瘪,例如記錄包執(zhí)行詳細信息土浸、控制事務(wù)和處理全局變量。DTS提供一組工具彭羹,可以從不同的源將數(shù)據(jù)抽取黄伊、轉(zhuǎn)換和合并到一個或多個目標(biāo)位置。借助于DTS工具派殷,您可以創(chuàng)建適合于您的組織特定需要的自定義移動解決方案还最。
數(shù)據(jù)倉庫與ETL
如下圖所示,ETL服務(wù)于數(shù)據(jù)倉庫毡惜,將數(shù)據(jù)遷移至倉庫中拓轻。
ETL功能包括:數(shù)據(jù)抽取、數(shù)據(jù)傳輸经伙、數(shù)據(jù)轉(zhuǎn)換扶叉、數(shù)據(jù)裝載、配置維護帕膜。如果說數(shù)據(jù)倉庫的模型設(shè)計是一座大廈的設(shè)計藍圖枣氧,數(shù)據(jù)是磚 瓦的話,那么ETL就是建設(shè)大廈的過程垮刹。
E: Extract ,連接異構(gòu)數(shù)據(jù)源平臺达吞,提取數(shù)據(jù)
T: Transform,過程一般都是批量操作,也是ETL的核心
L: Load ,由普通關(guān)系庫導(dǎo)進數(shù)據(jù)倉庫
ETL正式運行特點:
一是數(shù)據(jù)同步荒典,按照固定周期運行
二是數(shù)據(jù)量一般都是巨大的酪劫,所以會拆分成E,T种蝶,L幾個過程
ETL正式運行要求:
增量與自動定時運行 契耿,相應(yīng)的加載策略、更新策略(周期)螃征、匯總策略(替換變化的數(shù)據(jù)記錄搪桂,或新增匯總記錄)、維護策略。
ETL與DTS關(guān)系
為數(shù)據(jù)倉庫提供導(dǎo)入踢械,清洗酗电,裝載的系統(tǒng)解決方案的工具叫ETL,DTS是微軟提供的實現(xiàn)ETL工具的一個解決方案内列,通過DTS組件的提供的功能撵术,可定制自己的ETL運行方案。
導(dǎo)入:配置好數(shù)據(jù)源連接由數(shù)據(jù)轉(zhuǎn)換任務(wù)從數(shù)據(jù)源提取數(shù)據(jù)(DTS的數(shù)據(jù)源Connections 11個话瞧,任務(wù)(task)19個嫩与,工作流(workflow)3個)
清洗:定制好轉(zhuǎn)換規(guī)則,在字段級上處理數(shù)據(jù)
裝載:清洗后處理的數(shù)據(jù)結(jié)果交排,批量存入數(shù)據(jù)庫中