張 明
中央宣傳部電影數(shù)字節(jié)目管理中心,北京 100866
農(nóng)村電影放映工程是服務(wù)基層群眾的文化活動(dòng),自1998年提出,即在本世紀(jì)在廣大農(nóng)村實(shí)現(xiàn) “一村一月放映一場(chǎng)電影”的目標(biāo)。此工程是推進(jìn)文化基本公共服務(wù)均等化,加強(qiáng)農(nóng)村文化建設(shè),豐富農(nóng)村文化生活的重要手段。隨著我國(guó)國(guó)民經(jīng)濟(jì)水平的發(fā)展,廣大農(nóng)村群眾對(duì)于精神層面的需求也相應(yīng)提高,因此農(nóng)村公益電影公共服務(wù)平臺(tái)的升級(jí)建設(shè)也顯得尤為重要。為進(jìn)一步落實(shí)公共文化服務(wù)建設(shè)中百姓“點(diǎn)單”、院線 “派單”、放映隊(duì) “接單”、群眾 “評(píng)單”相貫通的工作模式,電影數(shù)字節(jié)目管理中心自2020年開展農(nóng)村電影放映滿意度調(diào)查工作,從觀影行為、觀影喜好、觀影評(píng)價(jià)分析等方面入手,通過(guò)網(wǎng)絡(luò)問(wèn)卷調(diào)查的方式獲取農(nóng)村電影觀眾群體觀影體驗(yàn)一手資料,掌握基層放映和觀影的實(shí)際情況,為下一步工作開展提供借鑒和參考。
移動(dòng)互聯(lián)網(wǎng)技術(shù)的飛速發(fā)展,推動(dòng)了人民生活方式的改變,傳統(tǒng)的問(wèn)卷調(diào)查方式收集率低,統(tǒng)計(jì)繁瑣,人工成本高。觀影群眾問(wèn)卷調(diào)查作為農(nóng)村公益電影放映中的一環(huán),在目前的信息化建設(shè)過(guò)程中存在以下需求。
(1)結(jié)合已有業(yè)務(wù),打通數(shù)據(jù)鏈路
農(nóng)村電影放映工程信息化運(yùn)營(yíng)已有十多年時(shí)間,形成了較為完備的業(yè)務(wù)流程,而群眾觀影問(wèn)卷調(diào)查反饋數(shù)據(jù)是新增的功能點(diǎn),作為其業(yè)務(wù)鏈條上的一環(huán),需結(jié)合已積累的生產(chǎn)數(shù)據(jù),形成更加全面的數(shù)據(jù)平臺(tái)。目前,平臺(tái)存儲(chǔ)了大量業(yè)務(wù)數(shù)據(jù),例如訂購(gòu)數(shù)據(jù)、放映數(shù)據(jù)、日志數(shù)據(jù)等,可以應(yīng)用這些數(shù)據(jù)來(lái)做運(yùn)營(yíng)及戰(zhàn)略決策。而新增的數(shù)據(jù)也需要制定相應(yīng)的標(biāo)準(zhǔn)和流程,讓評(píng)價(jià)數(shù)據(jù)成為真正有價(jià)值的存在。要解決此類問(wèn)題常有三個(gè)方法:方法一:做數(shù)據(jù)接口。由各個(gè)軟件廠商提供數(shù)據(jù)接口,實(shí)現(xiàn)數(shù)據(jù)匯集,這種方法需要花費(fèi)大量人力和時(shí)間去協(xié)調(diào),工作量很大且耗時(shí)長(zhǎng)。方法二:開放數(shù)據(jù)庫(kù)。為實(shí)現(xiàn)數(shù)據(jù)的采集和匯聚,開放數(shù)據(jù)庫(kù)是最直接的,但同樣也需要協(xié)調(diào)各軟件廠商開放數(shù)據(jù)庫(kù),難度很大。而要同時(shí)連接多個(gè)軟件廠商的數(shù)據(jù)庫(kù),并且實(shí)時(shí)獲取數(shù)據(jù),這對(duì)平臺(tái)性能也是個(gè)巨大的挑戰(zhàn)。方法三,基于底層數(shù)據(jù)交換的數(shù)據(jù)直接采集方式。此方式可以獨(dú)立抓取,不需要軟件廠家配合,能夠?qū)崟r(shí)采集數(shù)據(jù),兼容各種平臺(tái)軟件,配置簡(jiǎn)單,周期更短。一方面,可以快速自動(dòng)實(shí)現(xiàn)不同系統(tǒng)及軟件的數(shù)據(jù)交互,打通不同平臺(tái)之間的數(shù)據(jù)流通;另一方面,還可以最大程度地實(shí)現(xiàn)業(yè)務(wù)流程自動(dòng)化,解放勞力資源,實(shí)現(xiàn)增效降本。
(2)群眾填報(bào)時(shí)間集中,資源動(dòng)態(tài)調(diào)配
依據(jù)農(nóng)村電影放映業(yè)務(wù)的特點(diǎn),其放映時(shí)間大多集中在夜晚時(shí)段,觀影群眾問(wèn)卷調(diào)查的填寫也會(huì)在此時(shí)間段內(nèi)進(jìn)行訪問(wèn)與提交,因此會(huì)帶來(lái)短時(shí)間內(nèi)的高并發(fā)。高并發(fā)會(huì)導(dǎo)致站點(diǎn)服務(wù)器或者數(shù)據(jù)庫(kù)服務(wù)器資源被占滿崩潰,甚至出現(xiàn)服務(wù)器宕機(jī)、數(shù)據(jù)的存儲(chǔ)不完整、數(shù)據(jù)更新異常問(wèn)題等。而在客戶端可能引發(fā)的現(xiàn)象是網(wǎng)頁(yè)卡頓、提交數(shù)據(jù)失敗等,均會(huì)給用戶帶來(lái)較差的體驗(yàn)。而在白天時(shí)段,填報(bào)量較小。因此,需要搭建配套的軟硬件資源監(jiān)控,一方面解決短時(shí)間內(nèi)數(shù)據(jù)高并發(fā)訪問(wèn)帶來(lái)的影響,另一方面實(shí)現(xiàn) “閑時(shí)”資源動(dòng)態(tài)調(diào)配。
(3)實(shí)時(shí)監(jiān)控?cái)?shù)據(jù)狀態(tài),保證數(shù)據(jù)質(zhì)量
數(shù)據(jù)質(zhì)量是數(shù)據(jù)治理中重要的一把標(biāo)尺,高質(zhì)量的數(shù)據(jù)對(duì)管理決策、業(yè)務(wù)支撐都有極其重要的作用。數(shù)據(jù)質(zhì)量的關(guān)鍵所在包括完整性、一致性、準(zhǔn)確性和及時(shí)性。完整性確保數(shù)據(jù)中應(yīng)該收集的和實(shí)際收集的數(shù)據(jù)之間沒(méi)有差距,一致性是指數(shù)據(jù)類型必須與收集的數(shù)據(jù)的預(yù)期版本一致,準(zhǔn)確性是指收集的數(shù)據(jù)是正確的,相關(guān)并準(zhǔn)確地表示它應(yīng)該是什么,及時(shí)性要求應(yīng)在預(yù)期時(shí)間收到數(shù)據(jù),以便有效利用信息。當(dāng)數(shù)據(jù)質(zhì)量出現(xiàn)問(wèn)題,不能及時(shí)地警報(bào)通知,只能先發(fā)現(xiàn)后治理再進(jìn)行任務(wù)返工,影響數(shù)據(jù)產(chǎn)出和決策,而對(duì)數(shù)據(jù)質(zhì)量的實(shí)時(shí)監(jiān)控能夠第一時(shí)間反饋相關(guān)責(zé)任人相關(guān)事件,協(xié)助運(yùn)維人員更精準(zhǔn)排查問(wèn)題。
(4)成熟的問(wèn)卷產(chǎn)品數(shù)據(jù)分析維度受限
數(shù)據(jù)可視化的意義是幫助人更好地分析數(shù)據(jù),信息的質(zhì)量很大程度上依賴于其表達(dá)方式。數(shù)據(jù)可視化的本質(zhì)就是借助圖形化的手段,清晰有效地傳達(dá)與溝通信息。目前比較成熟的產(chǎn)品,例如問(wèn)卷星等,依托于自身的分析和展示平臺(tái),雖然也能夠按照客戶需求導(dǎo)出或者下載相應(yīng)表格或者統(tǒng)計(jì)數(shù)據(jù),但無(wú)法直接做到可視化呈現(xiàn),更不要說(shuō)與其他環(huán)節(jié)的數(shù)據(jù)進(jìn)行關(guān)聯(lián)分析及展示了。并且,受限于產(chǎn)品本身,是無(wú)法直接連接其數(shù)據(jù)庫(kù)的,后期數(shù)據(jù)分析維度受制于產(chǎn)品開放的權(quán)限。因此,如果要從根本上解決這個(gè)問(wèn)題,就需要從源頭上掌握數(shù)據(jù)本身所有權(quán)限,然后再在此基礎(chǔ)上進(jìn)行數(shù)據(jù)分析和展示。
針對(duì)以上具體問(wèn)題,文本介紹了一種基于Flask+Webhook技術(shù)的問(wèn)卷調(diào)查數(shù)據(jù)收集解決方案,旨在搭建一套映后能夠自適應(yīng)題目變化的評(píng)價(jià)分析系統(tǒng),及時(shí)反饋群眾觀影意見(jiàn),整合已有的生產(chǎn)數(shù)據(jù)進(jìn)行交叉分析,進(jìn)行可視化呈現(xiàn),為運(yùn)營(yíng)人員和管理人員提供決策支持。
REST(Representational State Transfer)是一種網(wǎng)絡(luò)應(yīng)用程序的設(shè)計(jì)風(fēng)格和開發(fā)方式,基于HTTP,可以使用XML格式定義或JSON格式定義。REST指的是一組架構(gòu)約束條件和原則。滿足這些約束條件和原則的應(yīng)用程序或設(shè)計(jì)就是RESTful。RESTful特點(diǎn)包括:每一個(gè)URI代表1種資源;客戶端使用GET、POST、PUT、DELETE 4個(gè)表示操作方式的動(dòng)詞對(duì)服務(wù)端資源進(jìn)行操作,GET用來(lái)獲取資源,POST用來(lái)新建資源或者用于更新資源,PUT用來(lái)更新資源,DELETE用來(lái)刪除資源;通過(guò)操作資源的表現(xiàn)形式來(lái)操作資源;資源的表現(xiàn)形式是XML或者HTML;客戶端與服務(wù)端之間的交互在請(qǐng)求之間是無(wú)狀態(tài)的,從客戶端到服務(wù)端的每個(gè)請(qǐng)求都必須包含理解請(qǐng)求所必需的信息。從其誕生之日開始,它就因其可擴(kuò)展性和簡(jiǎn)單性受到越來(lái)越多的架構(gòu)師和開發(fā)者們的青睞。一方面,隨著云計(jì)算和移動(dòng)計(jì)算的興起,許多企業(yè)愿意在互聯(lián)網(wǎng)上共享自己的數(shù)據(jù)、功能;另一方面,在企業(yè)中,RESTful API(也稱RESTful Web服務(wù))也逐漸超越SOAP成為實(shí)現(xiàn)SOA的重要手段之一。時(shí)至今日,RESTful架構(gòu)風(fēng)格已成為企業(yè)級(jí)服務(wù)的標(biāo)配。
Webhook是一個(gè)API概念,對(duì)比于RESTful是一種反向API機(jī)制,類似于觸發(fā)器。近幾年,Webhook作為一個(gè)輕量的事件處理應(yīng)用,在前后端對(duì)接的開發(fā)模式中變得越來(lái)越流行。Webhook提供了一種新的前后端交互方式,對(duì)于一些沒(méi)有前端頁(yè)面的業(yè)務(wù)場(chǎng)景,例如登錄驗(yàn)證、獲取反饋數(shù)據(jù),或者安全性較高的支付場(chǎng)景等,適合使用Webhook做主動(dòng)推送。如果客戶端要長(zhǎng)期監(jiān)聽某個(gè)任務(wù)的狀態(tài),按照正常的API調(diào)用的方式去做,就需要不停地輪詢服務(wù)器來(lái)獲取當(dāng)前狀態(tài);如果使用Webhook則無(wú)需輪詢,通過(guò)API可以確定是否發(fā)生了更改,如果更改了只需要等待服務(wù)器推送信息過(guò)來(lái),然后客戶端更新就可以。
在傳統(tǒng)的Web Server設(shè)計(jì)中,如果客戶端需要獲取服務(wù)器端的最新數(shù)據(jù),需要通過(guò)RESTful中的GET方法不停詢問(wèn)服務(wù)器是否有最新數(shù)據(jù),然后等待服務(wù)器的反饋。而在Webhook中,客戶端無(wú)需主動(dòng)詢問(wèn)服務(wù)器,如果服務(wù)器端有新數(shù)據(jù)會(huì)主動(dòng)推送到客戶端。由此來(lái)看,Webhook方式更加高效。
圖1 RESTful與Webhook
通常Webhook請(qǐng)求過(guò)來(lái)的數(shù)據(jù)格式為XML和JSON兩種,在現(xiàn)代Web應(yīng)用中,都能很好地解析和對(duì)這兩種數(shù)據(jù)進(jìn)行交互。由于Webhook會(huì)向公網(wǎng)上的Hook Url發(fā)送數(shù)據(jù),這就意味著某些不懷好意的人可能會(huì)找到這個(gè)Url,從而發(fā)送錯(cuò)誤數(shù)據(jù)。可以通過(guò)以下一些技術(shù)手段來(lái)解決這個(gè)問(wèn)題:增加Token機(jī)制、增加Auth認(rèn)證、只接收對(duì)應(yīng)服務(wù)端Domain或IP請(qǐng)求、數(shù)據(jù)簽名。
Flask和Django均是當(dāng)今最流行的Python Web框架。Flask是由Python語(yǔ)言寫成的輕量級(jí)的Web框架,其最早是由奧地利人Armin Ronacher于2010年發(fā)布。Flask最顯著的特點(diǎn)是 “微”框架,輕便靈活的同時(shí)又易于擴(kuò)展。默認(rèn)情況下,Flask只相當(dāng)于一個(gè)內(nèi)核,不包含數(shù)據(jù)庫(kù)抽象層ORM、表單驗(yàn)證、用戶認(rèn)證、發(fā)送郵件等其它Web框架經(jīng)常包含的功能。Flask依賴用一些靈活的擴(kuò)展,例如郵件Flask-Mail、用戶認(rèn)證Flask-Login、數(shù)據(jù)庫(kù)Flask-SQLAlchemy等來(lái)給Web應(yīng)用添加額外功能。Flask沒(méi)有指定的數(shù)據(jù)庫(kù),既可以是關(guān)系型的也可以是非關(guān)系型的。Django也是一個(gè)開源的Python Web應(yīng)用框架,最早于2005年發(fā)布,其采用了MVT的框架模式,即模型M、視圖V和模版T。Django被認(rèn)為是 “大而全”的重量級(jí) Web框架,其自帶大量的常用工具和組件,例如數(shù)據(jù)庫(kù)ORM組件、用戶認(rèn)證、權(quán)限管理、分頁(yè)、緩存等,甚至還自帶了管理后臺(tái)Admin,比較適合快速開發(fā)功能完善的企業(yè)級(jí)網(wǎng)站。Django自帶免費(fèi)的數(shù)據(jù)SQLite,同時(shí)支持MySQL、PostgreSQL等其他數(shù)據(jù)庫(kù)。
從應(yīng)用上來(lái)說(shuō),Flask與Django均廣泛用于Web應(yīng)用開發(fā)。Django和Flask各有利弊,如果開發(fā)項(xiàng)目目標(biāo)明確,就是要開發(fā)包含各種功能的傳統(tǒng)企業(yè)級(jí)網(wǎng)站,使用Django能節(jié)省不少尋找或開發(fā)第三方擴(kuò)展的精力。開發(fā)企業(yè)級(jí)網(wǎng)站通常由一個(gè)團(tuán)隊(duì)來(lái)進(jìn)行,Django可插拔式的APP設(shè)計(jì)思想和剛性的項(xiàng)目結(jié)構(gòu)便于團(tuán)隊(duì)后期維護(hù)項(xiàng)目代碼。如果只需要開發(fā)一個(gè)輕量級(jí)網(wǎng)站或者特定的微服務(wù),比如API,Django自帶的大而全的網(wǎng)站功能很多用不上,比如緩存和管理后臺(tái),此時(shí)只需要部署Flask即可。對(duì)于本項(xiàng)目而言,需求較為簡(jiǎn)單,只需搭建一個(gè)連接問(wèn)卷系統(tǒng)與數(shù)據(jù)庫(kù)之間的橋梁,無(wú)需搭建復(fù)雜全面的網(wǎng)站。綜合考量,本項(xiàng)目選擇Flask框架進(jìn)行搭建。
負(fù)載均衡是高可用網(wǎng)絡(luò)基礎(chǔ)架構(gòu)的關(guān)鍵組件,通常用于將工作負(fù)載分布到多個(gè)服務(wù)器上,以用來(lái)提高網(wǎng)站、應(yīng)用、數(shù)據(jù)庫(kù)或其他服務(wù)的性能和可靠性。
一個(gè)沒(méi)有負(fù)載均衡的Web架構(gòu)如圖2所示,用戶是直連到Web服務(wù)器,如果這個(gè)服務(wù)器宕機(jī)了,那么用戶也就沒(méi)辦法訪問(wèn)了。另外,如果同時(shí)有很多用戶試圖訪問(wèn)服務(wù)器,超過(guò)了其能處理的極限,就會(huì)出現(xiàn)加載速度緩慢或根本無(wú)法連接的情況。
圖2 無(wú)負(fù)載均衡的Web架構(gòu)
而通過(guò)在后端引入一個(gè)負(fù)載均衡器和至少一個(gè)額外的Web服務(wù)器,可以緩解這個(gè)故障。通常情況下,所有的后端服務(wù)器會(huì)保證提供相同的內(nèi)容,以便用戶無(wú)論哪個(gè)服務(wù)器響應(yīng),都能收到一致的內(nèi)容。
從圖3可以看到,用戶訪問(wèn)負(fù)載均衡器,再由負(fù)載均衡器將請(qǐng)求轉(zhuǎn)發(fā)給后端服務(wù)器。在這種情況下,單點(diǎn)故障現(xiàn)在轉(zhuǎn)移到負(fù)載均衡器上了。負(fù)載均衡器主要為下面四種主要類型的請(qǐng)求設(shè)置轉(zhuǎn)發(fā)規(guī)則:HTTP、HTTPS、TCP、UDP。負(fù)載均衡器一般根據(jù)兩個(gè)因素來(lái)決定要將請(qǐng)求轉(zhuǎn)發(fā)到哪個(gè)服務(wù)器。首先,確保所選擇的服務(wù)器能夠?qū)φ?qǐng)求做出響應(yīng),然后根據(jù)預(yù)先配置的規(guī)則從健康服務(wù)器池 (Healthy Pool)中進(jìn)行選擇。
圖3 有負(fù)載均衡的Web架構(gòu)
因?yàn)?負(fù)載均衡器應(yīng)當(dāng)只選擇能正常做出響應(yīng)的后端服務(wù)器,因此就需要有一種判斷后端服務(wù)器是否 “Healthy”的方法。為了監(jiān)視后臺(tái)服務(wù)器的運(yùn)行狀況,運(yùn)行狀態(tài)檢查服務(wù)會(huì)定期嘗試使用轉(zhuǎn)發(fā)規(guī)則定義的協(xié)議和端口去連接后端服務(wù)器。如果,服務(wù)器無(wú)法通過(guò)健康檢查,就會(huì)從池中剔除,保證流量不會(huì)被轉(zhuǎn)發(fā)到該服務(wù)器,直到其再次通過(guò)健康檢查為止。
ECharts開源來(lái)自百度商業(yè)前端數(shù)據(jù)可視化團(tuán)隊(duì),基于Html5 Canvas,是一個(gè)純Javascript圖表庫(kù),提供直觀、生動(dòng)、可交互、可個(gè)性化定制的數(shù)據(jù)可視化圖表。創(chuàng)新的拖拽重計(jì)算、數(shù)據(jù)視圖、值域漫游等特性大大增強(qiáng)了用戶體驗(yàn),賦予了用戶對(duì)數(shù)據(jù)進(jìn)行挖掘、整合的能力。
ECharts提供了豐富的可視化類型,例如常規(guī)的折線圖、柱狀圖、散點(diǎn)圖、餅圖、K線圖,用于統(tǒng)計(jì)的盒形圖,用于地理數(shù)據(jù)可視化的地圖、熱力圖、線圖,用于關(guān)系數(shù)據(jù)可視化的關(guān)系圖、Treemap、旭日?qǐng)D,用于多維數(shù)據(jù)可視化的平行坐標(biāo),還有用于BI的漏斗圖、儀表盤,并且支持圖與圖之間的混搭。支持多種數(shù)據(jù)格式無(wú)需轉(zhuǎn)換直接使用,通過(guò)增量渲染技術(shù)能夠展現(xiàn)千萬(wàn)級(jí)的數(shù)據(jù)量,多渲染方案跨平臺(tái)使用,支持對(duì)數(shù)據(jù)進(jìn)行多維度數(shù)據(jù)篩取、視圖縮放、展示細(xì)節(jié)等交互操作等。
系統(tǒng)整體架構(gòu)如圖4所示,用戶持有手機(jī)掃描二維碼進(jìn)入問(wèn)卷調(diào)查頁(yè)面,待用戶提交答案后,原始數(shù)據(jù)經(jīng)過(guò)Webhook服務(wù)推送至服務(wù)器。服務(wù)器上部署Flask用來(lái)接收數(shù)據(jù),使用Python進(jìn)行數(shù)據(jù)解析及清理然后存儲(chǔ)至數(shù)據(jù)庫(kù)MySQL。根據(jù)業(yè)務(wù)需求生成各種報(bào)表及可視化展示。
圖4 整體架構(gòu)
當(dāng)服務(wù)端通過(guò)Webhook服務(wù)推送數(shù)據(jù)到客戶端后,服務(wù)器就不再關(guān)注這些已發(fā)送數(shù)據(jù)。但是真實(shí)情況中因?yàn)榫W(wǎng)絡(luò)延遲、無(wú)法請(qǐng)求成功等情況會(huì)導(dǎo)致數(shù)據(jù)抵達(dá)客戶端失敗。因此,為解決此類問(wèn)題,需要對(duì)所有事件的狀態(tài)值進(jìn)行監(jiān)控,若發(fā)現(xiàn)非正常狀態(tài),需啟動(dòng)主動(dòng)發(fā)送機(jī)制,保證數(shù)據(jù)的完整性,如圖5所示。
圖5 Webhook數(shù)據(jù)監(jiān)控流程
通過(guò)Webhook服務(wù)推送的數(shù)據(jù)格式一般選擇JSON,客戶端使用Flask接收數(shù)據(jù),再使用Python語(yǔ)言進(jìn)行解析。原始數(shù)據(jù)中包含系統(tǒng)時(shí)間、問(wèn)卷ID、用戶標(biāo)識(shí)等基礎(chǔ)信息,另外需要根據(jù)不同的答案類型解析答案數(shù)據(jù),答案類型包括:單選、多選、下拉選項(xiàng)、填空、矩陣、文本、聯(lián)動(dòng)、附件等,每類題目解析格式需匹配相應(yīng)的格式。
問(wèn)卷調(diào)查的題目不是一成不變的,會(huì)根據(jù)農(nóng)村公益電影放映的服務(wù)對(duì)象、服務(wù)內(nèi)容、服務(wù)形式等進(jìn)行調(diào)整,例如每年圍繞不同主題的放映推薦活動(dòng)等,問(wèn)卷調(diào)查題目也需要與之適應(yīng)改變。為保障某些題目更改后能夠快速上線,需制定相應(yīng)的腳本檢測(cè)題目ID,判斷其題目類型并解析答案格式。如圖6所示,題干監(jiān)控程序負(fù)責(zé)對(duì)問(wèn)卷題目的實(shí)時(shí)監(jiān)控,一旦發(fā)現(xiàn)題干有所變化會(huì)立刻判斷變化類型,根據(jù)目標(biāo)類型修改解析過(guò)程和數(shù)據(jù)格式,然后更新至問(wèn)卷題目中。
圖6 題干自適應(yīng)流程
在數(shù)據(jù)來(lái)源多樣化的情況下,數(shù)據(jù)的可靠性和實(shí)用性直接影響到統(tǒng)計(jì)分析是否得到正確的結(jié)論,所以說(shuō)數(shù)據(jù)的質(zhì)量尤為重要。數(shù)據(jù)質(zhì)量主要分為以下幾個(gè)方面。
(1)完整性:確保數(shù)據(jù)中應(yīng)該收集的和實(shí)際收集的數(shù)據(jù)之間沒(méi)有差距。如果數(shù)據(jù)不完整,可以通過(guò)暫停提交來(lái)解決此問(wèn)題。通過(guò)使用強(qiáng)制字段功能,可以輕松實(shí)現(xiàn)數(shù)據(jù)完整性,比如沒(méi)有填寫必填字段則數(shù)據(jù)無(wú)法提交。數(shù)據(jù)的完整性也將確?;ㄙM(fèi)更少的時(shí)間浪費(fèi)在修復(fù)因數(shù)據(jù)不完整而導(dǎo)致的錯(cuò)誤。
(2)一致性:數(shù)據(jù)類型必須與收集數(shù)據(jù)的預(yù)期版本一致??梢酝ㄟ^(guò)使用數(shù)據(jù)收集應(yīng)用程序中的下拉菜單來(lái)確保這一點(diǎn),這將是以預(yù)期格式一致的方式收集數(shù)據(jù)。而不是以自由形式填寫,還有一些預(yù)先確定的選項(xiàng)可供選擇,常用于填寫性別、出生年月、省市區(qū)縣等。
(3)準(zhǔn)確性:收集的數(shù)據(jù)是正確的,相關(guān)并準(zhǔn)確地表示它應(yīng)該是什么。準(zhǔn)確性比數(shù)據(jù)完整性和一致性更有難度,但是,仍然存在人為錯(cuò)誤的空間。為了減少不準(zhǔn)確的可能性,必須實(shí)施額外的措施,例如將圖片捕獲、GPS位置和時(shí)間戳添加到記錄的事件中。
(4)及時(shí)性:應(yīng)在預(yù)期時(shí)間收到數(shù)據(jù),以便有效利用信息。任何較慢的速度都不能提供足夠的信息。有了實(shí)時(shí)數(shù)據(jù)和分析,管理者就能更好地做出更有效、更明智的決策。
為保證數(shù)據(jù)質(zhì)量,可以通過(guò)事先定義好的規(guī)則、調(diào)度時(shí)間、工作流程,自動(dòng)完成數(shù)據(jù)的質(zhì)量檢查,極大地減少人力的投入和過(guò)程干預(yù),提升效率,減少誤差,如圖7所示。同時(shí)遇到重大問(wèn)題能夠及時(shí)警告,對(duì)質(zhì)量檢查的結(jié)果提供多方式 (界面、郵件、短信)告警,及時(shí)了解到系統(tǒng)檢查結(jié)果,避免重大問(wèn)題的延誤。
圖7 數(shù)據(jù)質(zhì)量保證
可視化呈現(xiàn)能夠從多個(gè)角度進(jìn)行分析展示,現(xiàn)將觀影行為、觀影喜好、觀影評(píng)價(jià)分析如下。
觀影行為分析:從觀影場(chǎng)所、獲知放映信息渠道及觀影頻率三個(gè)方面調(diào)研觀影行為,并將這三個(gè)方面與受訪觀眾的所在地區(qū)與年齡進(jìn)行交叉分析,以得到不同地區(qū)、不同年齡受訪觀眾的觀影行為差異 (圖8)。
圖8 觀眾性別及年齡分布
觀影喜好分析:調(diào)研觀眾的觀影需求和喜好,有助于促進(jìn)更為精準(zhǔn)的供需對(duì)接。這一部分,從影片題材、片種兩個(gè)方面收集受訪觀眾的觀影需求(圖9),為后續(xù)影片供應(yīng)組織和宣傳推介工作的開展提供參考。
圖9 觀眾觀影偏好
觀影評(píng)價(jià)分析:從受訪觀眾觀影評(píng)價(jià)整體情況、視聽效果評(píng)價(jià)、觀眾影片質(zhì)量評(píng)價(jià)、觀影環(huán)境評(píng)價(jià)四個(gè)方面進(jìn)行打分,綜合考量對(duì)影片內(nèi)容、放映服務(wù)等環(huán)節(jié)的反饋。
文本介紹了一種基于Flask+Webhook技術(shù)的問(wèn)卷調(diào)查數(shù)據(jù)收集解決方案,結(jié)合已有業(yè)務(wù),打通了數(shù)據(jù)鏈路,能夠?qū)崿F(xiàn)資源動(dòng)態(tài)調(diào)配,實(shí)時(shí)監(jiān)控?cái)?shù)據(jù)狀態(tài),保證了數(shù)據(jù)質(zhì)量。通過(guò)實(shí)時(shí)獲取原始數(shù)據(jù)經(jīng)數(shù)據(jù)清洗、加工、存儲(chǔ)后,根據(jù)不同的業(yè)務(wù)場(chǎng)景進(jìn)行不同維度分析及展示。農(nóng)村觀影滿意度調(diào)查自2020年啟動(dòng),截至2022年3月31日,已收集問(wèn)卷調(diào)查樣本15萬(wàn)余份,整體滿意度為98.5%。調(diào)查問(wèn)卷通過(guò)網(wǎng)絡(luò)問(wèn)卷形式獲取農(nóng)村電影觀眾群體觀影體驗(yàn)一手資料,為了解群眾觀影需求和意見(jiàn)提供了渠道,建立了與群眾溝通的橋梁,促進(jìn)了公益放映電影市場(chǎng)的蓬勃發(fā)展。鑒于各省觀影群眾行為、偏好、評(píng)價(jià)會(huì)依托當(dāng)?shù)鼐唧w情況有所側(cè)重點(diǎn),接下來(lái)工作目標(biāo)是在全國(guó)數(shù)據(jù)的基礎(chǔ)上根據(jù)地理信息進(jìn)行細(xì)化分析,利用數(shù)據(jù)深化對(duì)影片宣發(fā)、選片訂購(gòu)的數(shù)據(jù)服務(wù),進(jìn)一步促進(jìn)需求和供給的精準(zhǔn)對(duì)接、影片資源的進(jìn)一步利用挖掘。?