国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于Neo4j處理大數(shù)據(jù)中元數(shù)據(jù)溯源的研究

2015-09-28 06:11:02靳永超吳懷谷
現(xiàn)代計算機 2015年8期
關鍵詞:數(shù)據(jù)模型數(shù)據(jù)源數(shù)據(jù)庫

靳永超,吳懷谷

(1.西華大學數(shù)學與計算機學院,成都 610039;2.成都大學信息科學與技術學院,成都 610106)

基于Neo4j處理大數(shù)據(jù)中元數(shù)據(jù)溯源的研究

靳永超1,2,吳懷谷2

(1.西華大學數(shù)學與計算機學院,成都610039;2.成都大學信息科學與技術學院,成都610106)

0 引言

隨著信息技術的高速發(fā)展和大量數(shù)據(jù)以各種形式的出現(xiàn),企業(yè)的需求也在不斷地改變。如何構建一個隨著需求改變而平滑變化的大數(shù)據(jù)平臺,是大數(shù)據(jù)領域面臨的一個重大考驗。一個平臺擴展N個應用,將是未來大數(shù)據(jù)平臺擴展性的重要體現(xiàn),傳統(tǒng)的各種信息系統(tǒng)往往是通過文檔來適應需求的變化,但是僅僅依靠文檔還是遠遠不夠的。所以在大數(shù)據(jù)平臺中元數(shù)據(jù)管理將是其核心的一部分,成功的元數(shù)據(jù)管理系統(tǒng)必須把整個平臺業(yè)務的工作流、數(shù)據(jù)流和信息流有效地管理起來,使得系統(tǒng)不依賴特定的開發(fā)人員[1],從而提高系統(tǒng)的擴展性和全局性。在大數(shù)據(jù)平臺中,像數(shù)據(jù)模型、任務模型、需求模型等模型池的定時調度,以及ETL中大量的數(shù)據(jù)源定義、映射規(guī)則、轉換規(guī)則、裝載策略等這些元數(shù)據(jù)都需要一個完整的管理。一個項目,從數(shù)據(jù)源到最終目標表,多則達上百個ETL過程,少則也十幾個。這些過程之間的依賴關系、出錯控制以及恢復的流程處理,都需要一個追根溯源的功能,通過最終形態(tài)的數(shù)據(jù)結構,追溯到整個大數(shù)據(jù)處理中,元數(shù)據(jù)的更改歷史記錄。所以大數(shù)據(jù)的元數(shù)據(jù)管理系統(tǒng)如何設計已經關系到大數(shù)據(jù)平臺能否高效推送數(shù)據(jù)變更,任務變更和大數(shù)據(jù)平臺突破瓶頸能否進一步發(fā)展的問題。

1 大數(shù)據(jù)平臺中的元數(shù)據(jù)

大數(shù)據(jù)處理中,尤其是大數(shù)據(jù)平臺構建中,結構化數(shù)據(jù)、半結構化數(shù)據(jù)和非結構化在整個平臺中遷移、轉換和裝載。例如像關系型數(shù)據(jù)向數(shù)據(jù)倉庫Hive、HBase、HDFS之間轉換,列族HBase數(shù)據(jù)庫向Hive,分布式文件存儲HDFS向Hive相互之間數(shù)據(jù)遷移,而傳統(tǒng)的ETL只針對關系型數(shù)據(jù)庫之間轉換,根本滿足不了現(xiàn)有的各種需求,在海量數(shù)據(jù)面前查詢、統(tǒng)計、更新效率很低,異構數(shù)據(jù)源的管理的利用效率低。所以,針對大數(shù)據(jù)平臺需求,必須設計一個滿足各種結構數(shù)據(jù)之間相互遷移,異構數(shù)據(jù)源之間高效利用的元數(shù)據(jù)管理系統(tǒng),并且能夠對元數(shù)據(jù)進行追蹤溯源和版本管理。

1.1構建大數(shù)據(jù)平臺中元數(shù)據(jù)模型池

數(shù)據(jù)建模是一個發(fā)現(xiàn)數(shù)據(jù)元素、探尋面向數(shù)據(jù)的結構的過程,探索當前關聯(lián)方式及定義方式來進行需求調用,而其建立的模型稱為數(shù)據(jù)模型。數(shù)據(jù)模型可用于各種目的,從高層的概念數(shù)據(jù)模型到物理數(shù)據(jù)模型。從面向對象的角度來看,在概念上,數(shù)據(jù)模型是指采用“實體.關系”方法描述數(shù)據(jù)及其數(shù)據(jù)之間關系的模型,即指用實體、屬性及其關系對企業(yè)運營和管理中涉及的業(yè)務概念和邏輯規(guī)則進行統(tǒng)一定義、命名和編碼。數(shù)據(jù)模型是一組概念的集合,這些概念描述了系統(tǒng)的數(shù)據(jù)結構、動態(tài)特征和完整約束條件,這就是數(shù)據(jù)模型的三要素。數(shù)據(jù)結構是組成數(shù)據(jù)庫的對象的集合,是對象和對象間聯(lián)系的表達和實現(xiàn),是對系統(tǒng)靜態(tài)特征的描述。數(shù)據(jù)操作是數(shù)據(jù)庫中數(shù)據(jù)可執(zhí)行的操作集合,是對系統(tǒng)動態(tài)特性的描述。數(shù)據(jù)完整性約束是一組完整性規(guī)則的集合,規(guī)定了數(shù)據(jù)庫狀態(tài)以及狀態(tài)變化所滿足的條件,以保證數(shù)據(jù)的正確性、有效性和數(shù)據(jù)模型建模方法的基本原理相容性。而在大數(shù)據(jù)平臺中,我們構建一個元數(shù)據(jù)模型池,以供整個平臺按照需求進行模型設計和模型調用。

模型池:預測模型算法、Sqoop數(shù)據(jù)遷移、Storm數(shù)據(jù)模型算法、spark數(shù)據(jù)模型、數(shù)據(jù)庫連接管理模型。Sqoop基于MapReduce計算框架,支持Hive、MySQL、Oracle、HDFS、Impala、HBase之間相互數(shù)據(jù)遷移。每種數(shù)據(jù)模型,保存入模型池以啟動數(shù)據(jù)同步進行增量抽取任務。

1.2異構數(shù)據(jù)源連接管理

傳統(tǒng)的數(shù)據(jù)源的元數(shù)據(jù)主要有:源系統(tǒng)地址、網絡連接、訪問方式;計算機系統(tǒng)、操作系統(tǒng);源數(shù)據(jù)庫鏈接說明。在大數(shù)據(jù)平臺中主要是對異構數(shù)據(jù)源和同構數(shù)據(jù)源進行連接管理,例如對 Oracle、Hive、MySQL、HDFS、Impala進行連接管理以供元數(shù)據(jù)管理系統(tǒng)調用。這是大數(shù)據(jù)平臺ETL處理的第一步情況,也是貫穿整個大數(shù)據(jù)任務調度的一個關鍵點。

1.3大數(shù)據(jù)平臺中各種數(shù)據(jù)庫的元數(shù)據(jù)獲取

傳統(tǒng)關系型數(shù)據(jù)庫的元數(shù)據(jù)主要有:分區(qū)設置、索引、數(shù)據(jù)庫管理系統(tǒng)層次的安全性特權與授權;視圖定義;存儲過程與 SQL管理腳本;數(shù)據(jù)庫管理系統(tǒng)備份狀態(tài)、備份程序及備份安全性。而大數(shù)據(jù)不僅僅是關系型數(shù)據(jù)庫,還有基于列族的HBase,基于文件的MongDB,HDFS,數(shù)據(jù)倉庫Hive,Impala等NoSQL,獲取這些元數(shù)據(jù)才能夠使得大數(shù)據(jù)平臺滿足各大數(shù)據(jù)庫之間數(shù)據(jù)相互遷移,數(shù)據(jù)清洗,數(shù)據(jù)裝載。

2 基于Neo4j來設計元數(shù)據(jù)溯源方案

2.1Neo4j原理

Neo4j是一個基于圖論算法、完全兼容ACID的圖形數(shù)據(jù)庫。低層數(shù)據(jù)以一種針對圖形網絡進行過優(yōu)化的文件格式保存在磁盤上。由于Neo4j的圖形結構導致其數(shù)據(jù)結構不是必須的,而且可以完全沒有,它在數(shù)據(jù)建模方面針對常見的復雜領域數(shù)據(jù)集,如CMS里的訪問控制可被建模成細粒度的訪問控制表,類對象數(shù)據(jù)庫的用例等進行圖形數(shù)據(jù)建模。常常被用于基因分析、社交網絡數(shù)據(jù)建模、深度推薦算法等領域。由于Neo4j是自適應規(guī)模的,而且它的圖遍歷執(zhí)行速度是常數(shù),與圖大小無關,所以其讀性能可以達到每毫秒遍歷2000多節(jié)點關系,在處理圖關系時候完全是事務性的,這就保證了圖數(shù)據(jù)庫操作的完整性和準確性。相比關系型數(shù)據(jù)庫其性能更突出,而最為主要的一點是Neo4j面向分析的圖形數(shù)據(jù)庫。

2.2數(shù)據(jù)建模存儲

在大數(shù)據(jù)平臺的元數(shù)據(jù)池中,建模之后的數(shù)據(jù)模型都以JSON格式展現(xiàn)出來,基于Neo4j進行模型存儲,就要對其調用方式最小顆粒度進行分析、對其使用范圍進行規(guī)范、對其調用方式進行分析然后確定存儲方式。Neo4j存儲時候主要進行節(jié)點Label標簽定義、節(jié)點屬性定義、節(jié)點與節(jié)點之間關系定義。定義Label,主要是為了標示一個節(jié)點集合,為所屬節(jié)點的屬性定義某些限制,增加索引。Label機制提供的是一種對節(jié)點進行分組的方法,建立在分組上的管理需要采用TraversalDescription遍歷API機制來實現(xiàn),進而在該集合上執(zhí)行建立索引、定義約束和查詢等操作。定義節(jié)點屬性,按照首先創(chuàng)建空節(jié)點方法,添加屬性。而在創(chuàng)建的節(jié)點之間按照自己定義的關系語義來兩兩節(jié)點之間創(chuàng)建有向圖關系。

如圖1所示:這是基于Neo4j實現(xiàn)Storm兩張表進行Join操作最后導入HDFS中的數(shù)據(jù)模型存儲。

圖1 Neo4j存儲的Storm的Topology模型

2.3元數(shù)據(jù)版本維護

針對元數(shù)據(jù)的不斷更新、補缺、變換,傳統(tǒng)元數(shù)據(jù)管理系統(tǒng)沒有版本維護功能,很難完整地記錄所有的更改歷史記錄,也很難在某個時間戳的時間節(jié)點上進行統(tǒng)計和查詢。在大數(shù)據(jù)平臺中,如果對元數(shù)據(jù)的追加和元數(shù)據(jù)的更新做一個版本維護的話,數(shù)據(jù)量太大很少有人去愿意這樣做,而我們基于Neo4j做元數(shù)據(jù)版本管理,針對圖關聯(lián),以及最短路徑算法對其進行高效存儲和快速查詢。與數(shù)據(jù)模型不同的是大量元數(shù)據(jù)我們存儲進入Neo4j圖形數(shù)據(jù)庫,采取嵌入式離線存儲方式,其內部采取MapReduce,可以快速存儲上億節(jié)點,把每條元數(shù)據(jù)設計為最小顆粒度進行節(jié)點存儲,一旦某條記錄被改變,不用去刪除節(jié)點,只需要在節(jié)點之后擴展一個加入時間戳的新節(jié)點,并建立有向圖關系,在查詢時候可以根據(jù)需求,對每一個修改時間段進行版本維護,可以快速實現(xiàn)不同版本之間全表對比,而且可以對修改的元數(shù)據(jù)很快速地遍歷修改過程和修改詳情。

圖2 元數(shù)據(jù)版本管理

如圖2所示:按照我們的設計方案,某元數(shù)據(jù)經歷5次改變,甚至元數(shù)據(jù)都改變了Label,實現(xiàn)了跨集合之間版本管理和全表對比。

2.4元數(shù)據(jù)溯源

基于異構數(shù)據(jù)源的連接管理和數(shù)據(jù)源版本管理的基礎之上,我們需要對元數(shù)據(jù)的每一條信息,例如數(shù)據(jù)庫的表字段,進行數(shù)據(jù)溯源,在整個大數(shù)據(jù)平臺數(shù)據(jù)處理中,一旦某元數(shù)據(jù)做了更新和變換,我們都能通過最終形式的表現(xiàn)追溯到這個字段的整個遍歷歷史詳情,我們采用Neo4j進行有向圖擴展,每次元數(shù)據(jù)更改我們會基于這個節(jié)點對其進行節(jié)點擴展,其中兩個節(jié)點之間關系類型設計為修改標示符,在新增節(jié)點加入修改時間戳,以利于遍歷節(jié)點時候,能夠記錄修改時間,以及做時間段修改數(shù)量統(tǒng)計和遍歷詳情管理,數(shù)據(jù)源的每一個表一個Label,每一個字段一個節(jié)點,節(jié)點中屬性就是Value,外加連接節(jié)點信息。這種設計模式,可以最小粒度來溯源以及管理整個元數(shù)據(jù),在大數(shù)據(jù)平臺整個元數(shù)據(jù)這種粒度調用管理,可以任意調取,以及實現(xiàn)不同的推送功能和將來擴展的應用。元數(shù)據(jù)溯源節(jié)點遍歷主要是對最短路徑算法和Dijkstra算法的實現(xiàn)。

最短路徑算法如下所示:

這種最短路徑算法,針對數(shù)據(jù)模型的深入和節(jié)點關系的出入度,而Dijkstra解決有向圖中任意兩個頂點之間的最短路徑問題,這種算法在元數(shù)據(jù)溯源和版本維護中可以快速查找作業(yè)流程和全表對比。

3 結語

本文基于Neo4j對大數(shù)據(jù)平臺的元數(shù)據(jù)進行溯源設計。通過Neo4j構建數(shù)據(jù)模型池,生成數(shù)據(jù)模型圖以供平臺調用,而對元數(shù)據(jù)的連接管理和任務調度過程以圖形進行關聯(lián),進而對元數(shù)據(jù)進行版本管理和溯源,對整個大數(shù)據(jù)平臺的ETL模塊進行流程監(jiān)控,流程回溯和全局掌控,并且對平臺內部擴展功能模型進行流程關聯(lián)和任務調度流程記錄。大數(shù)據(jù)的元數(shù)據(jù)溯源實現(xiàn)并且大大地提高了大數(shù)據(jù)平臺的推送能力和擴展N個大數(shù)據(jù)應用的能力,在未來大數(shù)據(jù)發(fā)展中,進一步提高平臺擴展性和推送能力將是大數(shù)據(jù)平臺自適應發(fā)展的一個核心發(fā)展方向。

[1]宋杰,郝文寧,陳剛等.基于MapReduce的分布式ETL體系結構研究[J].計算機科學,2013,40(6):152~154

[2]Ian Robinson,Jim Webber,and Emil Eifrem.Graph Databases[M].US:O'Reilly Media,2013

[3]宋青,汪小帆.最短路徑算法加速技術研究綜述[J].電子科技大學學報,2012,2(41):177~178

[4]戴磊,馬小平,姜代紅.基于優(yōu)化Dijkstra算法的物流配送系統(tǒng)設計[J].微電子學與計算機,2011,10(28):34~35

[5]方圓,杜祝平,周功業(yè).基于對象存儲的新型元數(shù)據(jù)管理策略[J].計算機工程,2012(3):25~27

[6]White T.Hadoop:The Definitive Guide[M].US:O'Reilly Media,2012

[7]Jin X J.Trident Storm and Flow Calculation Experience[J].Journal of Programmers,2012(10):99~103

[8]陸嘉桓.大數(shù)據(jù)挑戰(zhàn)與NoSQL數(shù)據(jù)庫技術[M].北京:電子工業(yè)出版社,2013

Big Data;Metadata;Provenance;Neo4j

Research on the Process of Metadata Provenance in the Big Data Based on Neo4j

JIN Yong-chao1,2,WU Huai-gu2
(1.College of Mathmatic and Computer,Xihua University,Chengdu 610039;2.College of Information Science Technology,Chengdu University,Chengdu 610106)

1007-1423(2015)08-0061-04

10.3969/j.issn.1007-1423.2015.08.014

靳永超(1987-),男,陜西寶雞人,碩士,研究方向為云計算、大數(shù)據(jù)處理

2015-02-12

2015-03-12

在大數(shù)據(jù)處理中,針對大量的結構化數(shù)據(jù)、半結構化數(shù)據(jù),數(shù)據(jù)以不同形式被遷移、轉換、裝載,整個流程的數(shù)據(jù)和元數(shù)據(jù)都得不到很好掌控和集中管理,沒有辦法追根溯源,這對整個大數(shù)據(jù)平臺自適應的推送能力和擴展能力產生極大影響。提出一種基于Neo4j圖形數(shù)據(jù)庫來對大數(shù)據(jù)的元數(shù)據(jù)進行溯源的方法,以使得整個大數(shù)據(jù)處理過程中對元數(shù)據(jù)進行全局掌控,流程監(jiān)控和流程回溯。

大數(shù)據(jù);元數(shù)據(jù);溯源;Neo4j

吳懷谷(1975-),男,四川成都人,博士,教授,研究方向為云計算體系結構、移動應用體系結構和分布式信息系統(tǒng)

In the process of big data,as for the large number of structured data,semi-structured data,the data is migrated,transformed,and loaded in different forms.The whole process of the data and metadata are hard to control and centralize management.And there is also no way to track back these data,so it affects this push capability and scalability of the whole large data platform.Proposes a method which is based on Neo4j graphics databases to provenance to the metadata,in order to global control,flow monitoring and flow provenance the processing of the data.

猜你喜歡
數(shù)據(jù)模型數(shù)據(jù)源數(shù)據(jù)庫
面板數(shù)據(jù)模型截面相關檢驗方法綜述
Web 大數(shù)據(jù)系統(tǒng)數(shù)據(jù)源選擇*
加熱爐爐內跟蹤數(shù)據(jù)模型優(yōu)化
電子測試(2017年12期)2017-12-18 06:35:36
基于不同網絡數(shù)據(jù)源的期刊評價研究
數(shù)據(jù)庫
財經(2017年2期)2017-03-10 14:35:35
數(shù)據(jù)庫
財經(2016年15期)2016-06-03 07:38:02
數(shù)據(jù)庫
財經(2016年3期)2016-03-07 07:44:46
數(shù)據(jù)庫
財經(2016年6期)2016-02-24 07:41:51
基于真值發(fā)現(xiàn)的沖突數(shù)據(jù)源質量評價算法
分布式異構數(shù)據(jù)源標準化查詢設計與實現(xiàn)
黄大仙区| 罗山县| 卢龙县| 兴国县| 牡丹江市| 乌鲁木齐市| 绥德县| 封开县| 阜城县| 衡南县| 左贡县| 连云港市| 澄江县| 叶城县| 黑河市| 安仁县| 天柱县| 博乐市| 琼结县| 平远县| 九江县| 崇明县| 行唐县| 元谋县| 宜宾市| 永兴县| 泰来县| 贺兰县| 长宁县| 集贤县| 邯郸县| 佛山市| 海门市| 改则县| 江源县| 泌阳县| 加查县| 观塘区| 湄潭县| 慈利县| 樟树市|