[摘要]本文提出了一個(gè)出版發(fā)行物批發(fā)和零售信息數(shù)據(jù)庫的設(shè)計(jì),針對國內(nèi)出版物數(shù)據(jù)管理上的混亂現(xiàn)狀給出了折中方案,開發(fā)出一個(gè)具有自主知識產(chǎn)權(quán)的行業(yè)數(shù)據(jù)庫,為進(jìn)一步的數(shù)據(jù)挖掘提供了一個(gè)切實(shí)可行和優(yōu)化的解決方案。
[關(guān)鍵詞]出版物統(tǒng)計(jì);出版物零售信息;出版物數(shù)據(jù)庫
[作者簡介]張宏,東方出版交易中心。
[基金項(xiàng)目]本項(xiàng)目得到了國家和上海市文化資金的資助
商品流通信息的統(tǒng)計(jì)一向是各個(gè)行業(yè)信息發(fā)展的重要目標(biāo),關(guān)系到每個(gè)行業(yè)的數(shù)據(jù)統(tǒng)計(jì)、數(shù)據(jù)分析和市場預(yù)測等重要的行業(yè)信息。本文結(jié)合出版發(fā)行行業(yè)的特點(diǎn),提出了一個(gè)面向行業(yè)數(shù)據(jù)挖掘的出版物流通數(shù)據(jù)庫,從行業(yè)特點(diǎn)、底層設(shè)計(jì)、結(jié)構(gòu)優(yōu)化、數(shù)據(jù)整理等多方面給出了解決方案。這個(gè)數(shù)據(jù)庫的設(shè)計(jì)方案不僅可以解決出版發(fā)行物流通的統(tǒng)計(jì)分析,同樣適用于其他行業(yè)。
一、國內(nèi)出版物的信息狀況
1. 行業(yè)信息標(biāo)準(zhǔn)
國內(nèi)出版發(fā)行行業(yè)的傳統(tǒng)出版物在信息統(tǒng)計(jì)方面有其先天的便利性,例如很早就實(shí)施了國際標(biāo)準(zhǔn)書號(簡稱“書號”)ISBN(International Standard Book Number);很早在各個(gè)零售網(wǎng)點(diǎn)進(jìn)行計(jì)算機(jī)管理和POS機(jī)收費(fèi);由專門的政府管理機(jī)構(gòu)對ISBN和圖書在版編目CIP(Cataloguing In Publication)數(shù)據(jù)進(jìn)行管理;圖書館對出版物的分類(中國圖書館分類法,簡稱“中圖法”)和機(jī)讀數(shù)據(jù)MARC(Machine Readable Catalogue)管理有成熟的系統(tǒng)等。
國內(nèi)實(shí)施的出版物信息規(guī)范標(biāo)準(zhǔn)雖然一直滯后于行業(yè)應(yīng)用和有所缺失,但已經(jīng)滿足了行業(yè)的絕大部分需求。標(biāo)準(zhǔn)大致如下:《中國標(biāo)準(zhǔn)書號(GB/T5795-2006)》《圖書在版編目數(shù)據(jù)(GB/T12451-2001)》《中國標(biāo)準(zhǔn)連續(xù)出版物號(GB/T9999-2001)》《圖書書名頁(GB/T12450-2001)》《書目信息交換用磁帶格式(GB/T2901-1992)》《圖書、音像制品、電子出版物營銷分類法(CY/T 51-2008)》(簡稱“營銷分類”),以及近期頒布的CNONIX(Chinese Online Information Exchange)《中國出版物在線信息交換CNONIX圖書產(chǎn)品信息格式》標(biāo)準(zhǔn)。
2. 標(biāo)準(zhǔn)實(shí)施情況
相對于行業(yè)標(biāo)準(zhǔn)頒布的情況,國內(nèi)出版發(fā)行行業(yè)對標(biāo)準(zhǔn)的實(shí)施則是非常落后和混亂。例如,以標(biāo)準(zhǔn)書號ISBN的實(shí)施為例,就存在多書一號的情況;同樣,在版編目CIP數(shù)據(jù)中的中圖法分類混亂,分類錯(cuò)誤,不同分類版本共存的情況多有發(fā)生;營銷分類發(fā)布多年,迄今沒有大范圍的實(shí)施和采用;零售網(wǎng)點(diǎn)無法通暢地得到出版數(shù)據(jù),絕大部分還停留在人工輸入和人為加工,不可避免地造成數(shù)據(jù)的混亂和重復(fù)等現(xiàn)象。
行業(yè)的區(qū)域性分割,即每個(gè)省份都有書店集團(tuán)以及出版集團(tuán),各自開發(fā)的信息系統(tǒng)造成數(shù)據(jù)規(guī)范的不統(tǒng)一,相互之間無法順暢地進(jìn)行數(shù)據(jù)交換。這些實(shí)施中的現(xiàn)狀給出版物流通數(shù)據(jù)庫的建立造成很大障礙。
二、出版物信息的突出問題
1. 唯一性問題
數(shù)據(jù)庫設(shè)計(jì)中為了加快查詢、保障數(shù)據(jù)規(guī)范,特別是保證信息的唯一性,需要設(shè)立“唯一鍵”(Primary Key)。出版物書號ISBN的設(shè)計(jì)初衷就是為每一個(gè)出版物提供唯一的標(biāo)識代碼。但在實(shí)際的行業(yè)實(shí)施中,卻出現(xiàn)了ISBN號不唯一的現(xiàn)象,并且占整個(gè)數(shù)據(jù)量的一個(gè)較大比例。
行業(yè)里每個(gè)信息系統(tǒng)的設(shè)計(jì)都遇到了這個(gè)ISBN不唯一的突出問題。作為書店或出版單位運(yùn)營的信息系統(tǒng),每個(gè)系統(tǒng)的開發(fā)者都提出了解決方案。例如,自定義一個(gè)唯一鍵或者構(gòu)建一個(gè)基于ISBN和其他后綴的唯一鍵等。
出版物流通信息數(shù)據(jù)庫從本質(zhì)上看,是一個(gè)行業(yè)信息統(tǒng)計(jì)的數(shù)據(jù)庫,對流通物的唯一性有極強(qiáng)的要求,但還沒有達(dá)到書店運(yùn)營系統(tǒng)的程度。然而,由不同運(yùn)營系統(tǒng)匯總的數(shù)據(jù)進(jìn)入統(tǒng)計(jì)數(shù)據(jù)庫,對不同系統(tǒng)的唯一鍵進(jìn)行標(biāo)識和轉(zhuǎn)換會消耗大量的資源。由此,我們提出了一個(gè)折中方案,即采用出版物的書號ISBN和出版物的定價(jià)組成一個(gè)混合型的唯一鍵。這個(gè)方案的優(yōu)點(diǎn)在于滿足了統(tǒng)計(jì)(總碼洋、總銷售冊數(shù)等)的要求,同時(shí)用最小的資源(自動(dòng)轉(zhuǎn)換)把不同系統(tǒng)的數(shù)據(jù)統(tǒng)一到一個(gè)共同的唯一標(biāo)識。方案的缺點(diǎn)在于遺失了一定量的信息,例如相同ISBN號的兩本教輔《語文》和《英語》(通常是一個(gè)出版商的一套教輔中的兩本),如果定價(jià)相同,在這個(gè)流通數(shù)據(jù)庫里就標(biāo)識為一個(gè)出版物,兩者的銷售數(shù)據(jù)就會混而為一。
2. 出版物分類的問題
另一個(gè)突出問題是出版物的分類問題?,F(xiàn)有行業(yè)中采用的分類多種多樣,有中圖法分類、營銷分類等,而且每個(gè)實(shí)施都有多種不同的版本。這種出版物分類亂象造成了信息系統(tǒng)開發(fā)和數(shù)據(jù)交流的另外一個(gè)巨大障礙。
中圖法分類是行業(yè)內(nèi)影響巨大,且普遍使用的一種分類法。中圖法具有分類較為科學(xué)和類別詳細(xì)的特點(diǎn),主要適用于圖書館系統(tǒng),便于圖書檢索。中圖法分類在國內(nèi)的出版物發(fā)行行業(yè)應(yīng)用廣泛,但其本身的局限性制約了中圖法在零售系統(tǒng)和數(shù)據(jù)統(tǒng)計(jì)中的使用。
營銷分類以中圖法為基礎(chǔ),是書店普遍使用的一種分類方法。營銷分類版本眾多,各地圖書零售門店都有自己的版本。其中深圳的版本在2008年成為行業(yè)的一個(gè)標(biāo)準(zhǔn),即《圖書、音像制品、電子出版物營銷分類法(CY/T 51-2008)》。營銷分類依據(jù)圖書銷售的特點(diǎn),把中圖法中一些零售比例高的低級別分類提到了主類別中,例如計(jì)算機(jī)圖書、少兒圖書等。
不同系統(tǒng)使用了不同的分類方法,使以統(tǒng)計(jì)為目的的流通信息數(shù)據(jù)庫遭遇了較大的困難。因此在數(shù)據(jù)庫的設(shè)計(jì)中,提出了一種更恰當(dāng)?shù)姆诸惙?。該分類以中圖法為基礎(chǔ),營銷分類為主體,沿襲了出版物統(tǒng)計(jì)中的傳統(tǒng)和習(xí)慣,是一個(gè)面向銷售統(tǒng)計(jì)的三級分類法。該分類以修改過的營銷分類為二級和三級分類,在二十多個(gè)營銷大類的基礎(chǔ)上歸納了七個(gè)一級的統(tǒng)計(jì)分類。具體如下:
文學(xué):包括小說、文學(xué)作品、文學(xué)研究等;
社科:包括馬列、哲學(xué)、政治、法律、軍事、經(jīng)濟(jì)、歷史、管理等;
科技:包括自然科學(xué)、醫(yī)學(xué)、農(nóng)林牧漁、工業(yè)技術(shù)、計(jì)算機(jī)等;
少兒:包括適合少兒的各類讀物;
藝術(shù):包括美術(shù)、設(shè)計(jì)、視聽藝術(shù)等;
生活:包括與生活、愛好、旅游等相關(guān)的類別;
教育:包括語言文字、文化教育等類別;
其他:包括進(jìn)口圖書、音像制品、圖片掛歷、辭書文摘等。
流通信息系統(tǒng)在處理數(shù)據(jù)時(shí),根據(jù)預(yù)先設(shè)定的映射,自動(dòng)把來自不同系統(tǒng)的銷售數(shù)據(jù)中的中圖法或營銷分類字段映射到這個(gè)新的統(tǒng)計(jì)分類中。同時(shí)在系統(tǒng)中保留了中圖法的字段,便于系統(tǒng)依據(jù)不同分類方法進(jìn)行統(tǒng)計(jì)。
三、出版物流通信息的數(shù)據(jù)庫
1.數(shù)據(jù)庫的設(shè)計(jì)
出版物流通信息數(shù)據(jù)庫有兩個(gè)要素,即出版物要素和流通要素。該數(shù)據(jù)庫可以分為三個(gè)部分,即出版物數(shù)據(jù)、流通數(shù)據(jù),以及輔助的數(shù)據(jù)(包括出版社數(shù)據(jù)、書店數(shù)據(jù)、作者數(shù)據(jù)等)。
出版物數(shù)據(jù)包含了出版物的唯一標(biāo)識鍵、零售條碼、出版物名稱、定價(jià)、出版單位(名義)、出版實(shí)體單位、出版年月、出版物統(tǒng)計(jì)分類、出版物中圖法分類、作者等重要字段,以及其他有統(tǒng)計(jì)需求的字段,例如印數(shù)、頁數(shù)、字?jǐn)?shù)等。
出版物流通數(shù)據(jù)包含了流通的要素,即出版物唯一標(biāo)識鍵、銷售數(shù)量、銷售時(shí)間、銷售地點(diǎn)(門店或網(wǎng)購的送貨地點(diǎn))。由于數(shù)據(jù)采集原因,無法對所有的流通數(shù)據(jù)按每單銷售進(jìn)行標(biāo)識,所以只記錄每個(gè)單品的流通信息。
輔助的數(shù)據(jù)表格包含了固定的輔助信息,例如出版社數(shù)據(jù)(包含了社名、社號、所屬集團(tuán)、所屬省份等)、書店數(shù)據(jù)(店名、所屬集團(tuán)、地點(diǎn)、所屬省份等)等。
2. 數(shù)據(jù)的采集
由于各地信息發(fā)展的不同,實(shí)時(shí)的數(shù)據(jù)采集較難實(shí)現(xiàn)?,F(xiàn)有的數(shù)據(jù)采集是定期(每周)地采集各個(gè)數(shù)據(jù)交換單位運(yùn)營數(shù)據(jù)庫中的原始POS數(shù)據(jù)。各單位依據(jù)自身系統(tǒng)的實(shí)際情況,導(dǎo)出包含必要字段的原始數(shù)據(jù),并且上傳到流通數(shù)據(jù)庫的服務(wù)器上。
出版物數(shù)據(jù)主要來自CIP數(shù)據(jù),以及各個(gè)書店的圖書數(shù)據(jù),每月進(jìn)行更新和補(bǔ)充。出版物數(shù)據(jù)大部分由軟件自動(dòng)處理,通過構(gòu)建唯一鍵(ISBN + 定價(jià)),以及分類的映射轉(zhuǎn)換后輸入數(shù)據(jù)庫。后期部分的人工干預(yù)主要是對分類錯(cuò)誤的修改,以及重復(fù)的數(shù)據(jù)條目進(jìn)行整理。出版物數(shù)據(jù)每年大約新增30萬條,設(shè)計(jì)容量為3000萬條數(shù)據(jù),迄今為止是一個(gè)300萬條左右的數(shù)據(jù)量。
流通數(shù)據(jù)的輸入由原始POS數(shù)據(jù)直接轉(zhuǎn)換,數(shù)據(jù)粒度是每天每個(gè)地點(diǎn)(門店)每個(gè)品種作為一條數(shù)據(jù)。全國每年出版物零售量大約為500億碼洋,按數(shù)據(jù)粒度折算,大約為20億條數(shù)據(jù)。數(shù)據(jù)庫設(shè)計(jì)采用分布式存儲,所以可容納的流通數(shù)據(jù)量沒有上限,可以輕松存儲2000億條數(shù)據(jù)。
輔助數(shù)據(jù)基本為變化不大的小量信息,一次性輸入,并定期進(jìn)行適當(dāng)?shù)木S護(hù)。輔助數(shù)據(jù)包括出版社信息、書店信息、統(tǒng)計(jì)分類表、中圖法分類表等。
四、數(shù)據(jù)使用的優(yōu)化
作為一個(gè)行業(yè)流通信息的龐大數(shù)據(jù)庫,其存儲和使用方面需要采取許多優(yōu)化措施才能滿足實(shí)時(shí)數(shù)據(jù)查詢的需要。
1. 存儲結(jié)構(gòu)的優(yōu)化
出版物流通數(shù)據(jù)的數(shù)據(jù)量非常龐大,每年可能的數(shù)據(jù)量達(dá)到20億條,累計(jì)數(shù)據(jù)量是百億甚至是千億的量級。迄今為止,所有商業(yè)數(shù)據(jù)庫軟件都無法很好地處理如此巨大的數(shù)據(jù)量。其中原因,有底層操作系統(tǒng)文件系統(tǒng)的限制(最大文件的限制),也有數(shù)據(jù)庫軟件本身存取數(shù)據(jù)的限制。
如此龐大的數(shù)據(jù)量可以采用分布式存儲的優(yōu)化方式,即把大數(shù)據(jù)量按一定的方式存儲到不同的數(shù)據(jù)表(文件)中。根據(jù)流通數(shù)據(jù)本身的特點(diǎn),以及這些數(shù)據(jù)查詢和使用的特點(diǎn),可以按時(shí)間進(jìn)行分段存儲。例如,流通數(shù)據(jù)可以按月存儲進(jìn)不同的數(shù)據(jù)表(文件)中,并且在每月表格上建立虛擬的總表格或View便于全部流通數(shù)據(jù)的查詢。
2. 數(shù)據(jù)索引的優(yōu)化
常規(guī)的數(shù)據(jù)索引優(yōu)化方式包括加速單個(gè)表格(文件)查詢的數(shù)據(jù)索引(Index)設(shè)立,加速多個(gè)表格(文件)關(guān)聯(lián)查詢的相關(guān)數(shù)據(jù)索引的設(shè)立。
適合出版物流通數(shù)據(jù)庫的常規(guī)數(shù)據(jù)優(yōu)化手段有:
建立針對性的數(shù)據(jù)索引:對基礎(chǔ)的數(shù)據(jù)表格(文件)進(jìn)行索引優(yōu)化。例如,對出版物數(shù)據(jù)的ISBN、出版單位、出版年月、作者等字段建立數(shù)據(jù)索引;
相關(guān)表格建立關(guān)聯(lián)索引:對出版物表格和銷售表格建立以統(tǒng)一的唯一鍵索引,便于表格間快速的關(guān)聯(lián)。
3. 中間數(shù)據(jù)庫的優(yōu)化
對龐大數(shù)據(jù)量的行業(yè)數(shù)據(jù)挖掘,還需要引入一些非常規(guī)的優(yōu)化方法。通過對數(shù)據(jù)查詢的深入分析,我們發(fā)現(xiàn)行業(yè)流通數(shù)據(jù)查詢的90%以上是重復(fù)的數(shù)據(jù)表格關(guān)聯(lián)以及關(guān)聯(lián)后中間數(shù)據(jù)的產(chǎn)生、篩選和匯總。因此,我們這里創(chuàng)新性的提出了“中間數(shù)據(jù)庫”這個(gè)創(chuàng)新優(yōu)化概念(相對于原來的流通數(shù)據(jù)庫“原始數(shù)據(jù)庫”而言),并且依據(jù)行業(yè)特點(diǎn)和查詢特點(diǎn),設(shè)計(jì)了適合出版物流通數(shù)據(jù)的中間數(shù)據(jù)庫。例如:
流通周匯總數(shù)據(jù):把每天的流通數(shù)據(jù)按周進(jìn)行匯總,再根據(jù)銷售地點(diǎn)的省級區(qū)域進(jìn)行匯總,然后關(guān)聯(lián)出版物數(shù)據(jù)、輔助數(shù)據(jù)后產(chǎn)生周匯總數(shù)據(jù)表,并且采用分布式存儲,按季度進(jìn)行存儲。在此中間數(shù)據(jù)上可以進(jìn)行銷售數(shù)據(jù)的按周查詢。
流通月匯總數(shù)據(jù):如上進(jìn)行月度的匯總,然后按季度進(jìn)行分布式存儲。在此中間數(shù)據(jù)上可以進(jìn)行銷售數(shù)據(jù)的按月、按季度、按年度查詢等。
4. 復(fù)雜查詢的優(yōu)化
數(shù)據(jù)挖掘中許多查詢需求非常復(fù)雜,需要多個(gè)SQL查詢進(jìn)行組合。借助現(xiàn)有數(shù)據(jù)庫軟件支持的臨時(shí)內(nèi)存數(shù)據(jù)存儲,可以開發(fā)出適合加速復(fù)雜查詢的優(yōu)化方式,即臨時(shí)數(shù)據(jù)表的優(yōu)化方式。臨時(shí)數(shù)據(jù)存儲于服務(wù)器的內(nèi)存中,比硬盤數(shù)據(jù)的查詢快至少一個(gè)數(shù)量級。
5. 軟件優(yōu)化和緩存
在前臺軟件設(shè)計(jì)中可以進(jìn)行數(shù)據(jù)的預(yù)提取,提前進(jìn)行可能需要數(shù)據(jù)的緩存,以加速用戶直觀的查詢速度的提升。例如,前臺查詢銷售排行前100,時(shí)間后臺緩存了排行前500的數(shù)據(jù),便于用戶查詢排行200~500名數(shù)據(jù)時(shí),感覺速度非常快。
通過對數(shù)據(jù)查詢的深入分析,進(jìn)一步優(yōu)化涉及的SQL查詢語句。同時(shí),針對所使用的數(shù)據(jù)庫軟件,盡量使用其特有的SQL優(yōu)化對策。
6. 硬件系統(tǒng)的升級
相對于數(shù)據(jù)庫設(shè)計(jì)、數(shù)據(jù)存儲優(yōu)化、查詢優(yōu)化等方式可以提供的巨大優(yōu)勢,提升硬件也是一個(gè)不可或缺的手段。在數(shù)據(jù)庫系統(tǒng)中,對數(shù)據(jù)查詢速度有明顯影響的硬件因素主要有內(nèi)存容量、硬盤讀取速度、CPU速度等。而前兩項(xiàng)指標(biāo)尤為重要。
數(shù)據(jù)庫服務(wù)器的內(nèi)存容量最好可以容納常用查詢數(shù)據(jù)的數(shù)據(jù)量,以便于操作系統(tǒng)和數(shù)據(jù)庫軟件進(jìn)行直接的數(shù)據(jù)緩存。假設(shè),常用數(shù)據(jù)牽涉到100G+的數(shù)據(jù)量,那建議的內(nèi)存容量就需要達(dá)到256G,其中操作系統(tǒng)和軟件占去部分內(nèi)存,剩余的可以全部用來緩存硬盤上100G+的數(shù)據(jù)。
建議使用讀取非常迅捷的固態(tài)硬盤(SSD),通過磁盤陣列方式把小容量的SSD組合成大容量的虛擬硬盤來存儲數(shù)據(jù)。磁盤陣列本身可以加速數(shù)據(jù)的讀取,已經(jīng)提供數(shù)據(jù)安全,免于因?yàn)橛脖P故障導(dǎo)致的數(shù)據(jù)損壞。
7. 優(yōu)化的結(jié)果
通過各種優(yōu)化措施的使用,整個(gè)出版物流通數(shù)據(jù)庫的優(yōu)化效果明顯。一個(gè)普通的,耗時(shí)10個(gè)小時(shí)的數(shù)據(jù)挖掘任務(wù),通過上述的優(yōu)化手段,可以在30秒中得到結(jié)果。從而使行業(yè)信息的實(shí)時(shí)報(bào)告成為可能。
出版物流通數(shù)據(jù)庫的設(shè)計(jì),通過折衷方式解決了行業(yè)信息化固有的障礙;使人工投入和干預(yù)達(dá)到最小化;使用創(chuàng)新的數(shù)據(jù)優(yōu)化方法,使耗時(shí)巨大的全數(shù)據(jù)庫查詢成為可能,查詢耗時(shí)下降可達(dá)99%;通過合理的軟件設(shè)計(jì)降低了硬件投入,節(jié)約硬件成本達(dá)到90%。