本文公開的至少某些實(shí)施例總體涉及計(jì)算機(jī)網(wǎng)絡(luò)中的數(shù)據(jù)處理,并且特別地涉及跨越多個數(shù)據(jù)集的混合數(shù)據(jù)操作中的間接過濾。
背景技術(shù):
:在數(shù)據(jù)庫系統(tǒng)中合并來自數(shù)據(jù)庫表(或其他數(shù)據(jù)結(jié)構(gòu))的數(shù)據(jù)是公知的。合并數(shù)據(jù)操作可以在兩個或更多個數(shù)據(jù)庫結(jié)構(gòu)上執(zhí)行,以將它們相應(yīng)的數(shù)據(jù)合并在一起。但是數(shù)據(jù)合并受到許多缺陷的困擾。當(dāng)從兩個或更多個數(shù)據(jù)結(jié)構(gòu)的列或行合并數(shù)據(jù)時,其中一列或行必須作為合并操作的外鍵(foreignkey)。結(jié)果,需要唯一值來執(zhí)行數(shù)據(jù)合并。也就是說,當(dāng)在數(shù)據(jù)合并操作中將特定列或行用作鏈接元素時,其值不可以被重復(fù)。此外,涉及數(shù)據(jù)合并操作的數(shù)據(jù)庫表(或其他數(shù)據(jù)結(jié)構(gòu))的整個數(shù)據(jù)集必須從數(shù)據(jù)庫查詢、處理,并且然后整個結(jié)果數(shù)據(jù)集必須寫回到數(shù)據(jù)庫。結(jié)果數(shù)據(jù)集可以非常大且難以處理。例如,如果要合并特定數(shù)據(jù)庫表中的1000列,則結(jié)果數(shù)據(jù)集將非常大。因此,在數(shù)據(jù)合并操作中對結(jié)果數(shù)據(jù)集的數(shù)據(jù)處理在存儲器空間、網(wǎng)絡(luò)帶寬和數(shù)據(jù)處理資源方面造成大量費(fèi)用。另一方面,數(shù)據(jù)混合提供了在數(shù)據(jù)合并中不可用的能力。數(shù)據(jù)混合是用于從多個數(shù)據(jù)源提取數(shù)據(jù)以潛在地發(fā)現(xiàn)不同數(shù)據(jù)集之間的相關(guān)性的過程。數(shù)據(jù)混合以收集來自各種不同源的數(shù)據(jù)開始。一旦這些源被定位并且加載,則數(shù)據(jù)被組合為功能數(shù)據(jù)集,同時排除任何不必要的數(shù)據(jù)。在數(shù)據(jù)混合中,來自兩個或多個數(shù)據(jù)集的兩個或多個列的任何用戶定義子集可以以任何指定的粒度(granularity)混合在一起,而不需要針對混合的列或行的唯一值并且不需要針對每個數(shù)據(jù)集處理整個數(shù)據(jù)庫表。技術(shù)實(shí)現(xiàn)要素:這里描述的實(shí)施例包括用于混合數(shù)據(jù)操作中的間接過濾的改進(jìn)的方法、系統(tǒng)和計(jì)算機(jī)可讀介質(zhì)。在一個實(shí)施例中,公開了一種方法,所述方法包括:在客戶端系統(tǒng)的客戶端接口處接收輸入,所述輸入將包括具有一個或多個列和一個或多個行的第一數(shù)據(jù)結(jié)構(gòu)的多個數(shù)據(jù)集中的第一數(shù)據(jù)集的第一列的維度與包括具有一個或多個列和一個或多個行的第二數(shù)據(jù)結(jié)構(gòu)的多個數(shù)據(jù)集中的第二數(shù)據(jù)集的第二列的相對應(yīng)的維度鏈接;對第一數(shù)據(jù)集應(yīng)用直接過濾器,以獲得指定由應(yīng)用第一過濾器得到的列和行的第一過濾結(jié)果數(shù)據(jù)集;識別對應(yīng)于將第一數(shù)據(jù)集與第二數(shù)據(jù)集鏈接的維度的第一過濾結(jié)果數(shù)據(jù)集的行中的數(shù)據(jù)元素;對第二數(shù)據(jù)集應(yīng)用間接過濾器,以獲得指定由應(yīng)用間接過濾器得到的列和行的第二過濾結(jié)果數(shù)據(jù)集,其中,用于間接過濾器的過濾標(biāo)準(zhǔn)包括第一過濾結(jié)果數(shù)據(jù)集的行中所識別的數(shù)據(jù)元素;生成客戶端請求,以對第一過濾結(jié)果數(shù)據(jù)集和第二過濾結(jié)果數(shù)據(jù)集執(zhí)行數(shù)據(jù)混合操作;以及將客戶端請求傳送到與數(shù)據(jù)庫通信的服務(wù)器計(jì)算機(jī),其中,服務(wù)器計(jì)算機(jī)被配置為響應(yīng)于客戶端請求對第一過濾結(jié)果數(shù)據(jù)集和第二過濾結(jié)果數(shù)據(jù)集執(zhí)行數(shù)據(jù)混合操作。在一個實(shí)施例中,用于直接過濾器的過濾標(biāo)準(zhǔn)被配置為過濾第一數(shù)據(jù)集的不包括在將主數(shù)據(jù)集(primarydataset)與次數(shù)據(jù)集(secondarydataset)鏈接的第一列中的數(shù)據(jù)元素??梢栽趫?zhí)行數(shù)據(jù)混合操作之前應(yīng)用直接過濾器和間接過濾器,以指定在客戶端接口處的可視化中顯示第一數(shù)據(jù)集和第二數(shù)據(jù)集的哪些列。間接過濾可以從由數(shù)據(jù)混合操作得到的數(shù)據(jù)集中去除不必要的行。在一個實(shí)施例中,數(shù)據(jù)混合操作包括生成運(yùn)行時間工件(artifact),運(yùn)行時間工件表示包括第一過濾結(jié)果數(shù)據(jù)集和第二過濾結(jié)果數(shù)據(jù)集的計(jì)算圖。直接過濾器可以包括被配置為從第一過濾結(jié)果數(shù)據(jù)集中排除一個或多個數(shù)據(jù)元素的排除過濾器??梢詰?yīng)用多個間接過濾器,并且可以使用邏輯語句來組合得到的過濾數(shù)據(jù)集。在一個實(shí)施例中,該方法還可以包括:在客戶端接口處接收輸入,所述輸入將第二數(shù)據(jù)集的維度與包括具有一個或多個列和一個或多個行的第三數(shù)據(jù)結(jié)構(gòu)的多個數(shù)據(jù)集中的第三數(shù)據(jù)集的第三列的相對應(yīng)的維度鏈接,其中,將第二數(shù)據(jù)集與第三數(shù)據(jù)集鏈接的維度不同于將第一數(shù)據(jù)集與第二數(shù)據(jù)集鏈接的維度;識別對應(yīng)于將第二數(shù)據(jù)集與第三數(shù)據(jù)集鏈接的維度的第二過濾結(jié)果數(shù)據(jù)集的行中的數(shù)據(jù)元素;對第三數(shù)據(jù)集應(yīng)用第二間接過濾器,以獲得指定由應(yīng)用第二間接過濾器得到的列和行的第三過濾結(jié)果數(shù)據(jù)集,其中,用于第二間接過濾器的過濾標(biāo)準(zhǔn)包括第二過濾結(jié)果數(shù)據(jù)集的行中所識別的數(shù)據(jù)元素;生成第二客戶端請求,以對第二過濾結(jié)果數(shù)據(jù)集和第三過濾結(jié)果數(shù)據(jù)集執(zhí)行第二數(shù)據(jù)混合操作;以及將第二客戶端請求傳送到與數(shù)據(jù)庫通信的服務(wù)器計(jì)算機(jī),其中,服務(wù)器計(jì)算機(jī)被配置為響應(yīng)于第二客戶端請求對第二過濾結(jié)果數(shù)據(jù)集和第三過濾結(jié)果數(shù)據(jù)集執(zhí)行數(shù)據(jù)混合操作。在一個實(shí)施例中,第一數(shù)據(jù)集和第二數(shù)據(jù)集可以經(jīng)由第一數(shù)據(jù)鏈路鏈接在一起,并且第二數(shù)據(jù)集和第三數(shù)據(jù)集可以經(jīng)由第二數(shù)據(jù)鏈路鏈接在一起。在另一個實(shí)施例中,公開了一種系統(tǒng),所述系統(tǒng)包括:與數(shù)據(jù)庫通信的服務(wù)器計(jì)算機(jī),通過網(wǎng)絡(luò)與服務(wù)器計(jì)算機(jī)通信的計(jì)算機(jī)系統(tǒng),所述計(jì)算機(jī)系統(tǒng)包括處理器和經(jīng)由通信介質(zhì)與處理器通信的系統(tǒng)存儲器。系統(tǒng)存儲器可以被配置為存儲計(jì)算機(jī)代碼,所述計(jì)算機(jī)代碼在由處理器執(zhí)行時使處理器執(zhí)行操作,所述操作包括:在計(jì)算機(jī)端系統(tǒng)的客戶端接口處接收輸入,以將包括具有一個或多個列和一個或多個行的第一數(shù)據(jù)結(jié)構(gòu)的多個數(shù)據(jù)集中的第一數(shù)據(jù)集的第一列的維度與包括具有一個或多個列和一個或多個行的第二數(shù)據(jù)結(jié)構(gòu)的多個數(shù)據(jù)集中的第二數(shù)據(jù)集的第二列的相對應(yīng)的維度鏈接;對第一數(shù)據(jù)集應(yīng)用直接過濾器,以獲得指定由應(yīng)用第一過濾器得到的列和行的第一過濾結(jié)果數(shù)據(jù)集;識別對應(yīng)于將第一數(shù)據(jù)集與第二數(shù)據(jù)集鏈接的維度的第一過濾結(jié)果數(shù)據(jù)集的行中的數(shù)據(jù)元素;對第二數(shù)據(jù)集應(yīng)用間接過濾器,以獲得指定由應(yīng)用間接過濾器得到的列和行的第二過濾結(jié)果數(shù)據(jù)集,其中,用于間接過濾器的過濾標(biāo)準(zhǔn)包括第一過濾結(jié)果數(shù)據(jù)集的行中所識別的數(shù)據(jù)元素;生成客戶端請求,以對第一過濾結(jié)果數(shù)據(jù)集和第二過濾結(jié)果數(shù)據(jù)集執(zhí)行數(shù)據(jù)混合操作;以及將客戶端請求傳送到與數(shù)據(jù)庫通信的服務(wù)器計(jì)算機(jī),其中,服務(wù)器計(jì)算機(jī)被配置為響應(yīng)于客戶端請求對第一過濾結(jié)果數(shù)據(jù)集和第二過濾結(jié)果數(shù)據(jù)集執(zhí)行數(shù)據(jù)混合操作。用于直接過濾器的過濾標(biāo)準(zhǔn)可以被配置為過濾第一數(shù)據(jù)集的不包括在將主數(shù)據(jù)集與次數(shù)據(jù)集鏈接的第一列中的數(shù)據(jù)元素。在另外的其他實(shí)施例中,公開了一種包含編程的計(jì)算機(jī)代碼的計(jì)算機(jī)可讀介質(zhì),計(jì)算機(jī)代碼在由計(jì)算機(jī)系統(tǒng)執(zhí)行時使計(jì)算機(jī)系統(tǒng)執(zhí)行操作,所述操作包括:在客戶端系統(tǒng)的客戶端接口處接收輸入,所述輸入將包括具有一個或多個列和一個或多個行的第一數(shù)據(jù)結(jié)構(gòu)的多個數(shù)據(jù)集中的第一數(shù)據(jù)集的第一列的維度與包括具有一個或多個列和一個或多個行的第二數(shù)據(jù)結(jié)構(gòu)的多個數(shù)據(jù)集中的第二數(shù)據(jù)集的第二列的相對應(yīng)的維度鏈接;對第一數(shù)據(jù)集應(yīng)用直接過濾器,以獲得指定由應(yīng)用第一過濾器得到的列和行的第一過濾結(jié)果數(shù)據(jù)集;識別對應(yīng)于將第一數(shù)據(jù)集與第二數(shù)據(jù)集鏈接的維度的第一過濾結(jié)果數(shù)據(jù)集的行中的數(shù)據(jù)元素;對第二數(shù)據(jù)集應(yīng)用間接過濾器,以獲得指定由應(yīng)用間接過濾器得到的列和行的第二過濾結(jié)果數(shù)據(jù)集,其中,用于間接過濾器的過濾標(biāo)準(zhǔn)包括第一過濾結(jié)果數(shù)據(jù)集的行中所識別的數(shù)據(jù)元素;生成客戶端請求,以對第一過濾結(jié)果數(shù)據(jù)集和第二過濾結(jié)果數(shù)據(jù)集執(zhí)行數(shù)據(jù)混合操作;以及將客戶端請求傳送到與數(shù)據(jù)庫通信的服務(wù)器計(jì)算機(jī),其中,服務(wù)器計(jì)算機(jī)被配置為響應(yīng)于客戶端請求對第一過濾結(jié)果數(shù)據(jù)集和第二過濾結(jié)果數(shù)據(jù)集執(zhí)行數(shù)據(jù)混合操作。以下詳細(xì)描述和附圖提供了對本公開的性質(zhì)和優(yōu)點(diǎn)的更好理解。附圖說明為了更好地理解至少某些實(shí)施例,將參考將結(jié)合附圖閱讀的以下詳細(xì)描述。圖1描繪了根據(jù)本文描述的至少某些實(shí)施例的在數(shù)據(jù)混合操作期間生成的示例計(jì)算圖。圖2描繪了根據(jù)本文描述的至少某些實(shí)施例的在數(shù)據(jù)混合操作期間生成的示例加入節(jié)點(diǎn)數(shù)據(jù)結(jié)構(gòu)。圖3a描繪了根據(jù)本文描述的至少某些實(shí)施例的可以用于在數(shù)據(jù)混合操作中加入數(shù)據(jù)的各種連接類型的圖形表示。圖3b描繪了根據(jù)本文描述的至少某些實(shí)施例的在數(shù)據(jù)混合操作期間生成的示例的計(jì)算圖。圖4描繪了根據(jù)本文描述的技術(shù)用于混合數(shù)據(jù)的客戶端圖形接口的示例實(shí)施例。圖5a描繪了根據(jù)本文所描述的技術(shù)的直接過濾的示例實(shí)施例的框圖。圖5b描繪了示出根據(jù)本文所描述的技術(shù)對數(shù)據(jù)集應(yīng)用間接過濾的計(jì)算圖的示例實(shí)施例的框圖。圖5c描繪了根據(jù)本文描述的技術(shù)的間接過濾的示例實(shí)施例的框圖。圖5d描繪根據(jù)本文中所描述的技術(shù)的替代實(shí)施例的間接過濾的示例的框圖。圖5e描繪了示出根據(jù)本文描述的技術(shù)的在間接過濾中應(yīng)用排除過濾器的計(jì)算圖的示例實(shí)施例的框圖。圖6描繪了根據(jù)本文描述的技術(shù)用于執(zhí)行數(shù)據(jù)混合操作的系統(tǒng)的示例實(shí)施例的框圖。圖7描繪了根據(jù)本文所描述的技術(shù)適于執(zhí)行數(shù)據(jù)混合操作的客戶端系統(tǒng)的示例實(shí)施例的框圖。圖8描繪了根據(jù)本文所描述的技術(shù)的適于執(zhí)行數(shù)據(jù)混合操作的服務(wù)器計(jì)算機(jī)的示例實(shí)施例的框圖。圖9a至9b描繪了示出根據(jù)本文描述的技術(shù)的執(zhí)行數(shù)據(jù)混合操作的過程的實(shí)施例的示例流程圖。圖10a至10b描繪了示出根據(jù)本文描述的技術(shù)的用于在數(shù)據(jù)混合操作中執(zhí)行間接過濾的過程的實(shí)施例的示例流程圖。圖11描繪了示出根據(jù)本文描述的技術(shù)的數(shù)據(jù)混合操作中的數(shù)據(jù)源標(biāo)識映射的過程的實(shí)施例的流程圖的示例。圖12描繪了在其上可以實(shí)施本文所描述的實(shí)施例的數(shù)據(jù)處理系統(tǒng)的示例性概述框圖。具體實(shí)施方式貫穿描述中,出于解釋的目的,闡述了許多具體細(xì)節(jié)以便提供對本公開的透徹理解。然而,本領(lǐng)域的技術(shù)人員將認(rèn)識到,可以在沒有這些具體細(xì)節(jié)中的一些的情況下實(shí)踐本文所述的技術(shù)。在其他實(shí)例中,可以以框圖形式示出公知的結(jié)構(gòu)和設(shè)備,以避免模糊本文描述的新的原理和技術(shù)。本文描述的新的實(shí)施例和技術(shù)涉及適于在混合數(shù)據(jù)操作中執(zhí)行間接過濾的系統(tǒng)、方法和計(jì)算機(jī)可讀介質(zhì)。在數(shù)據(jù)集中有1000列的情況下,混合操作僅需要對這些數(shù)據(jù)集的用戶指定的子集執(zhí)行。例如,用戶可以對來自第一數(shù)據(jù)集的兩個列和來自第二數(shù)據(jù)集的三個列指定數(shù)據(jù)混合操作。其示例在下面的表1中示出,其中,列“國家”、“城市”和“年”的值包括重復(fù)值。只有包括行2、3、5和6的子集已經(jīng)被指定用于數(shù)據(jù)混合操作。表1國家城市年城市人口1.加拿大溫哥華20132.12.加拿大維多利亞20130.73.加拿大維多利亞20140.84.加拿大溫哥華20142.25.澳大利亞悉尼20134.66.澳大利亞悉尼20144.87.西班牙巴塞羅那201414.1根據(jù)本文描述的技術(shù)的數(shù)據(jù)混合使得用戶能夠指定將在其上執(zhí)行數(shù)據(jù)混合的數(shù)據(jù)庫表(或其他數(shù)據(jù)結(jié)構(gòu))內(nèi)的列或行的子集。可以基于期望的最終結(jié)果來指定子集。雖然數(shù)據(jù)合并操作使用兩個數(shù)據(jù)集中的所有列對整個數(shù)據(jù)庫表進(jìn)行操作,但是數(shù)據(jù)混合可以被視為特設(shè)的(adhoc),僅使用在客戶端系統(tǒng)的客戶端接口中的特定可視化中顯示所必需的列或行?;旌显谝黄鸬膬蓚€數(shù)據(jù)庫表都不必具有相同的字段。例如,如果第一數(shù)據(jù)集包括兩列“人口”和“國家”,并且第二數(shù)據(jù)集包括兩列“國家”和“收入”,則得到的連接節(jié)點(diǎn)可以,例如,包括具有三列的數(shù)據(jù)結(jié)構(gòu):(1)“國家”,(2)“人口”和(3)“收入”。來自兩個數(shù)據(jù)集的“國家”列可以折疊(collapse)到單個列中,并且這些列中的數(shù)據(jù)值可以聚合在一起。該混合列的構(gòu)成部分可以基于指定的連接類型(下面討論)。數(shù)據(jù)混合操作中的數(shù)據(jù)處理包括在混合操作的生命周期期間將結(jié)果集數(shù)據(jù)結(jié)構(gòu)存儲在臨時存儲位置中—不需要如在數(shù)據(jù)合并操作中那樣將結(jié)果數(shù)據(jù)集存儲回?cái)?shù)據(jù)庫??梢陨苫旌蠑?shù)據(jù)結(jié)構(gòu)(這里稱為“連接節(jié)點(diǎn)”或“連接數(shù)據(jù)結(jié)構(gòu)”)以執(zhí)行混合。在至少一個優(yōu)選實(shí)施例中,連接節(jié)點(diǎn)包括存儲在例如本地存儲器中的結(jié)果集數(shù)據(jù)結(jié)構(gòu)。結(jié)果集數(shù)據(jù)結(jié)構(gòu)(例如,表)包括在數(shù)據(jù)混合操作期間發(fā)生的運(yùn)行時間工件。結(jié)果集數(shù)據(jù)結(jié)構(gòu)不是任何數(shù)據(jù)庫的工件;因此在混合操作完成之后不需要將結(jié)果數(shù)據(jù)結(jié)構(gòu)存儲回?cái)?shù)據(jù)庫。數(shù)據(jù)混合操作的結(jié)果可以用于在客戶端圖形接口的顯示中渲染一個或多個可視化。在一個實(shí)施例中,結(jié)果集數(shù)據(jù)結(jié)構(gòu)可以包括為查詢的生命周期創(chuàng)建的本地內(nèi)存表,以獲得用于執(zhí)行數(shù)據(jù)混合的必要數(shù)據(jù);以及提供由用戶在客戶端接口指定的特定可視化類型的可視化。圖1描繪了根據(jù)本文描述的至少某些實(shí)施例的在數(shù)據(jù)混合操作期間生成的示例的計(jì)算圖。該計(jì)算圖可以由特定的運(yùn)行時間過程用來執(zhí)行數(shù)據(jù)混合。計(jì)算圖中的每個節(jié)點(diǎn)可以由與客戶端系統(tǒng)通信的后端服務(wù)器中的計(jì)算引擎(未示出)生成。每個節(jié)點(diǎn)可以表示數(shù)據(jù)庫表(或其他數(shù)據(jù)結(jié)構(gòu)),并且每個數(shù)據(jù)庫表可以包括sql語句。其他數(shù)據(jù)庫查詢語言是可行的,并且本文描述的實(shí)施例不限于任何特定的一個。此外,每個節(jié)點(diǎn)可以包括對混合過程中的前一個節(jié)點(diǎn)的引用。后端服務(wù)器中的計(jì)算引擎(“ce”)可以為計(jì)算圖中的每個節(jié)點(diǎn)生成運(yùn)行時間工件。在所示實(shí)施例中,計(jì)算圖100包括多個節(jié)點(diǎn),包括數(shù)據(jù)集節(jié)點(diǎn)ds1、數(shù)據(jù)集節(jié)點(diǎn)ds2、過濾器節(jié)點(diǎn)103和104、連接節(jié)點(diǎn)105、功能節(jié)點(diǎn)106、結(jié)果集節(jié)點(diǎn)107和布局節(jié)點(diǎn)108。數(shù)據(jù)集節(jié)點(diǎn)ds1包括表110,并且數(shù)據(jù)集節(jié)點(diǎn)ds2包括表111。在該示例中,表110包括列“國家”和“人口”以及行“美國”、“加拿大”和“德國”。表111包括列“國家”和“收入”以及行“美國”、“加拿大”和“德國”。對于數(shù)據(jù)混合,要被混合的兩個或更多個數(shù)據(jù)集可以被聚合,然后混合在一起(這里也被稱為“連接”)。可以為數(shù)據(jù)集節(jié)點(diǎn)ds1指定表110中的某些列和行,并且可以為數(shù)據(jù)集節(jié)點(diǎn)ds2指定表111中的某些列和行。另外,如所示地,一個或多個過濾器103和104可以在數(shù)據(jù)混合過程開始時應(yīng)用于數(shù)據(jù)集節(jié)點(diǎn)ds1和ds2,以對數(shù)據(jù)集(在下面更詳細(xì)地討論)執(zhí)行各種預(yù)過濾功能??梢?由服務(wù)器的計(jì)算引擎)執(zhí)行數(shù)據(jù)混合計(jì)算以在連接節(jié)點(diǎn)105處連接數(shù)據(jù)集節(jié)點(diǎn)ds1和ds2。然后,可以對連接節(jié)點(diǎn)105的結(jié)果數(shù)據(jù)結(jié)構(gòu)執(zhí)行附加功能106。例如,可以執(zhí)行排序或分類功能106。然后,后端服務(wù)器可以構(gòu)建數(shù)據(jù)庫查詢以與數(shù)據(jù)庫通信,從而檢索結(jié)果集節(jié)點(diǎn)107處的結(jié)果數(shù)據(jù)集。計(jì)算圖中的最終節(jié)點(diǎn)被稱為“布局節(jié)點(diǎn)”,其是用于基于客戶端接口處所選的可視化生成布局信息的節(jié)點(diǎn)。然后,計(jì)算引擎可以構(gòu)建布局節(jié)點(diǎn)數(shù)據(jù)結(jié)構(gòu)108??梢栽诳蛻舳讼到y(tǒng)處構(gòu)建查詢以獲得必要的信息,從而填充用于客戶端顯示處可視化中的布局的數(shù)據(jù)源。布局節(jié)點(diǎn)108包含用于根據(jù)特定可視化來格式化將在客戶端接口圖形顯示處顯示的結(jié)果數(shù)據(jù)集的信息。該特定查詢可以包括布局組件,該布局組件包含用于格式化輸出結(jié)果集(結(jié)果集節(jié)點(diǎn)107)以對應(yīng)于在客戶端圖形顯示處的特定用戶選擇的可視化類型的信息。可視化類型可以包括例如條形圖,餅圖或其他類型的圖形等。后端服務(wù)器可以被配置為在客戶端接口處提供與不同的所選可視化類型相對應(yīng)的不同布局結(jié)果。計(jì)算圖可以用于確定需要什么布局信息以滿足客戶端請求并且以指定格式將結(jié)果提供給客戶端。圖2描繪了由圖1所示的數(shù)據(jù)混合操作生成的示例連接節(jié)點(diǎn)數(shù)據(jù)結(jié)構(gòu)。在該實(shí)施例中,連接節(jié)點(diǎn)數(shù)據(jù)結(jié)構(gòu)205包括已經(jīng)對其執(zhí)行數(shù)據(jù)混合操作的連接列221。在該示例中,數(shù)據(jù)集節(jié)點(diǎn)ds1的表110中的“國家”被指定為在數(shù)據(jù)混合操作期間要混合的列。如本文所使用地,指定用于連接的列也可以被稱為“鏈接列”或“混合列”。如上所述,混合結(jié)果中的行包括重復(fù)值并不要緊。在一個實(shí)施例中,混合操作適于使來自主數(shù)據(jù)集的列與來自一個或多個次數(shù)據(jù)集的一個或多個連接(或鏈接)的列折疊。然后,混合操作適于聚合混合列221中的行的值。在該示例中,數(shù)據(jù)集節(jié)點(diǎn)ds1的表110的“國家”列被指定為要混合的列。主數(shù)據(jù)集被指定為包括表110的數(shù)據(jù)集節(jié)點(diǎn)ds1。因此,包括表111的數(shù)據(jù)集節(jié)點(diǎn)ds2變成與主數(shù)據(jù)集ds1混合的次數(shù)據(jù)集。具體地,來自數(shù)據(jù)集節(jié)點(diǎn)ds2的表111的“國家”列中的數(shù)據(jù)與來自數(shù)據(jù)集節(jié)點(diǎn)ds1的表110的“國家”列中的數(shù)據(jù)混合,然后折疊到連接列221中。圖2中所示的示例描繪了在主數(shù)據(jù)集中指定的單個列上的混合。然而,應(yīng)當(dāng)注意,可以指定來自主數(shù)據(jù)集的任何數(shù)量的列來進(jìn)行混合。在這種情況下,不是將指定的數(shù)據(jù)集折疊到一列中,而是將數(shù)據(jù)集折疊為兩個或多個列,這是因?yàn)槟切┝惺菫榛旌现付ǖ牧?。分別來自數(shù)據(jù)集節(jié)點(diǎn)ds1和數(shù)據(jù)集節(jié)點(diǎn)ds2的兩個表110和111在連接節(jié)點(diǎn)205處被連接。來自數(shù)據(jù)集節(jié)點(diǎn)ds1的表110的附加列“人口”和來自數(shù)據(jù)集節(jié)點(diǎn)ds2的表111的“收入”也被納入連接節(jié)點(diǎn)數(shù)據(jù)結(jié)構(gòu)205中。在該示例中,執(zhí)行“左-外(left-outer)”連接數(shù)據(jù)混合操作類型(下面更詳細(xì)地進(jìn)行討論)。在左外連接操作中,僅存在于表110中的主數(shù)據(jù)集中的行將被輸出為數(shù)據(jù)混合操作的結(jié)果集。此外,因?yàn)樵诒?11中沒有“德國”的“收入”值,所以在連接節(jié)點(diǎn)數(shù)據(jù)結(jié)構(gòu)205中針對該行返回空值222。圖3a描繪了根據(jù)本文描述的至少某些實(shí)施例的可用于在數(shù)據(jù)混合操作中加入數(shù)據(jù)的各種連接類型的圖形表示。數(shù)據(jù)混合操作可以基于任何指定的連接類型,包括左外連接324,全外連接(full-outer)326,相交連接328或異常(exception)連接330。左外連接324適于從主數(shù)據(jù)集(即,連接操作的左手側(cè))返回對象,并且將它們與來自一個或多個次數(shù)據(jù)集(即,右手側(cè))的對象進(jìn)行匹配,但為不匹配的對象添加空值。全外連接326適于返回主數(shù)據(jù)集的列中的對象與一個或多個次數(shù)據(jù)集的列中的對象的并集。相交連接328適于僅返回混合數(shù)據(jù)集之間共同的對象。異常連接330適于僅返回(一個或多個)次數(shù)據(jù)集中不存在的對象。另外,可以在混合操作中指定多于一個連接類型,如圖3b所示,其描繪了在數(shù)據(jù)混合操作期間生成的另一示例的計(jì)算圖。在所示的實(shí)施例中,使用左外連接操作將數(shù)據(jù)集ds1與數(shù)據(jù)集ds2連接以產(chǎn)生左外連接節(jié)點(diǎn)331,并且使用全外連接操作將數(shù)據(jù)集ds1與第三數(shù)據(jù)集ds3連接以產(chǎn)生全外連接節(jié)點(diǎn)332。然后,可以在結(jié)果集節(jié)點(diǎn)333中提供這些操作的結(jié)果,并且將其用于構(gòu)建布局節(jié)點(diǎn)334。圖4描繪了根據(jù)本文描述的技術(shù)用于混合數(shù)據(jù)的客戶端圖形接口的示例實(shí)施例。用戶可以在客戶端接口的可視化工具中配置可視化,并且這可以是迭代過程??梢暬ぞ呖梢耘渲脼槭褂糜脩糁付ǖ倪B接類型來連接數(shù)據(jù)。用戶可以對可視化440進(jìn)行改變,并且數(shù)據(jù)可以在運(yùn)行中(onthefly)重新混合,創(chuàng)建用于生成結(jié)果的結(jié)果集數(shù)據(jù)結(jié)構(gòu)(例如,表)。在所示的實(shí)施例中,客戶端圖形接口400包括可視化440、可視化構(gòu)建器442和可視化托盤444。可視化440可以包括任何用戶可選擇的圖表或圖形,諸如所示的條形圖??梢暬?40中描繪的實(shí)施例對應(yīng)于上述圖1至圖2中所示的示例。當(dāng)用戶在客戶端接口400處在可視化440中組合數(shù)據(jù)或以其他方式進(jìn)行改變時,可以在對用戶透明的背景中觸發(fā)數(shù)據(jù)混合操作。在客戶端系統(tǒng)處生成查詢,并且將其傳送到后端服務(wù)器以檢索響應(yīng)于對可視化440的更新要被提供的數(shù)據(jù)?;谠诳蛻舳私涌?00處對可視化的用戶輸入,當(dāng)向可視化(例如,條形圖,餅圖等)添加數(shù)據(jù)集或者以其他方式修改可視化中的數(shù)據(jù)集時,可以在后端服務(wù)器處基于從客戶端系統(tǒng)發(fā)送的查詢來執(zhí)行混合??梢暬?40包括輸出圖表或圖形??梢暬ā熬S度”和“度量”。如本文所使用地,“維度”是指正在被混合的主數(shù)據(jù)集中的列,并且“度量”是指可以針對得到的可視化440中的每個維度聚合的值。在餅圖中,例如,度量可以是餅圖內(nèi)根據(jù)維度將被劃分的面積。另一方面,在條形圖中,維度可以沿著x軸放置,而度量可以沿著y軸放置。還可以向度量分配聚合類型,諸如和、差、平均值等。用戶可以在客戶端接口400處手動地改變可視化440中的維度和度量。當(dāng)“城市”被添加到你的列中時,例如,在可視化440中添加“城市”維度??蛻舳私涌?00包括可視化構(gòu)建器442,其可以包括適于使用戶可視化可用于在可視化440中顯示的數(shù)據(jù)集及其相關(guān)聯(lián)的維度和度量的顯示區(qū)域??梢暬瘶?gòu)建器442還可以是用戶可以將可視化中的列分類為維度或度量的地方。在一個實(shí)施例中,可以提供自動檢測特征(未示出)以在可視化構(gòu)建器442中對數(shù)據(jù)集執(zhí)行自動分類檢測。自動分類檢測可以被配置為提供關(guān)于應(yīng)該如何分類可視化中的對象的初始確定。例如,包括數(shù)值的每列可以初始地被檢測為度量。但是這個數(shù)字也可以是標(biāo)識符,這會使它作為維度更有意義。用戶可以手動地將項(xiàng)的分類重新配置為可視化構(gòu)建器442中的維度或度量??梢暬瘶?gòu)建器442可以適于顯示來自可以被放置到可視化440中的多個數(shù)據(jù)集的任何可用的維度和度量。在所示實(shí)施例中,可視化構(gòu)建器442包括來自數(shù)據(jù)集ds1的維度和度量以及來自數(shù)據(jù)集ds2的維度和度量。可視化構(gòu)建器442不限于特定數(shù)量的數(shù)據(jù)集——可以包括附加的可用數(shù)據(jù)集。多個數(shù)據(jù)集可以作為針對可視化440可以選擇(例如,拖放到圖表中)的維度和度量的列表而被呈現(xiàn)給客戶端。用戶可以使用例如光標(biāo)446的用戶輸入設(shè)備從可視化構(gòu)建器442中的可用數(shù)據(jù)集中選擇一個或多個維度和度量。光標(biāo)446可以將維度和度量拖動到可視化440中。然而,應(yīng)當(dāng)注意,可以使用其他用戶輸入機(jī)制來執(zhí)行該任務(wù),并且這里描述的實(shí)施例不限于使用光標(biāo)或任何其他特定用戶數(shù)據(jù)輸入設(shè)備或機(jī)制。用戶可以以多種不同的方式將這些項(xiàng)添加到可視化中,包括使用雙擊操作、使用特定的預(yù)配置鍵(例如+按鈕)、下拉菜單等。當(dāng)新的維度或度量被拖動到可視化440(或以其他方式選擇)上時,相應(yīng)地更新可視化,并且可以在對客戶端系統(tǒng)透明的后端服務(wù)器中觸發(fā)用于數(shù)據(jù)混合過程的計(jì)算??梢暬愋褪怯脩艨膳渲玫?,并且可以在可視化440中改變。得到的信息可以作為可視化定義(viz_def)存儲在客戶端系統(tǒng)處的可視化定義存儲裝置(例如,本地存儲器)中。每個可視化定義可以顯示在可視化托盤444中。可視化托盤444適于顯示已經(jīng)生成的不同可視化定義。在所示實(shí)施例中,可視化托盤444包括三個可視化定義viz_def_1、viz_def_2和viz_def_3??梢允褂美缬脩翩I盤上的加號按鈕(+)等來添加附加的可視化定義??梢暬x也可以在可視化托盤444中進(jìn)行修改。當(dāng)在客戶端接口400處將第一數(shù)據(jù)集的第一對象從可視化構(gòu)建器442拖動到可視化440(例如,條形圖的x/y軸)中時,客戶端系統(tǒng)可以適于生成具有第一數(shù)據(jù)集的可視化定義(例如,viz_def_1),并且這變?yōu)橹鲾?shù)據(jù)集。在混合期間,主數(shù)據(jù)集是放置在客戶端系統(tǒng)處的可視化440中的第一數(shù)據(jù)集。然后,用戶可以切換到顯示中的第二數(shù)據(jù)集,并且將第二數(shù)據(jù)集拖動到可視化440中。放置在圖表440中的第一數(shù)據(jù)集包括主數(shù)據(jù)集,并且隨后添加到可視化的每個其他數(shù)據(jù)集包括一個或多個次數(shù)據(jù)集。次數(shù)據(jù)集適于混合到主數(shù)據(jù)集。主數(shù)據(jù)集表示連接操作的左手側(cè)(例如,左外連接),并且一個或多個次數(shù)據(jù)集表示連接操作的右手側(cè)。結(jié)果數(shù)據(jù)結(jié)構(gòu)還可以指示所涉及的數(shù)據(jù)的特定類型。例如,可視化定義可以指定來自具有全局標(biāo)識符id_1(例如,“國家”)的主數(shù)據(jù)集的維度位于x軸上并且與來自一個或多個次數(shù)據(jù)集的全局標(biāo)識符id_3和id_5(例如,分別為“國家”和“位置”)鏈接。下面更詳細(xì)地討論全局標(biāo)識符??梢暬斜P444中的每個可視化定義viz_def_1,viz_def_2和viz_def_3還可以指示哪些度量在y軸上(例如,“人口”和“收入”)等。簡而言之,可視化定義可以包括數(shù)據(jù)集、來自要顯示的數(shù)據(jù)集的對象以及數(shù)據(jù)集鏈接。全局標(biāo)識符還可以被輸入到可視化定義,以便標(biāo)識全局標(biāo)識符鏈接到什么數(shù)據(jù)。為了混合來自兩個不同數(shù)據(jù)集的數(shù)據(jù),可以識別要混合的列(鏈接數(shù)據(jù))??梢詫S度和度量兩者執(zhí)行分類,但是維度(即,列)用于鏈接。在混合中,特定數(shù)據(jù)集的維度的名稱不需要完全相同。例如,來自第一數(shù)據(jù)集ds1的“國家”列可以與來自第二數(shù)據(jù)集ds2的“位置”列等鏈接。將列標(biāo)識為鏈接在一起以向系統(tǒng)指示它們映射在一起并且可以被認(rèn)為是相同的。雖然匹配不需要是100%——其依賴于連接類型。數(shù)據(jù)集鏈接也存儲在可視化定義中,指示哪些列被鏈接。在客戶端接口400處的可視化440中向用戶顯示來自每個數(shù)據(jù)集的維度。然后,可視化構(gòu)建器442適于接收將主數(shù)據(jù)集的維度中的一個與一個或多個第二數(shù)據(jù)集中的相對應(yīng)的(一個或多個)維度鏈接的用戶輸入。然后,在客戶端處可以生成新的可視化定義并且將其存儲在可視化托盤444中。在一個實(shí)施例中,當(dāng)用戶期望執(zhí)行另一混合操作時,不需要再次指定該鏈接,因?yàn)橄到y(tǒng)被設(shè)計(jì)為追蹤鏈接在一起的數(shù)據(jù)集中的對象。在客戶端接口400中顯示鏈接在一起的對象。鏈接指示哪些列被分配為相同。基于這種鏈接,客戶端系統(tǒng)可以被配置為在執(zhí)行期間自動換出(swapout)所鏈接的對象。例如,客戶端系統(tǒng)可以被配置為針對“位置”自動換出“國家”,或者反之亦然。在一個實(shí)施例中,來自主數(shù)據(jù)集的鏈接的列名稱是在可視化中顯示的列名稱。數(shù)據(jù)合并和數(shù)據(jù)混合之間的另一個區(qū)別涉及如何對數(shù)據(jù)集執(zhí)行數(shù)據(jù)過濾。在混合中,用戶指定在操作中涉及的每對數(shù)據(jù)集之間存在什么鏈接。一個或多個過濾器可以在數(shù)據(jù)混合過程開始時應(yīng)用于數(shù)據(jù)集,以進(jìn)一步指定在結(jié)果數(shù)據(jù)集中包括什么數(shù)據(jù)。對混合操作中涉及的數(shù)據(jù)集應(yīng)用過濾器的一個優(yōu)點(diǎn)是數(shù)據(jù)結(jié)構(gòu)不必包括相同的字段。圖5a描繪了根據(jù)本文所描述的技術(shù)的直接過濾的示例實(shí)施例的框圖。數(shù)據(jù)過濾器可以在數(shù)據(jù)混合操作開始時應(yīng)用于數(shù)據(jù)集,以指定要納入可視化中的特定列。直接過濾器可以應(yīng)用于在兩個或多個數(shù)據(jù)集之間鏈接的混合維度。在所示的實(shí)施例中,第一數(shù)據(jù)集ds1與第二數(shù)據(jù)集ds2鏈接,其中鏈接的維度被指定為“國家”。指定數(shù)據(jù)元素“男性”的第一過濾器503應(yīng)用于ds1,并且指定“男性”數(shù)據(jù)元素的第二過濾器504應(yīng)用于ds2。在該示例中,過濾器503和過濾器504兩者是直接過濾器,并且被配置為在執(zhí)行連接操作獲得連接節(jié)點(diǎn)505中的數(shù)據(jù)之前對被指定為“男性”的數(shù)據(jù)元素上的數(shù)據(jù)集ds1和ds2中的進(jìn)行過濾。如圖所示,來自在ds2上應(yīng)用過濾器504的過濾結(jié)果集508返回?cái)?shù)據(jù)元素“加拿大”和“美國”,因?yàn)樗鼈兪莇s2中與被過濾的“男性”數(shù)據(jù)元素匹配的數(shù)據(jù)元素。但是另一方面,來自在ds1上應(yīng)用過濾器503的過濾結(jié)果集507返回所有數(shù)據(jù)元素“加拿大”、“美國”、“德國”和“墨西哥”,每個數(shù)據(jù)元素與“空值”數(shù)據(jù)元素相關(guān)聯(lián),因?yàn)閿?shù)據(jù)元素“男性”不存在于數(shù)據(jù)集ds1中。當(dāng)發(fā)生這種情況時,加入節(jié)點(diǎn)505中的結(jié)果數(shù)據(jù)集包括來自過濾的數(shù)據(jù)集ds2的“加拿大”和“美國”的值,但將包括來自過濾數(shù)據(jù)集ds1的“空值”的值,因?yàn)閿?shù)據(jù)元素“男性”不存在于數(shù)據(jù)集ds1中。使用左外連接或全外連接類型時可能會出現(xiàn)這種情況。可以在數(shù)據(jù)集在連接節(jié)點(diǎn)505處混合之前對數(shù)據(jù)集執(zhí)行間接過濾,以避免此結(jié)果。圖5b描繪了示出根據(jù)本文所描述的技術(shù)對數(shù)據(jù)集應(yīng)用間接過濾的計(jì)算圖500b的示例實(shí)施例的框圖。間接過濾可以用于從結(jié)果數(shù)據(jù)中去除不必要的行。這在計(jì)算圖500b中概念性地示出。在所示實(shí)施例中,計(jì)算圖500b包括分別用于過濾數(shù)據(jù)集ds1和ds2的直接過濾器503和504。然后,在連接節(jié)點(diǎn)505處將來自在數(shù)據(jù)集ds1上應(yīng)用過濾器503的過濾結(jié)果507和來自在數(shù)據(jù)集ds2上應(yīng)用過濾器504的過濾結(jié)果508混合在一起。然而,在這種情況下,當(dāng)對未在混合維度上鏈接的數(shù)據(jù)元素(例如,對不在鏈接的(一個或多個)列中的數(shù)據(jù)元素)指定過濾時,間接過濾器510可以用于識別對應(yīng)于第一數(shù)據(jù)集中的混合維度的結(jié)果過濾數(shù)據(jù)的行中的數(shù)據(jù)元素,并且然后使用結(jié)果數(shù)據(jù)集中所識別的數(shù)據(jù)元素作為要在數(shù)據(jù)混合操作中應(yīng)用于第二數(shù)據(jù)集的過濾標(biāo)準(zhǔn)??梢詮膩碜詳?shù)據(jù)源ds2的過濾結(jié)果508獲得用于間接過濾器510的過濾標(biāo)準(zhǔn)。圖5c描繪了根據(jù)本文描述的技術(shù)的實(shí)施例的間接過濾的示例實(shí)施例的框圖。跟隨前面的示例,在該實(shí)施例中,使用第一直接過濾器504在“男性”數(shù)據(jù)元素上過濾數(shù)據(jù)集ds2。過濾結(jié)果集508包括“加拿大”和“美國”,因?yàn)檫@兩行都與“男性”數(shù)據(jù)元素匹配。然后,可以基于過濾結(jié)果508建立間接過濾器510。如圖所示,在“國家”上將數(shù)據(jù)集ds1與的數(shù)據(jù)集ds2鏈接。當(dāng)“國家”為“加拿大”或“美國”時,可以設(shè)置間接過濾器來過濾數(shù)據(jù)集ds1。間接過濾器510可以,例如,如下被編碼:“過濾數(shù)據(jù)集ds1,其中,國家在(“加拿大”、“美國”)中”。用于數(shù)據(jù)集ds1的過濾器產(chǎn)生如圖所示的過濾結(jié)果507。在這種情況下,應(yīng)用于數(shù)據(jù)集ds1的間接過濾器510返回“加拿大”或“美國”的“國家”的值以及它們的相對應(yīng)行(假設(shè)左外連接或全連接的連接類型)。在應(yīng)用了過濾之后混合數(shù)據(jù)集ds1和ds2的結(jié)果在連接節(jié)點(diǎn)505中示出。圖5d描繪根據(jù)本文中所描述的技術(shù)的替代實(shí)施例的間接過濾的實(shí)例的框圖。在所示的實(shí)施例中,有三個數(shù)據(jù)源ds1,ds2和ds3。ds1和ds2經(jīng)由第一數(shù)據(jù)鏈路515鏈接在一起用于混合操作,并且ds2和ds3經(jīng)由第二數(shù)據(jù)鏈路516鏈接在一起用于混合操作。然而,注意,在數(shù)據(jù)集ds1和ds3之間不存在鏈路。只要在數(shù)據(jù)集之間存在一個公共鏈路,就可以執(zhí)行間接過濾。在所示實(shí)施例中,過濾器503應(yīng)用于數(shù)據(jù)集ds1以對“鞋”過濾。該第一過濾操作產(chǎn)生結(jié)果集1,其然后可以用作用于對第二數(shù)據(jù)集ds2進(jìn)行過濾的第一間接過濾器1的過濾標(biāo)準(zhǔn)。第一間接過濾操作產(chǎn)生第二結(jié)果集(結(jié)果集2),其然后可以用作用于對第三數(shù)據(jù)集ds3進(jìn)行過濾以獲得結(jié)果集3的第二間接過濾器(間接過濾器2)的過濾標(biāo)準(zhǔn)。排除過濾器也可以用于排除數(shù)據(jù)元素。排除過濾器使用“not”語句。例如,可以配置排除過濾器以對不包括“男性”數(shù)據(jù)元素的所有內(nèi)容進(jìn)行過濾??梢栽谠撨^濾操作中返回?cái)?shù)據(jù)集ds1和ds2兩者中不包括數(shù)據(jù)元素“男性”的列。這樣的間接過濾方案可以被編碼,例如,如下:“selectproductfromdataset1where(countryin(selectcountryfromdataset2wheregenderisnot‘male’)or(countrynotin(selectcountryfromdataset2))——(選擇數(shù)據(jù)集1中的乘積,其中,(從數(shù)據(jù)集2中選擇性別不是“男性”的國家)中的國家or不在(從數(shù)據(jù)集2中選擇的國家)中的國家)”以從數(shù)據(jù)集1中選擇不在數(shù)據(jù)集2中的國家。圖5e描繪了示出根據(jù)本文描述的技術(shù)的在間接過濾中應(yīng)用排除過濾器的計(jì)算圖500e的示例實(shí)施例的框圖。在這種情況下,除了從由將(一個或多個)過濾器504應(yīng)用于數(shù)據(jù)集ds2得到的過濾結(jié)果508應(yīng)用的過濾標(biāo)準(zhǔn)之外,排除過濾器520應(yīng)用于數(shù)據(jù)集ds1和ds2以對“not(不)”在數(shù)據(jù)集ds2中的數(shù)據(jù)集ds1中的數(shù)據(jù)元素進(jìn)行過濾。如圖所示,然后可以使用“or”過濾器523中的邏輯“or”語句,將由應(yīng)用排除過濾器520得到的過濾數(shù)據(jù)集527與間接過濾器510的過濾標(biāo)準(zhǔn)進(jìn)行組合。在上面的圖5c的示例中,可以使用該配置返回“德國”和“墨西哥”兩者,因?yàn)檫@些行與排除過濾標(biāo)準(zhǔn)中的數(shù)據(jù)元素“男性”不匹配。也可以使用“and”過濾器中的“and”邏輯語句。實(shí)際上,多個過濾器可以應(yīng)用于多個不同的數(shù)據(jù)集,并且使用多個邏輯語句組合在一起。在上述排除情況下,使用邏輯“or”語句。對于除了排除過濾器之外的多個間接過濾器,可以使用邏輯“and”語句來進(jìn)一步細(xì)化得到的過濾數(shù)據(jù)集。也可以使用其他組合邏輯語句。此外,可以使用多級過濾和邏輯語句來根據(jù)需要組合輸出過濾結(jié)果。還可以使用嵌套過濾操作以及排除過濾器和包含過濾器的組合。i.示例性系統(tǒng)下面提供在其上可以實(shí)施本文所描述的實(shí)施例的示例系統(tǒng)的描述。盡管某些元件可以被描繪為單獨(dú)的組件,但是在一些情況下,組件中的一個或多個可以組合成單個設(shè)備或系統(tǒng)。同樣,盡管某些功能可以被描述為由系統(tǒng)內(nèi)的單個元件或組件執(zhí)行,但是在一些情況下,功能可以由以功能協(xié)作的方式一起工作的多個組件或元件來執(zhí)行。此外,硬連線電路可以獨(dú)立地或與軟件指令組合使用以實(shí)施本文所描述的技術(shù)。所描述的功能可以由包含用于執(zhí)行操作的硬連線邏輯的定制硬件組件或者由計(jì)算機(jī)硬件和編程的計(jì)算機(jī)組件的任何組合來執(zhí)行。本文所描述的技術(shù)不限于硬件電路或軟件的任何特定組合。實(shí)施例還可以在分布式計(jì)算環(huán)境中實(shí)踐,其中,操作由通過一個或多個有線或無線網(wǎng)絡(luò)鏈接的遠(yuǎn)程數(shù)據(jù)處理設(shè)備或系統(tǒng)執(zhí)行。圖6描繪了根據(jù)本文描述的技術(shù)用于執(zhí)行數(shù)據(jù)混合操作的系統(tǒng)的示例實(shí)施例的框圖。如上所述,從一個或多個第二數(shù)據(jù)集添加到可視化中的任何后續(xù)對象可以觸發(fā)后端服務(wù)器中的數(shù)據(jù)混合操作。可視化然后可以相應(yīng)地更新,并且提供包含用于后端服務(wù)器執(zhí)行數(shù)據(jù)混合操作的必要信息的請求。服務(wù)器然后可以基于從客戶端系統(tǒng)發(fā)送的包括全局標(biāo)識符來構(gòu)建適當(dāng)?shù)臄?shù)據(jù)庫查詢,以從數(shù)據(jù)庫檢索適當(dāng)?shù)臄?shù)據(jù)的查詢。在操作完成之后,客戶端接口處的可視化可以顯示來自多個單獨(dú)的數(shù)據(jù)源的實(shí)體的混合數(shù)據(jù)。在所示實(shí)施例中,系統(tǒng)600包括與服務(wù)器672通信的客戶端系統(tǒng)670。服務(wù)器672與數(shù)據(jù)庫674通信。客戶端系統(tǒng)包括實(shí)體模型服務(wù)679和查詢構(gòu)建器615。在來自多個不同數(shù)據(jù)源的多個數(shù)據(jù)集的維度和度量已經(jīng)被預(yù)分類(使用自動分類檢測特征或在可視化構(gòu)建器442中由用戶手動進(jìn)行)之后,用戶可以將預(yù)分類的維度和度量拖動到可視化中以用于在客戶端接口處顯示。當(dāng)這發(fā)生時,客戶端系統(tǒng)670處的查詢構(gòu)建器615可以生成被傳送到后端服務(wù)器672的查詢671。在一個實(shí)施例中,查詢671可以實(shí)施為從客戶端670傳送到服務(wù)器672的http請求。查詢671可以包括來自實(shí)體模型服務(wù)679的數(shù)據(jù)結(jié)構(gòu)模型和全局標(biāo)識符。實(shí)體模型服務(wù)679是客戶端側(cè)服務(wù)模塊,其用于指定如何表示可視化中的列。實(shí)體模型服務(wù)679提供關(guān)于列名稱、列的維度和度量、列如何聚集等的必要元數(shù)據(jù)。實(shí)體模型服務(wù)679還提供唯一的全局標(biāo)識符以支持跨越不同數(shù)據(jù)源的映射。如本文所使用地,術(shù)語“實(shí)體”是指人、地點(diǎn)和事物等。基于客戶端接口處的分類生成的數(shù)據(jù)結(jié)構(gòu)模型可以被稱為“消費(fèi)模型”。每個數(shù)據(jù)集可以包括消費(fèi)模型。消費(fèi)模型包括對數(shù)據(jù)集中的對象進(jìn)行分類所需的元數(shù)據(jù)。當(dāng)后端服務(wù)器672執(zhí)行計(jì)算以查詢數(shù)據(jù)庫674時,后端服務(wù)器追蹤該元數(shù)據(jù)。消費(fèi)模型中的元數(shù)據(jù)可以定義數(shù)據(jù)集的維度和度量、如何聚合維度和度量等。當(dāng)在后端服務(wù)器672處進(jìn)行混合操作時,消費(fèi)模型可以用于將多個數(shù)據(jù)集鏈接在一起??蛻舳讼到y(tǒng)670可以從后端服務(wù)器672請求特定數(shù)據(jù)集的消費(fèi)模型。由后端服務(wù)器672返回的響應(yīng)可以用于指示在數(shù)據(jù)集中可用的字段以及哪些字段是維度和哪些字段是度量。結(jié)果還可以包括用于密鑰、層級和層級水平的數(shù)據(jù)集中的各種字段。層級可以由后端服務(wù)器672使用以在數(shù)據(jù)集中的對象之間進(jìn)行區(qū)分。例如,美國的城市溫哥華可以基于分析數(shù)據(jù)集的層級而與加拿大的城市溫哥華區(qū)分開。所請求的消費(fèi)模型可以被傳送回客戶端系統(tǒng)670。它可以包含指示什么數(shù)據(jù)可用于查詢,什么數(shù)據(jù)對應(yīng)于客戶端系統(tǒng)的可視化中的哪些軸等的信息。在優(yōu)選實(shí)施例中,實(shí)體模型服務(wù)679提供對數(shù)據(jù)集的維度和度量的引用,并且提供追蹤該數(shù)據(jù)的方式。它還為消耗模型中的對象分配全局標(biāo)識符。例如,如果在對應(yīng)于不同數(shù)據(jù)集的特定文檔內(nèi)存在三個不同的消費(fèi)模型,則可以向它們中的每一個分配在文檔內(nèi)跨越多個數(shù)據(jù)集唯一的全局標(biāo)識符??梢栽谙M(fèi)模型的基礎(chǔ)上提供唯一的全局標(biāo)識符。當(dāng)執(zhí)行數(shù)據(jù)混合時,對象可以基于映射標(biāo)識符與其相對應(yīng)的數(shù)據(jù)集相關(guān)聯(lián)。實(shí)體模型服務(wù)679可以適于存儲每個可視化定義的全局實(shí)體模型服務(wù)679全局標(biāo)識符與消費(fèi)模型局部標(biāo)識符之間的映射。在一個實(shí)施例中,可以使用存儲在客戶端系統(tǒng)670處的查找表來執(zhí)行識別映射。全局標(biāo)識符可以在查詢671中用于確定對數(shù)據(jù)集中的什么對象來混合數(shù)據(jù)(例如,主數(shù)據(jù)集中的什么列)。在一個實(shí)施例中,查詢包括json對象。在數(shù)據(jù)混合操作期間,可視化定義和實(shí)體模型可以被傳遞給查詢構(gòu)建器615。查詢構(gòu)建器615獲取可視化定義并且生成查詢671。查詢構(gòu)建器615當(dāng)生成查詢671時還將實(shí)體模型中的全局標(biāo)識符翻譯為消費(fèi)模型的局部標(biāo)識符。服務(wù)器672僅理解局部消費(fèi)模型標(biāo)識符。然后,將查詢671發(fā)送到服務(wù)器672。服務(wù)器672獲取查詢671并且在計(jì)算引擎677內(nèi)構(gòu)建計(jì)算圖(參見例如圖1)。服務(wù)器672然后執(zhí)行計(jì)算圖并且生成sql語句以從數(shù)據(jù)庫674檢索必要的數(shù)據(jù)。服務(wù)器672將數(shù)據(jù)庫查詢673發(fā)送到包括sql語句的數(shù)據(jù)庫674。數(shù)據(jù)庫674然后經(jīng)由查詢響應(yīng)675返回所請求的數(shù)據(jù)675。消費(fèi)模型提供用于確定如何在后端服務(wù)器672處構(gòu)建查詢673所需的多個數(shù)據(jù)集的元數(shù)據(jù)。通過使用本地消費(fèi)模型標(biāo)識符,后端服務(wù)器672可以確定訪問在響應(yīng)676中從數(shù)據(jù)庫674提供給客戶端系統(tǒng)670的哪些值。對于數(shù)據(jù)集中的每一列,因此存在相對應(yīng)的全局標(biāo)識符。消費(fèi)模型元數(shù)據(jù)還可以包括指示數(shù)據(jù)集或?qū)ο箢愋?、名稱以及構(gòu)建數(shù)據(jù)庫查詢673所需的任何其他必要信息的元數(shù)據(jù)。當(dāng)數(shù)據(jù)集內(nèi)的各種對象的內(nèi)部局部標(biāo)識符相同時,可以使用由實(shí)體模型服務(wù)679提供的全局標(biāo)識符來避免沖突。例如,如果在特定文檔內(nèi)對第一數(shù)據(jù)集ds1中標(biāo)識為column_1的“國家”列和第二數(shù)據(jù)集ds2中標(biāo)識為column_1的“國家”列執(zhí)行連接操作,則實(shí)體模型服務(wù)679分配全局標(biāo)識符并且提供映射以確定在構(gòu)建數(shù)據(jù)庫查詢673中使用哪個國家列。全局標(biāo)識符可以被配置為文檔范圍的數(shù)據(jù)結(jié)構(gòu)。來自每個數(shù)據(jù)集的元數(shù)據(jù)包括全局標(biāo)識符和消費(fèi)模型標(biāo)識符。由文檔內(nèi)的每個數(shù)據(jù)集中的列標(biāo)識符指定的消費(fèi)模型中的每個列可以被映射到實(shí)體模型服務(wù)679中的相對應(yīng)的全局標(biāo)識符。因此,全局標(biāo)識符在特定文檔內(nèi)可以是全局唯一的。全局標(biāo)識符然后可以存儲在客戶端系統(tǒng)670處的(一個或多個)可視化定義中,而不是存儲局部標(biāo)識符。應(yīng)當(dāng)注意,實(shí)體模型服務(wù)679可以包含不僅僅是數(shù)據(jù)源。實(shí)體模型服務(wù)679可以包括可以放置在客戶端接口處的可視化中的元素庫。例如,實(shí)體模型服務(wù)679中的實(shí)體可以映射到計(jì)算。算法或其他計(jì)算也可以是放置在可視化中的軸上的對象。這些對象也在實(shí)體模型服務(wù)679中被分配全局標(biāo)識符。例如,計(jì)算可以包括將兩列相加在一起以獲得結(jié)果列等。計(jì)算的定義可以包括在數(shù)據(jù)庫查詢673中?;旌虾拖鄬?yīng)的計(jì)算可以在服務(wù)器672上的計(jì)算引擎677中執(zhí)行。查詢673包含執(zhí)行混合操作所需的信息。在一個實(shí)施例中,查詢包括無狀態(tài)(stateless)請求,其包括在對客戶端請求671的響應(yīng)676中生成結(jié)果集所必需的數(shù)據(jù)對象。結(jié)果數(shù)據(jù)集鏈接可以包括包含映射到來自不同數(shù)據(jù)集的列的全局標(biāo)識符的數(shù)據(jù)結(jié)構(gòu)。該結(jié)果集數(shù)據(jù)結(jié)構(gòu)也可以是運(yùn)行時間工件。客戶端系統(tǒng)670可以從消費(fèi)模型提取元數(shù)據(jù)以執(zhí)行從數(shù)據(jù)集中的特定列的消費(fèi)模型局部標(biāo)識符到實(shí)體模型全局標(biāo)識符的映射。在構(gòu)建查詢671時,客戶端系統(tǒng)670將實(shí)體模型服務(wù)679全局標(biāo)識符轉(zhuǎn)換為相對應(yīng)的本地?cái)?shù)據(jù)源特定標(biāo)識符。當(dāng)服務(wù)器672構(gòu)建數(shù)據(jù)庫查詢673時可以使用該元數(shù)據(jù),以從數(shù)據(jù)庫674檢索必要數(shù)據(jù)來響應(yīng)客戶端查詢671。對查詢構(gòu)建器615的輸入可以包括來自實(shí)體模型服務(wù)的可視化定義和全局id映射。查詢構(gòu)建器615可以查看可視化定義以確定哪些對象駐留在客戶端顯示的可視化中的各個軸上??梢暬x還包含特定可視化的相關(guān)鏈接。查詢671還可以包括同步塊(未示出),其包括列之間的映射(例如,數(shù)據(jù)集ds1/列1映射到數(shù)據(jù)集ds2/列2)。查詢671可以包括用于映射來自消費(fèi)模型的元數(shù)據(jù)的數(shù)據(jù)源全局標(biāo)識符??梢酝ㄟ^查找實(shí)體模型服務(wù)679中的全局標(biāo)識符來定位消費(fèi)模型,以獲得特定數(shù)據(jù)源標(biāo)識符的消費(fèi)模型。同步塊可以用于指定主數(shù)據(jù)集和一個或多個次數(shù)據(jù)集。同步塊還可以指示在混合期間使用哪些列以及是什么連接類型。對于每個連接對,可以指定連接類型和要鏈接的列。查詢671中的同步塊可以指定主數(shù)據(jù)結(jié)構(gòu)和一個或多個次數(shù)據(jù)結(jié)構(gòu);并且對于每個次數(shù)據(jù)結(jié)構(gòu),其可以指定連接類型以及來自主數(shù)據(jù)集和次數(shù)據(jù)集的哪些列被鏈接在一起。根據(jù)本文所描述的新技術(shù)構(gòu)建的查詢671的示例代碼在以下附錄1中示出。在附錄1所示的示例中,查詢代碼的“l(fā)ayout(布局)”部分包含在客戶端接口的得到的可視化中的每個軸上是什么的定義。“axis1”和“measuregroup1”是生成的可視化的軸名稱。代碼的“dataquery”部分指定來自數(shù)據(jù)源的哪些數(shù)據(jù)源和實(shí)體在查詢中是感興趣的。在附錄1的示例中,數(shù)據(jù)源1和2分別命名為:“view:[_sys_bic][t.test.sap.kf.samples][kf_nile_sales_av]”和“view:[_sys_bic][t.test.sap.kf.samples][kf_yalp_reviews_av]”。查詢671的代碼的“聚集類型”部分可以指定如何聚合混合列的度量。代碼的“synchronization(同步)”部分可以指定如何將數(shù)據(jù)源混合在一起。代碼的同步部分中的“joincondition”可以指定要混合哪些列,并且代碼的同步部分中的“jointype”可以指定使用哪種連接類型(即,在這種情況下的左外連接)。然后,作為響應(yīng)676,后端服務(wù)器672可以將結(jié)果數(shù)據(jù)集傳送回客戶端系統(tǒng)。在一個實(shí)施例中,響應(yīng)可以是從服務(wù)器672傳送到客戶端系統(tǒng)670的http響應(yīng)。數(shù)據(jù)混合操作的結(jié)果可以包括在運(yùn)行時間期間存在并且存儲在臨時存儲器位置中的結(jié)果集數(shù)據(jù)結(jié)構(gòu)。在一個實(shí)施例中,結(jié)果集數(shù)據(jù)結(jié)構(gòu)可以包括sql表。響應(yīng)676還可以包括在所選擇的可視化中的適當(dāng)位置(例如,條形圖的軸)中用于格式化在客戶端接口處的顯示中渲染的結(jié)果數(shù)據(jù)的布局信息。為了響應(yīng)于客戶端查詢671檢索適當(dāng)?shù)慕Y(jié)果,計(jì)算引擎677適于解析查詢671,生成計(jì)算圖以執(zhí)行必要的映射,生成sql語句以執(zhí)行數(shù)據(jù)檢索,執(zhí)行sql語句,然后將響應(yīng)676提供給客戶端系統(tǒng)670。如本領(lǐng)域技術(shù)人員將理解地,用于在客戶端系統(tǒng)670,服務(wù)器672和數(shù)據(jù)庫674之間通信的網(wǎng)絡(luò)可以實(shí)施為任何有線或無線網(wǎng)絡(luò)。另外,網(wǎng)絡(luò)可以實(shí)施為單個有線或無線網(wǎng)絡(luò)或彼此通信的多個單獨(dú)的網(wǎng)絡(luò)。例如,本文所描述的網(wǎng)絡(luò)可以實(shí)施為局域網(wǎng)(“l(fā)an”)、廣域網(wǎng)(“wan”)、lan和wan的組合,因特網(wǎng)或適于交換電子消息和信息的任何其它類型的通信網(wǎng)絡(luò)。此外,網(wǎng)絡(luò)可以實(shí)施為硬件資源的物理陣列或虛擬陣列,或其任何組合。網(wǎng)絡(luò)也可以實(shí)施為基于云的網(wǎng)絡(luò)配置。例如,網(wǎng)絡(luò)可以實(shí)施為公共或私有云網(wǎng)絡(luò)或其組合。沒有特定的網(wǎng)絡(luò)或網(wǎng)絡(luò)架構(gòu)應(yīng)被解釋為限制本文所描述的實(shí)施例和技術(shù)。此外,服務(wù)器672可以經(jīng)由一個或多個通信鏈路與數(shù)據(jù)庫674進(jìn)行遠(yuǎn)程通信?;蛘?,數(shù)據(jù)庫674可以是服務(wù)器672的組件,并且被配置為經(jīng)由互連線路或者其他直接或間接連接或網(wǎng)絡(luò)與服務(wù)器通信。數(shù)據(jù)庫674可以實(shí)施為任何類型的數(shù)據(jù)庫系統(tǒng)。一個示例實(shí)施例包括關(guān)系數(shù)據(jù)庫系統(tǒng),其中,數(shù)據(jù)存儲在由行和列組成的結(jié)構(gòu)化表中??梢酝ㄟ^數(shù)據(jù)存儲規(guī)則或方案提供訪問。數(shù)據(jù)庫系統(tǒng)的其他示例包括基于事件的系統(tǒng),其中,數(shù)據(jù)可以以半結(jié)構(gòu)化或非結(jié)構(gòu)化格式存儲。圖7描繪了根據(jù)本文所描述的技術(shù)適于執(zhí)行數(shù)據(jù)混合操作的客戶端系統(tǒng)的示例實(shí)施例的框圖。在所示實(shí)施例中,客戶端系統(tǒng)700包括通過互連總線704一起通信的處理器701、系統(tǒng)存儲器702和通信接口703??蛻舳讼到y(tǒng)700還包括客戶端接口內(nèi)的客戶端圖形接口705和可視化構(gòu)建器706。在另一實(shí)施例中,可視化構(gòu)建器706可以是單獨(dú)的特征或組件??蛻舳私涌?05可以與可視化構(gòu)建器706結(jié)合使用,以使得用戶能夠執(zhí)行如上所述的數(shù)據(jù)集的分類。也可以使用分類自動檢測單元708通過自動分類特征提供分類。也可以經(jīng)由客戶端接口705手動配置分類??蛻舳私涌?05可以用于顯示可視化托盤和一個或多個可視化,如以上圖4所示。客戶端系統(tǒng)700包括適于存儲用于混合操作的可視化定義的可視化定義存儲區(qū)域707。可視化定義存儲裝置可以實(shí)施為任何類型的存儲器或數(shù)據(jù)存儲設(shè)備。在所示實(shí)施例中,客戶端系統(tǒng)700還包括實(shí)體模型服務(wù)709,以提供實(shí)體模型并且映射分配給消費(fèi)模型局部標(biāo)識符的實(shí)體模型全局標(biāo)識符,如上所述。實(shí)體模型服務(wù)可以包括被配置用于將實(shí)體模型服務(wù)全局標(biāo)識符映射到消費(fèi)模型局部標(biāo)識符的映射表(未示出),如上所述。客戶端系統(tǒng)700還包括用于生成并且存儲如上所述的消費(fèi)模型的消費(fèi)模型生成器710。最后,客戶端系統(tǒng)700還包括配置用于渲染可視化中的顯示的圖表庫711和web客戶端712,以便于web通信和提供要顯示在客戶端接口705中的數(shù)據(jù)。圖8描繪了根據(jù)本文所描述的技術(shù)的適于執(zhí)行數(shù)據(jù)混合操作的服務(wù)器計(jì)算機(jī)的示例實(shí)施例的框圖。在所示實(shí)施例中,服務(wù)器800經(jīng)由通信鏈路816與一個或多個數(shù)據(jù)庫818通信。服務(wù)器800包括通過互連總線804一起通信的處理器801、系統(tǒng)存儲器802和通信接口803。服務(wù)器800還包括消費(fèi)模型存儲單元807,以存儲消費(fèi)模型和相關(guān)元數(shù)據(jù)。服務(wù)器800包括用于執(zhí)行必要的計(jì)算并且生成用于數(shù)據(jù)混合操作的計(jì)算圖的計(jì)算引擎809。在所示實(shí)施例中,計(jì)算引擎809包括用于生成用于數(shù)據(jù)混合的計(jì)算圖的計(jì)算圖生成器810和用于生成并且執(zhí)行sql語句以執(zhí)行數(shù)據(jù)檢索功能的sql生成器814(或其他查詢語言生成器)。因此,計(jì)算引擎809可以適于解析客戶端查詢,使用計(jì)算圖生成器810生成計(jì)算圖以執(zhí)行必要的映射,然后使用sql生成器814來生成sql語句以執(zhí)行數(shù)據(jù)檢索。計(jì)算引擎809可以執(zhí)行sql語句,然后提供從數(shù)據(jù)庫818檢索的結(jié)果數(shù)據(jù)集,以在其對客戶端系統(tǒng)的響應(yīng)中提供。服務(wù)器800可以實(shí)施為單獨(dú)的計(jì)算機(jī)硬件服務(wù)器,或者實(shí)施為物理地或邏輯地連接在一起并且協(xié)同工作以執(zhí)行本文描述的功能的計(jì)算機(jī)服務(wù)器的陣列。通常,數(shù)據(jù)服務(wù)器包括相對于存儲在一個或多個數(shù)據(jù)存儲庫中的數(shù)據(jù)執(zhí)行數(shù)據(jù)操作的系統(tǒng)。依賴于數(shù)據(jù)服務(wù)器的類型,數(shù)據(jù)操作可以在從簡單操作——諸如存儲并檢索數(shù)據(jù)——到更復(fù)雜的操作——諸如計(jì)算算法或基于數(shù)據(jù)計(jì)算統(tǒng)計(jì),或者排列、修改或格式化數(shù)據(jù)——范圍中。ii.示例性過程以下圖描繪了示出根據(jù)本文描述的技術(shù)用于執(zhí)行數(shù)據(jù)混合操作的過程的各種實(shí)施例的示例流程圖。注意,下面描述的過程本質(zhì)上是示例性的,并且是為了說明的目的而提供的而不旨在將本公開的范圍限制到任何特定的示例性實(shí)施例。例如,根據(jù)本文描述的一些實(shí)施例的方法可以包括或省略下面描述的操作中的一些或全部,或者可以包括與本文所描述的順序不同的順序的步驟。所描述的特定方法不旨在限于排除所有其它潛在中間操作的任何特定操作集合。另外,操作可以以計(jì)算機(jī)可執(zhí)行代碼來具體化,其使得通用或?qū)S糜?jì)算機(jī)執(zhí)行某些功能操作。在其他情況下,這些操作可以由特定硬件組件或硬連線電路,或由編程計(jì)算機(jī)組件和定制硬件電路的任何組合來執(zhí)行。圖9a描繪了示出根據(jù)本文描述的技術(shù)的執(zhí)行數(shù)據(jù)混合操作的過程的實(shí)施例的示例流程圖。在所示實(shí)施例中,過程900開始于接收要在客戶端計(jì)算機(jī)系統(tǒng)的客戶端圖形接口中的可視化(諸如圖表或圖形)中顯示的多個數(shù)據(jù)集(操作901)。數(shù)據(jù)集可以包括具有一個或多個列和一個或多個行的數(shù)據(jù)結(jié)構(gòu)。在一個實(shí)施例中,每個數(shù)據(jù)集的每列被分類為維度或度量。如上所述,“維度”是指正被混合的主數(shù)據(jù)集中的列,并且“度量”是指可以針對得到的可視化中的每個維度聚合的值。每個數(shù)據(jù)集的列可以手動地或者使用上述分類自動檢測來自動地分類。繼續(xù)過程900以在客戶端接口處接收輸入,從在可視化中顯示的多個數(shù)據(jù)集中的主數(shù)據(jù)集中選擇至少一個維度以及從將在可視化中顯示的一個或多個次數(shù)據(jù)集中選擇至少一個維度(操作902)。繼續(xù)過程900以在客戶端接口處接收輸入,所述輸入將主數(shù)據(jù)集的選擇的維度與一個或多個次數(shù)據(jù)集的選擇的維度連接(操作903)。過程900然后可以在客戶端系統(tǒng)處生成查詢以對與主數(shù)據(jù)集的維度鏈接的一個或多個次數(shù)據(jù)集中的每個的維度執(zhí)行數(shù)據(jù)混合操作(操作904),并且將客戶端查詢傳送到與數(shù)據(jù)庫通信的后端服務(wù)器(操作905)。然后,服務(wù)器可以被配置為響應(yīng)于客戶端查詢對主數(shù)據(jù)集的選擇的維度和一個或多個次數(shù)據(jù)集的選擇的維度執(zhí)行數(shù)據(jù)混合操作(操作906)。在一個實(shí)施例中,數(shù)據(jù)混合操作包括生成表示用于數(shù)據(jù)混合操作的計(jì)算圖的運(yùn)行時間工件,執(zhí)行計(jì)算圖,生成sql語句以及查詢數(shù)據(jù)庫以檢索結(jié)果數(shù)據(jù)集。數(shù)據(jù)混合操作可以包括將與主數(shù)據(jù)集的維度鏈接的一個或多個次數(shù)據(jù)集的維度折疊到結(jié)果集數(shù)據(jù)結(jié)構(gòu)的混合列中,并且聚合結(jié)果集數(shù)據(jù)結(jié)構(gòu)的混合列的行中的度量值。可以基于指定的連接類型來確定混合列的維度和度量。連接類型可以包括左外連接、全外連接、交叉連接或異常連接。過程900在圖9b中繼續(xù),該圖描繪了示出根據(jù)本文描述的技術(shù)的執(zhí)行數(shù)據(jù)混合操作的過程的實(shí)施例的示例流程圖。過程900在操作907繼續(xù),其中,服務(wù)器還被配置為從包括結(jié)果數(shù)據(jù)集的數(shù)據(jù)庫接收查詢響應(yīng)。服務(wù)器然后可以根據(jù)所選擇的可視化類型生成用于格式化在客戶端接口處的可視化中渲染的結(jié)果數(shù)據(jù)集的布局信息(操作908),并且傳送對包含布局?jǐn)?shù)據(jù)的客戶端查詢的響應(yīng)(操作909)。這完成根據(jù)一個示例實(shí)施例的過程900。在至少某些實(shí)施例中,數(shù)據(jù)集是存儲在數(shù)據(jù)庫中的整個數(shù)據(jù)庫表的子集。如上所述,可以對在混合操作中使用的數(shù)據(jù)表的任何用戶定義子集執(zhí)行混合。此外,可以為每個結(jié)果數(shù)據(jù)集生成可視化定義??梢暬x可以包括與多個數(shù)據(jù)集的維度和度量相關(guān)聯(lián)的全局標(biāo)識符。在一個實(shí)施例中,一個或多個過濾器可以應(yīng)用于多個數(shù)據(jù)集中的一個或多個,以指定哪些維度將在可視化中顯示。圖10a描繪了示出根據(jù)本文描述的技術(shù)的用于在數(shù)據(jù)混合操作中執(zhí)行間接過濾的過程的實(shí)施例的示例流程圖。在所示實(shí)施例中,開始過程1000,以在客戶端系統(tǒng)的客戶端接口處接收輸入,所述輸入將包括具有一個或多個列和一個或多個行的第一數(shù)據(jù)結(jié)構(gòu)的多個數(shù)據(jù)集中的第一數(shù)據(jù)集的第一列的維度與包括具有一個或多個列和一個或多個行的第二數(shù)據(jù)結(jié)構(gòu)的多個數(shù)據(jù)集中的第二數(shù)據(jù)集的第二列的相對應(yīng)的維度鏈接(操作1001)。繼續(xù)過程1000,以對第一數(shù)據(jù)集應(yīng)用直接過濾器以獲得指定由應(yīng)用第一過濾器得到的列和行的第一過濾結(jié)果數(shù)據(jù)集(操作1002),識別對應(yīng)于將第一數(shù)據(jù)集與第二數(shù)據(jù)集鏈接的維度的第一過濾結(jié)果數(shù)據(jù)集的行中的數(shù)據(jù)元素(操作1003),以及對第二數(shù)據(jù)集應(yīng)用間接過濾器以獲得指定由應(yīng)用間接過濾器得到的列和行的第二過濾結(jié)果數(shù)據(jù)集(操作1004)。用于間接過濾器的過濾標(biāo)準(zhǔn)可以包括第一過濾結(jié)果數(shù)據(jù)集的行中所識別的數(shù)據(jù)元素。繼續(xù)過程1000,以向與數(shù)據(jù)庫通信的服務(wù)器計(jì)算機(jī)傳送對第一過濾結(jié)果數(shù)據(jù)集和第二過濾結(jié)果數(shù)據(jù)集執(zhí)行數(shù)據(jù)混合操作的客戶端請求(操作1005)。服務(wù)器計(jì)算機(jī)然后被配置為響應(yīng)于客戶端請求對第一過濾結(jié)果數(shù)據(jù)集和第二過濾結(jié)果數(shù)據(jù)集執(zhí)行數(shù)據(jù)混合操作(操作1006)。用于直接過濾器的過濾標(biāo)準(zhǔn)可以被配置為過濾第一數(shù)據(jù)集的不包括在將主數(shù)據(jù)集與次數(shù)據(jù)集鏈接的第一列中的數(shù)據(jù)元素??梢栽趫?zhí)行數(shù)據(jù)混合操作之前應(yīng)用直接過濾器和間接過濾器,以指定第一數(shù)據(jù)集和第二數(shù)據(jù)集的哪些列將在客戶端接口處的可視化中顯示。間接過濾的一個優(yōu)點(diǎn)是它能夠從數(shù)據(jù)混合操作的結(jié)果數(shù)據(jù)集中去除不必要的行。數(shù)據(jù)混合操作可以包括生成運(yùn)行時間工件,該運(yùn)行時間工件表示包括第一過濾結(jié)果數(shù)據(jù)集和第二過濾結(jié)果數(shù)據(jù)集的計(jì)算圖??梢詮牡谝贿^濾結(jié)果數(shù)據(jù)集獲得間接過濾器的過濾標(biāo)準(zhǔn)。在一個實(shí)施例中,直接過濾器可以包括被配置為從第一過濾結(jié)果數(shù)據(jù)集中排除一個或多個數(shù)據(jù)元素的排除過濾器。過程1000在圖10b處繼續(xù),該圖描繪了示出根據(jù)本文描述的技術(shù)的用于在數(shù)據(jù)混合操作中執(zhí)行間接過濾的過程的實(shí)施例的示例流程圖。在所示實(shí)施例中,繼續(xù)過程1000以在客戶端接口處接收輸入,所述輸入將第二數(shù)據(jù)集的維度與包括具有一個或多個列和一個或多個行的第三數(shù)據(jù)結(jié)構(gòu)的多個集中的第三數(shù)據(jù)集的第三列的相對應(yīng)的維度鏈接(操作1007)。將第二數(shù)據(jù)集與第三數(shù)據(jù)集鏈接的維度可以不同于將第一數(shù)據(jù)集與第二數(shù)據(jù)集鏈接的維度。在所示實(shí)施例中,繼續(xù)過程1000,以識別對應(yīng)于將第二數(shù)據(jù)集與第三數(shù)據(jù)集鏈接的維度的第二過濾結(jié)果數(shù)據(jù)集的行中的數(shù)據(jù)元素(操作1008),并且對第三數(shù)據(jù)集應(yīng)用第二間接過濾器,以獲得指定由應(yīng)用第二間接過濾器得到的列和行的第三過濾結(jié)果數(shù)據(jù)集(操作1009)。第二間接過濾器的過濾標(biāo)準(zhǔn)可以包括第二過濾結(jié)果數(shù)據(jù)集的行中的所識別的數(shù)據(jù)元素。在所示實(shí)施例中,繼續(xù)過程1000,以向與數(shù)據(jù)庫通信的服務(wù)器計(jì)算機(jī)傳送對第二過濾結(jié)果數(shù)據(jù)集和第三過濾結(jié)果數(shù)據(jù)集執(zhí)行第二數(shù)據(jù)混合操作的第二客戶端請求(操作1010)。然后,服務(wù)器計(jì)算機(jī)被配置為響應(yīng)于第二客戶端請求對第二過濾結(jié)果數(shù)據(jù)集和第三過濾結(jié)果數(shù)據(jù)集執(zhí)行數(shù)據(jù)混合操作(操作1011)。在一個實(shí)施例中,第一數(shù)據(jù)集和第二數(shù)據(jù)可以經(jīng)由第一數(shù)據(jù)鏈路鏈接在一起,并且第二數(shù)據(jù)集和第三數(shù)據(jù)集可以經(jīng)由第二數(shù)據(jù)鏈路鏈接在一起。在一個實(shí)施例中,在第一數(shù)據(jù)集和第二數(shù)據(jù)集之間可以不存在數(shù)據(jù)鏈路。這完成根據(jù)一個示例實(shí)施例的過程1000。圖11描繪了示出根據(jù)本文描述的技術(shù)的數(shù)據(jù)混合操作中的數(shù)據(jù)源標(biāo)識映射的過程的實(shí)施例的示例流程圖。在所示實(shí)施例中,開始過程1100,以在客戶端系統(tǒng)的客戶端接口處接收輸入,選擇多個數(shù)據(jù)集中的主數(shù)據(jù)集的選擇維度和度量(操作1101),以及選擇多個數(shù)據(jù)集中的至少一個次數(shù)據(jù)集的維度和度量(操作1102)以在客戶端接口的可視化中顯示。在一個實(shí)施例中,客戶端接口包括圖形顯示,并且主數(shù)據(jù)集的一個或多個維度與次數(shù)據(jù)集的一個或多個維度鏈接。繼續(xù)過程1100,以生成表示主數(shù)據(jù)集的選擇的維度和度量的主數(shù)據(jù)結(jié)構(gòu)模型,并且生成表示次數(shù)據(jù)集的選擇的維度和度量的次數(shù)據(jù)結(jié)構(gòu)模型(操作1103)。在一個實(shí)施例中,主數(shù)據(jù)結(jié)構(gòu)模型和次數(shù)據(jù)結(jié)構(gòu)模型中的每個維度和度量包括局部標(biāo)識符。過程1100然后向主數(shù)據(jù)結(jié)構(gòu)模型和次數(shù)據(jù)結(jié)構(gòu)模型中的每個維度和測量分配全局標(biāo)識符(操作1104)。繼續(xù)過程1100,以生成包含全局標(biāo)識符以及主數(shù)據(jù)結(jié)構(gòu)模型和次數(shù)據(jù)結(jié)構(gòu)模型的全局標(biāo)識符與局部標(biāo)識符之間的映射信息的客戶端查詢(操作1105)。然后,可以將客戶端查詢傳送到后端系統(tǒng)中的服務(wù)器,以響應(yīng)于輸入對與次數(shù)據(jù)集的一個或多個維度鏈接的主數(shù)據(jù)集的每個選擇的維度執(zhí)行數(shù)據(jù)混合操作(操作1106)。這完成根據(jù)一個示例實(shí)施例的過程1100。服務(wù)器被配置為響應(yīng)于數(shù)據(jù)混合操作訪問數(shù)據(jù)庫以檢索結(jié)果數(shù)據(jù)集,并且將結(jié)果數(shù)據(jù)集返回到客戶端系統(tǒng)以在客戶端接口中渲染可視化。在一個實(shí)施例中,每個全局標(biāo)識符跨越多個數(shù)據(jù)集是唯一的。服務(wù)器基于主數(shù)據(jù)結(jié)構(gòu)模型和次數(shù)據(jù)結(jié)構(gòu)模型的全局標(biāo)識符和局部標(biāo)識符之間的映射信息來確定要在結(jié)果數(shù)據(jù)集中包括哪些數(shù)據(jù)。在一個實(shí)施例中,數(shù)據(jù)混合操作包括生成表示用于數(shù)據(jù)混合操作的計(jì)算圖的運(yùn)行時間工件。數(shù)據(jù)混合操作可以在客戶端接口處對用戶透明的后臺進(jìn)程中執(zhí)行,而不需要主數(shù)據(jù)集和次數(shù)據(jù)集的維度或度量的唯一值并且不對主數(shù)據(jù)集和次數(shù)據(jù)集中的每一個處理整個數(shù)據(jù)庫表??梢曰诜?wù)器響應(yīng)于客戶端查詢而提供的數(shù)據(jù)來更新客戶端接口處的可視化。iii.示例性硬件實(shí)施方式可以使用包括手持設(shè)備、微處理器系統(tǒng)、可編程電子設(shè)備、膝上型設(shè)備、平板式設(shè)備等的各種計(jì)算機(jī)系統(tǒng)來實(shí)踐本公開的實(shí)施例。實(shí)施例還可以在分布式計(jì)算環(huán)境中實(shí)踐,其中,任務(wù)由通過一個或多個基于有線或無線網(wǎng)絡(luò)鏈接的遠(yuǎn)程處理設(shè)備執(zhí)行。圖12描繪了在其上可以實(shí)施本文所描述的實(shí)施例的數(shù)據(jù)處理系統(tǒng)的示例性概述框圖。將理解,可以使用各種計(jì)算機(jī)配置來實(shí)施所描述的技術(shù)。雖然圖12示出了數(shù)據(jù)處理系統(tǒng)1200的各種組件,但是不旨在表示互連組件的任何特定架構(gòu)或方式。還將理解,可以使用具有較少組件或附加組件的網(wǎng)絡(luò)計(jì)算機(jī)和其他數(shù)據(jù)處理系統(tǒng)。數(shù)據(jù)處理系統(tǒng)1200可以例如包括個人計(jì)算機(jī)(pc)、工作站、膝上型計(jì)算機(jī)、平板式設(shè)備、智能電話或其他手持無線設(shè)備,或具有類似功能的任何設(shè)備。在所示實(shí)施例中,數(shù)據(jù)處理系統(tǒng)1200包括計(jì)算機(jī)系統(tǒng)1210。計(jì)算機(jī)系統(tǒng)1210包括互連總線1205(或用于傳送信息的其他通信機(jī)制)以及與互連總線1205耦合的用于處理信息的一個或多個處理器1201。計(jì)算機(jī)系統(tǒng)1210還包括經(jīng)由互連總線1205與一個或多個處理器1201耦合的存儲器系統(tǒng)1202。存儲器系統(tǒng)1202被配置為存儲要由處理器1201執(zhí)行的信息和指令,包括用于執(zhí)行上述技術(shù)的信息和指令。該存儲器系統(tǒng)還可以用于存儲由(一個或多個)處理器1201執(zhí)行的程序。此存儲器系統(tǒng)的可能實(shí)施方案可以是但不限于隨機(jī)存取存儲器(ram)、只讀存儲器(rom)或其組合。在所示實(shí)施例中,還提供存儲設(shè)備1203用于存儲信息和指令。通常,存儲設(shè)備1203包括非易失性存儲器。存儲設(shè)備的常見形式包括例如硬盤驅(qū)動、磁盤、光盤、cd-rom、dvd、閃存或其它非易失性存儲器、usb存儲卡或計(jì)算機(jī)可以從其讀取數(shù)據(jù)和指令的任何其它計(jì)算機(jī)可讀介質(zhì)。存儲設(shè)備1203可以存儲用于執(zhí)行上述技術(shù)的源代碼、二進(jìn)制代碼或軟件文件。另外,雖然圖12示出作為與數(shù)據(jù)處理系統(tǒng)的組件連接的本地設(shè)備的存儲設(shè)備1203,本領(lǐng)域技術(shù)人員將理解,所描述的技術(shù)可以使用遠(yuǎn)離系統(tǒng)的存儲設(shè)備,諸如通過諸如網(wǎng)絡(luò)接口1204的網(wǎng)絡(luò)接口與計(jì)算機(jī)系統(tǒng)1210耦合的數(shù)據(jù)庫或其他網(wǎng)絡(luò)存儲設(shè)備。網(wǎng)絡(luò)接口1204可以提供計(jì)算機(jī)系統(tǒng)1210和網(wǎng)絡(luò)1220之間的通信。網(wǎng)絡(luò)接口1204可以是無線或有線連接,或其任何組合。計(jì)算機(jī)系統(tǒng)1210被配置為通過網(wǎng)絡(luò)接口1204跨越諸如局域網(wǎng)(lan)、廣域網(wǎng)(wan)、無線或藍(lán)牙網(wǎng)絡(luò)或者因特網(wǎng)1230等的一個或多個網(wǎng)絡(luò)1220上發(fā)送并且接收信息。計(jì)算機(jī)系統(tǒng)1210可以訪問駐留在跨越網(wǎng)絡(luò)1220的一個或多個不同的硬件服務(wù)器1231-1234上的系統(tǒng)上的數(shù)據(jù)和特征。硬件服務(wù)器1231-1234和相關(guān)聯(lián)的服務(wù)器軟件也可以駐留在云計(jì)算環(huán)境中。存儲設(shè)備和存儲器系統(tǒng)兩者是非暫態(tài)計(jì)算機(jī)可讀存儲介質(zhì)的示例。這里的實(shí)施例可以以存儲在任何計(jì)算機(jī)可讀介質(zhì)上的計(jì)算機(jī)可讀代碼來具體化,其在由計(jì)算機(jī)或其他數(shù)據(jù)處理系統(tǒng)執(zhí)行時可以適于使系統(tǒng)執(zhí)行根據(jù)本文所描述的技術(shù)的操作。計(jì)算機(jī)可讀介質(zhì)可以包括以由諸如計(jì)算機(jī)、網(wǎng)絡(luò)設(shè)備、平板式設(shè)備、智能電話或具有類似功能的任何設(shè)備的數(shù)據(jù)處理系統(tǒng)可訪問的形式存儲信息的任何機(jī)制。計(jì)算機(jī)可讀介質(zhì)的示例包括能夠在其上存儲信息的任何類型的非暫態(tài)、有形介質(zhì),包括軟盤、硬驅(qū)盤(“hdd”)、固態(tài)設(shè)備(“ssd”)或其他閃速存儲器、光盤、數(shù)字視頻盤(“dvd”)、cd-rom、磁光盤、rom、ram、可擦除可編程只讀存儲器(“eprom”)、電可擦除可編程只讀存儲器(“eeprom”)、磁卡或光卡或者適于以電子格式存儲數(shù)據(jù)和指令的任何其它類型的介質(zhì)。計(jì)算機(jī)可讀介質(zhì)還可以分布在以分布式方式存儲并且執(zhí)行的網(wǎng)絡(luò)耦合的計(jì)算機(jī)系統(tǒng)上。此外,計(jì)算機(jī)系統(tǒng)1210可以經(jīng)由互連總線1205耦合到用于向計(jì)算機(jī)用戶顯示信息的顯示器1212。諸如鍵盤,觸摸屏和/或鼠標(biāo)的輸入設(shè)備1211耦合到總線1205,用于將信息和命令選擇從用戶傳送到處理器1201。這些組件的組合允許用戶與系統(tǒng)通信。在一些系統(tǒng)中,總線1205表示多個專用互連總線。考慮到這些實(shí)施例,從該描述將顯而易見的是,所描述的技術(shù)的各方面可以至少部分地以軟件,硬件,固件或其任何組合來具體化。還應(yīng)當(dāng)理解,實(shí)施例可以采用涉及存儲在計(jì)算機(jī)系統(tǒng)中的數(shù)據(jù)的各種計(jì)算機(jī)實(shí)施的功能。技術(shù)可以響應(yīng)于執(zhí)行存儲在存儲器中的指令序列來在計(jì)算機(jī)系統(tǒng)或其他數(shù)據(jù)處理系統(tǒng)中執(zhí)行。貫穿前述描述,為了解釋的目的,闡述了許多具體細(xì)節(jié)以便提供對本公開的透徹理解。然而,對于本領(lǐng)域技術(shù)人員將明顯的是,這些實(shí)施例可以在沒有這些具體細(xì)節(jié)中的一些的情況下實(shí)踐。上述示例和實(shí)施例不應(yīng)被認(rèn)為是僅有的實(shí)施例,并且被呈現(xiàn)以說明本公開的靈活性和優(yōu)點(diǎn)。其他布置、實(shí)施例、實(shí)施方式和等同物對于本領(lǐng)域技術(shù)人員將是顯而易見的,并且可以在不脫離由所附權(quán)利要求限定的本公開的精神和范圍的情況下采用。附錄1:具有同步塊的示例的客戶端查詢當(dāng)前第1頁12