SQL Server 2005的集成服務和報表服務

發表于:2008-05-04來源:作者:點擊數: 標簽:sqlSQLServer服務server
對于“拿來主義”我舉手贊成 集成服務是SQL Server 2005中面向高 性能 數據集成的功能組成,它有一個配套的數據流機制和控制流機制,并且可以為數據分析服務提供必要的ETL支持。集成服務類似以往的DTS,采用包(Package)方式來執行一個個具有數據流支持的數

  對于“拿來主義”我舉手贊成

      集成服務是SQL Server 2005中面向高性能數據集成的功能組成,它有一個配套的數據流機制和控制流機制,并且可以為數據分析服務提供必要的ETL支持。集成服務類似以往的DTS,采用包(Package)方式來執行一個個具有數據流支持的數據任務。除此之外,集成服務還有很完善的圖形化管理工具和豐富的應用開發接口(API)。SQL Server 2005單獨把集成這一部分獨立成獨立的服務,充分表明微軟對其作為數據平臺而不是單純數據庫產品的定位。在放棄了以往DTS之后,微軟用.Net重寫了集成服務,并把它分成了面向流程處理的Integration Service run-time engine和面向數據轉換的Integration Service data flow engine,同時由于重新開發的緣故,保證.Net開發人員可以不通過互操作訪問集成服務,可以說為未來SQL Server集成功能的發展提前“脫胎換骨”。

    集成服務的系統架構

圖1:集成服務的總體架構

    總體上講,集成服務由四個部分組成,如下說明。

 Integration Services service:主要用來監控所有包的執行,并管理包的存儲。

 Integration Services object model:通過提供一組API來支持命令行工具、圖形化工具和用戶二次開發。

 Integration Services runtime and the run-time executables:具體完成包的執行過程。

 Data Flow task:提供了內存的緩沖結構用于保存從源數據源到目的數據源的中間結果,根據包的配置對提取的源數據進行清洗和修改,并控制整個包設計的數據文件和數據庫訪問。

    相對DTS的跨越式進步

    筆者相信很多讀者在初次進入集成服務界面的時候,會覺得與DTS似曾相識而且很多功能特性基本上雷同,但是筆者要說明的是這都是UI上的共同點,本質上集成服務已經有了跨越式的發展?;仡櫼酝鵇TS的功能,其實對于數據的加工功能非常有限,僅僅提供簡單的轉換支持,但是在集成服務中不僅可以完成數據轉換,還可以進行數據清理(Cleaning)和聚合(Aggregating),此外還提供了筆者一直期待的合并(Merging)和復制(Copying)(相信這兩個也是很多讀者期待已久的功能)。另外,相對于以往簡單的ActiveX腳本,新的集成服務支持讀者通過.Net代碼來完成轉換,這大大增強了數據轉換的控制能力。更為重要的是可以把整個數據包作為對象來調用,這樣對于解決應用中繁雜的數據提取、轉換和存儲工作有很大幫助,可以充分法發揮.Net Assembly與包兩種執行載體的優勢。

    增強了的“包”處理

    與DTS類似,SQL Server 2005中的集成服務的包也是由數據源連接、控制流、數據流、時間處理、包參數和配置組成的,新的集成服務中既可以用圖形設計器或.Net語言開發包,包是Integration Service提取、執行和保存的單元。一個最基本的包是由一個控制流和數據流組成,而且可以通過一個包模版生成,所有的開發工作可以在Visual Studio 2005或者SQL Server Business Intelligent Development Studio中完成。

圖2:集成到Visual Studio 2005的SSIS開發環境 

    其中,控制流元素主要描述的了包中Task的布局,每個Task之間的優先次序和它們如何與數據源連接關聯并執行的,為了方便邏輯上可以把一組相關的Task共同保存在一個Container中,可以把它們們作為一個集合進行各種配置??刂屏鞯倪壿嬍疽饨Y構如下:

圖3:控制流的邏輯示意結構

與控制流不同,數據流對象主要描述的是數據在點與點之間的轉換。這里轉換的都是數據,每個點都是一個邏輯的數據點(內存中邏輯的或者是介質上物理的)。SQL Server 2005中支持大量的數據源類型,同時借助.Net的擴展機制完全可以采用類似擴展ADO.Net Data Provider類似的辦法擴展數據源。數據流的邏輯示意結構如下:

圖4:數據流的邏輯示意結構

    這里筆者建議主要集中在SQL Server平臺上開發的朋友,可以現在就開始利用面向對象的繼承特性,結合微軟提供的Enterprise Library或者是一些Application Block開發通用的企業集成服務包摸版,通過繼承和多態在未來的開發中快速建立應用。

    同樣是由于SQL Server 2005集成了CLR,而且SSIS已經用.Net重寫了整個集成服務,因此通過集成服務的對象模型,開發人員可以從各個側面對其進行擴展,主要包括:

    (1)Task
(2) Connection Manager
(3) Log Provider
 (4)Enumerator
 (5)Data Flow Component
 (6)Event Handling

    更加豐富的事務控制能力

    對于商業邏輯而言,事務性始終是必不可少的內容,與以往DTS上簡單的事務不同,SQL Server 2005的集成服務可以在包(Package)、容器(Container)、任務(Task)三個層次配置操作過程的事務性,不過與COM+中DTC事務選項不同的是集成服務中缺少了RequireNew類型的事務關聯選項,僅僅提供Required、Supported和NotSupported三個交易關聯選項。

 Required:代表若父容器已經啟動了一個事務,那么當前單元就把自己加入(Enlist)進去,否則就重新發起一個事務。
 Supported:則持無所謂的態度,如果父容器有了,就把自己Enlist進去,否則也不會主動發起一個事務。
 NotSupported:則是持反叛的態度,不管父容器是否有事務,反正他自己的內容就是不在事務控制下完成。

    對于事務執行情況的監控可以采用WMI或者SQL Server 2005集成服務的Log Provider機制完成。不過筆者因為以往一直在用COM+開發,因此更習慣于用Component Service的DTC瀏覽器察或者是Performance Monitor查看DTC的執行情況。

圖5:用COM+的DTC瀏覽器察看分布式事務執行情況

 數據你好,請Report給我看

    SQL Server 2005中的報表服務筆者認為已經具有了一個企業報表環境的特質,這個版本中不僅提供了對于關系數據庫的支持,而且對分析服務的多維數據也提供了支持。面向用戶可以用HTML、PDF、TXT、Excel等多種格式導出報表,而且通過擴展機制幾乎可以涵蓋所有的數據源類型、所有的文本呈現類型和所有的報表方式。

    通過報表服務可以可視化的完成報表設計過程的交互工作,并且可以在Web上完成絕大多數的報表管理工作。在本次的版本中,還增加了對于多維數據的Drill down,并且可以在運行時進行對于報表內容的篩選。

    報表服務的整體架構

 

圖7:報表服務的整體架構

    上圖是報表服務的整體架構,這其中,報表服務特別強調了擴展機制,主要包括如下4個方面。

 Authentication extension:通過認證的擴展機制,可以從很多方面把來自企業的各種認證機制進行集成,包括傳統應用中的“賬號/口令”認證,Windows平臺的基于活動目錄的認證,不同信任域或者異構平臺的證書認證,甚至于通過Speech SDK開發的聲音認證、通過生物技術認證等等。

 Rendering extension:通過擴展該機制,可以把報表內容通過更多的介質方式保存,例如可以面向企業用戶提供電子郵件的支持。

 Delivery extension:提供擴展該機制可以提供更多樣的分發方式。

 Data Processing extension:擴展該機制可以把更多的數據源,尤其是非關系數據庫或者是不具有二維表格結構的數據加入到報表引擎中。

    叩開業務人員自主開發Ad Hoc報表的大門

    以往的報表工具更多面對的是開發技術人員,即使是非常簡單的報表都要經開發人員之手再呈現給用戶,但是報表服務提供了Report Model的機制,通過該機制可以把技術上的數據源信息以業務人員友好的方式,讓他們在自己熟悉的Office環境中完成一些簡單實用報表的DIY工作。同一個Report Model在不同的群體眼中有兩個不同的角色:

 對于業務人員,Report Model就是一個可以用來加工各種報表的平臺,里面有他們所熟悉的業務語言描述的各種數據資源。Report Model向業務人員屏蔽了數據源連接、訪問認證、表達式、原始數據內容篩選、執行參數等很多技術細節。

 對于Report Model設計的技術人員而言,他們面對的是一堆數據對象實體、關系和屬性。 

    筆者認為,如果您從事的是行業性開發或者是面向固定的大型企業應用開發,那么儲備Report Model開發積累一方面可以讓您快速的適應新的應用,另一方面可以簡化很多技術性處理工作,最主要的是如果培訓和宣傳到位,它可以把業務人員的主動性也調動起來,這對于節省IT日常維護成本也有直接的利益。 

    通過擴展機制建立“企業報表環境”

    隨著信息技術的廣泛應用,在許多政府和企業內部常常存在數個,甚至數十個信息系統?;诔杀竞瓦\行維護費用的考慮,許多信息系統都在做不同方式的集中,無論是服務器整合、數據庫整合、統一存儲結構、單點登錄和認證、應用系統間基于中間件和Web Service的互聯等等。從整體的角度來看,都是根據技術功能進行合并。反觀報表作為非常通用的業務功能和技術手段,其中不少表單在本政府序列或本行業的很多信息系統中無論數據內容還是數據格式都是一致的,但是在各個信息系統實施的時候,由于開發平臺、開發工具、報表工具的變化,又往往被反復的設計、開發、部署,這往往造成成本、人力、時間的浪費。 

    同時,為了滿足業務需求的變化,報表又往往是信息系統中修改較為頻繁的部分:

 對于報表的內容條目、格式的變更數量往往和界面的變更數量持平,對于新增的業務項目,報表的變更數量還可能數倍于對原始數據維護界面的變更數量。

 從獲取方式上,某個業務剛上線時可能只需要本地打印、Web訪問;隨著該業務逐步融為基本業務流程后,又常常會出現郵件報表的要求;伴隨移動設備的普及,提供精簡的移動報表的需求也常常會被提出;隨著政府內部和企業內部各個信息系統間、各政府信息系統之間、各企業信息系統間互聯的要求不斷深化,來自不同信息系統間的歸并報表也將會逐步浮出水面。

 作為某個政府序列或一個企業而言,報表往往是其非常重要的信息資產,如果在每個信息系統內部都作針對本系統或本企業人員的報表訪問控制,還是存在一個重復建設的問題。

 報表的集中存儲管理(存儲、備份、恢復等)如果分散到不同的信息系統中,設備、存儲管理人員也難免往往會出現重復投資的情況。

 報表內容修改的不一致性,例如業務變更時,對報表內容和數據布局的修改往往需要在多個信息系統中重復修改。 

    那么SQL Server 2005的報表服務器是從整個技術流程上為您進行這種企業報表集成提供可能:

圖8:報表服務擴展機制的過程化支持

原文轉自:http://www.anti-gravitydesign.com

国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97