黃筑斌, 吳 雋
(貴州省農業科技信息研究所, 貴州 貴陽 550006)
農產品價格信息是農產品市場供求關系的直接體現,因而是進行農產品市場分析的重要基礎[1]。隨著信息技術的發展,特別是數據庫技術與互聯網傳播技術的融合愈發成熟,以數據庫為支撐的農產品市場價格信息發布、查詢與復雜分析能夠更好地實現,價格信息的服務對象能夠依托互聯網便捷地獲取所需的數據,甚至可直接利用相關的價格信息系統分析數據,而無需額外的其他工具[2-5]。此類信息系統的技術實現手段在滿足服務對象多樣化信息需求的過程中日益成熟,但其自身的專業性和復雜程度也在提升,普遍需要運用計算機程序開發語言或網絡技術架構,進而提高了設計開發此類信息系統的技術門檻和成本。即使是基礎的信息發布和查詢,對于不具備一定編程知識和技能的人群,通過編寫計算機程序從零開始開發此類信息系統仍然具有較大難度。因此,一些無需編程實現數據信息檢索、查詢和分析的軟件應運而生,如tableau[6]、Power BI[7]、水晶報表[8],為具有相應信息需求而又缺乏編程能力的人員提供了極大的便利。
SQL Server Reporting Services(SSRS)是常用數據庫系統Microsoft SQL Server的一個服務和功能組件,與Microsoft SQL Server深度整合。其以數據報表為核心,提供設計、發布、管理數據報表的各項功能,可建立面向Web和移動終端的數據資源門戶[9]。同時,實現各功能的操作可視化程度較高,雖然需掌握基礎的數據庫表知識,但學習成本仍比掌握計算機程序開發語言低。因此,基于SSRS,以設計開發一套簡易的火龍果市場價格數據查詢系統為例,為開發農產品價格信息查詢系統提供一種比計算機編程方式相對簡易的技術實現方法提供借鑒。
在系統使用者未進行特定檢索條件下的查詢時,始終自動呈現當前最新的火龍果市場價格信息,且數據的更新周期可控。
能夠按地區、品種類別(具體品種)、市場范圍、交易時間和價格類別等查詢條件查詢火龍果產品的市場價格。
能夠按地區、品種類別、市場范圍和時間進行火龍果產品價格數據統計,實現基礎的統計分析功能,并以數字或簡單的圖形(如折線圖)進行呈現,以描述價格走勢。
SSRS的具體軟件硬件要求可參見文獻[10],且可在部署SQL Server時或之后隨時進行安裝,本例中使用已部署SQL Server的專業服務器安裝SSRS。ReportBuilder是SSRS中數據報表的設計工具,可不依賴于SSRS和網絡進行使用,其是實現數據呈現的核心工具,可在Microsoft公司官網下載。
數據源是系統自動發布和可供檢索的價格數據來源,是構建系統的前提。除可指定已有的數據源,如合法提供給系統進行合規使用的數據庫,也可自建數據源。在數據傳遞方式上,數據源可與SSRS不在同一運行環境或相同硬件載體上,這也為數據源的建立和獲取提供了較大的便利,也帶來管理上的靈活性。
雖然數據源的載體并不都是數據庫,但從數據管理的角度考慮,采用數據庫是較好的選擇。因此,首先建立火龍果市場價格數據庫,作為系統的數據源,其數據表設計見表1。完整的市場價格信息表,除具體的價格數值外,地區、市場、價格類型等字段的值提取自相關表的各ID值,實現完全的編碼化,以提高數據處理的靈活性,也可用于其他類型信息系統的二次開發。

表1 火龍果市場價格數據庫各表的字段設計
該數據庫的數據可通過實地采集方式獲取,也可通過火龍果產業信息服務站(點)采集火龍果產業市場信息,還可通過互聯網,利用其他現有的市場信息資源,如貴州農經網等權威網絡媒體發布的市場信息,搜集火龍果市場價格數據。本例中使用貴州農經網發布的貴州省火龍果市場價格數據。
數據集是實際可呈現給系統服務對象的數據集合。可按需求設置一定的規則對數據源中的所有數據進行組織,形成一個或多個數據集。為提供多維度的數據檢索條件,更好地實現數據的查詢功能,將上述各數據表中的數據分別建立數據集。具體設置以Area(地區)數據集為例(圖1),其他數據集類似。可使用查詢設計器或在“字段”選項卡中指定數據集包含的數據對象,本例中直接使用用專門處理數據庫數據的SQL(結構化查詢語言)代碼實現,各數據集的SQL查詢代碼分別如下。

圖1 Area(地區)數據集的屬性設置
地區數據集:
SELECT
DISTINCT([AreaCode]),[AreaName]
FROM [CAPPriceDB].[dbo].[pitayamarket]
市場數據集:
SELECT
[MarketID],[AreaCode],[AreaName],
[MarketName]
FROM [CAPPriceDB].[dbo].[pitayamarket]
WHERE [AreaCode]IN(@AreaCode)
產品名稱數據集:
SELECT DISTINCT([ProductName])
FROM [CAPPriceDB].[dbo].[price]
價格類型數據集:
SELECT
DISTINCT([PriceTypeName])
FROM [CAPPriceDB].[dbo].[price]
價格數據集:
SELECT
[MarketName],
[ProductName],
[Price],
[UnitName],
[TradeDate],
[MarketID]
FROM CAPPriceDB.dbo.price
WHERE [MarketID] IN (@Market)
AND [TradeDate] BETWEEN (@StartDate)
AND (@EndDate)
AND [ProductName]=(@ProductName)
AND [PriceTypeName] IN (@PriceType)
ORDER BY [TradeDate] DESC
查詢參數是供系統使用者查詢數據的檢索條件。在ReportBuilder中分別建立并配置查詢參數,其賦值來源于各數據集,基本屬性可直接參考其對應表的字段設計進行設置。具體設置以Area(地區)參數為例(圖2),其他參數類似。另外,為將交易時間列入檢索條件,建立StartDate(交易開始時間)和EndDate“交易結束時間”2個與數據集無關的時間維度參數。

圖2 Area(地區)參數的屬性設置
使用ReportBuilder以全可視化的方式進行系統界面的功能按鈕、配圖、文字、表格樣式等元素的設計,其中,價格分析圖通過圖表向導插入,如圖3所示。由此即完成了以往此類系統數據呈現所需的前端頁面開發。
使用ReportBuilder直接進行系統測試,可根據出錯提示對錯誤的數據源、數據集或參數配置進行改正。正確運行的系統,其查詢結果如圖4所示。
系統的發布以報表為載體,可在部署SSRS的終端設備通過其配置管理器,設置報表管理系統的網絡訪問地址,通過網頁端的報表管理系統對ReportBuilder設計完成的報表文件進行發布[11],并且可設置報表訪問者的各項權限,如限定可查詢的數據范圍等。另外,對于具有數據訪問或進一步開發利用權限的系統使用者,可根據實際情況向其提供報表文件副本,后者安裝ReportBuilder后即可在任何能夠連接到數據源的終端設備上查詢所需數據。
利用SSRS設計實現了具備信息發布、查詢和基礎統計分析功能的火龍果市場價格信息查詢系統。與常規的程序開發方式相比,該技術方法的實現難度較低,學習成本也不高,可作為設計開發類似系統的方法借鑒。SSRS是一套基于報表的完整數據服務,研究只是以一個相對簡單的實例介紹其應用方式,對所有技術細節未作全面闡述,可參考SSRS的官方文檔庫[9]或相關專著[12]進行更深入的了解。同時,在數據分析方面,研究也未設計更多更復雜的圖表呈現形式,事實上,隨著Microsoft公司在持續推進SSRS與同樣由其開發的Power BI進行融合,前者在數據分析和數據可視化中的應用已得到進一步增強。在大數據技術日益發展的今天,數據分析的手段已得到長足發展,也使數據分析日益成為一項重要的技能,與SSRS和Power BI類似的可視化數據處理和分析工具,如四方偉業公司的SDC UE[13],將會給更多有相關需求的群體提供更多的選擇。另外,近年來,隨著“Low Code”(低代碼)這一將降低各領域業務系統對計算機程序開發的過度依賴、提高業務應用開發成本和效率作為主要目標的技術浪潮興起[14],較少需要計算機程序開發知識與技能的數據處理與開發工具或許會迎來新發展機遇。但計算機程序開發語言自身也在隨著行業需求的變化不斷發展,在信息系統開發中的地位不會被上述的可視化或低代碼特征的工具所全面替代。因此,對于類似系統的設計與開發,實現的技術手段應結合實際條件和需求靈活選擇。