關(guān)于管理后臺(tái)和B端產(chǎn)品數(shù)據(jù)批量導(dǎo)入功能的產(chǎn)品思考

最近在做后臺(tái)管理相關(guān)的功能诽偷,處理數(shù)據(jù)的時(shí)候坤学,涉及到了數(shù)據(jù)批量導(dǎo)入功能疯坤,之前也做過(guò)批量導(dǎo)入,這里想聊聊自己對(duì)這個(gè)功能的一些思考拥峦。

大家好贴膘!我是 落霞孤鶩 ,今天想聊一聊數(shù)據(jù)批量導(dǎo)入功能的產(chǎn)品思考略号。作為中臺(tái)刑峡、后臺(tái)、B端產(chǎn)品經(jīng)理玄柠,設(shè)計(jì)數(shù)據(jù)批量導(dǎo)入功能大概率會(huì)遇到突梦,因?yàn)楹蠖酥饕芾淼木褪菙?shù)據(jù),比如用戶信息羽利、資源信息宫患、訓(xùn)練語(yǔ)料等等。

這個(gè)功能本身这弧,表現(xiàn)出來(lái)的界面一般都會(huì)比較簡(jiǎn)單娃闲,甚至是簡(jiǎn)陋:可能就是一個(gè)上傳按鈕,彈出一個(gè)文件選擇框匾浪,選擇一個(gè)本地文件皇帮,然后就完成了數(shù)據(jù)的導(dǎo)入。

但就是這么一個(gè)操作簡(jiǎn)單界面簡(jiǎn)陋的功能蛋辈,其前前后后需要思考的點(diǎn)還是挺多的属拾,我這里按照一個(gè)產(chǎn)品設(shè)計(jì)的流程來(lái)進(jìn)行拆解。

一冷溶、需求背景

數(shù)據(jù)批量導(dǎo)入功能渐白,一般是為了滿足幾個(gè)方面的需求:

  1. 業(yè)務(wù)數(shù)據(jù)的快速初始化,比如我們搭建知識(shí)庫(kù)時(shí)逞频,通過(guò)Excel完成數(shù)據(jù)的整理纯衍,然后通過(guò)批量導(dǎo)入功能快速導(dǎo)入知識(shí)

  2. 數(shù)據(jù)遷移,比如我們?cè)跍y(cè)試環(huán)境維護(hù)了很多業(yè)務(wù)數(shù)據(jù)苗胀,等系統(tǒng)測(cè)試上線后托酸,希望把這一部分業(yè)務(wù)數(shù)據(jù)快速轉(zhuǎn)移到線上系統(tǒng)

  3. 數(shù)據(jù)批量維護(hù),比如我們給數(shù)據(jù)打標(biāo)簽時(shí)柒巫,可以通過(guò)Excel表格強(qiáng)大的數(shù)據(jù)編輯能力,實(shí)現(xiàn)大量數(shù)據(jù)的調(diào)整和維護(hù)谷丸,然后通過(guò)Excel表格完成導(dǎo)入

有了這些需求渠道堡掏,在數(shù)據(jù)管理功能界面上,或多或少會(huì)有批量導(dǎo)入的影子刨疼。

二泉唁、需求分析

基于上面的需求背景鹅龄,我們仔細(xì)分析一下這個(gè)功能需求需要具備哪一些功能點(diǎn)。

2.1 導(dǎo)入按鈕

上傳按鈕是數(shù)據(jù)導(dǎo)入功能的入口亭畜,一般會(huì)放在數(shù)據(jù)管理列表頁(yè)面表格的左上方或著右上方扮休。

給出的按鈕文案可能是導(dǎo)入,也可能是上傳拴鸵,同時(shí)會(huì)配備一個(gè)上傳的icon玷坠,或者直接沒(méi)有文字,就是一個(gè)icon劲藐。

image-20210909133018729

一般我們點(diǎn)擊導(dǎo)入按鈕時(shí)八堡,都會(huì)直接彈出文件選擇框,我這里提供一種不同的思路聘芜。

考慮一下這個(gè)場(chǎng)景:

當(dāng)我們想起來(lái)要導(dǎo)入數(shù)據(jù)的時(shí)候兄渺,正常的思路是找導(dǎo)入按鈕,然后點(diǎn)擊導(dǎo)入按鈕的時(shí)候汰现,如果這個(gè)時(shí)候彈出一個(gè)文件選擇框時(shí)挂谍,才想起來(lái)了,導(dǎo)入好像需要一個(gè)模板瞎饲。

按照這樣的情景設(shè)定口叙,導(dǎo)入按鈕點(diǎn)擊后的效果,最合適的并不是彈出一個(gè)文件選擇框企软,而是提供一個(gè)模板下載界面庐扫,并提供一些說(shuō)明,然后在這個(gè)界面上仗哨,提供選擇文件的按鈕形庭,選擇文件后,如果發(fā)現(xiàn)選擇錯(cuò)誤文件后厌漂,還可以提供刪除功能萨醒,最終確認(rèn)后,點(diǎn)擊彈框中的導(dǎo)入按鈕苇倡。

image-20210909133238841

2.2 模板

2.2.1 模板下載

模板下載的入口富纸,如前面提到的,在點(diǎn)擊導(dǎo)入按鈕后的彈出框中提供旨椒,會(huì)是一個(gè)比較合適的交互晓褪。

2.2.2 數(shù)據(jù)填寫說(shuō)明

模板中除開(kāi)給出具體的字段外,一般需要做一個(gè)說(shuō)明综慎,每一列如何填寫涣仿,一列多值怎么處理,父子關(guān)系如何填寫等,這些說(shuō)明是為了更好的知道用戶在整理數(shù)據(jù)時(shí)不要出現(xiàn)太明顯的錯(cuò)誤好港。

其中有一些列的數(shù)據(jù)來(lái)自一些字典值愉镰,比如性別、狀態(tài)钧汹、類型等等丈探,這些就需要給出每一種值,可以在對(duì)應(yīng)的列通過(guò)Excel的列數(shù)據(jù)定義成列表拔莱,在列表中規(guī)范所有的值碗降,保證填寫的準(zhǔn)確性。

image-20210909133351530

2.3 文件選擇

在點(diǎn)擊選擇文件后按鈕或這鏈接后辨宠,我們考慮兩個(gè)問(wèn)題:過(guò)濾文件類型和限定文件大小

2.3.1 支持的文件類型

如果我們做過(guò)圖片上傳的功能遗锣,對(duì)文件類型的篩選就不會(huì)默認(rèn),一般前端會(huì)來(lái)確認(rèn)需要支持的文件類型是什么嗤形。

在數(shù)據(jù)導(dǎo)入的場(chǎng)景下精偿,也需要考慮文件類型的約束,目的有兩個(gè):

  1. 減少文件數(shù)據(jù)赋兵,讓用戶更容易找到文件

  2. 降低出錯(cuò)的可能笔咽,如果我們只支持2007版本以后的Excel,那么上傳2003版本的Excel文件或者直接上傳其他文件格式霹期,這種錯(cuò)誤其實(shí)是沒(méi)有必要讓用戶觸發(fā)的叶组。

Screenshot of a macOS file picker dialog. Files other than JPEG are grayed-out and unselectable.

2.3.2 文件大小

在選擇文件的時(shí)候, 我們還需要考慮文件大小历造,文件大小直接決定了數(shù)據(jù)量甩十,比如我們約定大小是10M以內(nèi),如果10M都是數(shù)據(jù)吭产,其實(shí)已經(jīng)是一個(gè)非常大的數(shù)據(jù)量了侣监。

做這個(gè)約束,更多的是為了導(dǎo)入的時(shí)候能稍微減輕一下后端的壓力臣淤,用戶當(dāng)然希望所有數(shù)據(jù)可以一次導(dǎo)入橄霉,但實(shí)際情況是需要考慮業(yè)務(wù)處理的復(fù)雜度和后端的承受能力。

因此做文件大小的約束邑蒋,實(shí)際也是在處理系統(tǒng)可用性和易用性的一個(gè)平衡姓蜂。

2.4 數(shù)據(jù)處理

在選擇了文件后,導(dǎo)入數(shù)據(jù)的重點(diǎn)開(kāi)始了医吊,我們需要將選擇的文件先上傳到后臺(tái)服務(wù)器中钱慢,然后提取表格中的數(shù)據(jù),對(duì)數(shù)據(jù)做處理卿堂,完成數(shù)據(jù)的導(dǎo)入滩字。

2.4.1 數(shù)據(jù)處理進(jìn)度

一般批量導(dǎo)入的數(shù)據(jù)量都會(huì)比較大,成百上千,甚至是上萬(wàn)條的情況都有麦箍,這個(gè)時(shí)候,界面上要如何知道導(dǎo)入的進(jìn)度呢陶珠?

image-20210909135031154

采用的方式有兩種:前端輪循和任務(wù)試挟裂。

  • 前端輪循

這個(gè)比較好理解,在選擇文件點(diǎn)擊確定后揍诽,前端調(diào)用上傳接口诀蓉,當(dāng)文件上傳成功后,上傳接口直接返回成功暑脆。后端不斷更新數(shù)據(jù)處理進(jìn)度渠啤,可以通過(guò)數(shù)據(jù)庫(kù)保存進(jìn)度,也可以通過(guò)Redis等后端技術(shù)實(shí)現(xiàn)消息發(fā)布和訂閱添吗,然后前端輪循一個(gè)數(shù)據(jù)處理狀態(tài)查詢接口沥曹,基于查詢到的數(shù)據(jù),更新前端界面的進(jìn)度條或保持Loading狀態(tài)碟联。

  • 任務(wù)式

這個(gè)會(huì)復(fù)雜一些妓美,就是點(diǎn)擊確定后,上傳接口接收文件的同時(shí)鲤孵,在數(shù)據(jù)庫(kù)中記錄了一個(gè)任務(wù)壶栋,同時(shí)會(huì)創(chuàng)建了一個(gè)異步線程,然后返回成功普监,而這個(gè)異步線程會(huì)去讀取這個(gè)任務(wù)數(shù)據(jù)贵试,并負(fù)責(zé)處理數(shù)據(jù),最后將處理結(jié)果記錄在數(shù)據(jù)庫(kù)中凯正。前端提供一個(gè)導(dǎo)入任務(wù)管理頁(yè)面毙玻,在管理頁(yè)面上可以看到這個(gè)任務(wù)的狀態(tài)。

2.4.2 數(shù)據(jù)處理

數(shù)據(jù)處理一般都是一個(gè)比較復(fù)雜的過(guò)程漆际,因?yàn)槭峭ㄟ^(guò)Excel完成的數(shù)據(jù)整理淆珊,批量的方式完成數(shù)據(jù)更新,所以這里面對(duì)數(shù)據(jù)的校驗(yàn)工作一定要做到位奸汇,如果沒(méi)有處理好數(shù)據(jù)校驗(yàn)施符,就會(huì)帶來(lái)大量的錯(cuò)誤數(shù)據(jù)和垃圾數(shù)據(jù),從而影響系統(tǒng)正常的業(yè)務(wù)功能和流程擂找。

2.4.2.1 出現(xiàn)異常是否回滾

為了保證數(shù)據(jù)導(dǎo)入后能夠正常使用戳吝,會(huì)在嚴(yán)格的校驗(yàn),如果校驗(yàn)時(shí)某一條數(shù)據(jù)沒(méi)有通過(guò)贯涎,那么這次的導(dǎo)入是要整體失敗還是單條記錄為失斕蕖?

  1. 單條異常,不影響整體導(dǎo)入:這里其實(shí)主要考慮每一條數(shù)據(jù)是否獨(dú)立是獨(dú)立個(gè)體陆盘,如果是獨(dú)立個(gè)體普筹,就可以單條異常不導(dǎo)入,其他正常數(shù)據(jù)繼續(xù)導(dǎo)入

這里面還需要保證一點(diǎn)隘马,如果一條數(shù)據(jù)中設(shè)計(jì)多個(gè)業(yè)務(wù)對(duì)象數(shù)據(jù)導(dǎo)入太防,則需要處理好事物,即:其中一個(gè)業(yè)務(wù)對(duì)象導(dǎo)入失敗酸员,則其他已經(jīng)導(dǎo)入的業(yè)務(wù)數(shù)據(jù)也需要回滾蜒车,保證數(shù)據(jù)的一致性。

  1. 單條異常幔嗦,整體導(dǎo)入異常:如果說(shuō)數(shù)據(jù)間有關(guān)聯(lián)酿愧,單條數(shù)據(jù)的異常會(huì)影響到其他待導(dǎo)入數(shù)據(jù),則一條數(shù)據(jù)異常邀泉,就需要終止導(dǎo)入嬉挡。
2.4.2.2 異常數(shù)據(jù)如何處理

如果我們?cè)试S單條數(shù)據(jù)異常,其他數(shù)據(jù)可以繼續(xù)導(dǎo)入呼渣,那么緊接著的問(wèn)題就是棘伴,這些異常數(shù)據(jù)如何處理?

有兩種比較好的處理方式:

  1. 提供一個(gè)異常數(shù)據(jù)查詢界面屁置,將數(shù)據(jù)和異常原因展示出來(lái)焊夸。

  2. 或者提供一個(gè)異常數(shù)據(jù)下載功能,在數(shù)據(jù)處理完成后蓝角,將異常數(shù)據(jù)摘出來(lái)阱穗,生成一個(gè)新的表格,格式和導(dǎo)入表格的格式一致使鹅,并再最后一列寫入錯(cuò)誤原因揪阶。

這么做的原因是,這個(gè)表格用戶可以下載下來(lái)患朱,然后打開(kāi)后可以在表格里面基于錯(cuò)誤對(duì)數(shù)據(jù)做調(diào)整鲁僚,然后刪除最后一列的錯(cuò)誤原因,再用這個(gè)表格數(shù)據(jù)繼續(xù)上傳導(dǎo)入裁厅。

2.5 數(shù)據(jù)導(dǎo)入后的批量操作支撐

計(jì)算機(jī)和人的區(qū)別就是冰沙,人容易犯小錯(cuò)誤,比如導(dǎo)入數(shù)據(jù)這個(gè)操作执虹,經(jīng)常是導(dǎo)入到系統(tǒng)后才發(fā)現(xiàn)導(dǎo)入的數(shù)據(jù)有問(wèn)題拓挥,需要修改,但是數(shù)據(jù)已經(jīng)導(dǎo)入成功了袋励,而且量還很大侥啤,這個(gè)時(shí)候当叭,刪除數(shù)據(jù)就是一個(gè)吃力的工作。

所以這里我們?nèi)绻峁┝伺繉?dǎo)入功能后盖灸,相對(duì)應(yīng)的數(shù)據(jù)操作功能蚁鳖,基本上都需要提供批量操作的能力:

  • 批量修改某一個(gè)字典類型的字段

  • 批量調(diào)整狀態(tài)

  • 批量刪除

  • 批量導(dǎo)出

到此為止,我理解一個(gè)相對(duì)完整的數(shù)據(jù)批量導(dǎo)入功能才算完備赁炎。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末才睹,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子甘邀,更是在濱河造成了極大的恐慌,老刑警劉巖垮庐,帶你破解...
    沈念sama閱讀 222,252評(píng)論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件松邪,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡哨查,警方通過(guò)查閱死者的電腦和手機(jī)逗抑,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,886評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)寒亥,“玉大人邮府,你說(shuō)我怎么就攤上這事「绒龋” “怎么了褂傀?”我有些...
    開(kāi)封第一講書人閱讀 168,814評(píng)論 0 361
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)加勤。 經(jīng)常有香客問(wèn)我仙辟,道長(zhǎng),這世上最難降的妖魔是什么鳄梅? 我笑而不...
    開(kāi)封第一講書人閱讀 59,869評(píng)論 1 299
  • 正文 為了忘掉前任叠国,我火速辦了婚禮,結(jié)果婚禮上戴尸,老公的妹妹穿的比我還像新娘粟焊。我一直安慰自己,他們只是感情好孙蒙,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,888評(píng)論 6 398
  • 文/花漫 我一把揭開(kāi)白布项棠。 她就那樣靜靜地躺著,像睡著了一般马篮。 火紅的嫁衣襯著肌膚如雪沾乘。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書人閱讀 52,475評(píng)論 1 312
  • 那天浑测,我揣著相機(jī)與錄音翅阵,去河邊找鬼歪玲。 笑死,一個(gè)胖子當(dāng)著我的面吹牛掷匠,可吹牛的內(nèi)容都是我干的滥崩。 我是一名探鬼主播,決...
    沈念sama閱讀 41,010評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼讹语,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼钙皮!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起顽决,我...
    開(kāi)封第一講書人閱讀 39,924評(píng)論 0 277
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤短条,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后才菠,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體茸时,經(jīng)...
    沈念sama閱讀 46,469評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,552評(píng)論 3 342
  • 正文 我和宋清朗相戀三年赋访,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了浓体。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片备恤。...
    茶點(diǎn)故事閱讀 40,680評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡棍丐,死狀恐怖频祝,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情步悠,我是刑警寧澤签杈,帶...
    沈念sama閱讀 36,362評(píng)論 5 351
  • 正文 年R本政府宣布,位于F島的核電站贤徒,受9級(jí)特大地震影響芹壕,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜接奈,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,037評(píng)論 3 335
  • 文/蒙蒙 一踢涌、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧序宦,春花似錦睁壁、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 32,519評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至秕噪,卻和暖如春钳降,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背腌巾。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 33,621評(píng)論 1 274
  • 我被黑心中介騙來(lái)泰國(guó)打工遂填, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留铲觉,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 49,099評(píng)論 3 378
  • 正文 我出身青樓吓坚,卻偏偏與公主長(zhǎng)得像撵幽,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子礁击,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,691評(píng)論 2 361

推薦閱讀更多精彩內(nèi)容