廖海燕
(廣州市從化區(qū)職業(yè)技術(shù)學(xué)校,廣州510900)
區(qū)域物流系統(tǒng)中NoSQL與關(guān)系數(shù)據(jù)庫的結(jié)合設(shè)計(jì)
廖海燕
(廣州市從化區(qū)職業(yè)技術(shù)學(xué)校,廣州510900)
大數(shù)據(jù)時代的來臨給物流行業(yè)帶來新的機(jī)遇和挑戰(zhàn),新時代的物流行業(yè)對區(qū)域性和信息化要求更高。面對數(shù)據(jù)類型繁多、數(shù)據(jù)量巨大的區(qū)域物流信息,傳統(tǒng)的關(guān)系型數(shù)據(jù)庫已具有一定的局限性。首先了解NoSQL數(shù)據(jù)庫特點(diǎn),然后提出將NoSQL數(shù)據(jù)庫與關(guān)系型數(shù)據(jù)庫在系統(tǒng)中結(jié)合應(yīng)用的方式,并運(yùn)用到區(qū)域物流系統(tǒng)中,有效提高數(shù)據(jù)的動態(tài)擴(kuò)展和訪問的速度。
區(qū)域物流;NoSQL關(guān)系數(shù)據(jù)庫;動態(tài)擴(kuò)展
通過深入了解物流行業(yè)現(xiàn)狀及問題,發(fā)現(xiàn)物流信息化建設(shè)過程呈現(xiàn)種種矛盾,例如:物流行業(yè)信息化程度不夠與當(dāng)今社會物流發(fā)展程序相矛盾;物流行業(yè)信息化開展需企業(yè)付出的資金投入與企業(yè)自身生產(chǎn)過程中的資金投入相矛盾等。通過區(qū)域物流系統(tǒng)的建設(shè),能夠有效緩解這些矛盾,提高物流資源利用率、加強(qiáng)政府服務(wù)能力和降低物流信息化建設(shè)成本,有效促進(jìn)物流行業(yè)電子商務(wù)化。
大多數(shù)軟件系統(tǒng)在當(dāng)前階段仍采用關(guān)系型數(shù)據(jù)庫實(shí)現(xiàn),該方式需提前明確數(shù)據(jù)表的屬性,表結(jié)構(gòu)需要提前設(shè)計(jì)完善,因此,后期如果要更改表的字段屬性將非常麻煩。若采用NoSQL數(shù)據(jù)庫,則可發(fā)揮其良好擴(kuò)展性的優(yōu)勢,通過與關(guān)系數(shù)據(jù)庫的結(jié)合,取長補(bǔ)短,不僅可以解決系統(tǒng)中數(shù)據(jù)庫難以擴(kuò)展的問題,還可以提高系統(tǒng)在綜合查詢時的訪問速率。
數(shù)據(jù)與人們的生活息息相關(guān),大數(shù)據(jù)時代的來臨為現(xiàn)代人的生活帶來許多便利與挑戰(zhàn),特別是在互聯(lián)網(wǎng)+時代,如何從數(shù)據(jù)中挖掘更高效的信息,成為大家關(guān)注并迫切需要處理的問題。面對4V特性,NoSQL數(shù)據(jù)庫與關(guān)系型數(shù)據(jù)庫相比具有易擴(kuò)展、高性能、高可用、數(shù)據(jù)模型靈活等多種優(yōu)勢[1],特別是在大型的互聯(lián)網(wǎng)項(xiàng)目中的應(yīng)用,包括國外的谷歌、Facebook與IBM,國內(nèi)的淘寶、新浪、京東商城、360和搜狗等,在系統(tǒng)的開發(fā)與項(xiàng)目的推廣中均已采用NoSQL數(shù)據(jù)庫,并體現(xiàn)出其方便、快捷的特性,為互聯(lián)網(wǎng)公司帶來更高的效率。
NoSQL(Not Only SQL)是針對關(guān)系型數(shù)據(jù)庫中存在的,由表與表之前的關(guān)聯(lián)問題導(dǎo)致的性能瓶頸而提出,它主要采用不固定的鍵值對結(jié)構(gòu)減少數(shù)據(jù)的存儲、計(jì)算、查詢等操作在時間與空間上的開銷。關(guān)系型數(shù)據(jù)庫具有ACID(Atomicity,Consistency,Isolation,Durability)數(shù)據(jù)屬性,而NoSQL具有BASE(Basically,Available, Soft-state,Eventually-consistent)數(shù)據(jù)屬性,與ACID較大不同之處在于其不強(qiáng)迫數(shù)據(jù)的強(qiáng)一致性,但具有更好的可用性和穩(wěn)定的可靠性,其主要實(shí)現(xiàn)包括按功能劃分和共享分片,較適用平均分布式環(huán)境[2]。
通常情況下,NoSQL的整體架構(gòu)分為數(shù)據(jù)持久層、數(shù)據(jù)分布層、數(shù)據(jù)邏輯模型層和接口層共四層,每個層次又具有多樣選擇,例如,HBase接口層能支持REST,Thrift和Map-Reduce這三種特性[3]?,F(xiàn)階段NoSQL數(shù)據(jù)庫多種多樣,根據(jù)數(shù)據(jù)模型的不同可分為鍵值KV數(shù)據(jù)庫、列型數(shù)據(jù)庫、文檔型數(shù)據(jù)庫和圖數(shù)據(jù)庫等。鍵值數(shù)據(jù)庫中較為人知的代表是Redis和Riak;列型數(shù)據(jù)庫的代表有較為經(jīng)典的HBase,還有發(fā)展較快的Cassandra;文檔型數(shù)據(jù)庫中除了Mongo DB備受青睞,近年來Couch DB也受到了人們的關(guān)注;圖形數(shù)據(jù)庫的使用場景相對前面幾種數(shù)據(jù)庫來講略遜一些。
通過互聯(lián)網(wǎng)方便快捷地為區(qū)域物流企業(yè)及部門物流相關(guān)操作等服務(wù),通過數(shù)據(jù)交換平臺使得區(qū)域物流企業(yè)運(yùn)營趨向“協(xié)同商務(wù)”和“信息全程可視化”。
針對區(qū)域物流發(fā)展需要,結(jié)合現(xiàn)有軟件技術(shù),實(shí)現(xiàn)了安全認(rèn)證、報(bào)表管理、日志管理和信使提醒基礎(chǔ)功能,區(qū)域物流公共信息平臺在具備以下幾方面的功能:
公眾信息平臺:公眾信息平臺是為大眾提供的了解物流行業(yè)最新信息的渠道,用于發(fā)布最新行業(yè)資訊和公共信息查詢等。
電子交易平臺:可在平臺中直接進(jìn)行網(wǎng)上采購招標(biāo)、與海關(guān)系統(tǒng)相結(jié)合直接進(jìn)行物流報(bào)關(guān)報(bào)稅等。
物流業(yè)務(wù)應(yīng)用托管平臺:主要包括和物流信息化相關(guān)的功能,如在平臺中開展運(yùn)輸過程的信息管理和物流下單等業(yè)務(wù)管理,甚至包括其倉儲管理等。
協(xié)同辦公平臺:主要提供給平臺用戶辦公之用,包括區(qū)域內(nèi)的企業(yè)可以進(jìn)行人事及資產(chǎn)管理等。
數(shù)據(jù)交換平臺:系統(tǒng)設(shè)置(網(wǎng)關(guān)地址、WEB服務(wù)地址、業(yè)務(wù)數(shù)據(jù)連接地址、數(shù)據(jù)交換用戶、修改密碼)、交換管理、格式定義(新增SQL格式、管理SQL格式、管理標(biāo)準(zhǔn)格式)、代碼對應(yīng)(地址代碼管理、其他代碼管理)。數(shù)據(jù)交換適配器:根據(jù)業(yè)務(wù)伙伴的文檔資料格式進(jìn)行與自己的文檔資料格式進(jìn)行對應(yīng)映射轉(zhuǎn)換的工具,它可彈性的根據(jù)文檔來制作,映射創(chuàng)建器需要兩個XML schemas。其中schema是裝載的,映射創(chuàng)建器允許用戶在兩個schema之間創(chuàng)建映射,一旦生成映射,則最終步驟裝入QHX并可監(jiān)控它的轉(zhuǎn)換。
數(shù)據(jù)分析系統(tǒng):充分利用交易等物流信息進(jìn)行貨物、業(yè)務(wù)等方面的統(tǒng)計(jì)分析。
電子通關(guān)平臺:含平臺社區(qū)、通關(guān)查驗(yàn)、海事管理、貨物監(jiān)管等功能。
系統(tǒng)管理平臺:與其它軟件平臺相似,系統(tǒng)管理旨在管理用戶、權(quán)限、機(jī)構(gòu)、角色等。
圖1 功能結(jié)構(gòu)圖
區(qū)域物流系統(tǒng)在進(jìn)行數(shù)據(jù)庫設(shè)計(jì)時,首先針對各類功能進(jìn)行基本信息的建立,通過對基本信息進(jìn)行字段屬性的設(shè)計(jì)。由于區(qū)域物流橫跨區(qū)域廣、業(yè)務(wù)流程復(fù)雜、功能繁多,因此,在設(shè)計(jì)過程中應(yīng)充分考慮其系統(tǒng)的靈活性和用戶操作的方便性,并預(yù)留動態(tài)擴(kuò)展,使數(shù)據(jù)庫可以升級和改造。
綜合考慮各功能模塊的支撐數(shù)據(jù)的字段描述,該系統(tǒng)中數(shù)據(jù)庫的基本信息主要包括:客戶類型、客戶資料、貿(mào)易方式、結(jié)算方式、貨幣類型、地區(qū)資料(原“出口國家資料”)、海關(guān)資料、卸貨港口、船名航次、貨柜類型、發(fā)貨單位、包裝類型、計(jì)量單位、計(jì)量單位類型、倉位信息等。將這些基本信息進(jìn)行歸類,主要包括客戶數(shù)據(jù)、海事數(shù)據(jù)、貨物數(shù)據(jù)、交易數(shù)據(jù)。
以客戶數(shù)據(jù)為例,普通的軟件系統(tǒng)的客戶數(shù)據(jù)相對穩(wěn)定,其客戶特征可以通過數(shù)據(jù)表的屬性來表示,一個軟件系統(tǒng)通常針對一類用戶或者一類企業(yè),出現(xiàn)需要擴(kuò)展或變更的頻率較低,然而,區(qū)域物流系統(tǒng)面向整個區(qū)域內(nèi)的物流相關(guān)的企業(yè)、個人和政府,包括海事行政管理單位、物流企業(yè)、倉儲企業(yè)、公眾群眾等,并且,每類客戶在系統(tǒng)中的業(yè)務(wù)流程是不統(tǒng)一的,客戶特征也無法用統(tǒng)一的數(shù)據(jù)表表示,因此,需要用到表的關(guān)系去處理。針對客戶特征,需要設(shè)計(jì):客戶信息表、客戶類型表、客戶信息擴(kuò)展表、客戶屬性表。
采用關(guān)系型數(shù)據(jù)庫進(jìn)行寫入:當(dāng)系統(tǒng)需要增加的用戶類型未曾出現(xiàn)過時,首先需要在類型數(shù)據(jù)表中加入新的用戶類型,然后在客戶屬性表中增加客戶的分類屬性,然后通過表單頁面錄入客戶信息表,錄入需選擇客戶類型,同時填寫客戶屬性的相關(guān)數(shù)據(jù),最后保存數(shù)據(jù)到客戶信息表和客戶信息擴(kuò)展表。當(dāng)需要查詢某客戶的基本信息時,需要對四張數(shù)據(jù)表進(jìn)行關(guān)聯(lián)查詢,才能得到某客戶的所有屬性,可見,在區(qū)域物流系統(tǒng)中,存在關(guān)系型數(shù)據(jù)庫較難滿足的動態(tài)擴(kuò)展問題[4],此時,需要結(jié)合NoSQL進(jìn)行設(shè)計(jì),將需要動態(tài)擴(kuò)展的數(shù)據(jù)采用NoSQL進(jìn)行存儲,而屬性較為穩(wěn)定、原有關(guān)系型數(shù)據(jù)能夠滿足的情仍采用關(guān)系型數(shù)據(jù)庫,以提高系統(tǒng)的查詢能力。
4.1 數(shù)據(jù)信息分析
首先,應(yīng)根據(jù)系統(tǒng)的實(shí)際情況,將數(shù)據(jù)庫分為兩部分,一部為采用NoSQL數(shù)據(jù)庫為主,一部分仍采用關(guān)系型數(shù)據(jù)庫為主。
采用NoSQL數(shù)據(jù)庫的信息主要針對需屬性動態(tài)擴(kuò)展的數(shù)據(jù),該部分?jǐn)?shù)據(jù)若采用關(guān)系型數(shù)據(jù)庫,將影響數(shù)據(jù)的讀取和存入速度,影響系統(tǒng)性能。面對區(qū)域物流的客戶數(shù)據(jù)、海事數(shù)據(jù)、貨物數(shù)據(jù)、交易數(shù)據(jù)四大類數(shù)據(jù),采用NoSQL數(shù)據(jù)庫進(jìn)行存儲的數(shù)據(jù)包括客戶數(shù)據(jù)的客戶類型、客戶屬性、客戶資料;貨物數(shù)據(jù)的貨柜類型、包裝類型、倉位信息等。
采用關(guān)系型數(shù)據(jù)庫的信息主要包括客戶數(shù)據(jù)中的客戶基本信息(客戶帳戶、余額帳戶等);海事數(shù)據(jù)中的海關(guān)資料、地區(qū)資料、港口資料;貨物數(shù)據(jù)中的發(fā)貨信息(發(fā)貨單位、發(fā)貨時間等)、計(jì)量信息;交易數(shù)據(jù)的全部信息。
4.2 NoSQL與關(guān)系數(shù)據(jù)庫結(jié)合
系統(tǒng)充分利用NoSQL的動態(tài)擴(kuò)展優(yōu)勢,在關(guān)系型數(shù)據(jù)庫為主的信息其存儲方式不變的基礎(chǔ)上,將部分信息生成鋪助鏡像,如圖2(a)、圖2(b)所示。
圖2
在數(shù)據(jù)寫入階段,對于采用NoSQL數(shù)據(jù)庫為主的數(shù)據(jù)信息,數(shù)據(jù)同時寫入關(guān)系型數(shù)據(jù)庫和NoSQL數(shù)據(jù)庫,對于采用關(guān)系型數(shù)據(jù)庫為主的數(shù)據(jù)信息,僅需寫入關(guān)系型數(shù)據(jù)庫。在數(shù)據(jù)讀取階段,對于采用NoSQL數(shù)據(jù)庫為主的數(shù)據(jù)信息,數(shù)據(jù)只從NoSQL中讀取數(shù)據(jù),對于采用關(guān)系型數(shù)據(jù)庫為主的數(shù)據(jù)信息,僅需直接讀取關(guān)系型數(shù)據(jù)庫。
寫入階段程序:
本文在對區(qū)域物流系統(tǒng)充分調(diào)研的基礎(chǔ)上,發(fā)現(xiàn)在區(qū)域物流系統(tǒng)中,存在關(guān)系型數(shù)據(jù)庫較難滿足的動態(tài)擴(kuò)展問題,因此提出結(jié)合NoSQL進(jìn)行設(shè)計(jì),將需要動態(tài)擴(kuò)展的數(shù)據(jù)采用NoSQL進(jìn)行存儲,而屬性較為穩(wěn)定、原有關(guān)系型數(shù)據(jù)能夠滿足的情仍采用關(guān)系型數(shù)據(jù)庫,以提高系統(tǒng)的查詢能力。本文首先簡單介紹了NoSQL數(shù)據(jù)庫,然后分析了區(qū)域物流系統(tǒng)的功能結(jié)構(gòu),重點(diǎn)分析其數(shù)據(jù)庫特征,最后將NoSQL與關(guān)系數(shù)據(jù)庫進(jìn)行結(jié)合設(shè)計(jì),提高了系統(tǒng)的動態(tài)擴(kuò)展能力和訪問速率。
[1]李青.基于NoSQL的大數(shù)據(jù)處理的研究[D].西安電子科技大學(xué),2014.
[2]萬川梅.基于大數(shù)據(jù)下的NoSQL和MySQL融合的數(shù)據(jù)存儲模型研究[J].數(shù)字技術(shù)與應(yīng)用,2014(2)
[3]楊磊.基于NoSQL的多維Web數(shù)據(jù)倉庫框架設(shè)計(jì)與應(yīng)用[D],2014.
[4]王艷,董麗麗.NoSQL與關(guān)系數(shù)據(jù)庫相結(jié)合的設(shè)計(jì)與實(shí)踐[J].電腦知識與技術(shù),2014(10).
Design of Regional Logistics System Combined w ith NoSQL and Relationship Database
LIAO Hai-yan
(Conghua Guangzhou District Vocational and Technical School,Guangzhou 510900)
The advent of big data era brings new opportunities and challenges to the logistics industry,and brings higher requirement for regional and information.Introduces the characteristics of NoSQL databases,and then proposes the NoSQL database and relational database in the system according to the application and applies it to the regional logistics system,effectively improves the data dynamic expansion and access speed.
Regional Logistics;NoSQLRelational Database;Dynamic Extension
1007-1423(2017)03-0077-04
10.3969/j.issn.1007-1423.2017.03.020
廖海燕(1980-),女,廣東從化人,本科,助理講師,研究方向?yàn)橛?jì)算機(jī)教學(xué)
2016-03-01
2017-01-15