專利名稱:擴(kuò)展商業(yè)智能系統(tǒng)的形式和功能的基于內(nèi)容的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及從OLAP多維數(shù)據(jù)集(cube)提取商業(yè)智能(Bi)信息的系統(tǒng)和方法中的改進(jìn)以及涉及通過特定的內(nèi)容擴(kuò)展的改進(jìn)的查詢生成程序。
背景技術(shù):
本發(fā)明所處理的基本問題是制約當(dāng)前的商業(yè)智能系統(tǒng)的僵化。它們的初始開發(fā)、 復(fù)雜性和維護(hù)開支導(dǎo)致非常昂貴的實現(xiàn)和令人沮喪的終端用戶體驗。它們需要商業(yè)領(lǐng)域、 數(shù)據(jù)倉庫和OLAP開發(fā)領(lǐng)域中的一系列專家專門技術(shù)。此外,來自終端用戶的需要的任何變化使得在另外的持續(xù)時間內(nèi)需要許多這些專家的參與。傳統(tǒng)BI信息實現(xiàn)是完全基于服務(wù)的定制的開發(fā)工作。創(chuàng)建一般對每個企業(yè)是唯一的,且不是可再次使用的。這個評論對當(dāng)前可用的大多數(shù)BI系統(tǒng)是成立的。美國專利說明書20070078823是針對不具有商業(yè)智能專門技術(shù)的應(yīng)用開發(fā)者而設(shè)計的,以為了應(yīng)用開發(fā)目的而提供黑箱多維表達(dá)式生成器。商業(yè)智能專家創(chuàng)建開發(fā)者可編譯到其應(yīng)用中的這些可再次使用的黑箱。表達(dá)式生成器是可組成的。最近的專利通常處理在通過查詢提取數(shù)據(jù)中所遇到的問題。美國專利申請2008/(^94596通過根據(jù)層次生成上下文表達(dá)式來處理將具有組合的層次維的查詢轉(zhuǎn)換成數(shù)據(jù)源特定查詢。美國專利申請2008/0005689提供了存儲可執(zhí)行指令以圖形地顯示一個或多個文件對象的文件對象屬性的系統(tǒng)。EP2056194公開了接收對行動的請求的可執(zhí)行指令。搜索一組元數(shù)據(jù)以找到對應(yīng)于該行動的元數(shù)據(jù),并且該搜索被行動上下文所限制。美國專利7457810通過提供XML封裝器(wrapper)而改進(jìn)了 SQL查詢,XML封裝器以運行中方式查詢XML文件,使得只有滿足該查詢的文件中的父節(jié)點被提取。美國專利7四6040公開了自動導(dǎo)出查詢主題和查詢項之間的關(guān)系以避免雙重計數(shù)的方法。美國專利申請20090030915公開了通過收集在多維數(shù)據(jù)庫中的所關(guān)注的數(shù)據(jù)值的上下文來確定所關(guān)注的數(shù)據(jù)值的驅(qū)動因子的方法。報告和匯總數(shù)據(jù)僅僅是分析的一個方面。常常,報告必須是前瞻的,并且有意義的預(yù)測對有效地規(guī)劃和管理現(xiàn)代組織是必要的。雖然存在可用于執(zhí)行復(fù)雜的統(tǒng)計分析的強(qiáng)大的工具,但它們本質(zhì)上是通用的,并且需要相當(dāng)程度的數(shù)學(xué)技巧來操作。結(jié)合這一點,操作人員也必須擁有有效的業(yè)務(wù)領(lǐng)域的深奧知識。本發(fā)明的一個目的是解決使這些強(qiáng)大的分析工具可用于商業(yè)用戶的需要。另一目的是提供一種小企業(yè)可負(fù)擔(dān)得起的并且減少對專家的依賴的BI系統(tǒng)。
發(fā)明內(nèi)容
為此目的,本發(fā)明提供了包括作為商業(yè)智能查詢系統(tǒng)的部分的可執(zhí)行指令的計算機(jī)可讀存儲介質(zhì),該商業(yè)智能查詢系統(tǒng)包括在執(zhí)行期間迭代地處理數(shù)據(jù)的能力,其中復(fù)雜的多維查詢被解釋為被組合在解析樹狀結(jié)構(gòu)中以形成總查詢的原子子表達(dá)式的樹,其中每個子樹在被提供了適當(dāng)?shù)纳舷挛臅r是單獨有效的;其中每個子樹存儲在應(yīng)用內(nèi)容中;以及一些子樹是表達(dá)式模板,且應(yīng)用于單個表達(dá)式模板的類型和語義規(guī)則被保存為內(nèi)容。類型和語義檢查優(yōu)選地在設(shè)計時間被執(zhí)行,且不在生成時間重新生效。上下文菜單優(yōu)選地用于查詢部分,其中,該上下文菜單顯示可應(yīng)用的表達(dá)式模板并使用類型系統(tǒng)和語義邏輯來過濾可用的表達(dá)式模板。在另一方面,本發(fā)明提供了包括作為商業(yè)智能查詢系統(tǒng)的部分的可執(zhí)行指令的計算機(jī)可讀存儲介質(zhì),該商業(yè)智能查詢系統(tǒng)包括在執(zhí)行期間迭代地處理數(shù)據(jù)的能力,其中復(fù)雜的多維查詢被解釋為被組合在解析樹狀結(jié)構(gòu)中以形成總查詢的原子子表達(dá)式的樹,其中每個子樹在被提供了適當(dāng)?shù)纳舷挛臅r是單獨有效的;其中每個子樹存儲在應(yīng)用內(nèi)容中;以及一些子樹是表達(dá)式模板,其在生成時間使用實例特定的參數(shù)進(jìn)行簡單的文本替換來產(chǎn)生多維表達(dá)式語法。優(yōu)選地在上下文菜單中提供內(nèi)容表達(dá)式模板,其中使用類型系統(tǒng)和語義邏輯來過濾模板的列表。系統(tǒng)還優(yōu)選地包括在應(yīng)用級別處在對計算成員進(jìn)行穿透鉆取(drill through)的解決方案,其允許模板設(shè)計員指定可替換的穿透鉆取集合表達(dá)式。聲明性的傳統(tǒng)OLAP查詢語言沒有在執(zhí)行期間迭代地處理數(shù)據(jù)的能力。將所存儲的程序添加到OLAP數(shù)據(jù)庫補(bǔ)充并豐富了其解決問題的能力。優(yōu)選地,類型和語義檢查在設(shè)計時間被執(zhí)行,且不在生成時間重新生效。本發(fā)明通過在整個內(nèi)容中提供表達(dá)式模板功能來采取以用戶為中心的方法。再次,商業(yè)智能專家創(chuàng)建模板,但重要地,它被存儲為應(yīng)用內(nèi)容且可由其創(chuàng)建者和其他用戶立即采用。沒有生成步驟。為了將表達(dá)式模板實現(xiàn)為內(nèi)容,一些附加輸入字段是必要的。兩個必須的這樣的字段是默認(rèn)字段和父層次字段。在申請USA 20070078823中的方法涉及元數(shù)據(jù)生成步驟的場合,本發(fā)明利用簡單的文本替換。雖然這個方法通常非常容易產(chǎn)生錯誤,但這通過健壯型系統(tǒng)和語義層的交疊而被避免。這兩種方法都支持可組成的表達(dá)式,但這是多維表達(dá)式的可組成性質(zhì)的自然結(jié)果,而不是基本的發(fā)明。在這里提出的創(chuàng)新消除了對初始實現(xiàn)之外的專家?guī)椭男枰?。它們提供同時隱藏 OLAP報告的復(fù)雜性、授權(quán)用戶執(zhí)行復(fù)雜的分析并且交付動態(tài)可擴(kuò)展的系統(tǒng)的架構(gòu),其中該動態(tài)可擴(kuò)展的系統(tǒng)允許用戶捕獲通常使用的報告結(jié)構(gòu)并重新使用和管理它們。本發(fā)明所展示的以內(nèi)容為中心的方法是重要的,因為它提供從任何特定的OLAP 多維數(shù)據(jù)集的細(xì)節(jié)提取的可重新分配的邏輯。此外,常規(guī)應(yīng)用安全可用于定制設(shè)計體驗。例如,可給安全組“設(shè)計員1”提供“設(shè)計員2”組全部可利用的上下文菜單的最小子集。在本發(fā)明的優(yōu)選實施例中,終端用戶面對這些擴(kuò)展性點 在查詢的上下文中在適當(dāng)?shù)奈恢玫牟樵儾糠只蛟诓樵兊纳舷挛闹斜灰苿拥竭m當(dāng)位置的查詢部分可用的上下文菜單。上下文菜單顯示可應(yīng)用于場景的表達(dá)式模板。非常重要地,該內(nèi)容菜單使用類型系統(tǒng)來基于查詢部分類型和占位符類型智能地過濾可用的表達(dá)式模板。上下文菜單還使用語義邏輯來進(jìn)一步過濾模板。菜單的內(nèi)容、結(jié)構(gòu)和細(xì)節(jié)全部從被保存為應(yīng)用內(nèi)容的表達(dá)式模板得到?!っ空嘉环捎玫墓ぞ邫?,其中被保存為應(yīng)用內(nèi)容的表達(dá)式模板指定它們應(yīng)用的工具欄?!け磉_(dá)式模板瀏覽器,其是導(dǎo)航活躍的用戶有足夠的安全權(quán)限來查看的所有表達(dá)式模板的非上下文手段。 可擴(kuò)展性的菜單和子菜單點,其中被保存為應(yīng)用內(nèi)容的表達(dá)式模板指定在其中要顯示它們的應(yīng)用菜單和應(yīng)用子菜單。有權(quán)力的用戶可通過下列項擴(kuò)展功能·作為資源的多維表達(dá)式模板,其使商業(yè)智能專家能夠分發(fā)可分配的表達(dá)式邏輯?!ぷ鳛橘Y源的OLAP數(shù)據(jù)庫存儲的程序,其使商業(yè)智能專家能夠分發(fā)可分配的迭代解決方案作為內(nèi)容。 組合模板,其使商業(yè)用戶能夠組合來自內(nèi)容庫的表達(dá)式模板,并組成新的“組合” 表達(dá)式模板。·作為內(nèi)容的數(shù)據(jù)挖掘算法和工作流,其基于上面的三種資源而構(gòu)建,以提供解決復(fù)雜的業(yè)務(wù)問題的手段。插入架構(gòu)是提供售后市場可定制化的常用手段。這樣的架構(gòu)依賴于應(yīng)用開發(fā)者, 其依靠自身的力量編碼要由主應(yīng)用托管的計算機(jī)程序。本發(fā)明采用不同的方法,并替代地允許擴(kuò)展被設(shè)計并保存在應(yīng)用中作為內(nèi)容。本專利設(shè)想將四種資源類型保存為內(nèi)容,其共同提供可擴(kuò)展性。該內(nèi)容方法具有以下益處·易于創(chuàng)建——所有擴(kuò)展在一個地方創(chuàng)建在應(yīng)用內(nèi)部。 易于維護(hù)——所有擴(kuò)展存儲在一個地方在應(yīng)用內(nèi)部。基本應(yīng)用安全可控制對它們的訪問。相同的基本應(yīng)用安全可用于通過限制為了可用性目的而暴露的擴(kuò)展來使接口個性化。·易于分發(fā)——內(nèi)容可被導(dǎo)出到文件并通過常規(guī)手段例如電子郵件而被分發(fā)。意圖是讀者應(yīng)在基于內(nèi)容的方法的上下文內(nèi)解釋整個這個討論,以擴(kuò)展商業(yè)智能應(yīng)用。要報告的中間件的新穎介紹引入了抽象層,其允許被開發(fā)一次并且甚至能夠在不同的數(shù)據(jù)庫上被再次使用的報告和度量。值得強(qiáng)調(diào)的是,不僅報告內(nèi)容是可再次使用的,而且報告功能(例如,計算毛利潤率或平均存貨周轉(zhuǎn)率)可被開發(fā)一次并被重復(fù)地再次使用。該可重用性準(zhǔn)許現(xiàn)有的基于BI服務(wù)的企業(yè)提供捕獲其行業(yè)知識的價值的供應(yīng)品,并幫助它們調(diào)整其企業(yè)。在BI系統(tǒng)曾經(jīng)很難修改和擴(kuò)展的場合,本發(fā)明的內(nèi)容驅(qū)動的可擴(kuò)展性意味著可以由終端用戶動態(tài)地擴(kuò)展任何配置。大多數(shù)查詢語言本質(zhì)上是聲明性的,所以不能容易地在查詢過程期間對數(shù)據(jù)執(zhí)行迭代的操作。數(shù)據(jù)庫儲存的程序可向查詢語言提供迭代補(bǔ)充。在沒有這兩種語言范式的組合的情況下,很多任務(wù)是緩慢或不可能的。本發(fā)明提供用于無縫地將這兩種方法聚攏在一起,并即時地向終端用戶提供更多權(quán)利的內(nèi)容驅(qū)動的方法。數(shù)據(jù)類型大多數(shù)編程語言包括對于表達(dá)式和/或?qū)ο蟮念愋偷母拍睢n愋陀糜趦煞N主要的目的1.類型為很多操作提供隱含上下文,所以用戶不必明確地指定該上下文。在MDX 中,例如,如果a和b是Double型,則表達(dá)式a+b將使用浮點加法;如果a和b是類型集合, 則它將使用集合加法(并集)。2.類型限制了可在語義上有效的程序中執(zhí)行的一組操作。它們防止程序設(shè)計員例如乘以字符和記錄、或?qū)线M(jìn)行反正切、或?qū)⑽募鳛閰?shù)傳遞到期望整數(shù)的子例程。雖然沒有類型系統(tǒng)能夠保證捕獲程序設(shè)計員可能錯誤地放到程序中的每個無意義的操作,但是捕獲足夠多錯誤的好的類型系統(tǒng)在實踐中也是非常可貴的。類型系統(tǒng)在其最基本的層,計算機(jī)硬件處理1和0的流。在處理器內(nèi)的各種單元可以將比特解釋為不同長度的指令、地址、字符、整數(shù)和浮點數(shù)以及其他。然而,比特本身是沒有被賦予類型;在大多數(shù)機(jī)器上的硬件不試圖記錄哪些解釋對應(yīng)于存儲器中的哪些位置。匯編語言反映了類型的這種缺失可以將任何種類的操作應(yīng)用于任意位置上的值。另一方面,高級語言幾乎總是使類型與值相關(guān),以提供剛剛描述的上下文信息和錯誤檢查。非正式地,類型系統(tǒng)由下列項組成·定義類型并將類型與特定語言結(jié)構(gòu)相關(guān)聯(lián)的機(jī)制;必須具有類型的這些結(jié)構(gòu)精確的是具有值的那些結(jié)構(gòu)或可以指代具有值的對象的結(jié)構(gòu)?!ο铝许椀囊唤M規(guī)則ο類型等價(當(dāng)兩個值的類型相同時)。ο類型兼容(確定給定類型的值何時可用在給定的上下文中)。ο類型推斷(基于表達(dá)式的組成部分或(有時)基于周圍的上下文來定義表達(dá)式的類型)。類型檢查類型檢查是確保程序遵守語言的類型兼容規(guī)則的過程。語言被認(rèn)為是強(qiáng)類型的, 如果它禁止使用語言實現(xiàn)可以實施將任何操作應(yīng)用到意圖不支持該操作的任何對象的方式。語言被認(rèn)為是靜態(tài)類型的,如果它是強(qiáng)類型的并且在編譯時執(zhí)行類型檢查。類型的定義類型是由具有明確定義和相互一致的語義的一組操作組成的接口。類型的分類編程語言常常支持兩種類型引用類型和值類型。更簡單的結(jié)構(gòu)例如單整型一般被對待為值類型——它們本身沒有標(biāo)識且它們的值包含關(guān)于它們的所有重要信息。它們是可互換的一個整型7等于任一其它整型7。相反,引用類型指類型的特定實例(通常更復(fù)雜的類型,例如對象或集合)。每個引用類型指向類型的唯一實例。裝箱(boxing)和拆箱值類型常常,一些結(jié)構(gòu)期望引用類型作為某些操作的參數(shù)??梢酝ㄟ^使用稱為裝箱的機(jī)制來將值類型轉(zhuǎn)換成引用類型。值類型被封裝在封裝器對象和返回的對它的引用中。定義商業(yè)智能(Bi)通過以將行動導(dǎo)向期望目標(biāo)的方式提供信息來提高業(yè)務(wù)決策制定的方法。遞歸(可組成)類型遞歸類型是其對象可包含對同一類型的其它對象的一個或多個引用的類型。大多數(shù)遞歸類型是記錄,因為它們除了引用以外還需要包含暗示異類字段的存在的一些東西。 遞歸類型可用于構(gòu)造包括列表和樹的各種“鏈接的”數(shù)據(jù)結(jié)構(gòu)。指針指針(也稱為引用類型)是保存存儲器地址的特殊類型的變量。通常,這是另一標(biāo)量變量或數(shù)組的地址,但也可以是函數(shù)的地址。編譯器編譯器是采用以高級語言編寫的代碼并將它轉(zhuǎn)換成另一(一般較低級的)語言的一個軟件。今天通常使用的一個例子是微軟的C#編譯器,其采用以高級c#語言編寫的代碼并將它轉(zhuǎn)換成微軟中間語言(MSIL)指令。當(dāng)這個軟件被執(zhí)行時,微軟公共語言運行時 (CLR) (. NET框架的一部分)又將這些MSIL指令編譯成英特爾處理器能夠解釋的低級匯編
語言ο可組成的將一個元素嵌套在另一元素內(nèi)的能力內(nèi)容更完整地,應(yīng)用內(nèi)容——也就是說,相當(dāng)確切地,應(yīng)用的內(nèi)容。例如,字處理文件可被認(rèn)為是字處理軟件的內(nèi)容。本發(fā)明的關(guān)鍵概念是,內(nèi)容是通常通過電子手段容易創(chuàng)建并容易傳播的。交叉聯(lián)接/交叉相乘作為兩個集合的乘積的一個集合,使得第一集合的每個成員與第二集合的每個成員合并。例如,(January,February)與(car,bike)交叉聯(lián)接將返回(January car,January bike,F(xiàn)ebruary car,F(xiàn)ebruary bike)0多維數(shù)據(jù)集優(yōu)化用于數(shù)據(jù)的快速檢索和聚合的多維數(shù)據(jù)庫。穿透鉆取穿透鉆取使客戶應(yīng)用能夠訪問聚合到所關(guān)注的單元(或多個單元)的最低級別的數(shù)據(jù)。DSV數(shù)據(jù)源視圖——比原始數(shù)據(jù)更自然地映射到多維數(shù)據(jù)集中其定義的基本系統(tǒng)數(shù)據(jù)的視圖。ERP企業(yè)資源計劃是對于多模塊應(yīng)用軟件所支持的一組廣泛的活動的行業(yè)術(shù)語,該軟件幫助制造商或其它企業(yè)管理其企業(yè)的重要部分,包括產(chǎn)品計劃、部件購買和維持庫存??蓴U(kuò)展性
擴(kuò)展的能力。KPI——關(guān)鍵績效指標(biāo)——用于對照基準(zhǔn)來監(jiān)控并測量業(yè)務(wù)統(tǒng)計的度量。MDX——多維表達(dá)式MDX是多維數(shù)據(jù)庫的領(lǐng)先查詢語言。MDX被創(chuàng)建來查詢OLAP 數(shù)據(jù)庫,并且在OLAP應(yīng)用的領(lǐng)域正在被廣泛地采用。OLAP——在線分析處理系統(tǒng)使管理人員能夠通過提供對信息的各種可能視圖的快速的交互式訪問來深入了解數(shù)據(jù)。下面的定義介紹了反映多維視圖并且對OLAP是基本的概念。“維”是給數(shù)據(jù)分類的結(jié)構(gòu)。例如,客戶、產(chǎn)品和時間。一般,維包含一個或多個層次。用度量結(jié)合的幾個不同的維使終端用戶能夠回答業(yè)務(wù)問題。例如,按月對數(shù)據(jù)分類的時間維幫助回答問題“我們在一月還是六月售出更多小配件? ”數(shù)字?jǐn)?shù)據(jù)對分析是重要的,但在本發(fā)明中如何處理它取決于其測量尺度。通常存在必須被考慮的四種測量尺度·標(biāo)稱 順序·間隔·比“度量”包括通常是數(shù)字的并在比例尺度上的數(shù)據(jù),其可被檢查和分析。一般,一個或多個維對給定的度量分類,且它被描述為被他們“維化”。“層次”是使用有序的級別作為組織父子關(guān)系中的維成員的方法的邏輯結(jié)構(gòu)。一般,終端用戶可通過在其級別上向下鉆取或向上鉆取來擴(kuò)大或壓縮層次?!凹墑e”是在層次中的位置。例如,時間維可能具有表示日、月、季度和年級別的數(shù)據(jù)的層次。“屬性”是終端用戶可指定來選擇數(shù)據(jù)的維的元素的描述性特征。例如,終端用戶可使用性別屬性來選擇產(chǎn)品。這將產(chǎn)生所有匹配的性別數(shù)據(jù)的聚合。一些屬性可以表示其它表格中的鍵或關(guān)系。“查詢”是用于從較大的集合獲得特定的數(shù)據(jù)集合的規(guī)范,該特定的數(shù)據(jù)集合也稱為查詢的結(jié)果集合。規(guī)范需要選擇、聚合、計算或以其它方式操縱數(shù)據(jù)。如果這樣的操縱是需要的,則它是查詢的內(nèi)在部分。占位符字段OLAP客戶端工具常見的用戶界面元素,其允許用戶將其它元素放在它上面,以便組成對象,例如元組或集合。占位符可以包含選項卡,且這些選項卡映射到查詢部分,所以例如,Row(行)占位符可以具有“January (—月)”選項卡和“Aggregate of Bike and Car(自行車和汽車的聚合)”選項卡。查詢塊或查詢部分查詢樹的組成部分,可能是表達(dá)式模板實例,例如一月和二月的聚合,但不是必須這樣,例如度量。查詢部分使用OLAP多維數(shù)據(jù)集對象粗略地映射1到1,例如成員到成員, 集合到集合,雖然表達(dá)式模板違反這種映射。資源對于BI報告元素例如KPI、計分卡或分析報告或其組成部分(例如指定的集合或所計算的成員)的一般術(shù)語。內(nèi)容由資源組成。模板化提供在其中可以放置實例細(xì)節(jié)的骨架邏輯結(jié)構(gòu)。該術(shù)語不需要對表達(dá)式模板是特定的,但在本文件的內(nèi)容中它應(yīng)被認(rèn)為是這樣。例如,普通的表達(dá)式可以是SumO^et),其中在以后的點處將用特定的實例值來代替 Set標(biāo)記。用戶界面用戶與應(yīng)用軟件進(jìn)行交互(或連接)的手段?;貙懣赡芡ㄟ^回寫操作來物理地修改多維數(shù)據(jù)集。如果維具有回寫權(quán)力,則可在層次內(nèi)創(chuàng)建、刪除和移動成員或更新客戶成員公式和特性。也可更新多維數(shù)據(jù)集內(nèi)的數(shù)據(jù)單元。
具體實施例方式現(xiàn)在將參考附圖更詳細(xì)地描述本發(fā)明。
圖1-5示出在本發(fā)明的查詢樹中的基本步驟;圖6到13示出使用本發(fā)明的方法的樣例;圖14到18示出根據(jù)本發(fā)明的使用集合和集合部件進(jìn)行建模;圖19示出根據(jù)本發(fā)明的一個實施例的查詢部分上下文菜單;圖20示出根據(jù)本發(fā)明的一個實施例的一系列當(dāng)前時期模板;圖21示出根據(jù)本發(fā)明的一個實施例的表達(dá)式模板瀏覽器;圖22示出根據(jù)本發(fā)明的一個實施例的為了表總結(jié)的目的在應(yīng)用格式欄中可用的模板;圖23示出根據(jù)本發(fā)明的一個實施例的在顯示維度時的合并操作的使用;圖M示出根據(jù)本發(fā)明的一個實施例的表達(dá)式模板中的替換字段的使用;圖25示出根據(jù)本發(fā)明的一個實施例的圖M的表達(dá)式模板中的當(dāng)前值Set的下拉框的包含內(nèi)容;圖沈提供根據(jù)本發(fā)明的一個實施例的模板資源的示例性“Save as(保存為)”彈出窗口 ;圖27示出根據(jù)本發(fā)明的一個實施例的簡單分析,其中在該簡單分析中,一月、二月和三月被聚合到所計算的成員中;圖觀展示根據(jù)本發(fā)明的一個實施例的作為對所有Date(日期)成員的聚合的在 Rows(行)上的所計算的成員;圖四示出根據(jù)本發(fā)明的一個實施例的組合模板的可能的設(shè)計體驗;圖30示出在被存儲為資源的應(yīng)用內(nèi)的所存儲的程序的設(shè)計體驗的一個實施例;圖31示出根據(jù)本發(fā)明的一個實施例的用于根據(jù)分析創(chuàng)建熱圖的計算模板實例;圖32是可被創(chuàng)建來測試在本發(fā)明的方法中涉及的假設(shè)的工作流的例子;圖33示出每個候選變量提供的被可視地顯示為條形圖表的信息的量。圖1示出用戶試圖將四個單元的塊拉到單個單元中。明顯地,不能在不首先執(zhí)行諸如對他們求和的操作的情況下將四個單元放置在單個單元中。圖5也示出提供該操作的上下文菜單。在本發(fā)明中的這個最重要的概念是,這個上下文菜單及其邏輯等效形式不是靜態(tài)的,而相反是可由應(yīng)用用戶編輯的。在商業(yè)智能軟件中的當(dāng)前實踐是開發(fā)者程序,例如包括指定的操作和邏輯的菜單,即,靜態(tài)解決方案。這種方法由于所需的專家(領(lǐng)域?qū)<?、業(yè)務(wù)分析、開發(fā)者)數(shù)量和較慢的產(chǎn)品生命周期而處于困難境地。本文所描述的發(fā)明使商業(yè)智能專家能夠直接將選項添加到該菜單及其邏輯等效形式。圖2示出新的選項SDeV,BI專家能夠通過使用應(yīng)用內(nèi)設(shè)計器將SDeV創(chuàng)建為內(nèi)容。 內(nèi)容暗示擴(kuò)展是應(yīng)用內(nèi)的一項,例如水果可放置在紙板盒中,另一例子在字處理應(yīng)用內(nèi)的字處理文件。該方法省去兩個專家,并避免產(chǎn)品生命周期中內(nèi)在的延遲。圖3示出用戶試圖將單個單元拖到另一單個單元中。假設(shè)地理信息被保存在行中 (例如,第一行可能包含用于澳大利亞數(shù)據(jù)的3個單元)。從圖2已經(jīng)改變了可用的選項。 雖然單元的塊(集合)可以被求和,但對于單條數(shù)據(jù)求和沒有意義。這表明上下文菜單是知道“類型”的。這里所述的發(fā)明允許BI專家在定義操作(例如,求和,+)的相同內(nèi)容中向系統(tǒng)提供信息。當(dāng)前的BI軟件開發(fā)實踐要求靜態(tài)地描述和實施這樣的檢查。圖4展示與圖3相同的行動,然而我們現(xiàn)在將假設(shè)時間信息維持在行中。來自圖 4的上下文菜單現(xiàn)在包括額外的選項“Previ0US(上一個)”,其對于這個例子獲取以前的時段數(shù)據(jù)。例如,如果所討論的單元(中間單元)采取2009作為來自它所在的行的其時間上下文,則!devious操作將返回2008的等效數(shù)據(jù)。重要地,該選項在圖3所描述的場景中是不可用的。地理的語義暗示“以前的地理成員”沒有意義,即使它在技術(shù)上是可實現(xiàn)的。本文所述的發(fā)明允許BI專家在定義操作(例如“Previous”)的相同內(nèi)容中對系統(tǒng)描述這些語義。當(dāng)前BI軟件開發(fā)實踐靜態(tài)地實施這樣的邏輯的有限和規(guī)定的子集。樣例為了展示本發(fā)明的核心部件的目的,現(xiàn)在提供一個樣例。問題陳述是使用行中的所有Wheel sales (輪銷售額)和Frame sales (框架銷售額)的聚合來提供分析柵格。假設(shè)的OLAP多維數(shù)據(jù)集當(dāng)前沒有一個框架成員,而是相反如在圖6中能夠看到的多個框架成
員O值得注意的是,如所設(shè)想的,這樣的可擴(kuò)展的BI應(yīng)用允許多種解決問題的方法, 而下面僅僅是一種這樣的方法。第一步驟是使用Columns(列)上的默認(rèn)度量來定義分析并然后利用引用模板 (稍后詳細(xì)描述)來獲得I^roduct (產(chǎn)品)維的默認(rèn)成員的孫子。圖6示出在成員上可用的上下文菜單。這是本發(fā)明的非常重要的部件?;诒磉_(dá)式模板設(shè)計員所提供的類型系統(tǒng)和語義邏輯來過濾上下文菜單。例如,設(shè)計員可指定維類型,操作對該維類型有意義。圖6示出應(yīng)用引用模板的結(jié)果。下一步驟是將孫子過濾為標(biāo)題內(nèi)包含“Frame (框架),,的成員。圖7示出應(yīng)用于 Product孫子的集合的上下文菜單??捎玫哪0迨菍喜僮鞑⒎祷貙S有效的對象的模板。用戶選擇“Contains (包含)”模板,且結(jié)果是自動產(chǎn)生的表格,如在圖7以其填充狀態(tài)所示的。注意,為菜單提供上下文的查詢部分,即,I^roduct的孫子,現(xiàn)在在表格(在圖 6中被圈住)的默認(rèn)字段(在這種情況下僅僅是查詢部分字段)中。默認(rèn)字段的類型是類型系統(tǒng)過濾方程的一側(cè);另一個是上下文,例如查詢部分與行占位符相關(guān)的事實意味著它需要一個集合作為輸出。這在本文件中的下面的技術(shù)討論中被詳細(xì)地解釋。用戶現(xiàn)在點擊Apply (應(yīng)用)按鈕,則結(jié)果顯示在圖8中,在圖8中Rows軸現(xiàn)在包含在其標(biāo)題中具有文本“Frame”的所有成員。在圖9中是對contains表達(dá)式模板資源的另一可能的設(shè)計。用戶然后從圖10所示的上下文菜單選擇Aggregate (聚合)模板。集合的聚合是標(biāo)量,然而這可能被隱性地轉(zhuǎn)換(或用開發(fā)者的說法,被裝箱)成集合。圖11示出針對這個模板的自動產(chǎn)生的表格,默認(rèn)字段再次被考慮為上下文查詢部分。用戶點擊Apply,則結(jié)果是圖12。最后一個步驟是簡單地將Wheel成員拖到Rows上,如圖13所示。值得注意的是,Wheel和所計算的Frame成員被自動合并。表達(dá)式模板的啟動部件是集合列表(例如軸)將對同一父層次的查詢部分合并,并在層次邊界處被交叉聯(lián)接。這在本文件的技術(shù)描述被更深入地解釋。查詢創(chuàng)建的技巧查詢部分該系統(tǒng)的核心是相對簡單的過程文本替換。復(fù)雜的表達(dá)式由MDX專家編寫,但某些標(biāo)記被放置在表達(dá)式的文本中以指示它們應(yīng)當(dāng)被適當(dāng)?shù)脑卦诳捎脮r代替。這些是占位符,并且事實上是函數(shù)的參數(shù)。這是當(dāng)前的技術(shù)狀態(tài)。然而,其本身并不是強(qiáng)有效的解決方案。對于什么值可作為參數(shù)被傳遞有很多約束。與這個系統(tǒng)密切關(guān)聯(lián)的必須是嚴(yán)格的約束和類型檢查系統(tǒng)。本發(fā)明在該基本替換過程之外構(gòu)造了靜態(tài)類庫。這產(chǎn)生高級和可擴(kuò)展的類型系統(tǒng)值得強(qiáng)調(diào)的是,對系統(tǒng)重要的是像Lego 塊一樣起作用的“查詢塊”或“查詢部分” 可被組裝和再次使用來創(chuàng)建復(fù)雜整體的塊。類型系統(tǒng)本身提供這些部分中的一些,例如單個度量。商業(yè)智能或領(lǐng)域?qū)<铱梢詣?chuàng)建更復(fù)雜和參量化的查詢塊——被部署為內(nèi)容的表達(dá)式模板。重要地,這個系統(tǒng)不需要任何編程。這樣的查詢塊的例子可以是一組成員的聚合。 最后,更復(fù)雜的查詢塊(組合模板)可由商業(yè)用戶通過將較簡單的查詢塊(表達(dá)式模板) 組合在一起來創(chuàng)建。查詢樹在編譯語言的過程中,源文本必須轉(zhuǎn)換成計算機(jī)可理解的形式。該過程一般包括經(jīng)由詞法分析將文本分成單詞(token)并將它解析成抽象的語法樹。例如,考慮下面的數(shù)學(xué)表達(dá)式
權(quán)利要求
1.一種包括作為商業(yè)智能查詢系統(tǒng)的部分的可執(zhí)行指令的計算機(jī)可讀存儲介質(zhì),所述商業(yè)智能查詢系統(tǒng)包括在執(zhí)行期間迭代地處理數(shù)據(jù)的能力,其中復(fù)雜的多維查詢被解釋為被組合到解析樹狀結(jié)構(gòu)中以形成總查詢的原子子表達(dá)式的樹,其中每個子樹在被提供了適當(dāng)?shù)纳舷挛臅r是單獨有效的;其中每個子樹存儲在應(yīng)用內(nèi)容中;以及一些子樹是表達(dá)式模板,并且應(yīng)用于單個表達(dá)式模板的類型和語義規(guī)則被保存為內(nèi)容。
2.根據(jù)權(quán)利要求1所述的包括可執(zhí)行指令的計算機(jī)可讀存儲介質(zhì),其中類型和語義檢查在設(shè)計時間被執(zhí)行,并且不在生成時間重新生效。
3.根據(jù)權(quán)利要求1所述的包括可執(zhí)行指令的計算機(jī)可讀存儲介質(zhì),其中包括默認(rèn)字段和父層次字段的額外的輸入字段被使用。
4.根據(jù)權(quán)利要求1所述的包括可執(zhí)行指令的計算機(jī)可讀存儲介質(zhì),其包括查詢部分可用的上下文菜單,所述上下文菜單顯示可應(yīng)用的表達(dá)式模板并且使用類型系統(tǒng)和語義邏輯來過濾可用的表達(dá)式模板。
5.一種包括作為商業(yè)智能查詢系統(tǒng)的部分的可執(zhí)行指令的計算機(jī)可讀存儲介質(zhì),所述商業(yè)智能查詢系統(tǒng)包括在執(zhí)行期間迭代地處理數(shù)據(jù)的能力,其中復(fù)雜的多維查詢被解釋為被組合到解析樹狀結(jié)構(gòu)中以形成總查詢的原子子表達(dá)式的樹,其中每個子樹在被提供了適當(dāng)?shù)纳舷挛臅r是單獨有效的;其中每個子樹存儲在應(yīng)用內(nèi)容中;以及一些子樹是表達(dá)式模板,所述表達(dá)式模板在生成時間使用實例特定的參數(shù)進(jìn)行簡單的文本替換來產(chǎn)生多維表達(dá)式語法。
6.根據(jù)權(quán)利要求5所述的包括可執(zhí)行指令的計算機(jī)可讀存儲介質(zhì),其在上下文菜單中顯露內(nèi)容表達(dá)式模板,其中使用類型系統(tǒng)和語義邏輯來過濾模板的列表。
7.根據(jù)權(quán)利要求5所述的包括可執(zhí)行指令的計算機(jī)可讀存儲介質(zhì),其中包括默認(rèn)字段和父層次字段的額外的輸入字段被使用。
8.根據(jù)權(quán)利要求1或權(quán)利要求5所述的包括可執(zhí)行指令的計算機(jī)可讀存儲介質(zhì),其包括在應(yīng)用級別對所計算的成員進(jìn)行穿透鉆取的解決方案,所述解決方案允許模板設(shè)計員指定可替換的穿透鉆取集合表達(dá)式。
9.根據(jù)權(quán)利要求1或權(quán)利要求5所述的包括可執(zhí)行指令的計算機(jī)可讀存儲介質(zhì),其使用全局唯一標(biāo)識符在所產(chǎn)生的查詢內(nèi)標(biāo)記所有別名的元素以使內(nèi)容表達(dá)式模板一般化為實質(zhì)上多維數(shù)據(jù)集和上下文不可知的。
10.根據(jù)權(quán)利要求1或權(quán)利要求5所述的包括可執(zhí)行指令的計算機(jī)可讀存儲介質(zhì),其使用所述解析樹狀結(jié)構(gòu)來遞歸地執(zhí)行部件以確定已經(jīng)引入了錯誤或性能問題的上下文表達(dá)式模板。
11.根據(jù)權(quán)利要求1或權(quán)利要求5所述的包括可執(zhí)行指令的計算機(jī)可讀存儲介質(zhì),其提供在生成時間被替換的多維表達(dá)式擴(kuò)展以使上下文表達(dá)式模板充分一般化為多維數(shù)據(jù)集和上下文不可知的。
12.根據(jù)權(quán)利要求1或權(quán)利要求5所述的包括可執(zhí)行指令的計算機(jī)可讀存儲介質(zhì),其中報告內(nèi)容和報告函數(shù)是可再次使用的。
13.根據(jù)權(quán)利要求1或權(quán)利要求5所述的包括可執(zhí)行指令的計算機(jī)可讀存儲介質(zhì),其使用被保存為內(nèi)容的四種資源類型,所述資源類型是多維表達(dá)式模板、OLAP數(shù)據(jù)庫存儲的程序、組合模板、以及數(shù)據(jù)挖掘算法和工作流。
全文摘要
商業(yè)智能(BI)系統(tǒng)包括通過特定的內(nèi)容來在項目生命周期之外擴(kuò)展其功能的能力。復(fù)雜的多維查詢被解釋為被組合在解析樹狀結(jié)構(gòu)中以形成總查詢的原子子表達(dá)式的樹。每個子樹在被提供了適當(dāng)?shù)纳舷挛臅r是單獨有效的。任何子樹可以是存儲為應(yīng)用內(nèi)容的表達(dá)式模板,其在生成時間使用實例特定的參數(shù)進(jìn)行簡單的文本替換來產(chǎn)生多維表達(dá)式語法。該系統(tǒng)包括對用戶隱藏在使用OLAP數(shù)據(jù)庫工作時內(nèi)在的復(fù)雜性的復(fù)雜類型系統(tǒng)和語義層。商業(yè)智能專家可為被保存為內(nèi)容的每個表達(dá)式模板提供類型和語義提示。
文檔編號G06F17/30GK102576363SQ201080043574
公開日2012年7月11日 申請日期2010年9月28日 優(yōu)先權(quán)日2009年9月29日
發(fā)明者C·J·里夫斯, T·W·梅寧克 申請人:渣普控股有限公司