針對etl映射設(shè)計使用投影器和選擇器組件類型的制作方法
【專利說明】
【背景技術(shù)】
[0001]在如今日益快節(jié)奏的商業(yè)環(huán)境中,機構(gòu)需要使用更專門的軟件應(yīng)用。此外,機構(gòu)需要確保這些應(yīng)用在異質(zhì)硬件平臺和系統(tǒng)上的共存并且保證在應(yīng)用和系統(tǒng)之間共享數(shù)據(jù)的能力。
[0002]數(shù)據(jù)集成是資源密集型過程,它需要具有特殊設(shè)計的軟件的專用服務(wù)器,其中軟件將服務(wù)器具體地配置為執(zhí)行從一個系統(tǒng)到另一個系統(tǒng)的數(shù)據(jù)迀移。在這些領(lǐng)域中,通常導致差的或者低效的性能。
[0003]因此,期望解決與開發(fā)數(shù)據(jù)集成場景相關(guān)的問題,其中一些場景可以在本文進行討論。此外,期望減少與開發(fā)數(shù)據(jù)集成場景相關(guān)的缺陷,其中一些場景可以在本文進行討論。
【發(fā)明內(nèi)容】
[0004]至少為了提供對主題的基本理解,本公開內(nèi)容的以下部分給出對在本公開內(nèi)容中找到的一個或多個創(chuàng)新、實施例和/或例子的簡化綜述。該綜述不是要提供對任何特定實施例或例子的排它概述。此外,該綜述不是要識別實施例或例子的關(guān)鍵/重要元件或者勾勒本公開內(nèi)容的主題的范圍。因此,該綜述的一個目的可以是以簡化的形式給出在本公開內(nèi)容中找到的一些創(chuàng)新、實施例和/或例子,作為對隨后給出的更詳細描述的序言。
[0005]在各種實施例中,數(shù)據(jù)集成系統(tǒng)使用戶能夠創(chuàng)建獨立于平臺和技術(shù)的邏輯設(shè)計。用戶可以創(chuàng)建在高級別定義用戶想讓數(shù)據(jù)如何在源和目標之間流動的邏輯設(shè)計。工具可以鑒于用戶的基礎(chǔ)設(shè)施來分析邏輯設(shè)計并且創(chuàng)建物理設(shè)計。邏輯設(shè)計可以包括對應(yīng)于設(shè)計中每個源和目標、以及諸如連接或過濾的操作和訪問點的多個組件。當被轉(zhuǎn)移到物理設(shè)計時,每個組件生成對數(shù)據(jù)執(zhí)行操作的代碼。依賴于底層技術(shù)(例如,SQL服務(wù)器、Oracle,Hadoop,等等)和所使用的語言(SQL、pig,等等),由每個組件生成的代碼可以不同。
[0006]在一個方面中,不需要數(shù)據(jù)集成系統(tǒng)的用戶從開始到結(jié)束在邏輯設(shè)計中的每個組件處指定所有數(shù)據(jù)屬性。數(shù)據(jù)集成系統(tǒng)提供避免需要完全聲明流經(jīng)邏輯設(shè)計的信息的多個組件類型,諸如投影器類型和選擇器類型。數(shù)據(jù)集成系統(tǒng)能夠決定在由預(yù)定組件類型表示的操作處需要什么屬性。這簡化了設(shè)計和維護兩者。在各個方面中,提供了充分利用現(xiàn)有RDBMS資源和能力以避免需要單獨的專用ETL服務(wù)器來實現(xiàn)改進的性能的數(shù)據(jù)變換和迀移。
[0007]在一種實施例中,一種用于促進數(shù)據(jù)映射的生成的方法包括接收指定邏輯設(shè)計的一個或多個組件的信息,其中該一個或多個組件當中至少一個組件具有第一類型?;谶壿嬙O(shè)計中的上游組件,確定一個或多個組件當中具有第一類型的至少一個組件的、對邏輯設(shè)計中的下游組件可見的數(shù)據(jù)屬性集合。然后生成指示一個或多個組件當中具有第一類型的至少一個組件的、對邏輯設(shè)計中的下游組件可見的屬性集合的信息。在一個方面中,確定一個或多個組件當中具有第一類型的至少一個組件的、對邏輯設(shè)計中的下游組件可見的數(shù)據(jù)屬性集合可以包括派生從上游組件可見的一個或多個屬性并且將該一個或多個屬性暴露給下游組件。在另一個方面中,接收指定邏輯設(shè)計的一個或多個組件的信息可以包括接收指示改變流經(jīng)該邏輯設(shè)計的信息的形狀的操作的信息。
[0008]在一些實施例中,接收指定邏輯設(shè)計的一個或多個組件的信息可以包括接收指示控制流經(jīng)該邏輯設(shè)計的信息流但是不改變流經(jīng)該邏輯設(shè)計的信息的形狀的操作的信息。在更多實施例中,接收指定邏輯設(shè)計的一個或多個組件的信息可以包括接收指示具有存儲在源數(shù)據(jù)存儲倉中的數(shù)據(jù)的一個或多個屬性的源組件的信息。接收指定邏輯設(shè)計的一個或多個組件的信息可以包括接收指示具有要存儲在目標數(shù)據(jù)存儲倉中的數(shù)據(jù)的一個或多個屬性的目標組件的信息。
[0009]生成指示一個或多個組件當中具有第一類型的至少一個組件的、對邏輯設(shè)計中的下游組件可見的屬性集合的信息可以包括將屬性列表導出到下游組件。在一種實施例中,通過將組件或?qū)傩砸氲竭壿嬙O(shè)計中或從邏輯設(shè)計中去除組件或?qū)傩?,可以接收邏輯設(shè)計中的變化。確定邏輯設(shè)計中的變化是否影響一個或多個組件當中具有第一類型的至少一個組件。基于確定邏輯設(shè)計中的變化影響一個或多個組件當中具有第一類型的至少一個組件,可以確定對下游組件可見的已更新的數(shù)據(jù)屬性集合。
[0010]在更多實施例中,通過將組件或?qū)傩砸氲竭壿嬙O(shè)計中,接收邏輯設(shè)計中的變化??梢源_定邏輯設(shè)計中的變化是否影響一個或多個組件當中具有第一類型的至少一個組件?;诖_定邏輯設(shè)計中的變化影響一個或多個組件當中具有第一類型的至少一個組件,可以保留(preserve)對下游組件可見的數(shù)據(jù)屬性集合。在另一個方面中,基于確定邏輯設(shè)計中的變化影響一個或多個組件當中具有第一類型的至少一個組件,可以自動重命名對下游組件可見的數(shù)據(jù)屬性集合。
[0011]在一種實施例中,一種非臨時性計算機可讀介質(zhì)存儲用于促進數(shù)據(jù)映射的生成的計算機可執(zhí)行代碼。該非臨時性計算機可讀介質(zhì)可以包括用于接收指定邏輯設(shè)計的一個或多個組件的信息的代碼,其中該一個或多個組件當中至少一個組件具有第一類型;用于基于邏輯設(shè)計中的上游組件,確定一個或多個組件當中具有第一類型的至少一個組件的、對邏輯設(shè)計中的下游組件可見的數(shù)據(jù)屬性集合的代碼;以及用于生成指示一個或多個組件當中具有第一類型的至少一個組件的、對邏輯設(shè)計中的下游組件可見的數(shù)據(jù)屬性集合的信息的代碼。
[0012]在另一種實施例中,一種用于促進數(shù)據(jù)映射的生成的系統(tǒng)可以包括處理器和與處理器通信并且被配置為存儲指令集合的存儲器,當指令集合被處理器執(zhí)行時,將處理器配置為接收指定邏輯設(shè)計的一個或多個組件的信息,其中該一個或多個組件當中至少一個組件具有第一類型;基于邏輯設(shè)計中的上游組件,確定一個或多個組件當中具有第一類型的至少一個組件的、對邏輯設(shè)計中的下游組件可見的數(shù)據(jù)屬性集合;以及生成指示一個或多個組件當中具有第一類型的至少一個組件的、對邏輯設(shè)計中的下游組件可見的數(shù)據(jù)屬性集合的信息。
[0013]在一種實施例中,一種用于促進數(shù)據(jù)映射的生成的系統(tǒng)包括接收單元,被配置為接收指定邏輯設(shè)計的一個或多個組件的信息,其中該一個或多個組件當中至少一個組件具有第一類型;確定單元,被配置為基于邏輯設(shè)計中的上游組件,確定一個或多個組件當中具有第一類型的至少一個組件的、對邏輯設(shè)計中的下游組件可見的數(shù)據(jù)屬性集合;及生成單元,被配置為生成指示一個或多個組件當中具有第一類型的至少一個組件的、對邏輯設(shè)計中的下游組件可見的數(shù)據(jù)屬性集合的信息。確定一個或多個組件當中具有第一類型的至少一個組件的、對邏輯設(shè)計中的下游組件可見的屬性集合可以包括派生從上游組件可見的一個或多個屬性并且將該一個或多個屬性暴露給下游組件。
[0014]指定邏輯設(shè)計的一個或多個組件的信息可以包括指示改變流經(jīng)該邏輯設(shè)計的信息的形狀的操作的信息。指定邏輯設(shè)計的一個或多個組件的信息可以包括指示控制流經(jīng)該邏輯設(shè)計的信息流但是不改變流經(jīng)該邏輯設(shè)計的信息的形狀的操作的信息。指定邏輯設(shè)計的一個或多個組件的信息可以包括指示具有存儲在源數(shù)據(jù)存儲倉中的數(shù)據(jù)的一個或多個屬性的源組件的信息。指定邏輯設(shè)計的一個或多個組件的信息可以包括指示具有要存儲在目標數(shù)據(jù)存儲倉中的數(shù)據(jù)的一個或多個屬性的目標組件的信息。生成指示一個或多個組件當中具有第一類型的至少一個組件的、對邏輯設(shè)計中的下游組件可見的屬性集合的信息可以包括將屬性列表導出到下游組件。
[0015]在一種實施例中,接收單元還被配置為通過將組件或?qū)傩砸氲竭壿嬙O(shè)計中或從邏輯設(shè)計中去除組件或?qū)傩詠斫邮者壿嬙O(shè)計中的變化;確定單元還被配置為確定邏輯設(shè)計中的變化是否影響一個或多個組件當中具有第一類型的至少一個組件;并且確定單元還被配置為,基于確定邏輯設(shè)計中的變化影響一個或多個組件當中具有第一類型的至少一個組件,確定對下游組件可見的已更新的數(shù)據(jù)屬性集合。
[0016]在一個方面中,該系統(tǒng)還可以包括保存單元,其中接收單元還被配置為通過將組件或?qū)傩砸氲竭壿嬙O(shè)計中來接收邏輯設(shè)計中的變化;確定單元還被配置為確定邏輯設(shè)計中的變化是否影響一個或多個組件當中具有第一類型的至少一個組件;并且保存單元還被配置為,基于確定邏輯設(shè)計中的變化影響一個或多個組件當中具有第一類型的至少一個組件,保存對下游組件可見的數(shù)據(jù)屬性集合。
[0017]在另一個方面中,該系統(tǒng)還可以包括重命名單元,其中接收單元還被配置為接收邏輯設(shè)計中重命名組件或?qū)傩缘淖兓?;并且確定單元還被配置為確定邏輯設(shè)計中的變化是否影響一個或多個組件當中具有第一類型的至少一個組件;并且重命名單元被配置為,基于確定邏輯設(shè)計中的變化影響一個或多個組件當中具有第一類型的至少一個組件,重命名對下游組件可見的數(shù)據(jù)屬性集合。
[0018]除以上部分之外,通過參考本公開內(nèi)容的剩余部分、任何附圖以及權(quán)利要求,還應(yīng)當認識到對本公開內(nèi)容主題的本質(zhì)及其等同物(以及所提供的任何固有的或明確的優(yōu)點和改進)的進一步理解。
【附圖說明】
[0019]為了合理地描述和說明在本公開內(nèi)容中找到的那些創(chuàng)新、實施例和/或例子,可以參考一個或多個附圖。被用來描述一個或多個附圖的附加細節(jié)或例子不應(yīng)當被認為是任何要求保護的發(fā)明的范圍、任何目前描述的實施例和/或例子、或者目前被理解為本公開內(nèi)容中給出的任何創(chuàng)新的最佳模式的限制。
[0020]圖1是可以結(jié)合本發(fā)明實施例的系統(tǒng)的簡化說明。
[0021]圖2是根據(jù)本發(fā)明實施例的數(shù)據(jù)集成系統(tǒng)的框圖。
[0022]圖3是可以被用來實現(xiàn)根據(jù)本發(fā)明實施例的數(shù)據(jù)集成系統(tǒng)的硬件/軟件棧的簡化框圖。
[0023]圖4是在本發(fā)明各種實施例中具有可以為其創(chuàng)建數(shù)據(jù)集成場景的各種異質(zhì)數(shù)據(jù)源的環(huán)境的框圖。
[0024]圖5A和5B繪出了可以由數(shù)據(jù)集成系統(tǒng)執(zhí)行的常規(guī)數(shù)據(jù)集成處理中的簡化數(shù)據(jù)流。
[0025]圖6A和6B繪出了根據(jù)本發(fā)明實施例、在可以由數(shù)據(jù)集成系統(tǒng)執(zhí)行的下一代數(shù)據(jù)集成處理中的簡化數(shù)據(jù)流。
[0026]圖7是在根據(jù)本發(fā)明的一種實施例中數(shù)據(jù)集成系統(tǒng)的0DI工作室與儲存庫之間交互的簡化框圖。
[0027]圖8繪出了根據(jù)本發(fā)明實施例用于創(chuàng)建數(shù)據(jù)集成場景的方法的流程圖。
[0028]圖9是根據(jù)本發(fā)明實施例用于創(chuàng)建數(shù)據(jù)集成場景的用戶界面的屏幕截圖。
[0029]圖10繪出了根據(jù)本發(fā)明實施例用于創(chuàng)建映射的方法的流程圖。
[0030]圖11是根據(jù)本發(fā)明實施例用于在數(shù)據(jù)集成場景中提供映射信息的用戶界面的屏幕截圖。
[0031]圖12是根據(jù)本發(fā)明實施例用于在數(shù)據(jù)集成場景中提供流信息的用戶界面的屏幕截圖。
[0032]圖13繪出了根據(jù)本發(fā)明實施例用于創(chuàng)建包的方法的流程圖。
[0033]圖14是根據(jù)本發(fā)明實施例用于在數(shù)據(jù)集成場景中提供包順序信息的用戶界面的屏幕截圖。
[0034]圖15繪出了根據(jù)本發(fā)明實施例用于部署數(shù)據(jù)集成場景的方法的流程圖。
[0035]圖16A和16B是在根據(jù)本發(fā)明的一種實施例中的映射的簡化框圖。
[0036]圖17繪出了根據(jù)本發(fā)明實施例用于基于組件類型派生(derive)組件屬性的方法的流程圖。
[0037]圖18是在根據(jù)本發(fā)明的一種實施例中具有過濾器組件的圖16A和16B的映射的簡化框圖。
[0038]圖19是在根據(jù)本發(fā)明的一種實施例中的映射的簡化框圖。
[0039]圖20繪出了根據(jù)本發(fā)明實施例用于生成組件的方法的流程圖。
[0040]圖21是可以被用來實踐本發(fā)明實施例的計算機系統(tǒng)的簡化框圖。
[0041]圖22是根據(jù)實施例用于促進數(shù)據(jù)映射的生成的系統(tǒng)的簡化框圖。
【具體實施方式】
[0042]介紹
[0043]在各種實施例中,數(shù)據(jù)集成系統(tǒng)使用戶能夠創(chuàng)建獨立于平臺和技術(shù)的邏輯設(shè)計。用戶可以創(chuàng)建在高級別定義用戶想讓數(shù)據(jù)如何在源和目標之間流動的邏輯設(shè)計。工具可以鑒于用戶的基礎(chǔ)設(shè)施來分析邏輯設(shè)計并且創(chuàng)建物理設(shè)計。邏輯設(shè)計可以包括對應(yīng)于設(shè)計中每個源和目標、以及諸如連接或過濾的操作和訪問點的多個組件。當被轉(zhuǎn)移到物理設(shè)計時,每個組件生成對數(shù)據(jù)執(zhí)行操作的代碼。依賴于底層技術(shù)(例如,SQL服務(wù)器、Oracle,Hadoop,等等)和所使用的語言(SQL、pig,等等),由每個組件生成的代碼可以不同。
[0044]在一個方面中,不需要數(shù)據(jù)集成系統(tǒng)的用戶從開始到結(jié)束在邏輯設(shè)計中的每個組件處指定所有數(shù)據(jù)屬性。數(shù)據(jù)集成系統(tǒng)提供避免需要完全聲明流經(jīng)邏輯設(shè)計的信息的多個組件類型,諸如投影器類型和選擇器類型。數(shù)據(jù)集成系統(tǒng)能夠決定在由預(yù)定組件類型表示的操作處需要什么屬性。這簡化了設(shè)計和維護。
[0045]圖1是可以結(jié)合在本公開內(nèi)容中發(fā)現(xiàn)的任何創(chuàng)新、實施例和/或例子的實施例或者結(jié)合到其中的系統(tǒng)100的簡化說明。圖1僅僅是說明了結(jié)合本發(fā)明的實施例并且不限制如權(quán)利要求中所述的本發(fā)明的范圍。本領(lǐng)域普通技術(shù)人員將認識到其它變體、修改和備選方案。
[0046]在一種實施例中,系統(tǒng)100包括一個或多個用戶計算機110 (例如,計算機110A、110B和110C)。用戶計算機110可以是通用個人計算機(僅僅作為例子,包括運行任何適當特點(flavor)的微軟公司的Windows?和/或Apple公司的Macintosh ?操作系統(tǒng)的個人計算機和/或膝上型計算機)和/或運行各種市售UNIX?或類UNIX操作系統(tǒng)當中任何一種的工作站計算機。這些用戶計算機110還可以具有各種應(yīng)用當中任何一種,這些應(yīng)用包括被配置為執(zhí)行本發(fā)明方法的一個或多個應(yīng)用,以及一個或多個辦公室應(yīng)用、數(shù)據(jù)庫客戶端和/或服務(wù)器應(yīng)用,及web瀏覽器應(yīng)用。
[0047]作為替代,用戶計算機110可以是能夠經(jīng)由網(wǎng)絡(luò)(例如,以下描述的通信網(wǎng)絡(luò)120)通信和/或顯示和導航網(wǎng)頁或者其它類型的電子文檔的任何其它電子設(shè)備,諸如瘦客戶端計算機、啟用互聯(lián)網(wǎng)的游戲系統(tǒng),和/或個人數(shù)字助理。雖然示例性系統(tǒng)100被示為具有三個用戶計算機,但是可以支持任何數(shù)量的用戶計算機或設(shè)備。
[0048]本發(fā)明的某些實施例在聯(lián)網(wǎng)環(huán)境中操作,該聯(lián)網(wǎng)環(huán)境