基于dsl的大數(shù)據(jù)開發(fā)應用方法及裝置的制造方法
【專利摘要】本發(fā)明提出一種基于DSL的大數(shù)據(jù)開發(fā)應用方法及裝置,包括步驟:從數(shù)據(jù)處理功能模塊庫中調用功能元模塊,采用DSL語法建立特定領域的數(shù)據(jù)應用模型;運行所述數(shù)據(jù)應用模型,通過DSL解析器對所述數(shù)據(jù)應用模型解析轉換成目標代碼腳本;在分布式大數(shù)據(jù)系統(tǒng)上運行所述目標代碼腳本,并返回運行結果。本發(fā)明提供基于DSL的大數(shù)據(jù)開發(fā)應用方法及裝置,實現(xiàn)了大數(shù)據(jù)開發(fā)應用工作中所有階段的數(shù)據(jù)處理功能;并且通過DSL領域特定語言,實現(xiàn)對特定領域數(shù)據(jù)簡單高效的開發(fā)應用。
【專利說明】
基于DSL的大數(shù)據(jù)開發(fā)應用方法及裝置
技術領域
[0001] 本發(fā)明涉及大數(shù)據(jù)開發(fā)應用領域,特別涉及一種基于DSL的大數(shù)據(jù)開發(fā)應用方法 及裝置。
【背景技術】
[0002] 隨著大數(shù)據(jù)時代的來臨,數(shù)據(jù)呈現(xiàn)爆炸性增長,已經滲透到當今每一個行業(yè)和業(yè) 務領域,成為重要的生產因素。在不同的行業(yè)和業(yè)務領域中,數(shù)據(jù)的來源、類型結構、處理方 法以及應用方式都有各自的特點;這導致了大數(shù)據(jù)開發(fā)應用的高度復雜性。如何實現(xiàn)對特 定領域數(shù)據(jù)進行高效的開發(fā)應用,降低大數(shù)據(jù)開發(fā)人員、數(shù)據(jù)科學家以及領域專家對大數(shù) 據(jù)開發(fā)應用的門檻,已成為一個亟待解決的問題。
[0003] 目前,許多基于分布式大數(shù)據(jù)平臺Had〇〇p、Spark、以及NoSQL的大數(shù)據(jù)開發(fā)應用解 決方案相繼出現(xiàn)。例如,大數(shù)據(jù)ETL工具Kettle通過提供一個圖形化的應用界面來實現(xiàn)數(shù)據(jù) 抽取(extract)、轉換(transform)、以及加載(load);大數(shù)據(jù)處理分析工具Hive通過使用類 SQL的Hi veQL語言實現(xiàn)數(shù)據(jù)的存儲、查詢和分析;大數(shù)據(jù)分析挖掘工具Knime通過提供一個 圖形化的應用界面實現(xiàn)數(shù)據(jù)挖掘、機器學習、以及預測分析。上述的三種工具都是現(xiàn)在比較 流行的大數(shù)據(jù)開發(fā)應用工具,它們可以有效地完成大數(shù)據(jù)開發(fā)應用工作中一個階段或多個 階段的數(shù)據(jù)處理功能,但是不能實現(xiàn)大數(shù)據(jù)開發(fā)應用工作中所有階段的數(shù)據(jù)處理功能。
[0004] 現(xiàn)有的大數(shù)據(jù)開發(fā)應用方法雖然可以對數(shù)據(jù)在分布式大數(shù)據(jù)系統(tǒng)中進行處理,但 功能比較單一,性能不是很好,使用門檻也比較高,很難實現(xiàn)對特定領域數(shù)據(jù)進行簡單高效 的開發(fā)應用。如果要有效地解決這個問題,必須找到一種方法根據(jù)該領域數(shù)據(jù)的類型結構、 處理方法及應用方式的特點開發(fā)其特有的數(shù)據(jù)開發(fā)應用模型。
【發(fā)明內容】
[0005] 本發(fā)明的主要目的為提供一種基于DSL的大數(shù)據(jù)開發(fā)應用方法及裝置,實現(xiàn)了大 數(shù)據(jù)開發(fā)應用工作中所有階段的數(shù)據(jù)處理功能;并且通過DSL領域特定語言,實現(xiàn)對特定領 域數(shù)據(jù)簡單高效的開發(fā)應用。
[0006] 本發(fā)明提出一種基于DSL的大數(shù)據(jù)開發(fā)應用方法,包括步驟:
[0007]從數(shù)據(jù)處理功能模塊庫中調用功能元模塊,采用DSL語法建立特定領域的數(shù)據(jù)應 用模型;
[0008] 運行所述數(shù)據(jù)應用模型,通過DSL解析器對所述數(shù)據(jù)應用模型解析轉換成目標代 碼腳本;
[0009] 在分布式大數(shù)據(jù)系統(tǒng)上運行所述目標代碼腳本,并返回運行結果。
[0010]進一步地,所述采用DSL語法建立特定領域的數(shù)據(jù)應用模型的步驟包括:
[0011] 根據(jù)中文語法結構,采用短語以及標點符號完成純中文的DSL腳本編輯,建立特定 領域的數(shù)據(jù)應用模型。
[0012] 進一步地,所述通過DSL解析器對所述數(shù)據(jù)應用模型解析轉換成目標代碼腳本的 步驟包括:
[0013] 采用分隔字符制導翻譯方法建立的DSL解析器對所述數(shù)據(jù)應用模型解析轉換成目 標代碼腳本。
[0014] 進一步地,所述建立特定領域的數(shù)據(jù)應用模型的步驟之后還包括:
[0015] 建立特定領域的數(shù)據(jù)應用模型庫,并存儲所述特定領域的數(shù)據(jù)應用模型。
[0016] 進一步地,所述返回運行結果的步驟之后還包括:
[0017] 對運行結果進行可視化圖表展示。
[0018] 本發(fā)明還提供了一種基于DSL的大數(shù)據(jù)開發(fā)應用裝置,包括:
[0019]應用模型建立單元,從數(shù)據(jù)處理功能模塊庫中調用功能元模塊,采用DSL語法建立 特定領域的數(shù)據(jù)應用模型;
[0020] 模型運行解析單元,運行所述數(shù)據(jù)應用模型,通過DSL解析器對所述數(shù)據(jù)應用模型 解析轉換成目標代碼腳本;
[0021] 腳本運行返回單元,在分布式大數(shù)據(jù)系統(tǒng)上運行所述目標代碼腳本,并返回運行 結果。
[0022] 進一步地,所述應用模型建立單元包括:
[0023] 中文語法建立子單元,根據(jù)中文語法結構,采用短語以及標點符號完成純中文的 DSL腳本編輯,建立特定領域的數(shù)據(jù)應用模型。
[0024] 進一步地,所述模型運行解析單元包括:
[0025]分隔字符解析子單元,采用分隔字符制導翻譯方法建立的DSL解析器對所述數(shù)據(jù) 應用模型解析轉換成目標代碼腳本。
[0026] 進一步地,所述應用模型建立單元還包括:
[0027] 模型庫建立子單元,建立特定領域的數(shù)據(jù)應用模型庫,并存儲所述特定領域的數(shù) 據(jù)應用模型。
[0028] 進一步地,還包括:
[0029] 圖表展示單元,對運行結果進行可視化圖表展示。
[0030] 本發(fā)明中提供的基于DSL的大數(shù)據(jù)開發(fā)應用方法及裝置,具有以下有益效果:
[0031]本發(fā)明中提供的基于DSL的大數(shù)據(jù)開發(fā)應用方法及裝置,能夠簡單高效地開發(fā)應 用大數(shù)據(jù),開發(fā)出大數(shù)據(jù)在特定領域中蘊含的巨大價值;根據(jù)特定領域數(shù)據(jù)結構類型、處理 方法及應用方式的特點,從通用的數(shù)據(jù)處理功能元模塊庫中選定合適的功能元模塊,按照 類自然語言的DSL語法結構,構建該特定領域特有的數(shù)據(jù)應用模型并保存在對應的特定領 域數(shù)據(jù)應用模型庫中,供數(shù)據(jù)科學家和領域專家在應用展示平臺上直接調用,對數(shù)據(jù)應用 模型的運行結果在應用展示平臺上進行多種可視化圖表的展示。
【附圖說明】
[0032]圖1是本發(fā)明一實施例中基于DSL的大數(shù)據(jù)開發(fā)應用方法步驟示意圖;
[0033]圖2是本發(fā)明一實施例中DSL解析器解析過程示意圖;
[0034] 圖3是本發(fā)明一實施例中基于DSL的大數(shù)據(jù)開發(fā)應用裝置結構示意圖;
[0035] 圖4是本發(fā)明一實施例中應用模型建立單元結構示意圖;
[0036] 圖5是本發(fā)明一實施例中模型運行解析單元結構示意圖;
[0037] 圖6是本發(fā)明另一實施例中基于DSL的大數(shù)據(jù)開發(fā)應用裝置結構示意圖。
[0038] 本發(fā)明目的的實現(xiàn)、功能特點及優(yōu)點將結合實施例,參照附圖做進一步說明。
【具體實施方式】
[0039] 應當理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
[0040] 參照圖1,為本發(fā)明一實施例中的基于DSL的大數(shù)據(jù)開發(fā)應用方法步驟示意圖。
[0041] 本發(fā)明一實施例提出一種基于DSL的大數(shù)據(jù)開發(fā)應用方法,包括:
[0042]步驟S1,從數(shù)據(jù)處理功能模塊庫中調用功能元模塊,采用DSL語法建立特定領域的 數(shù)據(jù)應用模型;
[0043]步驟S2,運行上述數(shù)據(jù)應用模型,通過DSL解析器對上述數(shù)據(jù)應用模型解析轉換成 目標代碼腳本;
[0044]步驟S3,在分布式大數(shù)據(jù)系統(tǒng)上運行上述目標代碼腳本,并返回運行結果。
[0045]目前,許多基于分布式大數(shù)據(jù)平臺Hadoop、Spark、以及NoSQL的大數(shù)據(jù)開發(fā)應用解 決方案相繼出現(xiàn)。例如,大數(shù)據(jù)ETL工具Kettle通過提供一個圖形化的應用界面來實現(xiàn)數(shù)據(jù) 抽取(extract)、轉換(transform)、以及加載(load);大數(shù)據(jù)處理分析工具Hive通過使用類 SQL的Hi veQL語言實現(xiàn)數(shù)據(jù)的存儲、查詢和分析;大數(shù)據(jù)分析挖掘工具Knime通過提供一個 圖形化的應用界面實現(xiàn)數(shù)據(jù)挖掘、機器學習、以及預測分析。上述的三種工具都是現(xiàn)在比較 流行的大數(shù)據(jù)開發(fā)應用工具,它們可以有效地完成大數(shù)據(jù)開發(fā)應用工作中一個階段或多個 階段的數(shù)據(jù)處理功能,但是不能實現(xiàn)大數(shù)據(jù)開發(fā)應用工作中所有階段的數(shù)據(jù)處理功能。 [0046]在本實施例中,根據(jù)特定領域數(shù)據(jù)(DSL)結構類型、處理方法及應用方式的特點, 從通用的數(shù)據(jù)處理功能元模塊庫中選定合適的功能元模塊,按照類自然語言的DSL語法結 構,構建該特定領域特有的數(shù)據(jù)應用模型并保存在對應的特定領域數(shù)據(jù)應用模型庫中,供 數(shù)據(jù)科學家和領域專家在應用展示平臺上直接調用,實現(xiàn)了大數(shù)據(jù)開發(fā)應用工作中所有階 段的數(shù)據(jù)處理功能。
[0047]上述步驟S1中的數(shù)據(jù)處理功能模塊庫的建立包括:
[0048]采用分布式大數(shù)據(jù)系統(tǒng)可執(zhí)行語言(例如SQL、Scala、Java以及R等)將數(shù)據(jù)處理各 流程中基本的功能以及算法封裝成每個功能元模塊,并給每個功能元模塊分配一個獨有的 中文名稱;將功能元模塊存儲至對應的子功能模塊庫;建立一個數(shù)據(jù)處理功能元模塊庫,采 用對象存儲的方式對功能元模塊進行存儲。根據(jù)數(shù)據(jù)的處理流程,將數(shù)據(jù)處理功能元模塊 庫劃分為數(shù)據(jù)采集、導入、轉換、清洗、融合、分析、挖掘以及機器學習等數(shù)個子功能模塊庫; 具體可參照下表1,其為數(shù)據(jù)處理功能模塊庫結構表。
[0049]
[0051] 表 1
[0052] 上表1中,數(shù)據(jù)處理功能模塊庫包括多個子模塊庫(不限于表中八個),每個子模塊 庫包括多個元模塊(不限于表中四個),每個元模塊由數(shù)據(jù)處理各流程中基本的功能以及算 法封裝而成,并給每個功能元模塊分配一個獨有的中文名稱。
[0053]本實施例中的基于DSL的大數(shù)據(jù)開發(fā)應用方法實現(xiàn)了大數(shù)據(jù)開發(fā)應用工作中所有 階段的數(shù)據(jù)處理功能;并且通過DSL領域特定語言,實現(xiàn)對特定領域數(shù)據(jù)簡單高效的開發(fā)應 用。
[0054] 進一步地,上述步驟S1中,采用DSL語法建立特定領域的數(shù)據(jù)應用模型包括:
[0055] 根據(jù)中文語法結構,采用短語以及標點符號完成純中文的DSL腳本編輯,建立特定 領域的數(shù)據(jù)應用模型。
[0056] 在本實施例中,類自然語言的DSL語法是根據(jù)中文語法結構的特點設計而成,采用 短語形式(例如并列、動賓、動補、以及主謂等)以及標點符號(逗號、頓號以及句號等)共同 完成純中文的DSL腳本編輯。這種利用類自然語言的DSL語法結構建立數(shù)據(jù)應用模型在一具 體實施例中如下:
[0057]執(zhí)行'元模塊201',比較'元模塊602'、'元模塊603',執(zhí)行'元模塊701'。
[0058]上述類自然語言的DSL語句構成了一個簡單的數(shù)據(jù)處理工作流;結合表1可以看 出,它完成了一個數(shù)據(jù)導入功能,兩個數(shù)據(jù)分析功能以及一個數(shù)據(jù)挖掘功能。語句中的逗號 定義了數(shù)據(jù)處理工作的順序,頓號表示元模塊602和元模塊603并行運行,單引號把調用的 功能元模塊名標識出來,句號代表數(shù)據(jù)處理工作的完成。(參照圖2)在建立數(shù)據(jù)處理功能模 塊庫時,各個功能元模塊都有一個獨有的中文名稱,通過使用中文名稱便可以直接調用對 應的功能元模塊。另外,需要定義特定領域的專業(yè)術語(動作名稱、狀態(tài)名稱、以及參數(shù)名稱 等,例如導入、轉換等)以及一些關鍵字(和、執(zhí)行、比較、以及選擇等),它們和功能元模塊名 稱共同組成短語形式。標點符號的定義、特定領域專業(yè)術語的定義、以及一些關鍵字的定義 都是由Java編譯而成,這些定義和它們對應的名稱采用對象存儲的方式進行保存。
[0059] 進一步地,參照圖2,上述步驟S2中,通過DSL解析器對上述數(shù)據(jù)應用模型解析轉換 成目標代碼腳本包括:
[0060] 采用分隔字符制導翻譯方法建立的DSL解析器對上述數(shù)據(jù)應用模型解析轉換成目 標代碼腳本。
[0061] 為了解析上述的DSL腳本,還需要設計一個相應的DSL解析器。從上面的具體實施 例中可以看出,使用結構比較簡單語句,不需要嵌套的上下文環(huán)境;采用分隔字符制導翻譯 方法建立DSL解析器就可以滿足對上述DSL腳本進行解析。如果對DSL語法結構有更高更復 雜的需求,可以采用語法制導翻譯的方法建立DSL解析器。在本實施例中,中文標點符號被 定義為分隔字符。DSL解析器在獲得輸入的DSL腳本后,基于分隔字符將其分解成小塊。例 如,上述示例語句可被分解為"執(zhí)行"、"元模塊201"、"比較"、"元模塊602"、"元模塊603"、 "執(zhí)行"、和"元模塊701"等語義模塊;根據(jù)各語義模塊之間的關系,DSL解析器建立語義模 型。最后,通過調取各個語義模塊的定義,將語義模型透明轉換為目標代碼腳本。
[0062] 進一步地,上述建立特定領域的數(shù)據(jù)應用模型的步驟之后還包括:
[0063] 建立特定領域的數(shù)據(jù)應用模型庫,并存儲上述特定領域的數(shù)據(jù)應用模型。
[0064]基于特定領域數(shù)據(jù)結構類型、處理方法及應用方式的特點,從通用的數(shù)據(jù)處理功 能元模塊庫中選定合適的功能元模塊,根據(jù)上述定義的類自然語言的DSL語法編寫DSL腳本 (數(shù)據(jù)開發(fā)應用方法),再對其進行封裝,就構建了一個特定領域的數(shù)據(jù)應用模型。特定領域 的數(shù)據(jù)應用模型的存儲方式同數(shù)據(jù)處理功能元模塊類似,每一個特定領域數(shù)據(jù)應用模型都 分配了一個獨有的中文名稱,中文名稱和其對應的DSL腳本采用對象存儲的方式保存在特 定領域模型庫中。
[0065] 將特定領域的數(shù)據(jù)應用模型存儲至特定領域的數(shù)據(jù)應用模型庫中,則之后的數(shù)據(jù) 處理工作便可以直接從特定領域的數(shù)據(jù)應用模型庫中調取數(shù)據(jù)應用模型。
[0066] 進一步地,上述步驟S3中,返回運行結果之后還包括:
[0067] 對運行結果進行可視化圖表展示。
[0068] 設計開發(fā)一個基于瀏覽器(B/S)的編輯界面作為特定領域模型的應用展示平臺去 調用和運行特定領域的數(shù)據(jù)應用模型。在該平臺上,設置一個語言輸入欄;在語言輸入欄 中,通過輸入特定領域數(shù)據(jù)應用模型的中文名稱去調用并運行該模型。通過特定領域數(shù)據(jù) 應用模型獨有的中文名稱,調取特定領域模型庫中對應的數(shù)據(jù)處理模型的DSL腳本;運行該 DSL腳本,類自然語言的DSL解析器將其解析為包含數(shù)據(jù)處理功能元模塊名,特定領域專業(yè) 術語,以及關鍵字的語義模型;再通過調取語義模型中這些模塊的定義生成目標代碼腳本。 目標代碼腳本可在分布式大數(shù)據(jù)系統(tǒng)中運行,并返回運行結果。特定領域模型應用展示平 臺采用強大的可視化引擎,對運行結果的輸出數(shù)據(jù)進行可視化建模,提供多種可視化圖表 展示(例如2D、3D以及交互式)。
[0069]參照圖3,本發(fā)明一實施例中還提供了一種基于DSL的大數(shù)據(jù)開發(fā)應用裝置,包括: [0070]應用模型建立單元10,從數(shù)據(jù)處理功能模塊庫中調用功能元模塊,采用DSL語法建 立特定領域的數(shù)據(jù)應用模型;
[0071]模型運行解析單元20,運行上述數(shù)據(jù)應用模型,通過DSL解析器對上述數(shù)據(jù)應用模 型解析轉換成目標代碼腳本;
[0072] 腳本運行返回單元30,在分布式大數(shù)據(jù)系統(tǒng)上運行上述目標代碼腳本,并返回運 行結果。
[0073]目前,許多基于分布式大數(shù)據(jù)平臺Hadoop、Spark、以及NoSQL的大數(shù)據(jù)開發(fā)應用解 決方案相繼出現(xiàn)。例如,大數(shù)據(jù)ETL工具Kettle通過提供一個圖形化的應用界面來實現(xiàn)數(shù)據(jù) 抽取(extract)、轉換(transform)、以及加載(load);大數(shù)據(jù)處理分析工具Hive通過使用類 SQL的Hi veQL語言實現(xiàn)數(shù)據(jù)的存儲、查詢和分析;大數(shù)據(jù)分析挖掘工具Knime通過提供一個 圖形化的應用界面實現(xiàn)數(shù)據(jù)挖掘、機器學習、以及預測分析。上述的三種工具都是現(xiàn)在比較 流行的大數(shù)據(jù)開發(fā)應用工具,它們可以有效地完成大數(shù)據(jù)開發(fā)應用工作中一個階段或多個 階段的數(shù)據(jù)處理功能,但是不能實現(xiàn)大數(shù)據(jù)開發(fā)應用工作中所有階段的數(shù)據(jù)處理功能。 [0074]在本實施例中,根據(jù)特定領域數(shù)據(jù)結構類型、處理方法及應用方式的特點,從通用 的數(shù)據(jù)處理功能元模塊庫中選定合適的功能元模塊,按照類自然語言的DSL語法結構,構建 該特定領域特有的數(shù)據(jù)應用模型并保存在對應的特定領域數(shù)據(jù)應用模型庫中,供數(shù)據(jù)科學 家和領域專家在應用展示平臺上直接調用,實現(xiàn)了大數(shù)據(jù)開發(fā)應用工作中所有階段的數(shù)據(jù) 處理功能。
[0075] 上述數(shù)據(jù)處理功能模塊庫的建立包括:采用分布式大數(shù)據(jù)系統(tǒng)可執(zhí)行語言(例如 SQL、Scala、Java以及R等)將數(shù)據(jù)處理各流程中基本的功能以及算法封裝成每個功能元模 塊,并給每個功能元模塊分配一個獨有的中文名稱;將功能元模塊存儲至對應的子功能模 塊庫;建立一個數(shù)據(jù)處理功能元模塊庫,采用對象存儲的方式對功能元模塊進行存儲。根據(jù) 數(shù)據(jù)的處理流程,將數(shù)據(jù)處理功能元模塊庫劃分為數(shù)據(jù)采集、導入、轉換、清洗、融合、分析、 挖掘以及機器學習等數(shù)個子功能模塊庫;具體可參照上表1的數(shù)據(jù)處理功能模塊庫結構表。
[0076] 本實施例中的基于DSL的大數(shù)據(jù)開發(fā)應用裝置實現(xiàn)了大數(shù)據(jù)開發(fā)應用工作中所有 階段的數(shù)據(jù)處理功能;并且通過DSL領域特定語言,實現(xiàn)對特定領域數(shù)據(jù)簡單高效的開發(fā)應 用。
[0077] 進一步地,參照圖4,上述應用模型建立單元10包括:
[0078] 中文語法建立子單元100,根據(jù)中文語法結構,采用短語以及標點符號完成純中文 的DSL腳本編輯,建立特定領域的數(shù)據(jù)應用模型。
[0079] 在本實施例中,類自然語言的DSL語法是根據(jù)中文語法結構的特點設計而成,采用 短語形式(例如并列、動賓、動補、以及主謂等)以及標點符號(逗號、頓號以及句號等)共同 完成純中文的DSL腳本編輯。這種類自然語言的DSL語法結構在一具體實施例中如下:
[0080] 執(zhí)行'元模塊201',比較'元模塊602'、'元模塊603',執(zhí)行'元模塊701'。
[0081]上述類自然語言的DSL語句構成了一個簡單的數(shù)據(jù)處理工作流;結合表1可以看 出,它完成了一個數(shù)據(jù)導入功能,兩個數(shù)據(jù)分析功能以及一個數(shù)據(jù)挖掘功能。語句中的逗號 定義了數(shù)據(jù)處理工作的順序,頓號表示元模塊602和元模塊603并行運行,單引號把調用的 功能元模塊名標識出來,句號代表數(shù)據(jù)處理工作的完成。(參照圖2)在建立數(shù)據(jù)處理功能模 塊庫時,各個功能元模塊都有一個獨有的中文名稱,通過使用中文名稱便可以直接調用對 應的功能元模塊。另外,需要定義特定領域的專業(yè)術語(動作名稱、狀態(tài)名稱、以及參數(shù)名稱 等,例如導入、轉換等)以及一些關鍵字(和、執(zhí)行、比較、以及選擇等),它們和功能元模塊名 稱共同組成短語形式。標點符號的定義、特定領域專業(yè)術語的定義、以及一些關鍵字的定義 都是由Java編譯而成,這些定義和它們對應的名稱采用對象存儲的方式進行保存。
[0082] 進一步地,上述應用模型建立單元10還包括:
[0083]模型庫建立子單元101,建立特定領域的數(shù)據(jù)應用模型庫,并存儲上述特定領域的 數(shù)據(jù)應用模型。
[0084]基于特定領域數(shù)據(jù)結構類型、處理方法及應用方式的特點,從通用的數(shù)據(jù)處理功 能元模塊庫中選定合適的功能元模塊,根據(jù)上述定義的類自然語言的DSL語法編寫DSL腳本 (數(shù)據(jù)開發(fā)應用方法),再對其進行封裝,就構建了一個特定領域的數(shù)據(jù)應用模型。特定領域 的數(shù)據(jù)應用模型的存儲方式同數(shù)據(jù)處理功能元模塊類似,每一個特定領域數(shù)據(jù)應用模型都 分配了一個獨有的中文名稱,中文名稱和其對應的DSL腳本采用對象存儲的方式保存在特 定領域模型庫中。
[0085]將特定領域的數(shù)據(jù)應用模型存儲至特定領域的數(shù)據(jù)應用模型庫中,則之后的數(shù)據(jù) 處理工作便可以直接從特定領域的數(shù)據(jù)應用模型庫中調取數(shù)據(jù)應用模型。
[0086] 進一步地,參照圖5,上述模型運行解析單元20包括:
[0087]分隔字符解析子單元200,采用分隔字符制導翻譯方法建立的DSL解析器對上述數(shù) 據(jù)應用模型解析轉換成目標代碼腳本。
[0088]為了解析上述的DSL腳本,還需要設計一個相應的DSL解析器。從上面的具體實施 例中可以看出,使用結構比較簡單語句,不需要嵌套的上下文環(huán)境;采用分隔字符制導翻譯 方法建立DSL解析器就可以滿足對上述DSL腳本進行解析。如果對DSL語法結構有更高更復 雜的需求,可以采用語法制導翻譯的方法建立DSL解析器。在本實施例中,中文標點符號被 定義為分隔字符。DSL解析器在獲得輸入的DSL腳本后,基于分隔字符將其分解成小塊。例 如,上述示例語句可被分解為"執(zhí)行"、"元模塊201"、"比較"、"元模塊602"、"元模塊603"、 "執(zhí)行"、和"元模塊701"等語義模塊;根據(jù)各語義模塊之間的關系,DSL解析器建立語義模 型。最后,通過調取各個語義模塊的定義,將語義模型透明轉換為目標代碼腳本。(參照圖2) [0089]進一步地,參照圖6,上述基于DSL的大數(shù)據(jù)開發(fā)應用裝置還包括:
[0090]圖表展示單元40,對運行結果進行可視化圖表展示,本實施例中基于DSL的大數(shù)據(jù) 開發(fā)應用裝置也可以包括上述中文語法建立子單元100、模型庫建立子單元101以及分隔字 符解析子單元。
[0091]設計開發(fā)一個基于瀏覽器(B/S)的編輯界面作為特定領域模型的應用展示平臺去 調用和運行特定領域的數(shù)據(jù)應用模型。在該平臺上,設置一個語言輸入欄;在語言輸入欄 中,通過輸入特定領域數(shù)據(jù)應用模型的中文名稱去調用并運行該模型。通過特定領域數(shù)據(jù) 應用模型獨有的中文名稱,調取特定領域模型庫中對應的數(shù)據(jù)處理模型的DSL腳本;運行該 DSL腳本,類自然語言的DSL解析器將其解析為包含數(shù)據(jù)處理功能元模塊名,特定領域專業(yè) 術語,以及關鍵字的語義模型;再通過調取語義模型中這些模塊的定義生成目標代碼腳本。 目標代碼腳本可在分布式大數(shù)據(jù)系統(tǒng)中運行,并返回運行結果。特定領域模型應用展示平 臺采用強大的可視化引擎,對運行結果的輸出數(shù)據(jù)進行可視化建模,提供多種可視化圖表 展示(例如2D、3D以及交互式)。
[0092]參照下表二,在一具體實例中,實驗中比較目前三種大數(shù)據(jù)開發(fā)應用工具與本發(fā) 明中提出的基于DSL大數(shù)據(jù)開發(fā)應用對多個數(shù)據(jù)處理功能等功能的的實驗效果:
[0094] 表 2
[0095] 從上表2中可以看出,本發(fā)明實施例中提供的基于DSL的大數(shù)據(jù)開發(fā)應用方法及裝 置,能夠簡單高效地開發(fā)應用大數(shù)據(jù),實現(xiàn)了大數(shù)據(jù)開發(fā)應用工作中所有階段的數(shù)據(jù)處理 功能,開發(fā)出大數(shù)據(jù)在特定領域中蘊含的巨大價值;根據(jù)特定領域數(shù)據(jù)結構類型、處理方法 及應用方式的特點,從通用的數(shù)據(jù)處理功能元模塊庫中選定合適的功能元模塊,按照類自 然語言的DSL語法結構,構建該特定領域特有的數(shù)據(jù)應用模型并保存在對應的特定領域數(shù) 據(jù)應用模型庫中,供數(shù)據(jù)科學家和領域專家在應用展示平臺上直接調用,對數(shù)據(jù)應用模型 的運行結果在應用展示平臺上進行多種可視化圖表的展示。
[0096] 以上所述僅為本發(fā)明的優(yōu)選實施例,并非因此限制本發(fā)明的專利范圍,凡是利用 本發(fā)明說明書及附圖內容所作的等效結構或等效流程變換,或直接或間接運用在其他相關 的技術領域,均同理包括在本發(fā)明的專利保護范圍內。
【主權項】
1. 一種基于DSL的大數(shù)據(jù)開發(fā)應用方法,其特征在于,包括步驟: 從數(shù)據(jù)處理功能模塊庫中調用功能元模塊,采用DSL語法建立特定領域的數(shù)據(jù)應用模 型; 運行所述數(shù)據(jù)應用模型,通過DSL解析器對所述數(shù)據(jù)應用模型解析轉換成目標代碼腳 本; 在分布式大數(shù)據(jù)系統(tǒng)上運行所述目標代碼腳本,并返回運行結果。2. 根據(jù)權利要求1所述的基于DSL的大數(shù)據(jù)開發(fā)應用方法,其特征在于,所述采用DSL語 法建立特定領域的數(shù)據(jù)應用模型的步驟包括: 根據(jù)中文語法結構,采用短語以及標點符號完成純中文的DSL腳本編輯,建立特定領域 的數(shù)據(jù)應用模型。3. 根據(jù)權利要求2所述的基于DSL的大數(shù)據(jù)開發(fā)應用方法,其特征在于,所述通過DSL解 析器對所述數(shù)據(jù)應用模型解析轉換成目標代碼腳本的步驟包括: 采用分隔字符制導翻譯方法建立的DSL解析器對所述數(shù)據(jù)應用模型解析轉換成目標代 碼腳本。4. 根據(jù)權利要求2所述的基于DSL的大數(shù)據(jù)開發(fā)應用方法,其特征在于,所述建立特定 領域的數(shù)據(jù)應用模型的步驟之后還包括: 建立特定領域的數(shù)據(jù)應用模型庫,并存儲所述特定領域的數(shù)據(jù)應用模型。5. 根據(jù)權利要求1至4任一項所述的基于DSL的大數(shù)據(jù)開發(fā)應用方法,其特征在于,所述 返回運行結果的步驟之后還包括: 對運行結果進行可視化圖表展示。6. -種基于DSL的大數(shù)據(jù)開發(fā)應用裝置,其特征在于,包括: 應用模型建立單元,從數(shù)據(jù)處理功能模塊庫中調用功能元模塊,采用DSL語法建立特定 領域的數(shù)據(jù)應用模型; 模型運行解析單元,運行所述數(shù)據(jù)應用模型,通過DSL解析器對所述數(shù)據(jù)應用模型解析 轉換成目標代碼腳本; 腳本運行返回單元,在分布式大數(shù)據(jù)系統(tǒng)上運行所述目標代碼腳本,并返回運行結果。7. 根據(jù)權利要求6所述的基于DSL的大數(shù)據(jù)開發(fā)應用裝置,其特征在于,所述應用模型 建立單元包括: 中文語法建立子單元,根據(jù)中文語法結構,采用短語以及標點符號完成純中文的DSL腳 本編輯,建立特定領域的數(shù)據(jù)應用模型。8. 根據(jù)權利要求7所述的基于DSL的大數(shù)據(jù)開發(fā)應用裝置,其特征在于,所述模型運行 解析單元包括: 分隔字符解析子單元,采用分隔字符制導翻譯方法建立的DSL解析器對所述數(shù)據(jù)應用 模型解析轉換成目標代碼腳本。9. 根據(jù)權利要求7所述的基于DSL的大數(shù)據(jù)開發(fā)應用裝置,其特征在于,所述應用模型 建立單元還包括: 模型庫建立子單元,建立特定領域的數(shù)據(jù)應用模型庫,并存儲所述特定領域的數(shù)據(jù)應 用模型。10. 根據(jù)權利要求6至9任一項所述的基于DSL的大數(shù)據(jù)開發(fā)應用裝置,其特征在于,還 包括: 圖表展示單元,對運行結果進行可視化圖表展示。
【文檔編號】G06F9/44GK106095398SQ201610309159
【公開日】2016年11月9日
【申請日】2016年5月10日
【發(fā)明人】郭宇翔, 王界兵, 張偉, 董迪馬, 梁猛, 宋泰然, 李 杰
【申請人】深圳前海信息技術有限公司