一種數(shù)據(jù)處理方法、裝置及系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及計(jì)算機(jī)領(lǐng)域,尤其涉及一種數(shù)據(jù)處理方法、裝置及系統(tǒng)。
【背景技術(shù)】
[0002] 關(guān)系型數(shù)據(jù)庫(kù)以行和列的形式存儲(chǔ)數(shù)據(jù),多個(gè)行和/或多個(gè)列被稱(chēng)為表,表與表 之間建立關(guān)系組成數(shù)據(jù)庫(kù)。目前,銀行、電信、電商和戶(hù)政等行業(yè)采用關(guān)系型數(shù)據(jù)庫(kù)建立在 線交易系統(tǒng),將客戶(hù)的姓名、性別和身份證號(hào)碼等基本信息作為客戶(hù)基本屬性,使用橫表存 儲(chǔ),橫表的一列記錄一個(gè)屬性。客戶(hù)信息表如表1所7K,
[0003] 表1客戶(hù)信息表
[0004]
[0005] 但是,不同的行業(yè)會(huì)有不同的客戶(hù)信息,將不同的客戶(hù)信息作為客戶(hù)擴(kuò)展屬性,使 用縱表存儲(chǔ),縱表的一行記錄一個(gè)屬性,以便通過(guò)關(guān)系型數(shù)據(jù)庫(kù)提供的數(shù)據(jù)定義語(yǔ)言(Data Definition Language,DDL)增加、修改或刪除行,靈活地?cái)U(kuò)展客戶(hù)擴(kuò)展屬性。客戶(hù)擴(kuò)展屬 性表如表2所7K,
[0006] 表2客戶(hù)擴(kuò)展屬性表
[0007]
[0008] 從而,用戶(hù)可以先通過(guò)唯一主鍵客戶(hù)標(biāo)識(shí)(ID)在客戶(hù)信息表中讀取客戶(hù)的客戶(hù) 基本屬性,然后,當(dāng)客戶(hù)擴(kuò)展屬性表中沒(méi)有建立索引時(shí),對(duì)客戶(hù)擴(kuò)展屬性表進(jìn)行全表掃描讀 寫(xiě)所述客戶(hù)標(biāo)識(shí)對(duì)應(yīng)的客戶(hù)擴(kuò)展屬性,當(dāng)客戶(hù)擴(kuò)展屬性表中建立索引時(shí),對(duì)客戶(hù)擴(kuò)展屬性 表進(jìn)行全索引掃描讀寫(xiě)所述客戶(hù)標(biāo)識(shí)對(duì)應(yīng)的客戶(hù)擴(kuò)展屬性,因?yàn)榭蛻?hù)標(biāo)識(shí)在客戶(hù)擴(kuò)展屬性 表中不是唯一主鍵,所以即使客戶(hù)擴(kuò)展屬性表中建立索引,也需要對(duì)客戶(hù)擴(kuò)展屬性表進(jìn)行 全索引掃描讀寫(xiě)所述客戶(hù)標(biāo)識(shí)對(duì)應(yīng)的客戶(hù)擴(kuò)展屬性。例如,若要修改張三的出行工具,將 "公共交通"改為"自駕轎車(chē)",可以利用"客戶(hù)標(biāo)識(shí)='102039' and屬性='出行工具'"對(duì) 客戶(hù)擴(kuò)展屬性表進(jìn)行全表掃描或全索引掃描查詢(xún)修改。
[0009] 隨著互聯(lián)網(wǎng)的發(fā)展,各個(gè)行業(yè)的客戶(hù)量在不斷的增加,甚至可以達(dá)到10億級(jí)的海 量客戶(hù),那么在客戶(hù)擴(kuò)展屬性表中每個(gè)客戶(hù)標(biāo)識(shí)對(duì)應(yīng)多個(gè)屬性的情況下,客戶(hù)擴(kuò)展屬性表 包括更多的客戶(hù)擴(kuò)展屬性,對(duì)客戶(hù)擴(kuò)展屬性表進(jìn)行全表掃描的讀寫(xiě)效率會(huì)很低,甚至對(duì)讀 寫(xiě)請(qǐng)求無(wú)法響應(yīng),導(dǎo)致數(shù)據(jù)庫(kù)系統(tǒng)崩潰。
[0010] 現(xiàn)有技術(shù)中,可以在客戶(hù)信息表預(yù)留幾個(gè)字段(Field)擴(kuò)展客戶(hù)擴(kuò)展屬性, 以便通過(guò)唯一主鍵客戶(hù)標(biāo)識(shí)在客戶(hù)信息表快速地讀取客戶(hù)擴(kuò)展屬性。假設(shè)預(yù)留了 Fieldl-Field2等2個(gè)字段,如表3所示,
[0011] 表3客戶(hù)信息表
[0012]
[0013] 但是,當(dāng)在客戶(hù)信息表中增加、修改或刪除客戶(hù)擴(kuò)展屬性時(shí),需要修改代碼,升級(jí) 到新版本才能支持新增的客戶(hù)擴(kuò)展屬性,從而客戶(hù)擴(kuò)展屬性的靈活擴(kuò)展性較低。
[0014] 因此,如何在海量客戶(hù)的情況下,既能靈活地?cái)U(kuò)展客戶(hù)擴(kuò)展屬性又能高效地讀寫(xiě) 客戶(hù)擴(kuò)展屬性是一個(gè)亟待解決的問(wèn)題。
【發(fā)明內(nèi)容】
[0015] 本發(fā)明的實(shí)施例提供一種數(shù)據(jù)處理方法、裝置及系統(tǒng),在海量客戶(hù)的情況下,能夠 靈活高效地讀寫(xiě)客戶(hù)擴(kuò)展屬性。
[0016] 為達(dá)到上述目的,本發(fā)明的實(shí)施例采用如下技術(shù)方案:
[0017] 第一方面,提供一種數(shù)據(jù)處理方法,應(yīng)用于應(yīng)用服務(wù)器,包括:
[0018] 接收客戶(hù)端發(fā)送的客戶(hù)擴(kuò)展屬性的請(qǐng)求,所述客戶(hù)擴(kuò)展屬性的請(qǐng)求包括客戶(hù)擴(kuò)展 屬性值和客戶(hù)標(biāo)識(shí);
[0019] 將所述客戶(hù)擴(kuò)展屬性值緩存到虛擬客戶(hù)擴(kuò)展屬性表,所述虛擬客戶(hù)擴(kuò)展屬性表為 縱表;
[0020] 根據(jù)映射關(guān)系和所述客戶(hù)標(biāo)識(shí),生成客戶(hù)擴(kuò)展屬性指令,所述客戶(hù)擴(kuò)展屬性指令 包括所述客戶(hù)擴(kuò)展屬性值和客戶(hù)信息表中的預(yù)留字段,所述映射關(guān)系為客戶(hù)擴(kuò)展屬性名與 客戶(hù)信息表中的預(yù)留字段的映射關(guān)系,所述客戶(hù)信息表為橫表,所述客戶(hù)擴(kuò)展屬性包括客 戶(hù)擴(kuò)展屬性名和客戶(hù)擴(kuò)展屬性值;
[0021] 向數(shù)據(jù)庫(kù)服務(wù)器發(fā)送所述客戶(hù)擴(kuò)展屬性指令,以便于所述數(shù)據(jù)庫(kù)服務(wù)器根據(jù)所述 客戶(hù)擴(kuò)展屬性指令對(duì)所述客戶(hù)信息表進(jìn)行客戶(hù)擴(kuò)展屬性操作。
[0022] 結(jié)合第一方面,在第一種可實(shí)現(xiàn)方式中,在所述接收客戶(hù)端發(fā)送的客戶(hù)擴(kuò)展屬性 的請(qǐng)求之前,所述方法還包括:
[0023] 設(shè)置映射表,所述映射表用于指示客戶(hù)信息表中的預(yù)留字段與客戶(hù)擴(kuò)展屬性名的 映射關(guān)系,一個(gè)預(yù)留字段映射一個(gè)客戶(hù)擴(kuò)展屬性名;
[0024] 設(shè)置所述虛擬客戶(hù)擴(kuò)展屬性表;
[0025] 設(shè)置讀寫(xiě)轉(zhuǎn)換功能,所述讀寫(xiě)轉(zhuǎn)換功能用于將所述虛擬客戶(hù)擴(kuò)展屬性表緩存的客 戶(hù)擴(kuò)展屬性存儲(chǔ)到客戶(hù)信息表中的預(yù)留字段。
[0026] 結(jié)合第一種可實(shí)現(xiàn)方式,在第二種可實(shí)現(xiàn)方式中,所述根據(jù)映射關(guān)系,生成客戶(hù)擴(kuò) 展屬性指令包括:
[0027] 根據(jù)所述客戶(hù)標(biāo)識(shí)確定所述客戶(hù)信息表中的所述客戶(hù)標(biāo)識(shí)對(duì)應(yīng)的行,并根據(jù)映射 關(guān)系確定所述客戶(hù)信息表中的列,生成對(duì)所述客戶(hù)信息表中所述客戶(hù)標(biāo)識(shí)對(duì)應(yīng)的行中的列 進(jìn)行所述客戶(hù)擴(kuò)展屬性值操作的指令。
[0028] 結(jié)合第二種可實(shí)現(xiàn)方式,在第三種可實(shí)現(xiàn)方式中,所述生成客戶(hù)擴(kuò)展屬性指令包 括:
[0029] 當(dāng)生成對(duì)所述客戶(hù)信息表進(jìn)行增加所述客戶(hù)擴(kuò)展屬性操作的指令時(shí),生成客戶(hù)擴(kuò) 展屬性插入語(yǔ)句;
[0030] 當(dāng)生成對(duì)所述客戶(hù)信息表進(jìn)行修改所述客戶(hù)擴(kuò)展屬性操作的指令時(shí),生成客戶(hù)擴(kuò) 展屬性修改語(yǔ)句;
[0031] 當(dāng)生成對(duì)所述客戶(hù)信息表進(jìn)行刪除所述客戶(hù)擴(kuò)展屬性操作的指令時(shí),生成客戶(hù)擴(kuò) 展屬性刪除語(yǔ)句。
[0032] 結(jié)合第一方面、第一至第三種可實(shí)現(xiàn)方式,在第四種可實(shí)現(xiàn)方式中,在根據(jù)映射關(guān) 系,生成客戶(hù)擴(kuò)展屬性指令之后,所述方法還包括:
[0033] 當(dāng)生成兩個(gè)以上不同的客戶(hù)擴(kuò)展屬性指令時(shí),將所述兩個(gè)以上不同的客戶(hù)擴(kuò)展屬 性指令合并為一個(gè)客戶(hù)擴(kuò)展屬性指令。
[0034] 結(jié)合第一方面、第一至第四種可實(shí)現(xiàn)方式,在第五種可實(shí)現(xiàn)方式中,所述客戶(hù)信息 表中的預(yù)留字段由所述數(shù)據(jù)庫(kù)服務(wù)器設(shè)置。
[0035] 第二方面,提供一種數(shù)據(jù)處理方法,應(yīng)用于應(yīng)用服務(wù)器,包括:
[0036] 接收客戶(hù)端發(fā)送的查詢(xún)請(qǐng)求,所述查詢(xún)請(qǐng)求包括客戶(hù)標(biāo)識(shí);
[0037] 生成查詢(xún)指令,所述查詢(xún)指令用于指示數(shù)據(jù)庫(kù)服務(wù)器在客戶(hù)信息表中查詢(xún)所述客 戶(hù)標(biāo)識(shí)對(duì)應(yīng)的客戶(hù)擴(kuò)展屬性,所述客戶(hù)擴(kuò)展屬性包括客戶(hù)擴(kuò)展屬性值和客戶(hù)擴(kuò)展屬性名, 所述客戶(hù)信息表為橫表;
[0038] 向所述數(shù)據(jù)庫(kù)服務(wù)器發(fā)送所述查詢(xún)指令,所述查詢(xún)指令包括所述客戶(hù)標(biāo)識(shí);
[0039] 接收所述數(shù)據(jù)庫(kù)服務(wù)器返回的所述客戶(hù)標(biāo)識(shí)對(duì)應(yīng)的客戶(hù)擴(kuò)展屬性;
[0040] 根據(jù)映射關(guān)系和所述客戶(hù)標(biāo)識(shí),將所述客戶(hù)標(biāo)識(shí)對(duì)應(yīng)的客戶(hù)擴(kuò)展屬性緩存到虛擬 客戶(hù)擴(kuò)展屬性表,所述映射關(guān)系為客戶(hù)擴(kuò)展屬性名與客戶(hù)信息表中的預(yù)留字段的映射關(guān) 系,所述虛擬客戶(hù)擴(kuò)展屬性表為縱表。
[0041] 結(jié)合第二方面,在第一種可實(shí)現(xiàn)方式中,在所述接收客戶(hù)端發(fā)送的查詢(xún)請(qǐng)求之前, 所述方法還包括:
[0042] 設(shè)置讀寫(xiě)轉(zhuǎn)換功能,所述讀寫(xiě)轉(zhuǎn)換功能用于將所述客戶(hù)信息表中客戶(hù)擴(kuò)展屬性緩 存到所述虛擬客戶(hù)擴(kuò)展屬性表。
[0043] 結(jié)合第一種可實(shí)現(xiàn)方式,在第二種可實(shí)現(xiàn)方式中,所述根據(jù)映射關(guān)系,將所述客戶(hù) 標(biāo)識(shí)對(duì)應(yīng)的客戶(hù)擴(kuò)展屬性緩存到虛擬客戶(hù)擴(kuò)展屬性表包括:
[0044] 根據(jù)所述客戶(hù)標(biāo)識(shí)確定所述客戶(hù)信息表中的所述客戶(hù)標(biāo)識(shí)對(duì)應(yīng)的行,并根據(jù)映射 關(guān)系確定所述客戶(hù)信息表中的列,將所述客戶(hù)標(biāo)識(shí)對(duì)應(yīng)的客戶(hù)擴(kuò)展屬性緩存到所述虛擬客 戶(hù)擴(kuò)展屬性表。
[0045] 第三方面,提供一種應(yīng)用服務(wù)器,包括:
[0046] 接收單元,用于接收客戶(hù)端發(fā)送的客戶(hù)擴(kuò)展屬性的請(qǐng)求,所述客戶(hù)擴(kuò)展屬性的請(qǐng) 求包括客戶(hù)擴(kuò)展屬性值和客戶(hù)標(biāo)識(shí);
[0047] 緩存單元,用于將所述客戶(hù)擴(kuò)展屬性值緩存到虛擬客戶(hù)擴(kuò)展屬性表,所述虛擬客 戶(hù)擴(kuò)展屬性表為縱表;
[0048] 生成單元,用于根據(jù)映射關(guān)系和所述客戶(hù)標(biāo)識(shí),生成客戶(hù)擴(kuò)展屬性指令,所述客戶(hù) 擴(kuò)展屬性指令包括所述客戶(hù)擴(kuò)展屬性值和客戶(hù)信息表中的預(yù)留字段,所述映射關(guān)系為客戶(hù) 擴(kuò)展屬性名與客戶(hù)信息表中的預(yù)留字段的映射關(guān)系,所述客戶(hù)信息表為橫表,所述客戶(hù)擴(kuò) 展屬性包括客戶(hù)擴(kuò)展屬性名和客戶(hù)擴(kuò)展屬性值;
[0049] 發(fā)送單元,用于向數(shù)據(jù)庫(kù)服務(wù)器發(fā)送所述客戶(hù)擴(kuò)展屬性指令,以便于所述數(shù)據(jù)庫(kù) 服務(wù)器根據(jù)所述客戶(hù)擴(kuò)展屬性指令對(duì)所述客戶(hù)信息表進(jìn)行客戶(hù)擴(kuò)展屬性操作。
[0050] 結(jié)合第三方面,在第一種可實(shí)現(xiàn)方式中,所述應(yīng)用服務(wù)器還包括:
[0051] 設(shè)置單元,用于設(shè)置映射表,所述映射表用于指示客戶(hù)信息表中的預(yù)留字段與客 戶(hù)擴(kuò)展屬性名的映射關(guān)系,一個(gè)預(yù)留字段映射一個(gè)客戶(hù)擴(kuò)展屬性名;
[0052] 所述設(shè)置單元還用于設(shè)置所述虛擬客戶(hù)擴(kuò)展屬性表;
[0053] 所述設(shè)置單元還用于設(shè)置讀寫(xiě)轉(zhuǎn)換功能,所述讀寫(xiě)轉(zhuǎn)換功能用于將所述虛擬客戶(hù) 擴(kuò)展屬性表緩存的客戶(hù)擴(kuò)展屬性存儲(chǔ)到客戶(hù)信息表中的預(yù)留字段。
[0054] 結(jié)合第一種可實(shí)現(xiàn)方式,在第二種可實(shí)現(xiàn)方式中,當(dāng)所述客戶(hù)擴(kuò)展屬性的請(qǐng)求包 括客戶(hù)擴(kuò)展屬性名時(shí),所述生成單元具體用于:
[0055] 根據(jù)所述客戶(hù)標(biāo)識(shí)確定所述客戶(hù)信息表中的所述客戶(hù)標(biāo)識(shí)對(duì)應(yīng)的行,并根據(jù)映射 關(guān)系確定所述客戶(hù)信息表中的列,生成對(duì)所述客戶(hù)信息表中所述客戶(hù)標(biāo)識(shí)對(duì)應(yīng)的行中的列 進(jìn)行所述客戶(hù)擴(kuò)展屬性值操作的指令。
[0056] 結(jié)合第二種可實(shí)現(xiàn)方式,在第三種可實(shí)現(xiàn)方式中,所述生成單元具體用于:
[0057] 當(dāng)生成對(duì)所述客戶(hù)信息表進(jìn)行增加所述客戶(hù)擴(kuò)展屬性操作的指令時(shí),生成客戶(hù)擴(kuò) 展屬性插入語(yǔ)句;
[0058] 當(dāng)生成對(duì)所述客戶(hù)信息表進(jìn)行修改所述客戶(hù)擴(kuò)展屬性操作的指令時(shí),生成客戶(hù)擴(kuò) 展屬性修改語(yǔ)句;
[0059] 當(dāng)生成對(duì)所述客戶(hù)信息表進(jìn)行刪除所述客戶(hù)擴(kuò)