在過去的十年中,我已經(jīng)經(jīng)歷過了無數(shù)次的數(shù)據(jù)修改任務(wù)(一個真正的技術(shù)術(shù)語)。無論是將一個老的數(shù)據(jù)庫遷移到一處現(xiàn)代化的數(shù)據(jù)庫;還是通過新的加工工具拖動龐大的數(shù)據(jù)集;又或是無數(shù)其他的將數(shù)據(jù)由一種形式轉(zhuǎn)化成另一種新的形式的任務(wù)。
在過去的十年中,我已經(jīng)經(jīng)歷過了無數(shù)次的數(shù)據(jù)修改任務(wù)(一個真正的技術(shù)術(shù)語)。無論是將一個老的數(shù)據(jù)庫遷移到一處現(xiàn)代化的數(shù)據(jù)庫;還是通過新的加工工具拖動龐大的數(shù)據(jù)集;又或是無數(shù)其他的將數(shù)據(jù)由一種形式轉(zhuǎn)化成另一種新的形式的任務(wù)。類似這樣的工作處理頻率很高,幾乎是每天都有這樣的工作內(nèi)容,而這對于絕大多數(shù)人而言都不能不說是相當(dāng)神奇的,甚至包括相當(dāng)一部分的IT人員。
讓我來花一點點的時間來為大家解釋一下這一工作原理吧。
讓我們選擇一個最恐怖也最為常見的情況:可怕的Excel電子表格制作。曾經(jīng)有一段時間一家公司決定他們要收集有關(guān)的業(yè)務(wù)流程數(shù)據(jù)資料,包括庫存、銷售、客戶資料等一系列的數(shù)據(jù)。由于缺乏適當(dāng)?shù)墓ぞ?,相關(guān)負責(zé)的工作人員只能做了一個Excel電子表格,結(jié)果差點瘋了:隨著時間的推移,成千上萬的記錄需要進行收集,而Excel電子表格的功能越來越無法滿足其需求。最終,該企業(yè)決定把這些數(shù)據(jù)信息放入真實的數(shù)據(jù)庫。他們聘請了一家咨詢集團,將這些任務(wù)交給專業(yè)的人員來處理。
首先要做的第一件事是檢查數(shù)據(jù)本身。在一個完美的世界中,電子表格就像一個數(shù)據(jù)庫,每一格都屬于其所在列的分類中——如姓氏、名字、街道、城市,等等。然而,這一方法并不總是奏效的。有時候,我們可能在單獨的一行或一列涵蓋所有的聯(lián)系信息,如一列里面需要包含全部的聯(lián)系信息,如姓名、公司、地址、電話號碼,等等。而在下一列則可能是關(guān)于最后訂單或2012年的銷售數(shù)據(jù)或其他數(shù)據(jù)。這就提出了一個更具挑戰(zhàn)性的問題了。
讓我們先來看看這第一種情況,因為它是最簡單的。在這第一種情況下,數(shù)據(jù)是相對干凈并經(jīng)過了良好的組織,它可以導(dǎo)出為CSV文件并通過自定義解析器運行,將其轉(zhuǎn)換成一個數(shù)據(jù)庫。一個好的CSV解析器將把所有這些記錄導(dǎo)入到一個數(shù)組,可以通過記錄插入到新數(shù)據(jù)庫分開記錄。在這一過程中,可以對數(shù)據(jù)進行檢查,同時數(shù)據(jù)可以被修改,以便能夠更好地適應(yīng)新的數(shù)據(jù)庫格式。
例如,我們可能會運行一個電話號碼字段的正則表達式,以便將各種不同的電話號碼格式轉(zhuǎn)換成一種標(biāo)準(zhǔn)的格式。這需要把所有的特殊字符和格式化的字符在被插入到新的數(shù)據(jù)庫之前串起來。該操作將把諸如(212)555-1212、212-555-1212、2125551212、2125551212、212.555.1212這樣的每條記錄統(tǒng)一變成(212)555-1212,這樣的標(biāo)準(zhǔn)化格式,這將有利于方便數(shù)據(jù)的讀取和搜索。
這樣,我們現(xiàn)在可以以我們喜歡的方式重新格式化的電話號碼。這就幫助我們擺脫了那種可能遇到的多一位數(shù),或者少一位數(shù)的不可能是電話號碼的困境。
鑒于我們可以采用更加自由的格式,處理起來也就變得更為方便了。地址的處理是特別挑剔的,因為他們可以用各種不同的方式格式化。我們還需要處理街頭各種變幻莫測的街道和城市名稱。我們需要確保我們能夠正確的處理“Washington,DC,”、“Washington,DC,”和“WashingtonDC”,以及各種古怪的拼寫方式,如“Winston-Salem,NC,”、“KingofPrussia,PA,”、“Scranton,Penn.,”、“N.ProvidenceRI,”、“Houston,tx,”、以及“O'Fallon,IL.”。
如果我們不加以特殊的考慮,上述這些各種各樣的奇怪的拼寫字符都可以訪問分析解析器,因為我們不能去除特殊字符。此外,我們不能指望國家或州名的縮寫都正好符合某一字段長度。因此,我們需要構(gòu)造條件表達式,以盡最大努力的明確表達城市和國家實際的名稱,甚至包括對美國每一座城市和州數(shù)據(jù)庫的核對?;谶@些結(jié)果,如果沒有明確的標(biāo)志,我們可能仍然需要手動檢查有問題的記錄來擺脫困境。
上面所介紹的內(nèi)容,其實我們剛開始觸及表面。我們還需要投入大量的工作來搞清楚每個記錄中的城市、州和電話號碼信息。我們需要根據(jù)不同的內(nèi)容處理和重復(fù)的電子表格中的所有其他領(lǐng)域。
這種混亂是由允許數(shù)據(jù)項不受約束的自由格式所直接導(dǎo)致的。其對于每家公司所造成的困擾無處不在。當(dāng)然,其不必是Excel格式的電子表格。其可以是企業(yè)自主開發(fā)的,能夠被訪問的數(shù)據(jù)庫,或是任何其他應(yīng)用程序。除非有相關(guān)的排查以保證輸入數(shù)據(jù)的有效性和格式化,這些數(shù)據(jù)將可能一直是混亂狀態(tài)。當(dāng)然,問題的關(guān)鍵是建立一個合適的數(shù)據(jù)庫前端來處理數(shù)據(jù)的輸入:我們可以清理數(shù)據(jù),并交給員工們導(dǎo)入數(shù)據(jù)的正確方式,這無疑將在一個持續(xù)的基礎(chǔ)上大大增強數(shù)據(jù)的準(zhǔn)確性和可用性。這是使用數(shù)據(jù)庫最為重要的好處之一。
當(dāng)然,我們不能低估在處理這些類型的數(shù)據(jù)集方面所做出的努力。目前已開發(fā)出來各類工具來簡化這一過程,但這些工具并非適合所有情況。雖然他們可能僅僅對于一部分輸入的數(shù)據(jù)是奏效的,但錯過的部分,如果處理不當(dāng)會造成更加麻煩的問題。
這種性質(zhì)的工作是乏味的,需要格外注重細節(jié)。它需要大量的人工數(shù)據(jù)檢驗、測試、調(diào)試和對部分項目的開發(fā)工作的前瞻性的思維。當(dāng)上述所強調(diào)的一切都滿足之后,其結(jié)果幾乎可以保證是值得我們努力的。
使用干凈的數(shù)據(jù),可以使一切變得更簡單。但是不要低估在清理數(shù)據(jù)這一過程中可能具到的挑戰(zhàn)。
河南億恩科技股份有限公司(mszdt.com)始創(chuàng)于2000年,專注服務(wù)器托管租用,是國家工信部認定的綜合電信服務(wù)運營商。億恩為近五十萬的用戶提供服務(wù)器托管、服務(wù)器租用、機柜租用、云服務(wù)器、網(wǎng)站建設(shè)、網(wǎng)站托管等網(wǎng)絡(luò)基礎(chǔ)服務(wù),另有網(wǎng)總管、名片俠網(wǎng)絡(luò)推廣服務(wù),使得客戶不斷的獲得更大的收益。
服務(wù)器/云主機 24小時售后服務(wù)電話:
0371-60135900
虛擬主機/智能建站 24小時售后服務(wù)電話:
0371-55621053
網(wǎng)絡(luò)版權(quán)侵權(quán)舉報電話:
0371-60135995
服務(wù)熱線:
0371-60135900