linq 清除一条数据中的某个字段值_B端通用批量数据导入方案设计
點擊上方藍色字體,關注我
B端通用批量數據導入方案設計
文 | 3548字
估計閱讀 | 9分鐘
引題
B端產品經常遇到大量數據錄入的需求。如春季招聘完成后,給新招的120個員工建立員工檔案,并創建員工帳號。如果逐條將大量的數據錄入系統,將花費用戶不少的時間。
新員工的員工信息通常會填寫在一個excel表格中,人力在匯總后,錄入系統。
如果逐個錄入,每創建一個員工的員工檔案,有以下幾個步驟:
1. 打開創建員工檔案的表單頁;
2. 對照著員工信息,在表單中輸入員工姓名、手機號、身份證號······;
3. 保存數據;
4. 打開新的表單頁,重復以上操作。
如果錄入1個員工需要1分鐘,120個員工,就需要花費2個小時。
與此同時,用戶在大量地、重復做同樣的操作時,犯錯的概率也會增加。這導致錄入的數據可能出現問題。
將張三的身份證號,錯誤地粘貼到了李四的員工檔案中,或者填寫到其他的字段中。
在批量數據錄入場景下,數據導入功能,用戶可以將正確的原始數據整理到表格中,快速導入到數據庫。有效解決“逐條數據錄入效率低下”和“操作失誤導致數據錯誤”問題。
如何設計批量數據導入功能?
用戶在批量導入數據前,需要先將要錄入系統的數據,整理成導入文件。再將導入文件上傳到系統中,系統完成數據校驗后,再將導入文件中的數據,寫入數據庫。
從這個流程可以得出,批量數據導入功能的核心點有:合理設計導入模版、明確數據校驗規則、異步導入數據、導入結果處理。
▋1.合理設計導入模版
由于excel具備強大的批量數據處理能力和便捷的操作體驗,用excel整理導入文件是最合適的方式。
但用戶自己并不清楚導入數據要如何整理導入文件中。因此,我們需要設計一個導入模版,按業務數據表的格式要求,對要導入的數據進行格式規范,確保要導入的數據合法。
員工信息表中“性別”字段的要求是:必填、枚舉類型(男、女)。若導入表格中對應列的值出現了空值或“不詳”,則數據非法。
導入非法的數據,就會導致業務數據出現錯誤。
在設計導入模版時,要根據業務的實際情況,梳理出所有的字段,確定每個字段的格式要求,并給出對應的提示信息。具體要求如下:
1. 明確字段格式:關鍵字段都要有明確的要求,以引導用戶準確整理導入文件。如手機號字段必須是11位數字,性別必須是男、女中的一個值;
2. 精確到最小顆粒:導入模版中的每一列,都要精確到最小顆粒,盡量不要將多個字段混在一列中,否則在校驗數據時,必須要先拆分單元格的內容,才能對單個數據值進行校驗,增加數據校驗的復雜度。如省、市、區應該分3列,而不是一列導入;
3. 在表格中給出填寫規范提示信息,以減少用戶填寫錯誤的概率。
在導入數據前,要引導用戶下載導入模版,并按模版中的格式要求,整理好需要錄入系統的數據。
▋2.明確數據校驗規則
2.1導入文件格式校驗
數據校驗的第一步,是校驗導入文件的格式是否正確。如果導入文件格式只支持excel,而用戶上傳了pdf格式的文件,那導入一定無法完成。
2.2導入文件表頭校驗
格式校驗沒問題后,再校驗導入文件表頭是否與數據表中,需要導入的字段是否匹配。
表頭校驗的方法是:將導入文件的表頭每個字段與數據表需要導入的字段逐一比對,檢查同一序號對應列的字段名是否一致。只有導入文件所有字段序號和字段名與數據表完全一致時,導入文件表頭校驗才匹配。
導入文件中第一列是“手機號”,但數據表第一列是“姓名”,即為不匹配;
導入文件第一列是“手機號”,數據表第一列是“手機號碼”,也是不匹配。
數據導入時,系統會按照字段名進行匹配,將導入文件中的數據,寫入數據表中對應位置的、同名的字段中。
若不匹配,在數據導入時,導入文件中的數據無法找到對應的數據表字段,從而無法導入。
2.3導入文件字段值校驗
表頭校驗正常后,再對導入文件中具體的字段值做校驗,確認其是否合法。
如果不對字段值進行合法性校驗,直接導入到數據表中,就有可能導致業務數據錯誤,甚至引發嚴重事故。
導入文件中“獎勵積分”列的值,本來應該填寫獎勵的積分數量,但被錯誤地填入了用戶手機號,結果導致每個用戶發放了100多億個積分。
字段值校驗的方法是:根據數據表對各個字段值的格式定義,逐個檢查導入文件中的對應字段的值是否合法。字段值校驗可能會遇到以下不合法的情況:
1. 基本要求不滿足:導入模版中有要求值的字符類型、字符長度、業務規則限制,但導入文件就中的值不滿足。若強行導入,會導致數據錯誤。如導入模版要求是11位數字,導入文件的值是中英文的字符;
2. 找不到匹配的值:導入文件中的部分字段的值,要求在已有數據表中存在,但數據表中查不到。若強行導入,會導致該數據找不到對應的歸屬主體。如導入文件中“用戶ID”的值,在用戶表中找不到;
3. 與其他字段的值不匹配:某幾個字段的值之間有聯動關系,但導入文件中的值聯動關系錯誤。若強行導入,會導致對應數據錯亂。如導入文件有員工籍貫所在地,分省、市、區3列,若省的值為廣東,則該條數據中,市的值必須是廣東省的地級市,不允許出現了其他省的市。
數據校驗完成后,根據數據校驗結果,決定是否導入數據,或導入哪些行的數據。對于所有列的值都合法的數據行,可以直接導入;而數據行的任意一列的值不合法,則該行數據無法導入。
▋3.使用異步方式,快速導入正確數據
在批量錄入數據的場景下,用戶的核心需求是:快速將數據錄入系統。產品方案應該要圍繞該核心需求來設計。
3.1 字段值完全正確的數據行,可以直接導入
在執行數據導入前,我們有必要先確定導入文件中,每一行的數據都完全正確嗎?其實并不需要。
用戶在整理導入文件時,難免會出一些小錯誤。比如導入文件有100行數據,某1行數據的某個值錯誤,但剩下的99行數據的值都是正確的。
如果要求所有數據都完全正確,才能被導入,那就會導致完全正確的大部分數據,不能更“及時”地錄入系統中,必須要將其中極少數錯誤的數據修正后,重新檢驗數據,再嘗試導入。
更高效的做法是:導入文件中,字段值完全正確的數據行,可以直接導入,而錯誤的部分數據行,提供下載功能,讓用戶修改后,重新導入。
3.2覆蓋更新已有數據
在系統導入過程中,若某條數據在系統中已經存在,而導入文件也包含了該條數據,此時應該如何處理?
在產品的角度看,通常有三種處理方式:
1. 不允許導入。若用戶需要更新該條數據,就需要先刪除已有數據再重新導入,或到系統中修改;
2. 詢問用戶是否要覆蓋已有數據。系統要找出已存在的數據,標記兩者之間的差異,用戶選擇是否要更新后,自動執行;
3. 直接覆蓋已有數據。用戶無需做任何處理。
很明顯,第3種處理方式的用戶操作成本及研發成本都是更低的。
導入5月份的考試成績時,通過學號查詢,發現張三的成績已經導入過了。此時,將根據導入數據,更新張三的成績。
采用這種方式,默認了需要導入的數據,比系統中已存在的數據更及時、更準確。因此,我們必須要用戶:若檢測到導入數據在數據表中已存在,則更新該條數據。
3.3 系統異步處理
如果需要導入的數據量大,且系統性能不足,系統就要花費較長的時間來處理。在等待系統處理完成期間,用戶想關掉導入頁面,去做其他操作,怎么辦?
從研發的角度看,系統處理數據,通常有同步和異步兩種方式。
所謂的同步,指發起請求后,后端必須立即響應,處理完成時返回結果。而異步,指的是發起請求后,后端會先接收請求,并在“自己”方便的時候進行處理,處理完成后,再返回結果。
如果使用同步方式,就會導致用戶等待時間過長,甚至最后可能因為超時而導入失敗,給用戶帶來極大的負面感受。而使用異步方式導入,用戶上傳文件后,即可關閉導入窗口,放心地去做其他操作,且不會因超時而導入失敗。
異步導入,既避免用戶浪費時間等待,又降低了導入失敗的概率,用戶體驗明顯更好。
▋4.顯示導入結果,引導下載導入失敗數據
數據導入完成后,需顯示導入結果,告知用戶導入成功了多少、失敗了多少。
對于導入失敗的數據,提供下載導入失敗數據的入口,并在導出文件中標記出不正確的值。這樣,用戶可以在修正后,重新導入。
批量導入方案的優點
上文描述的批量導入方案,不僅能滿足用戶批量錄入數據的需求,還能低成本地復用到其他功能模塊。
使用異步的方式來導入,用戶將導入文件上傳到系統后,即可放心地去做別的工作,數據導入完成后,再來查看導入結果。大幅度提升了數據錄入效率。
當另一個功能模塊也需要用到數據導入功能時,只需要修改導入模版和字段值校驗規則,即完成產品方案設計和開發。有效提升了產品方案輸出和功能開發的效率,降低人力成本。
總結
批量數據導入能快速將數據錄入系統,降低企業的人力成本。在設計產品方案時,應該在確保導入性能足夠的條件下,避免用戶等待,并降低產品和研發的人力成本,提高用戶和產品研發團隊的工作效率。
5年產品經理
專注后臺產品方向
長按掃碼加好友
總結
以上是生活随笔為你收集整理的linq 清除一条数据中的某个字段值_B端通用批量数据导入方案设计的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: juyter显示决策树图形_决策树分析细
- 下一篇: 批量提交 kafka_Kafka精华问答