本申請要求于2015年9月24日提交的標題為“DECLARATIVE LANGUAGE AND VISUALIZATION SYSTEM FOR RECOMMENDED DATA TRANSFORMATIONS AND REPAIRS”的美國非臨時專利申請No.14/864,496的權益和優(yōu)先權,該申請要求于2014年9月26日提交的標題為“DECLARATIVE LANGUAGE AND VISUALIZATION SYSTEM FOR RECOMMENDED DATA TRANSFORMATIONS AND REPAIRS”的美國臨時申請No.62/056,471的權益和優(yōu)先權。
本申請涉及以下申請:
1)于2014年9月26日提交且標題為“METHOD FOR SEMANTIC ENTITY EXTRACTION BASED ON GRAPH MATCHING WITH AN EXTERNAL KNOWLEDGEBASE AND SIMILARITY RANKING OF DATASET METADATA FOR SEMANTIC INDEXING,SEARCH,AND RETRIEVAL”的美國臨時申請No.62/056,468;
2)于2014年9月26日提交且標題為“DYNAMIC VISUAL PROFILING AND VISUALIZATIO OF HIGH VOLUME DATASETS AND REAL-TIME SMART SAMPLING AND STATISTICAL PROFILING OF EXTREMELY LARGE DATASETS”的美國臨時申請No.62/056,474;
3)于2014年9月26日提交且標題為“AUTOMATED ENTITY CORRELATION AND CLASSIFICATION ACROSS HETEROGENEOUS DATASETS”的美國臨時申請No.62/056,475;
4)于2014年9月26日提交且標題為“DECLARATIVE EXTERNAL DATA SOURCE IMPORTATION,EXPORTATION,AND METADATA REFLECTION UTILIZING HTTP AND HDFS PROTOCOLS”的美國臨時申請No.62/056,476;
5)于2015年5月18日提交且標題為“CATEGORY LABELING”的美國臨時申請No.62/163,296;及
6)于2015年8月11日提交且標題為“SIMILARITY METRIC ANALYSIS AND KNOWLEDGE SCORING SYSTEM”的美國臨時申請No.62/203,806。
上述專利申請的全部內容通過引用被結合于此,用于所有目的。
技術領域
本公開內容一般而言涉及數(shù)據(jù)準備和分析。更具體而言,公開了用于為推薦的數(shù)據(jù)變換和修復生成和顯示交互式可視化的技術。
技術實現(xiàn)要素:
本公開內容一般而言涉及提取、修復和豐富化數(shù)據(jù)集的數(shù)據(jù)豐富化服務,從而為后續(xù)的索引和聚類產生更精確的實體分辨(resolution)和相關。數(shù)據(jù)豐富化服務可以包括用于執(zhí)行異構數(shù)據(jù)集的大規(guī)模數(shù)據(jù)準備、修復和豐富化的可視推薦引擎和語言。這使得用戶能夠選擇和看到推薦的豐富化(例如,變換和修復)將如何影響用戶的數(shù)據(jù)并根據(jù)需要進行調整。數(shù)據(jù)豐富化服務可以通過用戶界面從用戶接收反饋并且可以基于用戶反饋過濾推薦。
在一些實施例中,可以實現(xiàn)計算系統(tǒng),用于生成和顯示用于推薦的數(shù)據(jù)變換和修復的交互式可視化。計算系統(tǒng)可以實現(xiàn)數(shù)據(jù)豐富化服務。計算系統(tǒng)可以被配置為實現(xiàn)本文所述的方法和操作。在一些實施例中,公開了用于生成和顯示用于推薦的數(shù)據(jù)變換和修復的交互式可視化的系統(tǒng)。該系統(tǒng)可以包括多個數(shù)據(jù)源和多個數(shù)據(jù)目標。該系統(tǒng)可以包括云計算基礎設施系統(tǒng),其包括通信耦合到多個數(shù)據(jù)源并經至少一個通信網絡通信耦合到多個數(shù)據(jù)目標的一個或多個處理器。云計算基礎設施系統(tǒng)可以包括耦合到一個或多個處理器的存儲器,存儲器存儲指令以提供數(shù)據(jù)豐富化服務,其中當指令被一個或多個處理器執(zhí)行時使得這一個或多個處理器執(zhí)行本文所述的一個或多個方法或操作。還有其它實施例涉及系統(tǒng)和機器可讀有形存儲介質,其采用或存儲用于本文所述的方法和操作的指令。
在至少一個實施例中,一種方法可以包括從客戶端設備接收數(shù)據(jù)豐富化請求。該方法可以包括由計算機系統(tǒng)識別來自一個或多個數(shù)據(jù)源的數(shù)據(jù)中的模式。該方法可以包括將模式與來自知識服務的實體信息進行匹配。該方法可以包括基于實體信息為數(shù)據(jù)生成一個或多個變換腳本。該方法可以包括生成與一個或多個變換腳本對應的一個或多個推薦。該方法可以包括使得這一個或多個推薦在客戶端設備處的用戶界面中顯示。該方法可以包括接收基于一個或多個推薦的變換指令。該方法可以包括基于變換指令變換數(shù)據(jù)。該方法可以包括基于變換指令將經變換的數(shù)據(jù)發(fā)布到一個或多個數(shù)據(jù)目標。
在一些實施例中,該方法可以包括從一個或多個數(shù)據(jù)源中的至少一個接收對至少一列數(shù)據(jù)的選擇,并且使得這至少一列數(shù)據(jù)的數(shù)據(jù)簡檔被顯示。數(shù)據(jù)簡檔可以指示在這至少一列數(shù)據(jù)中識別出的多個模式和與這至少一列數(shù)據(jù)相關聯(lián)的至少一個數(shù)據(jù)可視化。
在至少一個實施例中,變換指令包括基于實體信息重命名至少一列數(shù)據(jù)的變換指令。該方法可以包括接收將這至少一列數(shù)據(jù)重命名為默認名稱的另一變換指令。在一些實施例中,變換指令包括基于實體信息重新格式化這至少一列數(shù)據(jù)的變換指令。在一些實施例中,變換指令包括用于基于實體信息模糊化這至少一列數(shù)據(jù)的另一變換指令。在一些實施例中,變換指令包括基于實體信息添加從知識服務獲得的一列或多列數(shù)據(jù)的豐富化指令。
在本發(fā)明的一個實施例中,當接收到對數(shù)據(jù)源中的至少一個數(shù)據(jù)源的至少一列數(shù)據(jù)的選擇時,使得這至少一列數(shù)據(jù)的數(shù)據(jù)簡檔顯示在客戶端設備上的用戶界面中,其中數(shù)據(jù)簡檔指示在這至少一列數(shù)據(jù)中識別出的多個模式和與這至少一列數(shù)據(jù)相關聯(lián)的至少一個數(shù)據(jù)可視化。
在本發(fā)明的一個實施例中,變換指令包括基于實體信息重命名至少一列數(shù)據(jù)的變換指令。
在本發(fā)明的一個實施例中,接收另一轉換指令,以將至少一列數(shù)據(jù)重命名為默認名稱。
在本發(fā)明的一個實施例中,變換指令包括基于實體信息重新格式化至少一列數(shù)據(jù)的變換指令。
在本發(fā)明的一個實施例中,變換指令包括基于實體信息模糊化至少一列數(shù)據(jù)的另一變換指令。
在本發(fā)明的一個實施例中,變換指令包括基于實體信息添加從知識服務獲得的一列或多列數(shù)據(jù)的豐富化指令。
通過參考以下說明書、權利要求和附圖,前述內容以及其它特征和實施例將變得更加明顯。
附圖說明
圖1繪出了根據(jù)本發(fā)明實施例的數(shù)據(jù)豐富化服務的簡化高層級圖。
圖2繪出了根據(jù)本發(fā)明實施例的技術棧的簡化框圖。
圖3繪出了根據(jù)本發(fā)明實施例的交互式可視化系統(tǒng)的簡化框圖。
圖4A-4D繪出了根據(jù)本發(fā)明實施例的提供交互式數(shù)據(jù)豐富化的用戶界面的例子。
圖5A-5D繪出了根據(jù)本發(fā)明實施例的交互式數(shù)據(jù)豐富化的結果的例子。
圖6繪出了根據(jù)本發(fā)明實施例的數(shù)據(jù)豐富化的方法的流程圖。
圖7繪出了用于實現(xiàn)實施例的分布式系統(tǒng)的簡化圖。
圖8是根據(jù)本公開內容實施例的、其中服務可以作為云服務提供的系統(tǒng)環(huán)境的一個或多個部件的簡化框圖。
圖9示出了可以被用來實現(xiàn)本發(fā)明實施例的示例性計算機系統(tǒng)。
具體實施方式
在以下描述中,為了說明的目的,闡述了具體的細節(jié),以便提供對本發(fā)明的實施例的透徹理解。但是,明顯的是,各種實施例可以在沒有這些具體細節(jié)的情況下實踐。附圖和描述不意在是限制性的。
本公開內容一般而言涉及提取、修復和豐富化數(shù)據(jù)集的數(shù)據(jù)豐富化服務,從而為后續(xù)的索引和聚類產生更精確的實體分辨和相關。在一些實施例中,數(shù)據(jù)豐富化服務包括可擴展語義流水線(pipeline),其在從數(shù)據(jù)的攝取到數(shù)據(jù)的分析、到數(shù)據(jù)到數(shù)據(jù)目標的發(fā)布的多個階段處理數(shù)據(jù)。
在本發(fā)明的某些實施例中,在將數(shù)據(jù)加載到數(shù)據(jù)倉庫(或其它數(shù)據(jù)目標)中之前,數(shù)據(jù)通過包括各種處理階段的流水線(在本文中也被稱為語義流水線)來處理。在一些實施例中,流水線可以包括攝取階段、準備階段、剖析階段、變換階段和發(fā)布階段。在處理過程中,數(shù)據(jù)可以被分析、準備和豐富化。然后,結果所得的數(shù)據(jù)可以被發(fā)布(例如,提供給下游處理)到一個或多個數(shù)據(jù)目標(諸如本地存儲系統(tǒng)、基于云的存儲服務、web服務、數(shù)據(jù)倉庫等),其中可以對數(shù)據(jù)執(zhí)行各種數(shù)據(jù)分析。由于對數(shù)據(jù)進行的修復和豐富化,所產生的分析產生有用的結果。此外,因為數(shù)據(jù)加載(onboarding)處理是自動的,所以它可以被擴展,以處理由于體積而無法手動處理的非常大的數(shù)據(jù)集。
在一些實施例中,數(shù)據(jù)可以被分析,以從數(shù)據(jù)中提取實體,并且基于提取出的實體,數(shù)據(jù)可以被修復。例如,拼寫錯誤、地址錯誤和其它常見錯誤給大數(shù)據(jù)系統(tǒng)帶來了復雜的問題。對于小數(shù)量的數(shù)據(jù),這種錯誤可以被手動識別和校正。但是,在非常大的數(shù)據(jù)集(例如,數(shù)十億個節(jié)點或記錄)中,這種手動處理是不可能的。在本發(fā)明的某些實施例中,數(shù)據(jù)豐富化服務可以利用知識服務來分析數(shù)據(jù)?;谥R服務的內容,數(shù)據(jù)中的實體可以被識別。例如,實體可以是地址、商業(yè)名稱、位置、人名、識別號等。
圖1繪出了根據(jù)本發(fā)明實施例的數(shù)據(jù)豐富化服務的簡化高層級圖100。如圖1中所示,基于云的數(shù)據(jù)豐富化服務102可以從各種數(shù)據(jù)源104接收數(shù)據(jù)。在一些實施例中,客戶端可以向數(shù)據(jù)豐富化服務102提交數(shù)據(jù)豐富化請求,該請求識別數(shù)據(jù)源104中的一個或多個(或其部分,例如,特定的表、數(shù)據(jù)集等)。數(shù)據(jù)豐富化服務102然后可以請求處理來自所識別出的數(shù)據(jù)源104的數(shù)據(jù)。在一些實施例中,可以對數(shù)據(jù)源進行采樣,并且對采樣數(shù)據(jù)進行分析以用于豐富化,使得大數(shù)據(jù)集更易于管理。識別出的數(shù)據(jù)可以被接收并添加到數(shù)據(jù)豐富化服務可訪問的分布式存儲系統(tǒng)(諸如Hadoop分布式存儲(HDFS)系統(tǒng))。數(shù)據(jù)可以通過多個處理階段(本文描述為流水線或語義流水線)語義地處理。這些處理階段可以包括準備階段108、豐富化階段110和發(fā)布階段112。在一些實施例中,數(shù)據(jù)可以由數(shù)據(jù)豐富化服務以一個或多個批次處理。在一些實施例中,可以提供在其接收到數(shù)據(jù)時處理數(shù)據(jù)的流傳輸流水線。
在一些實施例中,準備階段108可以包括各種處理子階段。這可以包括自動檢測數(shù)據(jù)源格式并執(zhí)行內容提取和/或修復。一旦識別出數(shù)據(jù)源格式,就可以將數(shù)據(jù)源自動地規(guī)格化成可以由數(shù)據(jù)豐富化服務處理的格式。在一些實施例中,一旦準備好數(shù)據(jù)源,就可以由豐富化階段110來對其進行處理。在一些實施例中,入站數(shù)據(jù)源可以被加載到數(shù)據(jù)豐富化服務可訪問的分布式存儲系統(tǒng)105(諸如通信耦合到數(shù)據(jù)豐富化服務的HDFS系統(tǒng))中。分布式存儲系統(tǒng)105提供用于所攝取的數(shù)據(jù)文件的臨時存儲空間,其然后還可以提供中間處理文件的存儲以及用于結果在發(fā)布之前的臨時存儲。在一些實施例中,增強或豐富化的結果也可以存儲在分布式存儲系統(tǒng)中。在一些實施例中,在與所攝取的數(shù)據(jù)源相關聯(lián)的豐富化期間捕獲的元數(shù)據(jù)可以存儲在分布式存儲系統(tǒng)105中。系統(tǒng)級元數(shù)據(jù)(例如,指示數(shù)據(jù)源的位置、結果、處理歷史、用戶會話、執(zhí)行歷史和配置等的元數(shù)據(jù))可以存儲在分布式存儲系統(tǒng)中或存儲在數(shù)據(jù)豐富化服務可訪問的單獨的存儲庫中。
在某些實施例中,豐富化處理110可以利用語義總線(本文中也稱為流水線或語義流水線)和插入該總線中的一個或多個自然語言(NL)處理器來分析數(shù)據(jù)。NL處理器可以自動識別數(shù)據(jù)源列,確定特定列中的數(shù)據(jù)的類型,如果在輸入上不存在圖式(schema)就命名該列,和/或提供描述列和/或數(shù)據(jù)源的元數(shù)據(jù)。在一些實施例中,NL處理器可以從列文本中識別并提取實體(例如,人、地點、事物等)。NL處理器還可以在數(shù)據(jù)源內和數(shù)據(jù)源之間識別和/或建立關系。如下面進一步描述的,基于提取出的實體,數(shù)據(jù)可以被修復(例如,以校正印刷錯誤或格式錯誤)和/或豐富化(例如,以向提取出的實體包括附加的相關信息)。
在一些實施例中,發(fā)布階段112可以提供在豐富化期間捕獲的數(shù)據(jù)源元數(shù)據(jù)和任何數(shù)據(jù)源豐富化或修復給一個或多個可視化系統(tǒng)以供分析(例如,向用戶顯示推薦的數(shù)據(jù)變換、豐富化和/或其它修改)。發(fā)布子系統(tǒng)可以將經處理的數(shù)據(jù)輸送到一個或多個數(shù)據(jù)目標。數(shù)據(jù)目標可以與經處理的數(shù)據(jù)可以被發(fā)送到的位置對應。該位置可以是例如存儲器、計算系統(tǒng)、數(shù)據(jù)庫或提供服務的系統(tǒng)中的位置。例如,數(shù)據(jù)目標可以包括Oracle存儲云服務(OSCS)、URL、第三方存儲服務、Web服務以及其它云服務(諸如Oracle商業(yè)智能(BI)、數(shù)據(jù)庫即服務,和數(shù)據(jù)庫圖式即服務)。在一些實施例中,聚合(syndication)引擎向客戶提供一組API,以瀏覽、選擇和訂閱結果。一旦訂閱并且當產生新結果時,結果數(shù)據(jù)就可以作為直接饋送提供給外部web服務端點或者作為批量文件下載。
圖2繪出了根據(jù)本發(fā)明實施例的技術棧的簡化框圖200。在一些實施例中,數(shù)據(jù)豐富化服務可以利用圖2中所示的邏輯技術棧來實現(xiàn)。技術??梢园ㄓ脩艚缑?體驗(UX)層202,該層通過一個或多個客戶端設備(例如,利用瘦客戶端、胖客戶端、web瀏覽器或在客戶端設備上執(zhí)行的其它應用)提供對數(shù)據(jù)豐富化服務的訪問)。調度器服務204可以管理通過UX層接收的請求/響應,并且可以管理數(shù)據(jù)豐富化性服務所執(zhí)行的底層基礎設施。
在一些實施例中,上面關于圖1所描述的處理階段可以包括多個處理引擎。例如,準備處理階段108可以包括攝取/準備引擎、剖析引擎和推薦引擎。當數(shù)據(jù)在準備處理期間被攝取時,數(shù)據(jù)(或其樣本)可以存儲在分布式數(shù)據(jù)存儲系統(tǒng)210(諸如“大數(shù)據(jù)”集群)中。豐富化處理階段110可以包括語義/統(tǒng)計引擎、實體提取引擎和修復/變換引擎。如下面進一步描述的,豐富化處理階段110可以利用在豐富化處理期間從知識服務206獲得的信息。豐富化動作(例如,數(shù)據(jù)的添加和/或變換)可以對存儲在分布式存儲系統(tǒng)210中的數(shù)據(jù)執(zhí)行。數(shù)據(jù)的變換可以包括添加缺失數(shù)據(jù)或數(shù)據(jù)以豐富化數(shù)據(jù)的修改。數(shù)據(jù)的變換可以包括修改數(shù)據(jù)中的錯誤或修復數(shù)據(jù)。發(fā)布處理階段112可以包括發(fā)布引擎、聚合引擎和元數(shù)據(jù)結果管理器。在一些實施例中,各種開源技術可以被用來實現(xiàn)各種處理階段和/或處理引擎內的一些功能。例如,文件格式檢測可以使用Apache Tika。
在一些實施例中,管理服務208可以監(jiān)視在豐富化處理110期間對數(shù)據(jù)所做的改變。被監(jiān)視的改變可以包括跟蹤哪些用戶訪問數(shù)據(jù)、執(zhí)行了哪些數(shù)據(jù)變換,以及其它數(shù)據(jù)。這可以使數(shù)據(jù)豐富化服務能夠回滾豐富化動作。
技術棧200可以在諸如用于大數(shù)據(jù)操作的集群210(“大數(shù)據(jù)集群”)的環(huán)境中實現(xiàn)。集群210可以利用Apache Spark來實現(xiàn),其提供用于實現(xiàn)與諸如HDFS的分布式文件系統(tǒng)(DFS)兼容的分布式計算框架的一組庫。Apache Spark可以向有效資源管理器(如YARN)發(fā)送對于映射、減少、過濾、排序或樣本集群處理作業(yè)的請求。在一些實施例中,集群210可以利用諸如由提供的分布式文件系統(tǒng)提供(offering)來實現(xiàn)。DFS(諸如由提供的DFS)可以包括HDFS和Yarn。
圖3繪出了根據(jù)本發(fā)明實施例的數(shù)據(jù)豐富化系統(tǒng)300的簡化框圖。數(shù)據(jù)豐富化系統(tǒng)300可以實現(xiàn)數(shù)據(jù)豐富化服務302。數(shù)據(jù)豐富化服務302可以從一個或多個客戶端304接收數(shù)據(jù)豐富化請求。數(shù)據(jù)豐富化服務302可以包括一個或多個計算機和/或服務器。數(shù)據(jù)豐富化服務302可以是由若干子系統(tǒng)和/或模塊組成的模塊,包括可能未示出的一些子系統(tǒng)和/或模塊。數(shù)據(jù)豐富化服務302可以具有比圖中所示更多或更少的子系統(tǒng)和/或模塊,可以組合兩個或更多個子系統(tǒng)和/或模塊,或者可以具有不同的子系統(tǒng)和/或模塊配置或布置。在一些實施例中,數(shù)據(jù)豐富化服務302可以包括用戶界面306、攝取引擎328、推薦引擎308、知識服務310、剖析引擎326、變換引擎322、準備引擎312和發(fā)布引擎324。實現(xiàn)數(shù)據(jù)豐富化服務302的元件可以操作,以實現(xiàn)如上所述的語義處理流水線。
根據(jù)本發(fā)明的實施例,數(shù)據(jù)豐富化系統(tǒng)300可以包括語義處理流水線。語義處理流水線的全部或部分可以由數(shù)據(jù)豐富化服務102來實現(xiàn)。當添加數(shù)據(jù)源時,可以在加載該數(shù)據(jù)源之前通過流水線處理該數(shù)據(jù)源和/或其上存儲的數(shù)據(jù)。流水線可以包括被配置為在將經處理的數(shù)據(jù)發(fā)布到一個或多個數(shù)據(jù)目標之前處理數(shù)據(jù)和/或數(shù)據(jù)源的一個或多個處理引擎。處理引擎可以包括從新數(shù)據(jù)源提取原始數(shù)據(jù)并且將原始數(shù)據(jù)提供給準備引擎的攝取引擎。準備引擎可以識別與原始數(shù)據(jù)相關聯(lián)的格式,并且可以將原始數(shù)據(jù)轉換成可以由數(shù)據(jù)豐富化服務302處理的格式(例如,規(guī)格化原始數(shù)據(jù))。剖析引擎可以提取和/或生成與規(guī)格化的數(shù)據(jù)相關聯(lián)的元數(shù)據(jù),并且變換引擎可以基于該元數(shù)據(jù)變換(例如,修復和/或豐富化)規(guī)格化的數(shù)據(jù)。結果所得的豐富化的數(shù)據(jù)可以被提供給發(fā)布引擎,以被發(fā)送到一個或多個數(shù)據(jù)目標。下面進一步描述每個處理引擎。
在一些實施例中,數(shù)據(jù)豐富化服務302可以由計算基礎設施系統(tǒng)(例如,云計算基礎設施系統(tǒng))提供。計算基礎設施系統(tǒng)可以在具有一個或多個計算系統(tǒng)的云計算環(huán)境中實現(xiàn)。計算基礎設施系統(tǒng)可以經一個或多個通信網絡通信耦合到一個或多個數(shù)據(jù)源或一個或多個數(shù)據(jù)目標,諸如本文所述的那些。
客戶端304可以包括各種客戶端設備(諸如臺式計算機、膝上型計算機、平板計算機、移動設備等)。每個客戶端設備可以包括通過其可以訪問數(shù)據(jù)豐富化服務302的一個或多個客戶端應用304。例如,瀏覽器應用、瘦客戶端(例如,移動應用)和/或胖客戶端可以在客戶端設備上執(zhí)行,并且使用戶能夠與數(shù)據(jù)豐富化服務302交互。圖3中所繪出的實施例僅僅是例子,并且不意在不適當?shù)叵拗票景l(fā)明的要求保護的實施例。本領域普通技術人員將認識到許多變化、替代和修改。例如,可以存在比圖中所示的更多或更少的客戶端設備。
客戶端設備304可以是各種不同類型,包括但不限于個人計算機,臺式機,諸如膝上型計算機、移動電話、平板電腦等的移動或手持設備以及其它類型的設備。通信網絡促進客戶端設備304與數(shù)據(jù)豐富化服務302之間的通信。通信網絡可以是各種類型并且可以包括一個或多個通信網絡。通信網絡106的例子包括但不限于互聯(lián)網、廣域網(WAN)、局域網(LAN)、以太網、公共或專用網絡、有線網絡、無線網絡等,及其組合。不同的通信協(xié)議可以被用來促進通信,包括有線和無線協(xié)議,諸如IEEE 802.XX協(xié)議套件、TCP/IP、IPX、SAN、AppleTalk、藍牙,及其它協(xié)議。一般而言,通信網絡可以包括促進客戶端和數(shù)據(jù)豐富化服務302之間的通信的任何通信網絡或基礎設施。
用戶可以通過用戶界面306與數(shù)據(jù)豐富化服務302交互。客戶端304可以呈現(xiàn)圖形用戶界面,以顯示用戶的數(shù)據(jù)、用于變換用戶的數(shù)據(jù)的推薦,以及通過用戶界面306向數(shù)據(jù)豐富化服務302發(fā)送和/或接收指令(“變換指令”)。本文所公開的用戶界面(諸如圖4A-4D和5A-5D中引用的那些)可以由數(shù)據(jù)豐富化服務302或經由客戶端304呈現(xiàn)。例如,用戶界面可以由用戶界面306生成,并且由位于客戶端304中的任何一個的數(shù)據(jù)豐富化服務302呈現(xiàn)。用戶界面可以由數(shù)據(jù)豐富化系統(tǒng)302經由網絡作為服務(例如,云服務)或網絡可訪問應用的一部分來提供。在至少一個例子中,數(shù)據(jù)豐富化服務302的操作者可以操作客戶端304之一來訪問本文所公開的任何用戶界面并與之交互。用戶可以向用戶界面306發(fā)送指令,以添加數(shù)據(jù)源(例如,提供數(shù)據(jù)源訪問和/或位置信息,等等)。
數(shù)據(jù)豐富化服務302可以利用攝取引擎328來攝取數(shù)據(jù)。當添加數(shù)據(jù)源時,攝取引擎328可以充當初始處理引擎。攝取引擎328可以促進用戶數(shù)據(jù)從一個或多個數(shù)據(jù)源309到數(shù)據(jù)豐富化服務302的安全和可靠的上傳。在一些實施例中,攝取引擎328可以從一個或多個數(shù)據(jù)源309提取數(shù)據(jù)并將其存儲在數(shù)據(jù)豐富化服務302中的分布式存儲系統(tǒng)305中。從一個或多個數(shù)據(jù)源309和/或一個或多個客戶端304攝取的數(shù)據(jù)可以如上面關于圖1-2所描述的那樣進行處理。數(shù)據(jù)豐富化服務302可以從客戶端數(shù)據(jù)存儲307和/或從一個或多個數(shù)據(jù)源309接收數(shù)據(jù)。分布式存儲系統(tǒng)305可以在數(shù)據(jù)被發(fā)布到一個或多個數(shù)據(jù)目標330之前在流水線的剩余處理階段期間充當用于上傳數(shù)據(jù)的臨時儲存器。一旦上傳完成,就可以調用準備引擎312來規(guī)格化上傳的數(shù)據(jù)集。
接收到的數(shù)據(jù)可以包括結構化數(shù)據(jù)、非結構化數(shù)據(jù)或其組合。結構數(shù)據(jù)可以基于數(shù)據(jù)結構,包括但不限于數(shù)組、記錄、關系數(shù)據(jù)庫表、散列表、鏈表或其它類型的數(shù)據(jù)結構。如上所述,數(shù)據(jù)源可以包括公共云存儲服務311、私有云存儲服務313、各種其它云服務315、URL或基于web的數(shù)據(jù)源317,或任何其它可訪問的數(shù)據(jù)源。來自客戶端304的數(shù)據(jù)豐富化請求可以識別數(shù)據(jù)源和/或特定數(shù)據(jù)(表、列、文件,或通過數(shù)據(jù)源309或客戶端數(shù)據(jù)存儲307可用的任何其它結構化或非結構化數(shù)據(jù))。數(shù)據(jù)豐富化服務302然后可以訪問識別出的數(shù)據(jù)源,以獲得在數(shù)據(jù)豐富化請求中指定的特定數(shù)據(jù)。數(shù)據(jù)源可以通過地址(例如,URL)、通過儲存裝置提供者名稱或其它標識符來識別。在一些實施例中,對數(shù)據(jù)源的訪問可以由訪問管理服務控制??蛻舳?04可以向用戶顯示輸入憑證(例如,用戶名和密碼)和/或授權數(shù)據(jù)豐富化服務302訪問數(shù)據(jù)源的請求。
在一些實施例中,從一個或多個數(shù)據(jù)源309上傳的數(shù)據(jù)可以被修改成各種不同的格式。準備引擎312可以將上傳的數(shù)據(jù)轉換成公共的規(guī)格化格式,以便由數(shù)據(jù)豐富化服務302處理。規(guī)格化可以通過使用指令或代碼實現(xiàn)的例程和/或技術來執(zhí)行,諸如由分發(fā)(distribute)的Apache Tika。規(guī)格化的格式提供從數(shù)據(jù)源獲得的數(shù)據(jù)的規(guī)格化的視圖。在一些實施例中,準備引擎312可以讀取多個不同的文件類型。準備引擎312可以將數(shù)據(jù)規(guī)格化為字符分離的形式(例如,制表符分離的值、逗號分離的值,等等)或者作為用于分層數(shù)據(jù)的JavaScript對象符號(JSON)文檔。在一些實施例中,各種文件格式可以被識別和規(guī)格化。例如,諸如Microsoft 格式(例如,XLS或XLSX)、Microsoft 格式(例如,DOC或DOCX)和便攜式文檔格式(PDF)的標準文件格式以及諸如JSON和擴展標記語言(XML)的分層格式可以被支持。在一些實施例中,各種二進制編碼格式和串行化對象數(shù)據(jù)也可以被讀取和解碼。在一些實施例中,數(shù)據(jù)可以以Unicode格式(UTF-8)編碼向流水線提供。準備引擎312可以對數(shù)據(jù)豐富化服務302期望的文件類型執(zhí)行上下文提取和轉換,并且可以從數(shù)據(jù)源提取文檔級元數(shù)據(jù)。
規(guī)格化數(shù)據(jù)集可以包括將數(shù)據(jù)集中的原始數(shù)據(jù)轉換成可由數(shù)據(jù)豐富化服務302(尤其是剖析引擎326)處理的格式。在一個例子中,規(guī)格化數(shù)據(jù)集以創(chuàng)建規(guī)格化的數(shù)據(jù)集包括將具有一種格式的數(shù)據(jù)集修改為經調整的格式,作為規(guī)格化的數(shù)據(jù)集,經調整的格式不同于所述格式??梢酝ㄟ^識別數(shù)據(jù)集中的一列或多列數(shù)據(jù)、并將與這些列對應的數(shù)據(jù)的格式修改為相同格式來對數(shù)據(jù)集進行規(guī)格化。例如,數(shù)據(jù)集中具有不同格式化的日期的數(shù)據(jù)可以通過將格式改變?yōu)榭梢杂善饰鲆?26處理的針對日期的通用格式來進行規(guī)格化。數(shù)據(jù)可以通過從非表格式被修改或轉換成具有一列或多列數(shù)據(jù)的表格式來規(guī)格化。
一旦數(shù)據(jù)已經被規(guī)格化,規(guī)格化的數(shù)據(jù)就可以被傳遞到剖析引擎326。剖析引擎326可以對規(guī)格化的數(shù)據(jù)執(zhí)行逐列分析,以識別存儲在列中的數(shù)據(jù)的類型以及關于數(shù)據(jù)如何在列中存儲的信息。在本公開內容中,雖然在許多情況下剖析引擎326被描述為對數(shù)據(jù)執(zhí)行操作,但是由剖析引擎326處理的數(shù)據(jù)已經被準備引擎312規(guī)格化。在一些實施例中,由剖析引擎326處理的數(shù)據(jù)可以包括未被規(guī)格化成處于由剖析引擎326可處理的格式(例如,規(guī)格化的格式)的數(shù)據(jù)。剖析引擎326的輸出或結果可以是指示關于來自源的數(shù)據(jù)的簡檔信息的元數(shù)據(jù)(例如,源簡檔)。元數(shù)據(jù)可以指示關于數(shù)據(jù)的一個或多個模式和/或數(shù)據(jù)的分類。如下面進一步描述的,元數(shù)據(jù)可以包括基于對數(shù)據(jù)的分析的統(tǒng)計信息。例如,剖析引擎326可以輸出關于每個識別出的列的多個度量和模式信息,并且可以識別列的名稱和類型的形式的圖式(schema)信息,以匹配數(shù)據(jù)。
由剖析引擎326生成的元數(shù)據(jù)可以被數(shù)據(jù)豐富化服務的其它元件(例如,推薦引擎308和變換引擎322)使用,以執(zhí)行如本文所述的用于數(shù)據(jù)豐富化服務302的操作。在一些實施例中,剖析引擎326可以向推薦引擎308提供元數(shù)據(jù)。
推薦引擎308可以識別用于由剖析引擎326處理的數(shù)據(jù)的修復、變換和數(shù)據(jù)豐富化推薦。由剖析引擎326生成的元數(shù)據(jù)可以基于由元數(shù)據(jù)指示的統(tǒng)計分析和/或分類來確定用于數(shù)據(jù)的推薦。在一些實施例中,推薦可以通過用戶界面或其它web服務向用戶提供。推薦可以為商業(yè)用戶定制(tailor),使得推薦在高層級描述什么數(shù)據(jù)修復或豐富化是可用的,這些推薦如何與過去的用戶活動比較,和/或如何基于現(xiàn)有知識或模式來分類未知項目。知識服務310可以訪問一個或多個知識圖或其它知識源340。知識源可以包括由網站,web服務,策展(curated)知識存儲和其它來源發(fā)布的公開可用的信息。推薦引擎308可以向知識服務310請求(例如,查詢)對于針對源獲得的數(shù)據(jù)可以被推薦給用戶的數(shù)據(jù)。
在一些實施例中,變換引擎322可以通過用戶界面306向用戶給出用于每個列的采樣數(shù)據(jù)或來自輸入數(shù)據(jù)集的樣本行。通過用戶界面306,數(shù)據(jù)豐富化服務302可以向用戶給出推薦的變換。變換可以與變換指令相關聯(lián),變換指令可以包括用于執(zhí)行變換動作的代碼和/或函數(shù)調用。變換指令可由用戶基于在用戶界面306的選擇來調用,諸如通過選擇用于變換的推薦或者通過接收指示操作的輸入(例如,操作者命令)。在一個例子中,變換指令包括基于實體信息重命名至少一列數(shù)據(jù)的變換指令??梢越邮樟硪蛔儞Q指令,以將至少一列數(shù)據(jù)重命名為默認名稱。默認名稱可以包括預定的名稱。默認名稱可以是當無法確定或未定義數(shù)據(jù)列的名稱時預定義的任何名稱。變換指令可以包括基于實體信息重新格式化至少一列數(shù)據(jù)的變換指令,以及用于基于實體信息模糊化至少一列數(shù)據(jù)的變換指令。在一些實施例中,變換指令可以包括基于實體信息添加從知識服務獲得的一列或多列數(shù)據(jù)的豐富化指令。
通過用戶界面306,用戶可以執(zhí)行變換動作,并且變換引擎322可以將它們應用到從數(shù)據(jù)源獲得的數(shù)據(jù)并顯示結果。這給予用戶即時反饋,該反饋可以被用來可視化和驗證變換引擎322配置的效果。在一些實施例中,變換引擎322可以從剖析引擎326和推薦引擎308接收提供推薦的變換動作的模式和/或元數(shù)據(jù)信息(例如,列名和類型)。在一些實施例中,變換引擎322可以提供編排和跟蹤對數(shù)據(jù)的改變的用戶事件模型,以促進撤銷、重做、刪除和編輯事件。模型可以捕獲動作之間的依賴關系,使得當前配置保持一致。例如,如果列被移除,則由推薦引擎308為該列提供的推薦的變換動作也可以被移除。類似地,如果變換動作導致插入新列并且該動作被刪除,則對新列執(zhí)行的任何動作也被刪除。
如上所述,在處理期間,接收到的數(shù)據(jù)可以被分析,并且推薦引擎308可以給出要對數(shù)據(jù)做出的一個或多個推薦的變換,包括豐富化、修復和其它變換。用于豐富化數(shù)據(jù)的推薦的變換可以由一組變換組成,其中每個變換是對數(shù)據(jù)執(zhí)行的單個變換動作或原子變換??梢杂杉现械牧硪蛔儞Q對先前變換的數(shù)據(jù)執(zhí)行變換。變換集合可以并行地或以特定次序執(zhí)行,使得在執(zhí)行該變換集合之后得到的數(shù)據(jù)被豐富化。該變換集合可以根據(jù)變換規(guī)范來執(zhí)行。變換規(guī)范可以包括指示如何以及何時對由剖析引擎326產生的數(shù)據(jù)執(zhí)行變換集合中每一個變換的變換指令,和由推薦引擎308確定的用于豐富化數(shù)據(jù)的推薦。原子變換的例子可以包括但不限于對標題的變換、轉換、刪除、拆分、連接和修復。根據(jù)變換集合變換的數(shù)據(jù)可以經歷一系列變化,其中每個變化導致數(shù)據(jù)被豐富化的中間數(shù)據(jù)。為用于變換集合的中間步驟生成的數(shù)據(jù)可以以諸如彈性分布式數(shù)據(jù)集(RDD)、文本、數(shù)據(jù)記錄格式、文件格式、任何其它格式或其組合的格式來存儲。
在一些實施例中,作為由數(shù)據(jù)豐富化服務302的任何元件執(zhí)行的操作的結果而生成的數(shù)據(jù)可以以中間數(shù)據(jù)格式存儲,包括但不限于RDD、文本、文檔格式、任何其它類型的格式,或其組合。以中間格式存儲的數(shù)據(jù)可以被用來進一步執(zhí)行用于數(shù)據(jù)豐富化服務302的操作。
下表示出了變換的例子。表1示出了變換動作的類型的概要。
表1
表2示出了不適合參考表1示出的類別類型內的變換動作。
表2
以下表3示出了變換例子的類型的例子。具體而言,表3示出了變換動作的例子并且描述與這些動作對應的變換的類型。例如,變換動作可以包括基于在數(shù)據(jù)中檢測到來自白名單的單詞的存在來過濾數(shù)據(jù)。如果用戶想要跟蹤包含“Android”或“iPhone”的訊息(例如,推文),則可以添加具有構成所提供的白名單的那兩個詞的變換動作。這僅僅是可以為用戶豐富化數(shù)據(jù)的方式的一個例子。
表3
推薦引擎308可以使用來自知識服務310、知識源340的信息生成用于變換引擎322的推薦,并且指示變換引擎322生成將變換數(shù)據(jù)的變換腳本。變換腳本可以包括可以由一個或多個處理單元執(zhí)行以變換接收到的數(shù)據(jù)的程序、代碼或指令。照此,推薦引擎308可以充當用戶界面306和知識服務310之間的媒介。
如上面所討論的,剖析引擎326可以分析來自數(shù)據(jù)源的數(shù)據(jù),以確定是否存在任何模式,并且如果存在任何模式,則可以將模式分類。一旦從數(shù)據(jù)源獲得的數(shù)據(jù)被規(guī)格化,該數(shù)據(jù)就可以被解析,以識別數(shù)據(jù)的結構中的一個或多個屬性或字段。模式可以利用正則表達式的集合來識別,每個正則表達式具有標簽(“標記”)并且由類別定義。該數(shù)據(jù)可以與不同類型的模式進行比較,以識別模式??梢宰R別的模式類型的例子包括但不限于整數(shù)、小數(shù)、日期或日期/時間字符串、URL、域地址、IP地址、電子郵件地址、版本號、場所標識符、UUID和其它十六進制標識符、社會安全號、美國信箱(box)編號、典型的美國街道地址模式、郵編、美國電話號碼、套房號碼、信用卡號、專有名稱、個人信息,以及信用卡供應商。
在一些實施例中,剖析引擎326可以基于由語義約束或語法約束定義的一組正則表達式來識別數(shù)據(jù)中的模式。正則表達式可以被用來確定數(shù)據(jù)的形狀和/或結構。剖析引擎326可以實現(xiàn)操作或例程(例如,調用用于執(zhí)行正則表達式的處理的例程的API),以基于一個或多個正則表達式確定數(shù)據(jù)中的模式。例如,用于模式的正則表達式可以基于語法約束應用到數(shù)據(jù),以確定該模式在數(shù)據(jù)中是否是可識別的。
剖析引擎326可以利用一個或多個正則表達式來執(zhí)行解析操作,以識別由剖析引擎326處理的數(shù)據(jù)中的模式。正則表達式可根據(jù)層次來排序。模式可以基于正則表達式的復雜度的次序來識別。多個模式可以匹配正在被分析的數(shù)據(jù);將選擇具有更大復雜度的模式。如下面進一步描述的,剖析引擎326可以基于被應用以確定那些模式的正則表達式的應用來執(zhí)行統(tǒng)計分析,以消除模式之間的歧義。
在一些實施例中,可以處理未結構化的數(shù)據(jù),以分析數(shù)據(jù)中的元數(shù)據(jù)描述屬性。元數(shù)據(jù)本身可以指示關于數(shù)據(jù)的信息??梢员容^元數(shù)據(jù),以識別相似性和/或確定信息的類型?;跀?shù)據(jù)識別出的信息可以與已知類型的數(shù)據(jù)(例如,商業(yè)信息、個人識別信息或地址信息)進行比較,以識別與模式對應的數(shù)據(jù)。
根據(jù)實施例,剖析引擎326可以執(zhí)行統(tǒng)計分析,以消除數(shù)據(jù)中的模式和/或文本的歧義。剖析引擎326可以基于統(tǒng)計分析來生成包括統(tǒng)計信息的元數(shù)據(jù)。當模式被識別時,剖析引擎326可以確定關于每個不同模式的統(tǒng)計信息(例如,模式度量),以消除模式之間的歧義。統(tǒng)計信息可以包括對于被識別出的不同模式的標準偏差。包括統(tǒng)計信息的元數(shù)據(jù)可以被提供給數(shù)據(jù)豐富化服務302的其它部件,諸如推薦引擎308。例如,元數(shù)據(jù)可以被提供給推薦引擎308,以使得推薦引擎308能夠基于識別出的(一個或多個)模式確定用于數(shù)據(jù)的豐富化的推薦。
推薦引擎308可以使用模式來查詢知識服務310,以獲得關于模式的附加信息。知識服務310可以包括或可以訪問一個或多個知識源340。知識源可以包括由網站、web服務、策展知識存儲和其它源發(fā)布的公開可用的信息。
剖析引擎326可以執(zhí)行統(tǒng)計分析,以消除數(shù)據(jù)中識別出的模式之間的歧義。例如,由剖析引擎326分析的數(shù)據(jù)可以被評估,以針對數(shù)據(jù)中識別出的每個不同模式計算模式度量(例如,數(shù)據(jù)中不同模式的統(tǒng)計頻率)。模式度量的集合中的每一個度量是針對識別出的模式的不同模式計算的。剖析引擎326可以確定為不同模式計算的模式度量之間的差異。識別出的模式之一可以基于該差異來選擇。例如,基于數(shù)據(jù)中的模式的頻率,一個模式可以與另一個模式消除歧義。在另一個例子中,其中數(shù)據(jù)由具有多個不同格式的日期組成,每個格式與不同的模式對應,剖析引擎326除了規(guī)格化之外還可以將日期轉換為標準格式,然后可以為每個格式確定與不同模式的標準偏差。在這個例子中,剖析引擎326可以統(tǒng)計地將數(shù)據(jù)中的格式之間的歧義消除為具有最低標準偏差的格式??梢赃x擇與具有最低標準偏差的數(shù)據(jù)的格式對應的模式作為數(shù)據(jù)的最佳模式。
剖析引擎326可以確定其識別的模式的分類。剖析引擎326可以與知識服務310通信,以確定識別出的模式是否可以在知識域中被分類。知識服務310可以基于本文所述的技術(諸如匹配技術和相似性分析)來確定與數(shù)據(jù)相關聯(lián)的一個或多個可能的域。知識服務310可以向剖析引擎326提供可能類似于被識別為具有模式的數(shù)據(jù)的一個或多個域的分類。知識服務310可以為由知識服務310識別的每個域提供指示與該域的相似程度的相似性度量。本文公開的用于相似性度量分析和評分的技術可以由推薦引擎308應用,以確定由剖析引擎326處理的數(shù)據(jù)的分類。由剖析引擎326生成的元數(shù)據(jù)可以包括關于知識域的信息(如果有任何信息適用的話)以及指示與由剖析引擎326分析的數(shù)據(jù)的相似程度的度量。
剖析引擎326可以執(zhí)行統(tǒng)計分析,以消除數(shù)據(jù)中識別出的文本的歧義,而不管在數(shù)據(jù)中是否識別出模式。文本可以是模式的一部分,并且文本的分析可以被用來進一步識別模式(如果有任何模式可以被識別的話)。剖析引擎326可以請求知識服務310對文本執(zhí)行域分析,以確定文本是否可以被分類到一個或多個域中。知識服務310可以操作,以提供關于適用于正被分析的文本的一個或多個域的信息。由知識服務310執(zhí)行以確定域的分析可以利用本文所述的技術(諸如被用來確定用于數(shù)據(jù)的域的相似性分析)來執(zhí)行。
在一些實施例中,剖析引擎326可以識別數(shù)據(jù)集中的文本數(shù)據(jù)。文本數(shù)據(jù)可以與實體集合中識別出的每個實體對應。可以為識別出的每個實體確定分類。剖析引擎326可以請求知識服務來識別用于實體的分類。在確定用于實體集合(例如,列中的實體)的分類集合時,剖析引擎326可以計算度量集合(“分類度量”),以消除該分類集合之間的歧義??梢葬槍Ψ诸惣现械牟煌诸悂碛嬎愣攘考现械拿恳粋€。剖析引擎326可以通過將它們彼此比較來統(tǒng)計地消除度量集合的歧義,以確定哪個分類最接近地表示實體集合。實體集合的分類可以基于表示實體集合的分類來選擇。
利用知識源340,知識服務310可以在上下文中匹配由剖析引擎326識別出的模式。知識服務310可以比較數(shù)據(jù)中識別出的模式(或者,如果是文本的話就是該數(shù)據(jù))與用于由知識源存儲的不同實體的實體信息。實體信息可以利用知識服務310從一個或多個知識源340獲得。已知實體的例子可以包括社會安全號、電話號碼、地址、專有名稱或其它個人信息??梢詫?shù)據(jù)與用于不同實體的實體信息進行比較,以基于識別出的模式確定是否存在與一個或多個實體的匹配。例如,知識服務310可以將模式“XXX-XX-XXXX”與美國社會安全號的格式匹配。此外,知識服務310可以確定社會安全號碼是受保護的或敏感信息,其公開與各種懲罰相關聯(lián)。
在一些實施例中,剖析引擎326可以執(zhí)行統(tǒng)計分析,以消除在為由剖析引擎326處理的數(shù)據(jù)識別出的多個分類之間的歧義。例如,當文本被分類為具有多個域時,剖析引擎326可以處理數(shù)據(jù),以統(tǒng)計地確定由知識服務310確定的適當分類。分類的統(tǒng)計分析可以被包括在由剖析引擎326生成的元數(shù)據(jù)中。
除了模式識別之外,剖析引擎326還可以統(tǒng)計地分析數(shù)據(jù)。剖析引擎326可以表征大量數(shù)據(jù)的內容,并且可以提供關于數(shù)據(jù)的全局統(tǒng)計以及數(shù)據(jù)內容的按列分析:例如,其值、模式、類型、語法、語義及其統(tǒng)計性質。例如,數(shù)值數(shù)據(jù)可以被統(tǒng)計地分析,包括例如N、平均值、最大值、最小值、標準偏差、偏斜度、峰度和/或20柱直方圖(如果N大于100并且唯一值大于K)。內容可以被分類,用于后續(xù)分析。
在一個例子中,全局統(tǒng)計可以包括但不限于行數(shù)、列數(shù)、原始和填充的列數(shù)以及它們如何變化、不同的和重復的行、標題信息、按類型或子類型分類的列數(shù),以及具有安全或其它警報的列數(shù)。特定于列的統(tǒng)計可以包括填充行(例如,K個最頻繁、K個最不頻繁的唯一值、唯一模式,以及(當適用時)類型)、頻率分布、文本度量(例如,文本長度、標記計數(shù)、標點符號、基于模式的標記和各種有用的導出文本性質的最小值、最大值、平均值)、標記度量、數(shù)據(jù)類型和子類型、數(shù)值列的統(tǒng)計分析、在具有大多數(shù)非結構化數(shù)據(jù)的列中找到的L個最可能/最不可能的簡單或復合項或n元語法(n-grams),以及通過這種樸素詞典匹配的參考知識類別、日期/時間模式發(fā)現(xiàn)和格式化、參考數(shù)據(jù)匹配,以及估算的列標題標簽。
結果所得的簡檔可以被用來對內容進行分類,以供后續(xù)分析,以直接或間接地推薦數(shù)據(jù)的變換、識別數(shù)據(jù)源之間的關系,并且在應用基于先前獲取的數(shù)據(jù)的簡檔設計的一組變換之前驗證新獲取的數(shù)據(jù)。
由剖析引擎326產生的元數(shù)據(jù)可以被提供給推薦引擎308,以生成一個或多個變換推薦。與識別出的數(shù)據(jù)模式匹配的實體可以被用來豐富化數(shù)據(jù),那些通過分類識別出的實體是利用知識服務310確定的。在一些實施例中,針對(to)識別出的模式(例如,城市和州)的數(shù)據(jù)可以被提供給知識服務310,以從知識源340獲得與識別出的模式匹配的實體。例如,知識服務310可以被調用,以調用與識別出的模式對應的例程(例如,getCities()和getStates())來接收實體信息。從知識服務310接收的信息可以包括具有適當拼寫的實體信息(例如,適當拼寫的城市和州)的實體的列表(例如,規(guī)范列表)。與從知識服務310獲得的匹配實體對應的實體信息可以被用來豐富化數(shù)據(jù),例如,規(guī)格化數(shù)據(jù)、修復數(shù)據(jù)和/或增強數(shù)據(jù)。
在一些實施例中,推薦引擎308可以基于從知識服務310接收的匹配的模式來生成變換推薦。例如,對于包括社會安全號的數(shù)據(jù),推薦引擎可以推薦使條目模糊的變換(例如,截斷、隨機化或刪除條目的全部或一部分)。變換的其它例子可以包括重新格式化數(shù)據(jù)(例如,重新格式化數(shù)據(jù)中的日期)、重命名數(shù)據(jù)、豐富化數(shù)據(jù)(例如,插入值或將類別與數(shù)據(jù)相關聯(lián))、搜索和替換數(shù)據(jù)(例如,校正數(shù)據(jù)的拼寫)、改變字母的大小寫(例如,從大寫改變成小寫),以及基于黑名單或白名單術語的過濾,在一些實施例中,可以為特定用戶定制推薦,使得推薦在高層級描述什么數(shù)據(jù)修復或豐富化是可用的。例如,模糊化推薦可以指示條目的前五位數(shù)字將被刪除。在一些實施例中,可以基于過去的用戶活動生成推薦(例如,提供先前當敏感數(shù)據(jù)被識別出時使用的推薦的變換)。
變換引擎322可以基于由推薦引擎308提供的推薦來生成變換腳本(例如,模糊社會安全號的腳本)。變換腳本可以執(zhí)行變換數(shù)據(jù)的操作。在一些實施例中,變換腳本可以實現(xiàn)數(shù)據(jù)的線性變換。線性變換可以通過使用API(例如,Spark API)來實現(xiàn)。變換動作可以由利用API調用的操作來執(zhí)行。變換腳本可以基于利用API定義的變換操作來配置。操作可以基于推薦來執(zhí)行。
在一些實施例中,變換引擎322可以自動生成變換腳本,以修復在數(shù)據(jù)源處的數(shù)據(jù)。修復可以包括自動重命名列、替換列內的字符串或模式、修改文本大小寫、重新格式化數(shù)據(jù),等等。例如,變換引擎322可以基于來自推薦引擎308的推薦來生成變換日期列的變換腳本,以修改或轉換列中日期的格式??梢詮亩鄠€推薦中選擇推薦,以豐富化或修改來自由剖析引擎326處理的數(shù)據(jù)源的數(shù)據(jù)。推薦引擎308可以基于由剖析引擎326提供的元數(shù)據(jù)或簡檔來確定推薦。元數(shù)據(jù)可以指示針對不同格式識別的日期列(例如,MM/DD/YYYY、DD-MM-YY等)。由變換引擎322生成的變換腳本可以例如基于來自變換引擎322的建議來拆分和/或連接列。變換引擎322還可以基于從剖析引擎326接收的數(shù)據(jù)源簡檔來移除列(例如,以移除空列或包括用戶不期望的信息的列)。
變換腳本可以利用描述關于一個或多個算法的操作的語法來定義(例如,Spark運算符樹)。照此,語法可以描述運算符樹轉導(transduction)/縮減。變換腳本可以基于所選擇的推薦來生成或者由用戶通過圖形用戶界面交互地請求。參考圖4A、4B、4C和4D描述推薦的變換的例子?;谟捎脩敉ㄟ^圖形用戶界面指定的變換操作,變換引擎322根據(jù)這些操作執(zhí)行變換操作??梢韵蛴脩敉扑]變換操作,以豐富化數(shù)據(jù)集。
如下面進一步描述的,客戶端304可以顯示描述或以其它方式指示每個所推薦的變換的推薦。當用戶選擇要運行的變換腳本時,除了被分析以確定推薦的(一個或多個)變換的數(shù)據(jù)之外,所選擇的變換腳本還可以在來自數(shù)據(jù)源的所有或更多數(shù)據(jù)上運行。然后,結果所得的變換的數(shù)據(jù)可以由發(fā)布引擎324發(fā)布到一個或多個數(shù)據(jù)目標330。在一些實施例中,數(shù)據(jù)目標可以是與數(shù)據(jù)源不同的數(shù)據(jù)存儲。在一些實施例中,數(shù)據(jù)目標可以是與數(shù)據(jù)源相同的數(shù)據(jù)存儲。數(shù)據(jù)目標330可以包括公共云存儲服務332、私有云存儲服務334、各種其它云服務336、URL或基于web的數(shù)據(jù)目標338,或任何其它可訪問的數(shù)據(jù)目標。
在一些實施例中,推薦引擎308可以向知識服務310查詢與識別出的平臺相關的附加數(shù)據(jù)。例如,在數(shù)據(jù)包括城市名稱列的情況下,可以識別相關數(shù)據(jù)(例如,位置、州、人口、國家等),并且可以給出用相關數(shù)據(jù)豐富化數(shù)據(jù)集的推薦。下面關于圖4A-4D示出了通過用戶界面給出推薦和變換數(shù)據(jù)的例子。
知識服務310可以實現(xiàn)匹配方法,以將數(shù)據(jù)與通過知識服務310可用的參考數(shù)據(jù)進行比較。知識服務310可以包括或可以訪問一個或多個知識源340。知識源可以包括由網站發(fā)布的公開可用的信息、web服務、策展知識存儲,以及其它源。知識服務310可以實現(xiàn)確定兩個或更多個數(shù)據(jù)集之間的語義相似性的方法。這也可以被用來將用戶的數(shù)據(jù)與通過知識服務310可用的參考數(shù)據(jù)匹配。知識服務310可以執(zhí)行如本公開內容中所述的相似性度量分析。由知識服務器310執(zhí)行的技術可以包括在本公開內容中描述的那些技術,包括由通過引用被結合于此的參考文獻描述的技術。
知識服務310可以執(zhí)行操作,以實現(xiàn)自動化的數(shù)據(jù)分析。在一些實施例中,知識服務310可以使用無人監(jiān)督的機器學習工具(諸如Word2Vec)來分析輸入數(shù)據(jù)集。Word2Vec可以接收文本輸入(例如,來自大數(shù)據(jù)源的文本語料庫)并且生成每個輸入單詞的向量表示。然后結果所得的模型可以被用來識別單詞的任意輸入集合如何緊密相關。例如,利用大文本語料庫(例如,新聞聚合器或其它數(shù)據(jù)源)構建的Word2Vec模型可以被用來確定用于每個輸入單詞的對應數(shù)值向量。當分析這些向量時,可以確定向量在向量空間內“接近”(在歐幾里德意義上)。雖然這可以識別輸入單詞是相關的(例如,識別在向量空間內緊密地聚類在一起的輸入單詞),但是Word2Vec可能不能用來識別用于單詞的描述性標簽(例如,“輪胎制造商”)。知識服務310可以利用策展知識源340(例如,來自馬克斯普朗克信息學研究所(Max Planck Institute for Informatics)的YAGO)實現(xiàn)對相關單詞進行分類的操作。利用來自知識源340的信息,知識服務310可以向輸入數(shù)據(jù)集添加附加的相關數(shù)據(jù)。
在一些實施例中,知識服務310可以實現(xiàn)執(zhí)行三元組建模以進一步細化相關項的分類的操作。三元組建模可以被用來比較單詞集,以用于類別識別。輸入數(shù)據(jù)集合可以利用相關項被增強。
利用可以包括添加的數(shù)據(jù)的輸入數(shù)據(jù)集,知識服務310可以實現(xiàn)匹配方法(例如,圖匹配方法),以將來自增強的數(shù)據(jù)集的單詞與來自知識源340的數(shù)據(jù)的類別進行比較。知識服務310可以實現(xiàn)確定增強的數(shù)據(jù)集與知識源340中每個類別之間的語義相似性以識別該類別的名稱的方法。類別的名稱可以基于最高相似性度量來選擇。相似性度量可以基于數(shù)據(jù)集中匹配類別名稱的項的數(shù)量來計算。類別可以基于項匹配的最大數(shù)量來選擇,其中項匹配基于相似性度量。下面進一步描述為相似性分析和分類執(zhí)行的技術和操作。
在一些實施例中,知識服務310可以增強輸入數(shù)據(jù)集并使用來自知識源340的信息向輸入數(shù)據(jù)集添加附加的相關數(shù)據(jù)。例如,數(shù)據(jù)分析工具(諸如Word2Vec)可以被用來從知識源(諸如來自新聞聚合服務的文本語料庫)識別與輸入數(shù)據(jù)集中包括的那些單詞語義相似的單詞。在一些實施例中,知識服務310可以實現(xiàn)三元組建模,以預處理從知識源340(諸如YAGO)獲得的數(shù)據(jù),以按類別生成單詞的加索引的表。知識服務310然后可以為增強的數(shù)據(jù)集中的每個單詞創(chuàng)建三元組并且將該單詞與來自加索引的知識源340的單詞匹配。
利用增強的數(shù)據(jù)集(或三元組匹配的增強的數(shù)據(jù)集),知識服務310可以將來自增強的數(shù)據(jù)集的單詞與來自知識源340的數(shù)據(jù)的類別進行比較。例如,知識源340中的每個數(shù)據(jù)類別可以被表示為樹結構,其中根節(jié)點表示類別,并且每個葉節(jié)點表示屬于該類別的不同單詞。知識服務310可以實現(xiàn)確定增強的數(shù)據(jù)集與知識源510中的每個類別之間的語義相似性的方法(例如,Jaccard索引或其它相似性度量)。匹配增強的數(shù)據(jù)集(例如,具有最高相似性度量)的類別的名稱然后可以作為標簽應用到輸入數(shù)據(jù)集。
在一些實施例中,知識服務310可以通過確定數(shù)據(jù)集的交集的大小與數(shù)據(jù)集的并集的大小之比來確定兩個數(shù)據(jù)集A和B的相似性。例如,相似性度量可以基于1)數(shù)據(jù)集(例如,增強的數(shù)據(jù)集)和類別的交集的大小與2)它們的并集的大小之比來計算。為了數(shù)據(jù)集與類別的比較,可以計算相似性度量,如上面所指示的。照此,“最佳匹配”可以基于比較相似性度量來確定。用于比較的數(shù)據(jù)集可以通過用與利用相似性度量為其確定最佳匹配的類別對應的標簽來增強,從而進行豐富化。
如上所述,可以附加地或替代Jaccard索引使用其它相似性度量,到。本領域的普通技術人員將認識到,任何相似性度量都可以與上述技術一起使用。替代的相似性度量的一些例子包括但不限于:Dice-索引;Tversky索引;Tanimoto度量;以及余弦相似性度量。
在一些實施例中,知識服務310可以利用數(shù)據(jù)分析工具(諸如Word2Vec)來計算指示來自知識源340的數(shù)據(jù)與輸入數(shù)據(jù)之間的匹配程度的精細度量(例如,得分),其中輸入數(shù)據(jù)可以用來自知識源的數(shù)據(jù)增強。得分(“知識得分”)可以提供關于輸入數(shù)據(jù)集與進行比較的類別之間的相似程度的更多知識。知識得分可以使數(shù)據(jù)豐富化服務302能夠選擇最能表示輸入數(shù)據(jù)的類別名稱。
在上述技術中,知識服務310可以對輸入數(shù)據(jù)集中的項與知識源340中的候選類別(例如,屬(genus))名稱的匹配數(shù)進行計數(shù)。比較的結果可以產生表示整數(shù)類型(whole integer)的值。照此,雖然該值指示各項之間的匹配程度,但是可能不指示輸入數(shù)據(jù)集與知識源中的不同項之間的匹配程度。
知識服務310可以利用Word2Vec來確定知識源中的每個項(例如,用于屬的項)與輸入數(shù)據(jù)(例如,種(species))的項的比較的相似性。利用Word2Vec,知識服務310可以計算輸入數(shù)據(jù)集與從知識源獲得的一個或多個項之間的相似性度量(例如,余弦相似性或距離)。余弦相似性可以被計算為從知識源獲得的項(例如,域或屬)的數(shù)據(jù)集與項的輸入數(shù)據(jù)集之間的余弦角??梢砸耘cTanimoto度量類似的方式計算余弦相似性度量。通過基于余弦相似性計算相似性度量,輸入數(shù)據(jù)集中的每個項可以被認為是整數(shù)值整數(shù)的分數(shù),諸如指示該項和候選類別之間的相似性百分比的值。例如,計算輪胎制造商與姓氏之間的相似性度量可能導致相似性為0.3,而輪胎制造商與公司名稱之間的相似性度量可能導致相似性為0.5。表示相似性度量的非整數(shù)值可以緊密比較(close compared),以便為緊密匹配的類別名稱提供更高的準確性?;谧罱咏?的相似性度量,緊密匹配的類別名稱可以被選作最適用的類別名稱。在上面基于相似性度量的例子中,公司名稱更可能是正確的類別。照此,知識服務310可以將“公司”而不是“姓氏”與用戶提供的包含輪胎制造商的數(shù)據(jù)列相關聯(lián)。
知識服務310可以確定關于知識組(例如,域或類別)的信息。關于知識組的信息可以在圖形用戶界面中給出。關于知識域的信息可以包括指示知識域與項的輸入數(shù)據(jù)集之間的相似性的測量的度量(例如,知識得分)。輸入數(shù)據(jù)可以與來自知識源340的數(shù)據(jù)進行比較。輸入數(shù)據(jù)集可以與由用戶指定的數(shù)據(jù)集的數(shù)據(jù)列對應。知識得分可以指示輸入數(shù)據(jù)集與由知識源提供的一個或多個項之間的相似性的測量,每個項與知識域對應。數(shù)據(jù)列可以包括可能屬于知識域的項。
在至少一個實施例中,知識服務310可以確定更準確的匹配得分。得分可以與利用本文公開的技術(包括結合于此的參考文獻)利用評分公式計算的值對應。評分公式可以確定兩個數(shù)據(jù)集(例如,輸入數(shù)據(jù)集和從知識源獲得的域(例如,候選類別)中的項)之間的語義相似性??梢赃x擇匹配得分對于其指示最佳匹配(例如,最高匹配得分)的域作為與輸入數(shù)據(jù)集具有最大相似性的域。照此,輸入數(shù)據(jù)集中的項可以與作為類別的域名相關聯(lián)。
評分公式可以應用到輸入數(shù)據(jù)集和域(例如,從知識源獲得的項的類別),以確定指示輸入數(shù)據(jù)與域之間的匹配的測量的得分。域可以具有一個或多個項,該一個或多個項共同定義該域。得分可以被用來確定輸入數(shù)據(jù)集與哪個域最相似。輸入數(shù)據(jù)集可以與與其最相似的域的描述輸入數(shù)據(jù)集的項相關聯(lián)。
在一些實施例中,用戶界面306可以基于由剖析引擎326提供的元數(shù)據(jù)來生成一個或多個圖形可視化。如上面所解釋的,由剖析引擎326提供的數(shù)據(jù)可以包括指示關于已經由剖析引擎326處理的數(shù)據(jù)的度量的統(tǒng)計信息。剖析引擎326的度量的圖形可視化的例子在圖5A-5D中示出。圖形可視化可以包括圖形儀表板(例如,可視化儀表板)。圖形儀表板可以指示多個度量,這多個度量中的每一個指示數(shù)據(jù)相對于數(shù)據(jù)被剖析的時間的實時度量。圖形可視化可以在用戶界面中顯示。例如,生成的圖形可視化可以被發(fā)送到客戶端設備,以使客戶端設備在客戶端設備處的用戶界面中顯示圖形可視化。在一些實施例中,圖形可視化可以提供剖析結果。
此外,剖析引擎326的結構分析使得推薦引擎能夠更好地將其查詢集中到知識服務310,從而提高處理速度并減少系統(tǒng)資源上的負荷。例如,這個信息可以被用來限制被查詢的知識的范圍,使得知識服務310不嘗試將數(shù)值數(shù)據(jù)列與地名匹配。
圖4A-4D繪出了根據(jù)本發(fā)明實施例的、提供交互式數(shù)據(jù)豐富化的用戶界面的例子。如圖4A中所示,示例交互式用戶界面400可以顯示變換腳本402、推薦的變換404,以及被分析/變換的數(shù)據(jù)406的至少一部分。在面板402中列出的變換腳本可以包括指示變換已經應用到數(shù)據(jù)并且在面板406中可見。每個變換腳本402可以用對于商業(yè)用戶可理解的簡單的聲明性語言編寫。面板402中列出的變換腳本可以自動應用到數(shù)據(jù)并且反映在交互式用戶界面400中顯示的數(shù)據(jù)406的部分中。例如,面板402中列出的變換腳本包括重命名列,以描述其內容。交互式用戶界面400中所示的列408已經根據(jù)變換腳本402被重命名(例如,列0003現(xiàn)在被命名為date_time_02,列0007現(xiàn)在被命名為“url”等)。但是,推薦的變換404未被自動應用到用戶的數(shù)據(jù)。
如圖4B中所示,用戶可以在推薦面板404中查看推薦,并且基于該推薦,識別要改變的數(shù)據(jù)。例如,推薦410包括將“Col_0008重命名為城市”的推薦。因為該推薦被寫成使得商業(yè)用戶可以理解它(而不是在例如代碼或偽代碼中),所以對應的數(shù)據(jù)412可以容易地被用戶識別。如圖4B中所示,數(shù)據(jù)412包括一列字符串(在用戶界面400中表示為一行)。剖析引擎326可以分析該數(shù)據(jù),以確定其包括兩個或更少單詞(或標記)的字符串。這種模式可以被提供給可以查詢知識服務310的推薦引擎318。在這種情況下,知識服務310已經將數(shù)據(jù)模式與城市名稱相匹配,并且生成推薦408以相應地重命名該列。
在一些實施例中,面板404中列出的變換可能已經在用戶的指示下(例如,響應于應用變換的指令)應用或可能已被自動應用。例如,在一些實施例中,知識服務310可以為給定的模式匹配提供置信得分??梢栽谕扑]引擎318中設置閾值,使得自動應用具有大于閾值的置信度得分的匹配。
為了接受推薦,用戶可以選擇與推薦相關聯(lián)的接受圖標414(在這個例子中為向上箭頭圖標)。如圖4C中所示,這將被接受的推薦414移動到變換腳本面板402,并且自動地將該變換應用到對應的數(shù)據(jù)416。例如,在圖4C中所示的實施例中,Col_0008現(xiàn)在已經根據(jù)所選擇的變換被重命名為“城市”。
在一些實施例中,數(shù)據(jù)豐富化服務302可以推薦要添加到數(shù)據(jù)源的附加列數(shù)據(jù)。如圖4D中所示,繼續(xù)城市的例子,變換418已經被接受,以用包括城市人口和城市位置細節(jié)(包括經度和緯度)的新列來豐富化數(shù)據(jù)。當被選擇時,用戶的數(shù)據(jù)集被豐富化,以包括這個附加信息420。數(shù)據(jù)集現(xiàn)在以全面和自動化的方式包括先前不對用戶可用的信息。用戶的數(shù)據(jù)集現(xiàn)在可以被用來產生與數(shù)據(jù)集中的其它數(shù)據(jù)相關聯(lián)的位置和人口區(qū)域的全國地圖(例如,這可以與公司的網站交易相關聯(lián))。
圖5A-5D繪出了根據(jù)本發(fā)明實施例的、提供數(shù)據(jù)集的可視化的各種用戶界面的例子。
圖5A繪出了根據(jù)本發(fā)明實施例的、提供數(shù)據(jù)集的可視化的用戶界面的例子。如圖5A在所示,示例交互式用戶界面500可以顯示簡檔摘要502(“簡檔結果”)、變換腳本504、推薦的變換506以及被分析/變換的數(shù)據(jù)508的至少一部分。在面板504中列出的變換可以包括已經應用到數(shù)據(jù)并且在面板508中可見的變換。
簡檔摘要502可以包括全局統(tǒng)計(例如,總的行和列)以及特定于列的統(tǒng)計。特定于列的統(tǒng)計可以從由數(shù)據(jù)豐富化服務302處理的數(shù)據(jù)的分析中生成。在一些實施例中,特定于列的統(tǒng)計可以基于由數(shù)據(jù)豐富化服務302對數(shù)據(jù)處理的分析確定的列信息來生成。
簡檔摘要502可以包括美國的地圖(例如,“熱圖”),其中美國的不同地區(qū)基于從被分析的數(shù)據(jù)508識別出的統(tǒng)計而以不同的顏色示出。統(tǒng)計可以指示那些位置多頻繁地被識別為與數(shù)據(jù)相關聯(lián),在一個說明性例子中,數(shù)據(jù)可以表示在在線零售商的購買交易,其中每筆交易可以與位置相關聯(lián)(例如,基于裝運/付帳單地址,或者基于記錄的IP地址)。簡檔摘要502可以基于對表示購買交易的數(shù)據(jù)的處理來指示交易的位置。在一些實施例中,可視化可以基于用戶輸入來修改,以幫助用戶搜索數(shù)據(jù)并找到有用的相關性。這些特征在下面進一步描述。
圖5B、5C和5D示出了用于數(shù)據(jù)集的交互式數(shù)據(jù)豐富化的結果的例子。圖5B示出了可以包括簡檔度量面板542的用戶界面540。面板542可以示出與所選擇的數(shù)據(jù)源相關聯(lián)的度量的摘要。在一些實施例中,如圖5C中所示,簡檔度量面板560可以包括用于特定列562的度量,而不是整個數(shù)據(jù)集。例如,用戶可以在用戶的客戶端設備上選擇特定列,并且可以顯示對應的列簡檔564。在這個例子中,剖析器指示列0008與知識源中的已知城市具有92%的匹配。在一些實施例中,高概率可以使變換引擎將col_0008自動標記為“城市”。
圖5D示出了包括全局度量582(例如,與整個數(shù)據(jù)集相關的度量)和特定于列的可視化584的簡檔度量面板580。特定于列的可視化584可以由用戶選擇和/或被用來導航數(shù)據(jù)(例如,通過點擊、拖動、滑動等)。上述例子表示對小數(shù)據(jù)集的簡化變換。類似和更復雜的處理也可以自動應用到包括數(shù)十億條記錄的大數(shù)據(jù)集。
參考圖6,各個實施例可以被描述為被繪制為流程圖、流圖、數(shù)據(jù)流程圖、結構圖或框圖的處理。雖然流程圖可以將操作描述為順序處理,但是許多操作可以并行或并發(fā)地執(zhí)行。此外,操作的次序可以重新布置。處理在其操作完成時終止,但可以具有未包括在附圖中的附加步驟。處理可以與方法、函數(shù)、過程、子例程、子程序等對應。當處理與函數(shù)對應時,其終止可以與函數(shù)返回到調用函數(shù)或主函數(shù)對應。
圖6中繪出的處理可以在由一個或多個處理單元(例如,處理器核心)執(zhí)行的軟件(例如,代碼、指令、程序)、硬件或其組合中實現(xiàn)。軟件可以存儲在存儲器中(例如,在存儲器設備上、在非暫態(tài)計算機可讀存儲介質上)。圖6中的處理步驟的特定系列并不意在進行限制。其它步驟序列也可以根據(jù)替代實施例執(zhí)行。例如,本發(fā)明的替代實施例可以以不同的次序執(zhí)行上面概述的步驟。而且,圖6中所示的各個步驟可以包括多個子步驟,這些子步驟可以以對各個步驟適當?shù)母鞣N順序執(zhí)行。此外,可以依賴于特定應用而添加或移除附加步驟。本領域普通技術人員將認識到許多變化、修改和替代。
在一些實施例的一方面,圖6的流程圖中的每個處理可以由一個或多個處理單元執(zhí)行。處理單元可以包括一個或多個處理器,包括單核或多核處理器、一個或多個處理器核或其組合。在一些實施例中,處理單元可以包括一個或多個專用協(xié)處理器,諸如圖形處理器、數(shù)字信號處理器(DSP)等。在一些實施例中,可以利用定制電路(諸如專用集成電路(ASIC)或現(xiàn)場可編程門陣列(FPGA))來實現(xiàn)一些或全部處理單元。
圖6繪出了根據(jù)本發(fā)明實施例的數(shù)據(jù)豐富化的方法的流程圖。在一些實施例中,圖6中繪出的處理可以由數(shù)據(jù)豐富化服務302的計算系統(tǒng)實現(xiàn)。在方框602,計算系統(tǒng)的處理單元可以識別來自一個或多個數(shù)據(jù)源的數(shù)據(jù)中的模式。在方框604,計算系統(tǒng)的處理單元可以將模式與從知識服務獲得的實體信息進行匹配。實體信息可以指示關于實體的信息。例如,實體可以是地址、商業(yè)名稱、位置、人名、識別號等。如上所述,剖析引擎可以利用知識服務和一個或多個知識源來識別數(shù)據(jù)中的模式。實體信息可以以一個或許多類型的數(shù)據(jù)結構的組合從知識服務獲得,包括但不限于數(shù)組、記錄、關系數(shù)據(jù)庫表、散列表、鏈表或其它類型的數(shù)據(jù)結構。
在方框606,計算系統(tǒng)的處理單元可以基于實體信息為數(shù)據(jù)生成一個或多個變換腳本。例如,可以確定變換腳本,用于變換與匹配實體信息的那些模式對應的數(shù)據(jù)。變換數(shù)據(jù)可以包括更新、添加或刪除數(shù)據(jù)的部分。變換腳本可以包括刪除數(shù)據(jù)、重新格式化(例如,修改)數(shù)據(jù)和/或豐富化(例如,添加)數(shù)據(jù)的腳本。與實體信息對應的實體可以被用來確定要變換什么數(shù)據(jù)以及如何變換數(shù)據(jù)。可以基于數(shù)據(jù)的一個或多個屬性在數(shù)據(jù)中識別實體信息。在方框608,計算系統(tǒng)的處理單元可以生成與一個或多個變換腳本對應的一個或多個推薦。在方框610,計算系統(tǒng)的處理單元可以在用戶界面中顯示一個或多個推薦。
在方框612,計算系統(tǒng)的處理單元可以接收基于一個或多個推薦的變換指令。變換指令可以指示如何基于所選擇的一個或多個推薦來修改和/或豐富化從一個或多個數(shù)據(jù)源接收的數(shù)據(jù)。在一些實施例中,變換指令包括基于實體信息重命名至少一列數(shù)據(jù)的變換指令。在一些實施例中,可以接收另外的變換指令,以將至少一列數(shù)據(jù)重命名為默認名稱。默認名稱可以包括預定的名稱。默認名稱可以是當無法確定或未定義數(shù)據(jù)列的名稱時預定義的任何名稱。變換指令可以包括基于實體信息重新格式化至少一列數(shù)據(jù)的變換指令和基于實體信息模糊化至少一列數(shù)據(jù)的變換指令。在一些實施例中,變換指令可以包括用于添加基于實體信息從知識服務獲得的一列或多列數(shù)據(jù)的豐富化指令。
在方框614,計算系統(tǒng)的處理單元可以基于變換指令變換數(shù)據(jù)。如上面所解釋,變換指令指示如何豐富化和/或修改數(shù)據(jù)??梢酝ㄟ^執(zhí)行諸如本文公開的操作來變換數(shù)據(jù),用于基于所選擇的推薦來豐富化和/或修改數(shù)據(jù)。例如,對于重新格式化數(shù)據(jù)的變換指令,可以通過用于重新格式化數(shù)據(jù)的修改來變換數(shù)據(jù)。照此,可以重新格式化變換的數(shù)據(jù)。在方框616,計算系統(tǒng)的處理單元可以基于變換指令將變換的數(shù)據(jù)發(fā)布到一個或多個數(shù)據(jù)目標。流程圖可以在618結束。
圖7繪出了用于實現(xiàn)實施例的分布式系統(tǒng)700的簡化圖。在所示的實施例中,分布式系統(tǒng)700包括一個或多個客戶端計算設備702、704、706和708,其被配置為通過一個或多個網絡710執(zhí)行和操作客戶端應用,諸如web瀏覽器、專有客戶端(例如Oracle Forms)等。服務器712可以經由網絡710與遠程客戶端計算設備702、704、706和708通信地耦合。
在各種實施例中,服務器712可以適于運行一個或多個服務或軟件應用,諸如提供文檔(例如,網頁)分析和與修改相關的處理的服務和應用。在某些實施例中,服務器712還可以提供其它服務,或者軟件應用可以包括非虛擬和虛擬環(huán)境。在一些實施例中,這些服務可以作為基于web的或云服務或者在軟件即服務(SaaS)模型下提供給客戶端計算設備702、704、706和/或708的用戶。操作客戶端計算設備702、704、706和/或708的用戶可以進而利用一個或多個客戶端應用與服務器712交互,以利用由這些部件提供的服務。
在圖7所繪出的配置中,系統(tǒng)700的軟件部件718、720和722被示為在服務器712上實現(xiàn)。在其它實施例中,系統(tǒng)700的一個或多個部件和/或由這些部件提供的服務也可以由客戶端計算設備702、704、706和/或708中的一個或多個實現(xiàn)。操作客戶端計算設備的用戶然后可以利用一個或多個客戶端應用來使用由這些部件提供的服務。這些部件可以用硬件、固件、軟件或其組合實現(xiàn)。應當理解,各種不同的系統(tǒng)配置是可能的,其可以與分布式系統(tǒng)700不同。因此,圖7中所示的實施例是用于實現(xiàn)實施例系統(tǒng)的分布式系統(tǒng)的一個例子,并且不意在進行限制。
客戶端計算設備702、704、706和/或708可以包括各種類型的計算系統(tǒng)。例如,客戶端計算設備可以包括便攜式手持設備(例如,蜂窩電話、計算平板、個人數(shù)字助理(PDA))或可穿戴設備(例如,Google頭戴式顯示器),其運行諸如Microsoft Windows和/或諸如iOS、Windows Phone、Android、BlackBerry 8,Palm OS等各種移動操作系統(tǒng)的軟件。設備可以支持各種應用,諸如各種互聯(lián)網相關的應用、電子郵件、短消息服務(SMS)應用,并且可以使用各種其它通信協(xié)議??蛻舳擞嬎阍O備還可以包括通用個人計算機,作為例子,運行各種版本的MicrosoftApple和/或Linux操作系統(tǒng)的個人計算機和/或膝上型計算機??蛻舳擞嬎阍O備可以是運行任何各種商用的或類UNIX操作系統(tǒng)(包括但不限于諸如像Google Chrome OS的各種GNU/Linux操作系統(tǒng))的工作站計算機??蛻舳擞嬎阍O備還可以包括能夠在(一個或多個)網絡710上通信的電子設備,諸如瘦客戶端計算機、啟用互聯(lián)網的游戲系統(tǒng)(例如,具有或不具有手勢輸入設備的Microsoft游戲控制臺)和/或個人消息傳送設備。
雖然圖7中的分布式系統(tǒng)700被示為具有四個客戶端計算設備,但是可以支持任何數(shù)量的客戶端計算設備。其它設備,諸如具有傳感器的設備等,可以與服務器712交互。
分布式系統(tǒng)700中的(一個或多個)網絡710可以是對本領域技術人員熟悉的可以利用任何各種可用協(xié)議支持數(shù)據(jù)通信的任何類型的網絡,其中各種協(xié)議包括但不限于TCP/IP(傳輸控制協(xié)議/互聯(lián)網協(xié)議)、SNA(系統(tǒng)網絡體系架構)、IPX(互聯(lián)網分組交換)、AppleTalk等。僅僅作為例子,(一個或多個)網絡710可以是局域網(LAN)、基于以太網的網絡、令牌環(huán)、廣域網、互聯(lián)網、虛擬網絡、虛擬專用網絡(VPN)、內聯(lián)網、外聯(lián)網、公共交換電話網絡(PSTN)、紅外網絡、無線網絡(例如,在任何電氣和電子協(xié)會(IEEE)802.11協(xié)議套件、和/或任何其它無線協(xié)議下操作的網絡)和/或這些和/或其它網絡的任意組合。
服務器712可以由一個或多個通用計算機、專用服務器計算機(作為例子,包括PC(個人計算機)服務器、服務器、中檔服務器、大型計算機、機架安裝的服務器等)、服務器場、服務器集群或任何其它適當?shù)牟贾煤?或組合組成。服務器712可以包括運行虛擬操作系統(tǒng)的一個或多個虛擬機,或涉及虛擬化的其它計算體系架構。一個或多個靈活的邏輯存儲設備池可以被虛擬化,以維護用于服務器的虛擬存儲設備。虛擬網絡可以由服務器712利用軟件定義的聯(lián)網來控制。在各種實施例中,服務器712可以適于運行在前述公開內容中描述的一個或多個服務或軟件應用。例如,服務器712可以與根據(jù)本公開內容的實施例的用于如上所述執(zhí)行處理的服務器對應。
服務器712可以運行包括以上討論的任何操作系統(tǒng)的操作系統(tǒng),以及任何商用的服務器操作系統(tǒng)。服務器712還可以運行任何各種附加的服務器應用和/或中間層應用,包括HTTP(超文本傳輸協(xié)議)服務器、FTP(文件傳輸協(xié)議)服務器、CGI(公共網關接口)服務器、服務器、數(shù)據(jù)庫服務器等。示例性數(shù)據(jù)庫服務器包括但不限于可從Oracle、Microsoft、Sybase、IBM(國際商業(yè)機器)等商業(yè)獲得的那些數(shù)據(jù)庫服務器。
在一些實現(xiàn)中,服務器712可以包括一個或多個應用,以分析和整合從客戶端計算設備702、704、706和708的用戶接收到的數(shù)據(jù)饋送和/或事件更新。作為例子,數(shù)據(jù)饋送和/或事件更新可以包括但不限于從一個或多個第三方信息源和持續(xù)數(shù)據(jù)流接收到的饋送、更新或實時更新,其可以包括與傳感器數(shù)據(jù)應用、金融報價機、網絡性能測量工具(例如,網絡監(jiān)視和流量管理應用)、點擊流分析工具、汽車流量監(jiān)視等相關的實時事件。服務器712還可以包括經由客戶端計算設備702、704、706和708的一個或多個顯示設備顯示數(shù)據(jù)饋送和/或實時事件的一個或多個應用。
分布式系統(tǒng)700也可以包括一個或多個數(shù)據(jù)庫714和716。這些數(shù)據(jù)庫可以提供用于存儲信息的機制,諸如用戶交互信息、使用模式信息、適應規(guī)則信息以及由本發(fā)明的實施例使用的其它信息。數(shù)據(jù)庫714和716可以駐留在各種位置中。作為例子,數(shù)據(jù)庫714和716中的一個或多個可以駐留在服務器712本地(和/或駐留在其中)的非暫態(tài)存儲介質上??商娲?,數(shù)據(jù)庫714和716可以遠離服務器712,并且經由基于網絡的或專用的連接與服務器712通信。在一組實施例中,數(shù)據(jù)庫714和716可以駐留在存儲區(qū)域網絡(SAN)中。類似地,用于執(zhí)行服務器712所具有的功能的任何必要的文件可以適當?shù)卦诜掌?12本地存儲和/或遠程存儲。在一組實施例中,數(shù)據(jù)庫714和716可以包括適于響應于SQL格式的命令存儲、更新和檢索數(shù)據(jù)的關系數(shù)據(jù)庫,諸如由Oracle提供的數(shù)據(jù)庫。
在一些實施例中,上述文檔分析和修改服務可以被提供為經由云環(huán)境的服務。圖8是根據(jù)本公開內容的實施例、其中服務可以被提供為云服務的系統(tǒng)環(huán)境800的一個或多個部件的簡化框圖。在圖8所示的實施例中,系統(tǒng)環(huán)境800包括可以被用戶用來與提供云服務(包括用于響應于使用模式而動態(tài)修改文檔(例如,網頁)服務)的云基礎設施系統(tǒng)802交互的一個或多個客戶端計算設備804、806和808。云基礎設施系統(tǒng)802可以包括一個或多個計算機和/或服務器,其可以包括以上針對服務器712所描述的那些。
應當理解,圖8中所繪出的云基礎設施系統(tǒng)802可以具有除所繪出的那些之外的其它部件。另外,圖8中所示的實施例僅僅是可以結合本發(fā)明的實施例的云基礎設施系統(tǒng)的一個例子。在一些其它實施例中,云基礎設施系統(tǒng)802可以具有比圖中所示出的更多或更少的部件、可以合并兩個或更多個部件、或者可以具有不同的部件配置或布置。
客戶端計算設備804、806和808可以是與以上針對客戶端計算設備702、704、706和708描述的那些設備類似的設備。客戶端計算設備804、806和808可以被配置為操作客戶端應用,諸如web瀏覽器、專有客戶端應用(例如,Oracle Forms)或可以被客戶端計算設備的用戶使用以與云基礎設施系統(tǒng)802交互來使用由云基礎設施系統(tǒng)802提供的服務的一些其它應用。雖然示例性系統(tǒng)環(huán)境800被示為具有三個客戶端計算設備,但是可以支持任何數(shù)量的客戶端計算設備。諸如具有傳感器的設備等的其它設備可以與云基礎設施系統(tǒng)802交互。
(一個或多個)網絡810可以促進客戶端計算設備804、806和808與云基礎設施系統(tǒng)802之間的通信和數(shù)據(jù)交換。每個網絡可以是對本領域技術人員熟悉的可以利用任何各種商用的協(xié)議支持數(shù)據(jù)通信的任何類型的網絡,其中協(xié)議包括以上針對(一個或多個)網絡710所描述的協(xié)議。
在某些實施例中,由云基礎設施系統(tǒng)802提供的服務可以包括按需對云基礎設施系統(tǒng)的用戶可用的服務的主機。除了與響應使用模式的動態(tài)文檔修改有關的服務之外,也可以提供各種其它服務,包括但不限于在線數(shù)據(jù)存儲和備份解決方案、基于Web的電子郵件服務、托管的辦公套件和文檔協(xié)作服務、數(shù)據(jù)庫處理、受管理的技術支持服務等。由云基礎設施系統(tǒng)提供的服務可以動態(tài)調整,以滿足其用戶的需求。
在某些實施例中,由云基礎設施系統(tǒng)802提供的服務的具體實例化在本文中可以被稱為“服務實例”。一般而言,經由通信網絡(諸如互聯(lián)網)從云服務提供者的系統(tǒng)使得對用戶可用的任何服務被稱為“云服務”。通常,在公共云環(huán)境中,構成云服務提供者的系統(tǒng)的服務器和系統(tǒng)與消費者自己的預置服務器和系統(tǒng)不同。例如,云服務提供者的系統(tǒng)可以托管應用,并且用戶可以經由諸如互聯(lián)網的通信網絡按需訂購和使用應用。
在一些例子中,計算機網絡云基礎設施中的服務可以包括對存儲裝置、托管的數(shù)據(jù)庫、托管的web服務器、軟件應用或者由云供應商向用戶提供的其它服務的受保護的計算機網絡訪問,或者如本領域中另外已知的。例如,服務可以包括通過互聯(lián)網對云上的遠程存儲的受密碼保護的訪問。作為另一個例子,服務可以包括基于web服務的托管的關系數(shù)據(jù)庫和腳本語言中間件引擎,用于由聯(lián)網的開發(fā)人員私人使用。作為另一個例子,服務可以包括對在云供應商的網站上托管的電子郵件軟件應用的訪問。
在某些實施例中,云基礎設施系統(tǒng)802可以包括以自助服務、基于訂閱、彈性可擴展、可靠、高度可用和安全的方式交付給消費者的應用套件、中間件和數(shù)據(jù)庫服務產品。這種云基礎設施系統(tǒng)的例子是由本受讓人提供的Oracle Public Cloud(Oracle公共云)。
云基礎設施系統(tǒng)802還可以提供與“大數(shù)據(jù)”相關的計算和分析服務。術語“大數(shù)據(jù)”一般用來指可由分析員和研究者存儲和操縱以可視化大量數(shù)據(jù)、檢測趨勢和/或以其它方式與數(shù)據(jù)交互的極大數(shù)據(jù)集。這種大數(shù)據(jù)和相關應用可以在許多層級和不同規(guī)模上由基礎設施系統(tǒng)托管和/或操縱。并行鏈接的數(shù)十個、數(shù)百個或數(shù)千個處理器可以作用于這種數(shù)據(jù),以便呈現(xiàn)其或者模擬對數(shù)據(jù)或其所表示的內容的外力。這些數(shù)據(jù)集可以涉及結構化數(shù)據(jù),諸如在數(shù)據(jù)庫中組織或以其它方式根據(jù)結構化模型組織的數(shù)據(jù),和/或者非結構化數(shù)據(jù)(例如,電子郵件、圖像、數(shù)據(jù)blob(二進制大對象)、網頁、復雜事件處理)。通過利用實施例相對快速地將更多(或更少)的計算資源聚焦在目標上的能力,云基礎設施系統(tǒng)可以更好地用于基于來自企業(yè)、政府機構、研究組織、私人個人、一群志同道合的個人或組織或其它實體的需求在大數(shù)據(jù)集上執(zhí)行任務。
在各種實施例中,云基礎設施系統(tǒng)802可以適于自動地供應、管理和跟蹤消費者對由云基礎設施系統(tǒng)802提供的服務的訂閱。云基礎設施系統(tǒng)802可以經由不同的部署模型提供云服務。例如,服務可以在公共云模型下提供,其中云基礎設施系統(tǒng)802由銷售云服務的組織擁有(例如,由Oracle公司擁有)并且使服務對一般公眾或不同的工業(yè)企業(yè)可用。作為另一個例子,服務可以在私有云模型下提供,其中云基礎設施系統(tǒng)802僅針對單個組織操作,并且可以為組織內的一個或多個實體提供服務。云服務還可以在社區(qū)云模型下提供,其中云基礎設施系統(tǒng)802和由云基礎設施系統(tǒng)802提供的服務由相關社區(qū)中的若干個組織共享。云服務還可以在混合云模型下提供,混合云模型是兩個或更多個不同模型的組合。
在一些實施例中,由云基礎設施系統(tǒng)802提供的服務可以包括在軟件即服務(SaaS)類別、平臺即服務(PaaS)類別、基礎設施即服務(IaaS)類別、或包括混合服務的服務的其它類別下提供的一個或多個服務。消費者經由訂閱訂單可以訂購由云基礎設施系統(tǒng)802提供的一個或多個服務。云基礎設施系統(tǒng)802然后執(zhí)行處理,以提供消費者的訂閱訂單中的服務。
在一些實施例中,由云基礎設施系統(tǒng)802提供的服務可以包括但不限于應用服務、平臺服務和基礎設施服務。在一些例子中,應用服務可以由云基礎設施系統(tǒng)經由SaaS平臺提供。SaaS平臺可以被配置為提供屬于SaaS類別的云服務。例如,SaaS平臺可以提供在集成的開發(fā)和部署平臺上構建和交付點播應用套件的能力。SaaS平臺可以管理和控制用于提供SaaS服務的底層軟件和基礎設施。通過利用由SaaS平臺提供的服務,消費者可以利用在云基礎設施系統(tǒng)上執(zhí)行的應用。消費者可以獲取應用服務,而無需消費者單獨購買許可證和支持??梢蕴峁└鞣N不同的SaaS服務。例子包括但不限于為大型組織提供用于銷售績效管理、企業(yè)集成和業(yè)務靈活性的解決方案的服務。
在一些實施例中,平臺服務可以由云基礎設施系統(tǒng)802經由PaaS平臺提供。PaaS平臺可以被配置為提供屬于PaaS類別的云服務。平臺服務的例子可以包括但不限于使組織(諸如Oracle)能夠在共享的共同體系架構上整合現(xiàn)有應用的服務,以及利用由平臺提供的共享服務構建新應用的能力。PaaS平臺可以管理和控制用于提供PaaS服務的底層軟件和基礎設施。消費者可以獲取由云基礎設施系統(tǒng)802提供的PaaS服務,而無需消費者購買單獨的許可證和支持。平臺服務的例子包括但不限于Oracle Java云服務(JCS)、Oracle數(shù)據(jù)庫云服務(DBCS)以及其它。
通過利用由PaaS平臺提供的服務,消費者可以采用由云基礎設施系統(tǒng)支持的編程語言和工具,并且還控制所部署的服務。在一些實施例中,由云基礎設施系統(tǒng)提供的平臺服務可以包括數(shù)據(jù)庫云服務、中間件云服務(例如,Oracle Fusion Middleware服務)和Java云服務。在一種實施例中,數(shù)據(jù)庫云服務可以支持共享服務部署模型,其使得組織能夠匯集數(shù)據(jù)庫資源并且以數(shù)據(jù)庫云的形式向消費者提供數(shù)據(jù)庫即服務。中間件云服務可以為消費者提供開發(fā)和部署各種業(yè)務應用的平臺,以及Java云服務可以在云基礎設施系統(tǒng)中為消費者提供部署Java應用的平臺。
可以由云基礎設施系統(tǒng)中的IaaS平臺提供各種不同的基礎設施服務?;A設施服務促進底層計算資源(諸如存儲裝置、網絡和其它基本計算資源)的管理和控制,以便消費者利用由SaaS平臺和PaaS平臺提供的服務。
在某些實施例中,云基礎設施系統(tǒng)802還可以包括基礎設施資源830,用于提供用來向云基礎設施系統(tǒng)的消費者提供各種服務的資源。在一種實施例中,基礎設施資源830可以包括執(zhí)行由PaaS平臺和SaaS平臺提供的服務的硬件(諸如服務器、存儲裝置和聯(lián)網資源)的預先集成和優(yōu)化的組合,以及其它資源。
在一些實施例中,云基礎設施系統(tǒng)802中的資源可以由多個用戶共享并且按需動態(tài)地重新分配。此外,資源可以分配給在不同時區(qū)中的用戶。例如,云基礎設施系統(tǒng)802可以使第一時區(qū)內的第一用戶集合能夠利用云基礎設施系統(tǒng)的資源指定的小時數(shù),然后使得能夠將相同資源重新分配給位于不同時區(qū)中的另一用戶集合,從而最大化資源的利用率。
在某些實施例中,可以提供由云基礎設施系統(tǒng)802的不同部件或模塊共享,以使得能夠由云基礎設施系統(tǒng)802供應服務的多個內部共享服務832。這些內部共享服務可以包括,但不限于,安全和身份服務、集成服務、企業(yè)儲存庫服務、企業(yè)管理器服務、病毒掃描和白名單服務、高可用性、備份和恢復服務、用于啟用云支持的服務、電子郵件服務、通知服務、文件傳輸服務等。
在某些實施例中,云基礎設施系統(tǒng)802可以在云基礎設施系統(tǒng)中提供云服務(例如,SaaS、PaaS和IaaS服務)的綜合管理。在一種實施例中,云管理功能可以包括用于供應、管理和跟蹤由云基礎設施系統(tǒng)802等接收到的消費者的訂閱的能力。
在一種實施例中,如圖8中所繪出的,云管理功能可以由諸如訂單管理模塊820、訂單編排模塊822、訂單供應模塊824、訂單管理和監(jiān)視模塊826以及身份管理模塊828的一個或多個模塊提供。這些模塊可以包括或可以利用一個或多個計算機和/或服務器提供,該一個或多個計算機和/或服務器可以是通用計算機、專用服務器計算機、服務器場,服務器集群或任何其它適當?shù)牟贾煤?或組合。
在示例性操作中,在834,使用客戶端設備(諸如客戶端設備804、806或808)的消費者可以通過請求由云基礎設施系統(tǒng)802提供的一個或多個服務并且對由云基礎設施系統(tǒng)802提供的一個或多個服務的訂閱下訂單來與云基礎設施系統(tǒng)802交互。在某些實施例中,消費者可以訪問諸如云UI 812、云UI 814和/或云UI 816的云用戶界面(UI)并經由這些UI下訂閱訂單。響應于消費者下訂單而由云基礎設施系統(tǒng)802接收到的訂單信息可以包括識別消費者和消費者打算訂閱的由云基礎設施系統(tǒng)802提供的一個或多個服務的信息。
在836,從消費者接收到的訂單信息可以存儲在訂單數(shù)據(jù)庫818中。如果這是新的訂單,則可以為該訂單創(chuàng)建新的記錄。在一種實施例中,訂單數(shù)據(jù)庫818可以是由云基礎設施系統(tǒng)818操作以及與其它系統(tǒng)元素結合操作的若干數(shù)據(jù)庫當中的一個。
在838,訂單信息可以被轉發(fā)到訂單管理模塊820,訂單管理模塊820可以被配置為執(zhí)行與訂單相關的計費和記帳功能,諸如驗證訂單,并且在通過驗證時,預訂訂單。
在840,關于訂單的信息可以被傳送到訂單編排模塊822,訂單編排模塊822被配置為編排用于由消費者下的訂單的服務和資源的供應。在一些情況下,訂單編排模塊822可以使用訂單供應模塊824的服務用于供應。在某些實施例中,訂單編排模塊822使得能夠管理與每個訂單相關聯(lián)的業(yè)務處理,并且應用業(yè)務邏輯來確定訂單是否應當繼續(xù)供應。
如圖8中繪出的實施例所示,在842,在接收到新訂閱的訂單時,訂單編排模塊822向訂單供應模塊824發(fā)送分配資源和配置履行訂購訂單所需的資源的請求。訂單供應模塊824使得能夠為由消費者訂購的服務分配資源。訂單供應模塊824提供由云基礎設施系統(tǒng)800提供的云服務和用來供應用于提供所請求的服務的資源的物理實現(xiàn)層之間的抽象層級。這使得訂單編排模塊822能夠與實現(xiàn)細節(jié)隔離,諸如服務和資源是否實際上實時供應,或者預先供應并且僅在請求時才進行分配/指定。
在844,一旦供應了服務和資源,就可以向訂閱的消費者發(fā)送指示所請求的服務現(xiàn)在已準備好用于使用的通知。在一些情況下,可以向消費者發(fā)送使得消費者能夠開始使用所請求的服務的信息(例如,鏈接)。
在846,可以由訂單管理和監(jiān)視模塊826來管理和跟蹤消費者的訂閱訂單。在一些情況下,訂單管理和監(jiān)視模塊826可以被配置為收集關于消費者使用所訂閱的服務的使用統(tǒng)計。例如,可以針對所使用的存儲量、所傳送的數(shù)據(jù)量、用戶的數(shù)量以及系統(tǒng)啟動時間和系統(tǒng)停機時間的量等來收集統(tǒng)計數(shù)據(jù)。
在某些實施例中,云基礎設施系統(tǒng)800可以包括身份管理模塊828,其被配置為提供身份服務,諸如云基礎設施系統(tǒng)800中的訪問管理和授權服務。在一些實施例中,身份管理模塊828可以控制關于希望利用由云基礎設施系統(tǒng)802提供的服務的消費者的信息。這種信息可以包括認證這些消費者的身份的信息和描述那些消費者被授權相對于各種系統(tǒng)資源(例如,文件、目錄、應用、通信端口、存儲器段等)執(zhí)行的動作的信息。身份管理模塊828還可以包括關于每個消費者的描述性信息以及關于如何和由誰來訪問和修改描述性信息的管理。
圖9示出了可以被用來實現(xiàn)本發(fā)明的實施例的示例性計算機系統(tǒng)900。在一些實施例中,計算機系統(tǒng)900可以被用來實現(xiàn)上述任何各種服務器和計算機系統(tǒng)。如圖9所示,計算機系統(tǒng)900包括各種子系統(tǒng),包括經由總線子系統(tǒng)902與多個外圍子系統(tǒng)通信的處理單元904。這些外圍子系統(tǒng)可以包括處理加速單元906、I/O子系統(tǒng)908、存儲子系統(tǒng)918和通信子系統(tǒng)924。存儲子系統(tǒng)918可以包括有形的計算機可讀存儲介質922和系統(tǒng)存儲器910。
總線子系統(tǒng)902提供用于使計算機系統(tǒng)900的各種部件和子系統(tǒng)按照期望彼此通信的機制。雖然總線子系統(tǒng)902被示意性地示為單條總線,但是總線子系統(tǒng)的可替代實施例可以利用多條總線??偩€子系統(tǒng)902可以是若干種類型的總線結構中的任何一種,包括存儲器總線或存儲器控制器、外圍總線和利用任何各種總線體系架構的局部總線。例如,此類體系架構可以包括工業(yè)標準體系架構(ISA)總線、微通道體系架構(MCA)總線、增強型ISA(EISA)總線、視頻電子標準協(xié)會(VESA)局部總線和外圍部件互連(PCI)總線,其可以實現(xiàn)為根據(jù)IEEE P1386.1標準制造的夾層(Mezzanine)總線,等等。
處理子系統(tǒng)904控制計算機系統(tǒng)900的操作并且可以包括一個或多個處理單元932、934等。處理單元可以包括一個或多個處理器,其中包括單核或多核處理器、處理器的一個或多個核、或其組合。在一些實施例中,處理子系統(tǒng)904可以包括一個或多個專用協(xié)處理器,諸如圖形處理器、數(shù)字信號處理器(DSP)等。在一些實施例中,處理子系統(tǒng)904的處理單元中的一些或全部可以利用定制電路來實現(xiàn),諸如專用集成電路(ASIC)或現(xiàn)場可編程門陣列(FPGA)。
在一些實施例中,處理子系統(tǒng)904中的處理單元可以執(zhí)行存儲在系統(tǒng)存儲器910中或計算機可讀存儲介質922上的指令。在各種實施例中,處理單元可以執(zhí)行各種程序或代碼指令,并且可以維護多個并發(fā)執(zhí)行的程序或進程。在任何給定的時間,要執(zhí)行的程序代碼中的一些或全部可以駐留在系統(tǒng)存儲器910中和/或計算機可讀存儲介質922上,潛在地包括在一個或多個存儲設備上。通過適當?shù)木幊?,處理子系統(tǒng)904可以提供上述用于響應于使用模式而動態(tài)修改文檔(例如,網頁)的各種功能。
在某些實施例中,可以提供處理加速單元906,用于執(zhí)行定制的處理或用于卸載由處理子系統(tǒng)904執(zhí)行的一些處理,以便加速由計算機系統(tǒng)900執(zhí)行的整體處理。
I/O子系統(tǒng)908可以包括用于向計算機系統(tǒng)900輸入信息和/或用于從或經由計算機系統(tǒng)900輸出信息的設備和機制。一般而言,術語“輸入設備”的使用意在包括用于向計算機系統(tǒng)900輸入信息的所有可能類型的設備和機制。用戶接口輸入設備可以包括,例如,鍵盤、諸如鼠標或軌跡球的指示設備、結合到顯示器中的觸摸板或觸摸屏、滾輪、點撥輪、撥盤、按鈕、開關、鍵板、具有語音命令識別系統(tǒng)的音頻輸入設備、麥克風以及其它類型的輸入設備。用戶接口輸入設備也可以包括使用戶能夠控制輸入設備并與其交互的諸如Microsoft運動傳感器的運動感測和/或姿勢識別設備、Microsoft360游戲控制器、提供用于接收利用姿勢和口語命令的輸入的接口的設備。用戶接口輸入設備也可以包括眼睛姿勢識別設備,諸如從用戶檢測眼睛活動(例如,當拍攝圖片和/或進行菜單選擇時的“眨眼”)并將眼睛姿勢轉換為到輸入設備(例如,Google)中的輸入的Google眨眼檢測器。此外,用戶接口輸入設備可以包括使用戶能夠通過語音命令與語音識別系統(tǒng)(例如,導航器)交互的語音識別感測設備。
用戶接口輸入設備的其它例子包括但不限于,三維(3D)鼠標、操縱桿或指示桿、游戲板和圖形平板、以及音頻/視頻設備,諸如揚聲器、數(shù)字相機、數(shù)字攝像機、便攜式媒體播放器、網絡攝像機、圖像掃描儀、指紋掃描儀、條形碼讀取器3D掃描儀、3D打印機、激光測距儀、以及眼睛注視跟蹤設備。此外,用戶接口輸入設備可以包括,例如,醫(yī)療成像輸入設備,諸如計算機斷層攝影、磁共振成像、位置發(fā)射斷層攝影、醫(yī)療超聲檢查設備。用戶接口輸入設備也可以包括,例如,音頻輸入設備,諸如MIDI鍵盤、數(shù)字樂器等。
用戶接口輸出設備可以包括顯示子系統(tǒng)、指示器燈或諸如音頻輸出設備的非可視顯示器等。顯示子系統(tǒng)可以是陰極射線管(CRT)、諸如利用液晶顯示器(LCD)或等離子體顯示器的平板設備、投影設備、觸摸屏等。一般而言,術語“輸出設備”的使用意在包括用于從計算機系統(tǒng)900向用戶或其它計算機輸出信息的所有可能類型的設備和機制。例如,用戶接口輸出設備可以包括但不限于,可視地傳達文本、圖形和音頻/視頻信息的各種顯示設備,諸如監(jiān)視器、打印機、揚聲器、耳機、汽車導航系統(tǒng)、繪圖儀、語音輸出設備和調制解調器。
存儲子系統(tǒng)918提供用于存儲由計算機系統(tǒng)900使用的信息的儲存庫或數(shù)據(jù)存儲庫。存儲子系統(tǒng)918提供有形非暫態(tài)計算機可讀存儲介質,用于存儲提供一些實施例的功能的基本編程和數(shù)據(jù)結構。當由處理子系統(tǒng)904執(zhí)行時提供上述功能的軟件(程序、代碼模塊、指令)可以存儲在存儲子系統(tǒng)918中。軟件可以由處理子系統(tǒng)904的一個或多個處理單元執(zhí)行。存儲子系統(tǒng)918也可以提供用于存儲根據(jù)本發(fā)明使用的數(shù)據(jù)的儲存庫。
存儲子系統(tǒng)918可以包括一個或多個非暫態(tài)存儲器設備,包括易失性和非易失性存儲器設備。如圖9所示,存儲子系統(tǒng)918包括系統(tǒng)存儲器910和計算機可讀存儲介質922。系統(tǒng)存儲器910可以包括多個存儲器,包括用于在程序執(zhí)行期間存儲指令和數(shù)據(jù)的易失性主隨機存取存儲器(RAM)和其中存儲固定指令的非易失性只讀存儲器(ROM)或閃存存儲器。在一些實現(xiàn)中,包含幫助在諸如啟動期間在計算機系統(tǒng)900內的元件之間傳送信息的基本例程的基本輸入/輸出系統(tǒng)(BIOS)通常可以存儲在ROM中。RAM通常包含當前由處理子系統(tǒng)904操作和執(zhí)行的數(shù)據(jù)和/或程序模塊。在一些實現(xiàn)中,系統(tǒng)存儲器910可以包括多個不同類型的存儲器,諸如靜態(tài)隨機存取存儲器(SRAM)或動態(tài)隨機存取存儲器(DRAM)。
作為例子而非限制,如在圖9中所繪出的,系統(tǒng)存儲器910可以存儲應用程序912,其可以包括客戶端應用、Web瀏覽器、中間層應用、關系數(shù)據(jù)庫管理系統(tǒng)(RDBMS)等、程序數(shù)據(jù)914和操作系統(tǒng)916。作為例子,操作系統(tǒng)916可以包括各種版本的MicrosoftApple和/或Linux操作系統(tǒng)、各種商用或類UNIX操作系統(tǒng)(包括但不限于各種GNU/Linux操作系統(tǒng)、GoogleOS等)和/或諸如iOS、Phone、OS、8OS和OS操作系統(tǒng)的移動操作系統(tǒng)。
計算機可讀存儲介質922可以存儲提供一些實施例的功能的編程和數(shù)據(jù)結構。當由處理子系統(tǒng)904執(zhí)行時使處理器提供上述功能的軟件(程序、代碼模塊、指令)可以存儲在存儲子系統(tǒng)918中。作為例子,計算機可讀存儲介質922可以包括非易失性存儲器,諸如硬盤驅動器、磁盤驅動器、諸如CD ROM、DVD、(藍光)盤或其它光學介質的光盤驅動器。計算機可讀存儲介質922可以包括但不限于,驅動器、閃存存儲器卡、通用串行總線(USB)閃存驅動器、安全數(shù)字(SD)卡、DVD盤、數(shù)字視頻帶等。計算機可讀存儲介質922也可以包括基于非易失性存儲器的固態(tài)驅動器(SSD),諸如基于閃存存儲器的SSD、企業(yè)閃存驅動器、固態(tài)ROM等,基于易失性存儲器的SSD,諸如固態(tài)RAM、動態(tài)RAM、靜態(tài)RAM、基于DRAM的SSD、磁阻RAM(MRAM)SSD、以及使用DRAM和基于閃存存儲器的SSD的組合的混合SSD。計算機可讀介質922可以為計算機系統(tǒng)900提供計算機可讀指令、數(shù)據(jù)結構、程序模塊和其它數(shù)據(jù)的存儲。
在某些實施例中,存儲子系統(tǒng)900也可以包括計算機可讀存儲介質讀取器920,其可以進一步連接到計算機可讀存儲介質922。可選地,與系統(tǒng)存儲器910一起和組合,計算機可讀存儲介質922可以全面地表示遠程、本地、固定和/或可移動存儲設備加上用于存儲計算機可讀信息的存儲介質。
在某些實施例中,計算機系統(tǒng)900可以提供對執(zhí)行一個或多個虛擬機的支持。計算機系統(tǒng)900可以執(zhí)行諸如管理程序的程序,以便促進虛擬機的配置和管理。每個虛擬機可以被分配存儲器、計算(例如,處理器、內核)、I/O和聯(lián)網資源。每個虛擬機通常運行其自己的操作系統(tǒng),其可以與由計算機系統(tǒng)900執(zhí)行的其它虛擬機執(zhí)行的操作系統(tǒng)相同或不同。相應地,多個操作系統(tǒng)可以潛在地由計算機系統(tǒng)900并發(fā)地運行。每個虛擬機一般獨立于其它虛擬機運行。
通信子系統(tǒng)924提供到其它計算機系統(tǒng)和網絡的接口。通信子系統(tǒng)924用作用于從計算機系統(tǒng)900的其它系統(tǒng)接收數(shù)據(jù)和向其發(fā)送數(shù)據(jù)的接口。例如,通信子系統(tǒng)924可以使計算機系統(tǒng)900能夠經由互聯(lián)網建立到一個或多個客戶端設備的通信信道,用于從客戶端設備接收信息和發(fā)送信息到客戶端設備。
通信子系統(tǒng)924可以支持有線和/或無線通信協(xié)議兩者。例如,在某些實施例中,通信子系統(tǒng)924可以包括用于接入無線語音和/或數(shù)據(jù)網絡(例如,利用蜂窩電話技術、諸如3G、4G或EDGE(全球演進的增強數(shù)據(jù)速率)的高級數(shù)據(jù)網絡技術)的射頻收發(fā)器部件、WiFi(IEEE 802.11族標準、或其它移動通信技術、或其任意組合)、全球定位系統(tǒng)(GPS)接收器部件和/或其它部件。在一些實施例中,作為無線接口的附加或替代,通信子系統(tǒng)924可以提供有線網絡連接(例如,以太網)。
通信子系統(tǒng)924可以以各種形式接收和發(fā)送數(shù)據(jù)。例如,在一些實施例中,通信子系統(tǒng)924可以以結構化和/或非結構化的數(shù)據(jù)饋送926、事件流928、事件更新930等形式接收輸入通信。例如,通信子系統(tǒng)924可以被配置為實時地從社交媒體網絡的用戶和/或諸如饋送、更新、諸如豐富化站點摘要(RSS)饋送的web饋送的其它通信服務接收(或發(fā)送)數(shù)據(jù)饋送926,和/或來自一個或多個第三方信息源的實時更新。
在某些實施例中,通信子系統(tǒng)924可以被配置為以連續(xù)數(shù)據(jù)流的形式接收本質上可能是連續(xù)的或無界的沒有明確結束的數(shù)據(jù),其中連續(xù)數(shù)據(jù)流可以包括實時事件的事件流928和/或事件更新930。生成連續(xù)數(shù)據(jù)的應用的例子可以包括例如傳感器數(shù)據(jù)應用、金融報價機、網絡性能測量工具(例如網絡監(jiān)視和流量管理應用)、點擊流分析工具、汽車流量監(jiān)視等。
通信子系統(tǒng)924也可以被配置為向一個或多個數(shù)據(jù)庫輸出結構化和/或非結構化的數(shù)據(jù)饋送926、事件流928、事件更新930等,其中所述一個或多個數(shù)據(jù)庫可以與耦合到計算機系統(tǒng)900的一個或多個流數(shù)據(jù)源計算機通信。
計算機系統(tǒng)900可以是各種類型中的一種,包括手持便攜式設備(例如,蜂窩電話、計算平板、PDA)、可穿戴設備(例如,Google頭戴式顯示器)、個人計算機、工作站、大型機、信息站、服務器機架或任何其它數(shù)據(jù)處理系統(tǒng)。
由于計算機和網絡不斷變化的性質,對圖9中繪出的計算機系統(tǒng)900的描述意在僅僅作為具體例子。具有比圖9中所繪出的系統(tǒng)更多或更少部件的許多其它配置是可能的?;诒疚乃峁┑墓_內容和教導,本領域普通技術人員將理解實現(xiàn)各種實施例的其它方式和/或方法。
在本發(fā)明的至少一個實施例中,提供了一種數(shù)據(jù)豐富化系統(tǒng)。數(shù)據(jù)豐富化系統(tǒng)包括一個或多個服務器計算機,其中數(shù)據(jù)豐富化系統(tǒng)經至少一個通信網絡通信耦合到多個數(shù)據(jù)源(例如,如圖1中所示的數(shù)據(jù)源104)和多個數(shù)據(jù)目標(例如,如圖1中所示的數(shù)據(jù)目標106)。
數(shù)據(jù)豐富化系統(tǒng)還包括剖析引擎、推薦引擎、變換引擎和發(fā)布引擎。剖析引擎、推薦引擎、變換引擎和發(fā)布引擎可以是例如分別在圖3中示出的剖析引擎326、推薦引擎308、變換引擎322和發(fā)布引擎324。
剖析引擎被配置為當從客戶端設備接收到數(shù)據(jù)豐富化請求時從數(shù)據(jù)豐富化請求中指定的至少一個數(shù)據(jù)源識別數(shù)據(jù)中的模式。推薦引擎被配置為將模式與來自知識服務(例如,如圖3中所示的知識服務310)的實體信息匹配。變換引擎被配置為基于實體信息生成用于數(shù)據(jù)的一個或多個變換腳本,其中所述推薦引擎生成與一個或多個變換腳本對應的一個或多個推薦,并且使得這一個或多個推薦被顯示在客戶端設備上的用戶界面中。發(fā)布引擎被配置為,在基于一個或多個推薦從客戶端設備接收到變換指令并且基于變換指令變換數(shù)據(jù)之后,基于變換指令將經變換的數(shù)據(jù)發(fā)布到一個或多個數(shù)據(jù)目標。
在本發(fā)明的一個實施例中,當從數(shù)據(jù)源中的至少一個接收到對至少一列數(shù)據(jù)的選擇時,使得所述至少一列數(shù)據(jù)的數(shù)據(jù)簡檔被顯示在客戶端設備上的用戶界面中,其中數(shù)據(jù)簡檔指示在這至少一列數(shù)據(jù)中識別出的多個模式和與這至少一列數(shù)據(jù)相關聯(lián)的至少一個數(shù)據(jù)可視化。
在本發(fā)明的一個實施例中,變換指令包括基于實體信息重命名至少一列數(shù)據(jù)的變換指令。
在本發(fā)明的一個實施例中,接收另一變換指令,以將至少一列數(shù)據(jù)重命名為默認名稱。
在本發(fā)明的一個實施例中,變換指令包括基于實體信息重新格式化至少一列數(shù)據(jù)的變換指令。
在本發(fā)明的一個實施例中,變換指令包括用于基于實體信息模糊化至少一列數(shù)據(jù)的另一變換指令。
在本發(fā)明的一個實施例中,變換指令包括基于實體信息添加從知識服務獲得的一列或多列數(shù)據(jù)的豐富化指令。
對于本領域技術人員顯而易見的是,對于上述單元/模塊(例如,引擎)的特定操作處理,可以參考共享相同概念的相關方法/系統(tǒng)實施例中的對應步驟/部件并且參考也被視為相關單元/模塊的公開。因此,為了方便和描述的簡潔,將不再重復或詳細地描述一些特定的操作處理。
對于本領域技術人員來說顯而易見的是,單元/模塊可以以軟件、硬件或軟件和硬件的組合的方式在電子設備中實現(xiàn)。被描述為單獨部件的部件可以或可以不物理分離。特別地,根據(jù)本發(fā)明的每個實施例的部件可以集成在一個物理部件中,或者可以存在于各種單獨的物理部件中。電子設備中單元的各種實現(xiàn)全都包括在本發(fā)明的保護范圍之內。
應當理解,單元、裝置和設備可以以已知的或未來開發(fā)的軟件、硬件和/或這種軟件和硬件的組合的形式來實現(xiàn)。
對于本領域技術人員來說顯而易見的是,圖3中所描述的操作可以以軟件、硬件和/或這種軟件和硬件的組合的形式來實現(xiàn),這依賴于特定的應用環(huán)境。對于本領域技術人員來說顯而易見的是,至少一些步驟可以通過在通用處理器中運行指令來實現(xiàn),其中指令存儲在存儲器中。對于本領域技術人員來說顯而易見的是,至少一些步驟還可以由各種硬件來實現(xiàn),包括但不限于DSP、FPGA、ASIC等。例如,一些實施例中的“操作”可以由CPU中運行的指令或者由專用處理器(諸如實現(xiàn)“操作”的功能的DSP、FPGA、ASIC)實現(xiàn)。
雖然已經描述了本發(fā)明的具體實施例,但是各種修改、更改、替代構造和等效物也包含在本發(fā)明的范圍之內。本發(fā)明的實施例不限于在某些特定數(shù)據(jù)處理環(huán)境內的操作,而是可以在多個數(shù)據(jù)處理環(huán)境內自由操作。此外,雖然已利用特定系列的事務和步驟描述了本發(fā)明的實施例,但是,對本領域技術人員應當顯而易見,本發(fā)明的范圍不限于所描述系列的事務和步驟。上述實施例的各種特征和方面可以被單獨或結合使用。
另外,雖然已經利用硬件和軟件的特定組合描述了本發(fā)明的實施例,但是應當認識到,硬件和軟件的其它組合也在本發(fā)明的范圍之內。本發(fā)明的實施例可以只用硬件、或只用軟件、或利用其組合來實現(xiàn)。本文描述的各種處理可以在同一處理器或以任何組合的不同處理器上實現(xiàn)。相應地,在部件或模塊被描述為被配置為執(zhí)行某些操作的情況下,這種配置可以例如通過設計電子電路來執(zhí)行操作、通過對可編程電子電路(諸如微處理器)進行編程來執(zhí)行操作、或其任意組合來實現(xiàn)。進程可以利用各種技術來通信,包括但不限于用于進程間通信的常規(guī)技術,并且不同的進程對可以使用不同的技術,或者同一對進程可以在不同時間使用不同的技術。
相應地,說明書和附圖應當在說明性而不是限制性的意義上考慮。但是,將顯而易見的是,在不背離權利要求中闡述的更廣泛精神和范圍的情況下,可以對其進行添加、減少、刪除和其它修改和改變。因此,雖然已描述了具體的發(fā)明實施例,但是這些實施例不意在進行限制。各種修改和等效物都在以下權利要求的范圍之內。