公司的核心業(yè)務(wù)合作伙伴淘寶網(wǎng),最近出現(xiàn)泄漏用戶信息的現(xiàn)象,找了好久找不到根源,于是乎,淘寶那邊決定對所有敏感數(shù)據(jù)進(jìn)行加密,從出口和入口都走密文,于是乎,我們的工作量就來了。
我們的一個底單數(shù)據(jù)庫,存儲了大量淘寶賣家和買家的訂單打印,申請單號,發(fā)貨,回收單號等等操作的日志,大概有10億左右數(shù)據(jù)(自動刪除2個月之前的數(shù)據(jù)),哎呦我的fuck啊,也就是說,我們這邊要對10億數(shù)據(jù)做加密處理。。。。。。。。。
很榮幸,整個數(shù)據(jù)的操作過程由我來寫工具,其中的考慮和過程,我來這里大致的記錄一下,以便留下深的記憶。
好吧,先上一張我們用戶與底單庫的數(shù)據(jù)架構(gòu)圖。
圖上,我大致說一下,我們這一個獨(dú)立庫存儲用戶的獨(dú)立信息,有一張總用戶表,用戶id/5000取int值,也就是5000個用戶的底單數(shù)據(jù)插入到底單庫中對應(yīng)的一張表中。
底單庫的服務(wù)器是阿里聚石塔最高級別的專用數(shù)據(jù)庫服務(wù)器,容量2T,由于表的字段很多,數(shù)據(jù)占用磁盤空間的限制,我們保存用戶2個月的數(shù)據(jù),勉強(qiáng)維持2T的數(shù)據(jù)容量,但是,表中的例如用戶手機(jī),收件人,買家旺旺等字段需要加密,加密都是走阿里提供的加密解密接口方式,本來一個字段就20個字符最多,加密后就要200以內(nèi)字符,這樣不用全部加密硬盤空間就沒了,經(jīng)過討論,確定方案是,加數(shù)據(jù)庫,增加兩臺新的底單庫,存儲邏輯下圖:
上圖顯示,加了新庫,所以,在加密之前,首先要遷移用戶數(shù)據(jù)。