一種提供數(shù)據(jù)的方法和裝置的制造方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及計(jì)算機(jī)技術(shù)領(lǐng)域,特別涉及一種提供數(shù)據(jù)的方法和裝置。
【背景技術(shù)】
[0002] 在大數(shù)據(jù)處理領(lǐng)域中,目前主流的技術(shù)均是對(duì)數(shù)據(jù)進(jìn)行離線批處理,并且具有比 較成熟的開(kāi)源的查詢工具,這些查詢工具大多都是基于結(jié)構(gòu)化查詢語(yǔ)言SQL,如查詢工具 hive 與 shark 等。
[0003] 隨著用戶對(duì)實(shí)時(shí)性要求越來(lái)越高,對(duì)于數(shù)據(jù)的準(zhǔn)實(shí)時(shí)或?qū)崟r(shí)的需求日益迫切。目 前在實(shí)時(shí)數(shù)據(jù)的查詢領(lǐng)域還沒(méi)有成熟的技術(shù)與方法,實(shí)時(shí)數(shù)據(jù)的查詢還處于類(lèi)似hadoop 的mapreduce階段,即,在分布式基礎(chǔ)架構(gòu)下的大規(guī)模數(shù)據(jù)集的并行運(yùn)算階段。
[0004] 現(xiàn)有的數(shù)據(jù)實(shí)時(shí)查詢方法,不管是基于哪種技術(shù)框架,在進(jìn)行數(shù)據(jù)查詢的時(shí)候,對(duì) 于用戶不同的需求,對(duì)于不同的數(shù)據(jù)庫(kù)表,以及不同的數(shù)據(jù)庫(kù),都需要開(kāi)發(fā)人員要進(jìn)行相應(yīng) 的開(kāi)發(fā),因而造成無(wú)法對(duì)實(shí)時(shí)數(shù)據(jù)進(jìn)行準(zhǔn)確和高效的查詢的問(wèn)題。
【發(fā)明內(nèi)容】
[0005] 有鑒于此,本發(fā)明提供一種提供數(shù)據(jù)的方法和裝置,能夠生成滿足用戶需求的數(shù) 據(jù)報(bào)表,解決了針對(duì)用戶的不同需求,開(kāi)發(fā)人員要進(jìn)行相應(yīng)的開(kāi)發(fā)的問(wèn)題,有助于實(shí)現(xiàn)對(duì)實(shí) 時(shí)數(shù)據(jù)進(jìn)行準(zhǔn)確和高效的查詢。
[0006] 為實(shí)現(xiàn)上述目的,根據(jù)本發(fā)明的一個(gè)方面,提供了一種提供數(shù)據(jù)的方法。
[0007] 本發(fā)明的提供數(shù)據(jù)的方法包括:步驟A :在當(dāng)前預(yù)設(shè)的指標(biāo)所對(duì)應(yīng)的配置表中,記 錄該指標(biāo)所涉及的一個(gè)或多個(gè)屬性以及該屬性所處的屬性表的表名,以及記錄根據(jù)該一個(gè) 或多個(gè)屬性的屬性值計(jì)算該指標(biāo)的計(jì)算方式;步驟B :根據(jù)用戶提供的當(dāng)前指標(biāo)確定對(duì)應(yīng) 的配置表,從指定的訂單范圍內(nèi)中獲取當(dāng)前訂單在該配置表中記錄的一個(gè)或多個(gè)屬性的屬 性值,再根據(jù)獲取的屬性值,按照該配置表中記錄的所述計(jì)算方式計(jì)算得出所述當(dāng)前指標(biāo) 的值。
[0008] 可選地,所述步驟A之前包括:將訂單數(shù)據(jù)中包含的對(duì)應(yīng)于預(yù)設(shè)的一個(gè)或多個(gè)屬 性和/或?qū)傩员淼臄?shù)據(jù)保存于第一數(shù)據(jù)表中;所述第一數(shù)據(jù)表各行與訂單一一對(duì)應(yīng),并且 各行包含一個(gè)或多個(gè)屬性的屬性值和/或?qū)傩员淼男袠?biāo)識(shí);所述第一數(shù)據(jù)表以訂單所對(duì)應(yīng) 的行標(biāo)識(shí)作為鍵,以包含的所述一個(gè)或多個(gè)屬性的屬性值和/或?qū)傩员淼男袠?biāo)識(shí)作為值。
[0009] 可選地,所述步驟A之后包括:將第一數(shù)據(jù)表與配置表中所記錄的一個(gè)或多個(gè)屬 性的屬性表設(shè)置關(guān)聯(lián)關(guān)系;所述步驟B包括:根據(jù)用戶提供的當(dāng)前指標(biāo)確定對(duì)應(yīng)的配置表; 在第一數(shù)據(jù)表中,獲取當(dāng)前訂單在所述第一數(shù)據(jù)表中對(duì)應(yīng)的行標(biāo)識(shí),以及該行所包括的配 置表中記錄的一個(gè)或多個(gè)屬性所處的屬性表的行標(biāo)識(shí),然后根據(jù)所設(shè)置的關(guān)聯(lián)關(guān)系查找對(duì) 應(yīng)于一個(gè)或多個(gè)屬性的屬性值;根據(jù)獲取的屬性值,按照該配置表中記錄的所述計(jì)算方式 計(jì)算得到所述當(dāng)前指標(biāo)的值。
[0010] 可選地,所述將第一數(shù)據(jù)表與配置表中所記錄的一個(gè)或多個(gè)屬性的屬性表設(shè)置關(guān) 聯(lián)關(guān)系的步驟包括:將訂單在第一數(shù)據(jù)表中對(duì)應(yīng)的行標(biāo)識(shí)與其中一個(gè)屬性表的行標(biāo)識(shí)進(jìn)行 關(guān)聯(lián);將下一個(gè)未進(jìn)行關(guān)聯(lián)的屬性表的行標(biāo)識(shí)與上一個(gè)已關(guān)聯(lián)的屬性表的行標(biāo)識(shí)進(jìn)行關(guān) 聯(lián),直到所有的行標(biāo)識(shí)完成關(guān)聯(lián)設(shè)置。
[0011] 根據(jù)本發(fā)明的另一方面,提供了一種提供數(shù)據(jù)的裝置。
[0012] 本發(fā)明的提供數(shù)據(jù)的裝置包括:記錄模塊,用于在當(dāng)前預(yù)設(shè)的指標(biāo)所對(duì)應(yīng)的配置 表中,記錄該指標(biāo)所涉及的一個(gè)或多個(gè)屬性以及該屬性所處的屬性表的表名,以及記錄根 據(jù)該一個(gè)或多個(gè)屬性的屬性值計(jì)算該指標(biāo)的計(jì)算方式;處理模塊,用于根據(jù)用戶提供的當(dāng) 前指標(biāo)確定對(duì)應(yīng)的配置表,從指定的訂單范圍內(nèi)中獲取當(dāng)前訂單在該配置表中記錄的一個(gè) 或多個(gè)屬性的屬性值,再根據(jù)獲取的屬性值,按照該配置表中記錄的所述計(jì)算方式計(jì)算得 出所述當(dāng)前指標(biāo)的值。
[0013] 可選地,還包括保存模塊,用于將訂單數(shù)據(jù)中包含的對(duì)應(yīng)于預(yù)設(shè)的一個(gè)或多個(gè)屬 性和/或?qū)傩员淼臄?shù)據(jù)保存于第一數(shù)據(jù)表中;所述第一數(shù)據(jù)表各行與訂單一一對(duì)應(yīng),并且 各行包含一個(gè)或多個(gè)屬性的屬性值和/或?qū)傩员淼男袠?biāo)識(shí);所述第一數(shù)據(jù)表以訂單所對(duì)應(yīng) 的行標(biāo)識(shí)作為鍵,以包含的所述一個(gè)或多個(gè)屬性的屬性值和/或?qū)傩员淼男袠?biāo)識(shí)作為值。
[0014] 可選地,還包括設(shè)置模塊,用于設(shè)置第一數(shù)據(jù)表與配置表中所記錄的一個(gè)或多個(gè) 屬性的屬性表之間的關(guān)聯(lián)關(guān)系;所述處理模塊還用于根據(jù)用戶提供的當(dāng)前指標(biāo)確定對(duì)應(yīng)的 配置表,然后在第一數(shù)據(jù)表中,獲取當(dāng)前訂單在所述第一數(shù)據(jù)表中對(duì)應(yīng)的行標(biāo)識(shí),以及該行 所包括的配置表中記錄的一個(gè)或多個(gè)屬性所處的屬性表的行標(biāo)識(shí),并根據(jù)所設(shè)置的關(guān)聯(lián)關(guān) 系查找對(duì)應(yīng)于一個(gè)或多個(gè)屬性的屬性值,從而根據(jù)獲取的屬性值,按照該配置表中記錄的 所述計(jì)算方式計(jì)算得到所述當(dāng)前指標(biāo)的值。
[0015] 可選地,所述設(shè)置模塊用于將訂單在第一數(shù)據(jù)表中對(duì)應(yīng)的行標(biāo)識(shí)與其中一個(gè)屬性 表的行標(biāo)識(shí)進(jìn)行關(guān)聯(lián),然后將下一個(gè)未進(jìn)行關(guān)聯(lián)的屬性表的行標(biāo)識(shí)與上一個(gè)已關(guān)聯(lián)的屬性 表的行標(biāo)識(shí)進(jìn)行關(guān)聯(lián),直到所有的行標(biāo)識(shí)完成關(guān)聯(lián)設(shè)置。
[0016] 根據(jù)本發(fā)明的技術(shù)方案,由于配置了對(duì)應(yīng)于不同指標(biāo)的配置表,因而在用戶提出 指標(biāo)需求時(shí),能夠根據(jù)指標(biāo)需求確定對(duì)應(yīng)的配置表,從而生成和提供滿足用戶需求的數(shù)據(jù), 解決了針對(duì)用戶的不同需求,開(kāi)發(fā)人員要進(jìn)行相應(yīng)的開(kāi)發(fā)的問(wèn)題,有助于實(shí)現(xiàn)對(duì)實(shí)時(shí)數(shù)據(jù) 進(jìn)行準(zhǔn)確和高效的查詢;而且,由于去掉了訂單中一些與計(jì)算當(dāng)前指標(biāo)所不需要的數(shù)據(jù),因 此,在一定程度上節(jié)約了系統(tǒng)的資源,而且通過(guò)將訂單數(shù)據(jù)整理成表格的形式,有助于采用 基于數(shù)據(jù)庫(kù)的方式對(duì)數(shù)據(jù)進(jìn)行處理,同時(shí)由于采取鍵值對(duì)的方式進(jìn)行存儲(chǔ),因而也在一定 程度上提高了數(shù)據(jù)的處理效率。
【附圖說(shuō)明】
[0017] 附圖用于更好地理解本發(fā)明,不構(gòu)成對(duì)本發(fā)明的不當(dāng)限定。其中:
[0018] 圖1是根據(jù)本發(fā)明實(shí)施例的一種提供數(shù)據(jù)的方法的示意圖;
[0019] 圖2是根據(jù)本發(fā)明實(shí)施例的一種提供數(shù)據(jù)的裝置的示意圖。
【具體實(shí)施方式】
[0020] 以下結(jié)合附圖對(duì)本發(fā)明的示范性實(shí)施例做出說(shuō)明,其中包括本發(fā)明實(shí)施例的各種 細(xì)節(jié)以助于理解,應(yīng)當(dāng)將它們認(rèn)為僅僅是示范性的。因此,本領(lǐng)域普通技術(shù)人員應(yīng)當(dāng)認(rèn)識(shí) 到,可以對(duì)這里描述的實(shí)施例做出各種改變和修改,而不會(huì)背離本發(fā)明的范圍和精神。同 樣,為了清楚和簡(jiǎn)明,以下的描述中省略了對(duì)公知功能和結(jié)構(gòu)的描述。
[0021] 圖1是根據(jù)本發(fā)明實(shí)施例的一種提供數(shù)據(jù)的方法的示意圖。如圖1所示,該方法 主要包括如下的步驟SlO至Sll。
[0022] 步驟SlO :在當(dāng)前預(yù)設(shè)的指標(biāo)所對(duì)應(yīng)的配置表中,記錄該指標(biāo)所涉及的一個(gè)或多 個(gè)屬性以及該屬性所處的屬性表的表名,以及記錄根據(jù)該一個(gè)或多個(gè)屬性的屬性值計(jì)算該 指標(biāo)的計(jì)算方式。例如,當(dāng)前預(yù)設(shè)的指標(biāo)為每種產(chǎn)品類(lèi)型的交易金額和交易數(shù)量時(shí),該指 標(biāo)所涉及的屬性就包括產(chǎn)品類(lèi)型、產(chǎn)品價(jià)格、采購(gòu)數(shù)量、以及采購(gòu)時(shí)間,而其中產(chǎn)品類(lèi)型和 產(chǎn)品價(jià)格所處的屬性表的表名為產(chǎn)品表;采購(gòu)數(shù)量以及采購(gòu)時(shí)間可以從訂單數(shù)據(jù)中直接