国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于異構(gòu)數(shù)據(jù)存儲的車務(wù)數(shù)據(jù)分析系統(tǒng)開發(fā)方法研究

2017-04-12 05:15:00李勝蘭上海鐵路局金華車務(wù)段
上海鐵道增刊 2017年4期
關(guān)鍵詞:車務(wù)數(shù)據(jù)分析系統(tǒng)管理器

李勝蘭 上海鐵路局金華車務(wù)段

1 背景

隨著鐵路信息化的迅速發(fā)展,各業(yè)務(wù)部門都設(shè)有專屬的信息系統(tǒng),業(yè)務(wù)內(nèi)部逐漸開始信息共享,如清算運統(tǒng)一可以從十八點系統(tǒng)和TMIS系統(tǒng)獲取數(shù)據(jù);但不同業(yè)務(wù)之間的信息系統(tǒng)是異構(gòu)的,各系統(tǒng)的數(shù)據(jù)存儲分散獨立:客票用的是Sybase數(shù)據(jù)庫且與我們辦公網(wǎng)網(wǎng)絡(luò)物理隔離,管內(nèi)的運營數(shù)據(jù)分布在車務(wù)和貨運中心的兩臺Oracle服務(wù)器上,運輸中轉(zhuǎn)數(shù)據(jù)分布在金東站和中小站兩臺Oracle服務(wù)器上,形成一個個信息孤島。對于車務(wù)管理崗位來說,最好能把管內(nèi)各業(yè)務(wù)情況同時一覽無遺,即一張報表總覽客運的、貨運的、中轉(zhuǎn)停留情況等數(shù)據(jù),從全局分析、判斷、做決策。

那么如何集成這些信息孤島中所需的數(shù)據(jù)?如何在多個異類數(shù)據(jù)存儲區(qū)中提取數(shù)據(jù)并合并到單個一致的數(shù)據(jù)集中?這是開發(fā)我們的車務(wù)數(shù)據(jù)分析系統(tǒng)的關(guān)鍵所在。

之前,本單位曾經(jīng)做個一個信息共享系統(tǒng),它定時用第三方軟件PowerBuilder的數(shù)據(jù)管道工具來收集各個異構(gòu)數(shù)據(jù)存儲區(qū)的數(shù)據(jù),并全部復(fù)制存儲在本地數(shù)據(jù)庫。這樣大規(guī)模地多次重復(fù)復(fù)制,既占用網(wǎng)絡(luò)帶寬又浪費本地存儲資源;加上PB近年來已經(jīng)基本淘汰;且也成為新的64位服務(wù)器高性能的瓶頸。所以,找出一種新的解決方案勢在必行。

2 ETL技術(shù)

充分整合各種需要的數(shù)據(jù)資源進(jìn)行再構(gòu)建并呈現(xiàn),是信息系統(tǒng)建設(shè)一個重要領(lǐng)域。技術(shù)實現(xiàn)上,ETL(Extract,Transform,Load)抽取、轉(zhuǎn)換及裝載技術(shù)是一種方法。

不同業(yè)務(wù)系統(tǒng)不同時期的系統(tǒng)之間數(shù)據(jù)模型不一致,各個異構(gòu)存儲中抽取出來的數(shù)據(jù)在集成前必須進(jìn)行轉(zhuǎn)換后才能裝載,這就需要應(yīng)用ETL轉(zhuǎn)換。常用的轉(zhuǎn)換有以下種:

(1)空值處理:捕獲字段空值,進(jìn)行加載或替換為其他含義數(shù)據(jù),并可根據(jù)字段空值實現(xiàn)分流加載到不同目標(biāo)庫。

(2)規(guī)范化數(shù)據(jù)格式:實現(xiàn)字段格式約束定義,對于數(shù)據(jù)源中時間、數(shù)值、字符等數(shù)據(jù),可重新自定義加載格式。

(3)拆分?jǐn)?shù)據(jù):依據(jù)業(yè)務(wù)需求對字段可進(jìn)行分解,提取字段某部分信息。

(4)驗證數(shù)據(jù)正確性:利用Lookup及拆分功能進(jìn)行數(shù)據(jù)驗證。

(5)數(shù)據(jù)替換:對于因業(yè)務(wù)因素,可實現(xiàn)無效數(shù)據(jù)、缺失數(shù)據(jù)的替換。

市場上,ETL產(chǎn)品有微軟的SSIS(SQLServerIntegration Services)、Informatica 的 PowerCenter,SAPBusinessObjects DataIntegrator等等。其中SSIS是一種高性能的數(shù)據(jù)集成解決方案,它可以連接各種各樣的數(shù)據(jù)源,包括各種關(guān)系型數(shù)據(jù)庫及文檔數(shù)據(jù)庫。我們的車務(wù)數(shù)據(jù)分析系統(tǒng)是基于.NET框架,數(shù)據(jù)庫管理工具采用的是SQLServer,所以SSIS的確是個不錯的選擇。下面將詳細(xì)介紹SSIS。

3 SSIS介紹

SSIS(SQLServerIntegrationServices)就是 SQLServer集成服務(wù)的簡稱。安裝SQLServer時勾選上SSIS,就有SSIS開發(fā)工具。

SSIS包括數(shù)據(jù)集成的一條龍服務(wù):有用于提取和加載數(shù)據(jù)的數(shù)據(jù)源和目標(biāo);用于清理、聚合、合并和復(fù)制數(shù)據(jù)的轉(zhuǎn)換;用于對 IntegrationServices對象模型編程的應(yīng)用程序編程接口 (API),以及用于生成和調(diào)試包的圖形工具和向?qū)В挥糜趫?zhí)行工作流函數(shù)(如 FTP操作)、執(zhí)行 SQL語句或發(fā)送電子郵件的任務(wù)等。

SSIS可以連接到各種各樣的數(shù)據(jù)源。可以使用 .NET和OLEDB訪問接口連接到關(guān)系數(shù)據(jù)庫,還可以使用 ODBC驅(qū)動程序連接到多個早期數(shù)據(jù)庫。包還可以連接到平面文件、Excel文件和 AnalysisServices項目。

SSIS包含一些源組件:內(nèi)置任務(wù)、容器、轉(zhuǎn)換和數(shù)據(jù)適配器,您無需編寫一行代碼,就可以創(chuàng)建 SSIS解決方案來使用ETL和商業(yè)智能解決復(fù)雜的業(yè)務(wù)問題。這些組件負(fù)責(zé)從所連接的數(shù)據(jù)源中的平面文件、Excel電子表格、XML文檔和關(guān)系數(shù)據(jù)庫中的表及視圖提取數(shù)據(jù)。再用SSIS包含的轉(zhuǎn)換功能對數(shù)據(jù)進(jìn)行轉(zhuǎn)換。數(shù)據(jù)轉(zhuǎn)換為兼容格式后,就可以將其物理合并到一個數(shù)據(jù)集中。這個數(shù)據(jù)集可以是平面文件、原始文件和關(guān)系數(shù)據(jù)庫時所用的目標(biāo)。數(shù)據(jù)也可以加載到內(nèi)存中的記錄集中,供其他包元素訪問。

4 技術(shù)實踐

我們利用SSIS來實時增量抽取業(yè)務(wù)數(shù)據(jù),保證業(yè)務(wù)數(shù)據(jù)的快速和時效性。具體過程為建立序列容器,并且添加數(shù)據(jù)流任務(wù),TMIS數(shù)據(jù)定時為每 5分鐘增量抽取一次,18點統(tǒng)計數(shù)據(jù)每日七點后增量抽取一次。

SSIS的工作區(qū)見圖1。

圖1 SSIS設(shè)計界面圖

4.1 構(gòu)成

SSIS最基本的組成是包,每個包主要由以下幾部分構(gòu)成:

(1)連接管理器,位于圖1的中下方。

(2)控制流任務(wù)(ControlFlowTasks)及容器(Container)等,位于圖1的中間主窗口。多個控制流任務(wù)可以放在一個容器內(nèi),可以以容器為單位測試執(zhí)行情況。

(3)數(shù)據(jù)流的源、轉(zhuǎn)換、目標(biāo)處理任務(wù)(DataFlowTasks)等,雙擊控制流任務(wù)可以進(jìn)入具體的數(shù)據(jù)流設(shè)計頁面,圖1左邊的工具箱也換成數(shù)據(jù)流相關(guān)的工具(如圖2)。

圖2 數(shù)據(jù)流設(shè)計界面圖

(4)語法:變量、表達(dá)式、單/多分支、循環(huán)、連接線、作用域等,在數(shù)據(jù)流設(shè)計中具體應(yīng)用。

(5)日志提供程序。SSIS包含日志記錄功能,可在包或各個任務(wù)以及容器中添加日志記錄功能來監(jiān)控包執(zhí)行情況以及進(jìn)行故障排除,可選擇我記錄的時間,也可以對單個包創(chuàng)建多個日志。

4.2 具體應(yīng)用步驟

(1)新建項目和包:在VisualStudio中創(chuàng)建一個IntegrationServices項目,也可在SQLServer2008中打開SSIS并新建項目。在該項目中創(chuàng)建包,后綴名為.dtsx。

(2)建立連接管理器:在連接管理器中,添加、配置外部數(shù)據(jù)源新建數(shù)據(jù)源,即建立到各業(yè)務(wù)的多個數(shù)據(jù)庫的連接,TMIS數(shù)據(jù)相關(guān)的有三個:中小站TMIS、金東TMIS、衢化TMIS,18點統(tǒng)計數(shù)據(jù)有兩個:本段18點(客收、客發(fā)、停時、中時、運用車、金東辦理輛數(shù)等指標(biāo))和貨運中心18點(涉及一些裝卸車數(shù)和貨物發(fā)送)。這些都是Oracle數(shù)據(jù)庫,所以需安裝32位的Oracle客戶端軟件,配好本地服務(wù)名后,新建MicrosoftOLEDBProviderforOracle類型連接管理器。

(3)在連接管理器中,添加、配置目標(biāo)數(shù)據(jù)源,由于車務(wù)數(shù)據(jù)分析系統(tǒng)采用的數(shù)據(jù)庫是SQLServer,所以新建OLEDB類型連接管理器。

(4)在“控制流”ControlFlow面板中,新增、配置“數(shù)據(jù)流任務(wù)”DataFlowTask。

(5)雙擊該數(shù)據(jù)流任務(wù),進(jìn)入“數(shù)據(jù)流”DataFlow面板,添加數(shù)據(jù)源、數(shù)據(jù)流轉(zhuǎn)換及數(shù)據(jù)流目標(biāo)過程,如圖2。

(6)調(diào)試包,全為綠色即為成功。

(7)部署包。推薦修改配置屬性啟用包配置,然后再生成安裝部署文件。接著執(zhí)行xxx.SSISDeploymentManifest彈出包的安裝向?qū)б徊讲皆O(shè)置。SSIS包一般有兩種部署方式:部署到文件系統(tǒng)和部署到SQLServer。部署到文件系統(tǒng),操作更簡單,配置修改也比較容易;而部署到SQLServer安全性更高。

(8)包的調(diào)度。通過SQLServeAgentJOB調(diào)用類型“SQLServerIntegrationService包”,并選擇該包的依賴配置文件(非常重要,以后包無論通過什么用戶運行,都會重新加載這個配置文件,使用這個數(shù)據(jù)庫連接密碼,否則包可能執(zhí)行不成功。)執(zhí)行JOB,查詢是否成功,并查看包執(zhí)行后的結(jié)果。

5 實踐總結(jié)

通過SSIS連接Oracle數(shù)據(jù)庫時走了些許彎路,也積累了一些經(jīng)驗,在此與大家分享:

(1)必須注意SSIS是32位開發(fā)工具,即使安裝64位的SQLServer。而 32位的工具只能 load32位的 oracle provider。所以相應(yīng)的Oracle客戶端工具也必須安裝32位,在SSIS中才能連接上數(shù)據(jù)源。

(2)Linkedserver去 連接Oracle的時候,首先會讀取tnsname.ora文件,然后讀取sqlnet.ora文件,然后用SQLServr.exe直接去連oracle,連接成功以后會再次讀取tnsname.ora文件,然后開始載入oracleOLEDB的DLL文件。在64位操作系統(tǒng)上安裝的32位SQLServer中,讀到的路徑是這樣的:(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=10.137.90.10)(PORT=1521))(CONNECT_DATA=(SID=express)(CID=(PROGRAM=D:ProgramFiles(x86)MicrosoftSQL ServerMSSQL.1MSSQLBinnsqlservr.exe)(HOST=SCT-ITSQLTEST)(USER=SYSTEM))))

(3)在64bit的操作系統(tǒng)上安裝32位的SQLServer服務(wù)器以及32位的oracle客戶端,是可以創(chuàng)建linkedserver和SSIS程序包的。但是,oracle在處理包含括號文件全路徑名稱時有個bug,這個bug在8i,9i和10g的版本上都存在,會報錯ORA-12154或者 ORA-6413,必須通過打oracle的補?。˙ug 3807408)來解決,所以推薦安裝Oracle的11g。

(4)報“無法從OLEDB訪問接口檢索列代碼頁信息”時,將數(shù)據(jù)流任務(wù)屬性中AlwaysUseDefaultCodePage設(shè)為True。

(5)注意 varchar類型(非 unicode)裝載到 nvarchar(unicode)類型字段時,要加個中間轉(zhuǎn)換插件,把字段類型轉(zhuǎn)換下再插入,或是把源表的字段類型先轉(zhuǎn)換成nvarchar。在SSIS中字符串類型的對應(yīng)關(guān)系如表1。

表1 SSIS中字符串類型對應(yīng)表

(6)32位的 SSIS包在64位的SQLServer環(huán)境執(zhí)行時要做修改:可以在SSDT里面修改debug選項(Run64BitRuntime=false),還可以建立job執(zhí)行的時強制以32位方式運行。

6 展望

當(dāng)然,目前只是針對一、兩年內(nèi)近期的數(shù)據(jù)進(jìn)行分析與呈現(xiàn)。其實我們還可以進(jìn)一步深入挖掘多年的運營數(shù)據(jù),對于身處大數(shù)據(jù)時代的企業(yè)而言,成功的關(guān)鍵還在于找出大數(shù)據(jù)所隱含的真知灼見?!耙郧?,人們總說信息就是力量,但如今,對數(shù)據(jù)進(jìn)行分析、利用和挖掘才是力量之所在。”

猜你喜歡
車務(wù)數(shù)據(jù)分析系統(tǒng)管理器
淺談車務(wù)系統(tǒng)專業(yè)管理體系的構(gòu)建與實施
應(yīng)急狀態(tài)啟動磁盤管理器
STP車務(wù)信息集中管理系統(tǒng)及對分路不良問題的處理
利用GSM-R接口數(shù)據(jù)分析系統(tǒng)偏移的方法研究
車務(wù)數(shù)據(jù)維護(hù)系統(tǒng)在SAM系統(tǒng)中的應(yīng)用研究
Windows文件緩沖處理技術(shù)概述
焊接設(shè)備實時監(jiān)測與數(shù)據(jù)分析系統(tǒng)在核電建造行業(yè)的應(yīng)用
基于信息融合的社群金融信息數(shù)據(jù)分析系統(tǒng)的研究與實現(xiàn)
時代金融(2018年15期)2018-08-28 13:55:02
車務(wù)安全移動管理系統(tǒng)的設(shè)計與實現(xiàn)
智能數(shù)據(jù)分析系統(tǒng)研究及應(yīng)用
长海县| 板桥市| 玉林市| 德保县| 临汾市| 绩溪县| 和政县| 信丰县| 封开县| 门头沟区| 安乡县| 左贡县| 鄂伦春自治旗| 酒泉市| 黄龙县| 哈尔滨市| 东安县| 邵武市| 南平市| 林甸县| 白城市| 满城县| 扎囊县| 南郑县| 尤溪县| 广河县| 怀集县| 抚顺县| 湖南省| 湟中县| 景德镇市| 玛多县| 汪清县| 湄潭县| 西乡县| 怀仁县| 黄石市| 雅江县| 江孜县| 安顺市| 黄山市|