国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

圖數據導入技術性能優化實踐

數據庫
圖數據庫已廣泛應用于社交網絡、精準推薦、金融風控、知識圖譜等領域。數據導入功能作為大批量圖數據應用的第一個且比較關鍵的環節,在開展圖應用過程中非常重要。本文主要選取Neo4j,NebulaGraph,JanusGraph三種圖數據庫作為研究對象,深入對比分析各自在數據導入方面的特點,最后介紹在數據導入技術方面的解決方案。

1、背景介紹

圖數據是NoSQL非關系型數據類型的一種,通過應用圖形理論來存儲表示實體之間的關系信息,如社交網絡中人與人之間的關系、知識圖譜中實體間的連接關系等。圖數據庫的獨特設計,很好的彌補了關系數據庫不適用于存儲圖形數據、查詢邏輯復雜、查詢速度緩慢的缺點。因此,圖數據庫已廣泛應用于社交網絡、精準推薦、金融風控、知識圖譜等領域。

數據導入功能作為大批量圖數據應用的第一個且比較關鍵的環節,在開展圖應用過程中非常重要。經過調研,市場上比較主流的圖數據庫有Neo4j,NebulaGraph,TigerGraph,JanusGraph,HugeGraph,DGraph等多個國內外廠商。本文主要選取Neo4j,NebulaGraph,JanusGraph三種圖數據庫作為研究對象,深入對比分析各自在數據導入方面的特點,最后介紹下我們在數據導入技術方面的解決方案。

1.1 NebulaGraph圖數據庫

NebulaGraph是一款開源的分布式原生圖數據庫,采用shared-nothing分布式架構設計,擅長處理千億節點萬億條邊的超大規模數據集,并且提供毫秒級查詢。它采用計算和存儲分離的架構模式,基于RocksDB作為本地存儲引擎自研了高性能的KVStore,采用Raft協議保證分布式系統的多副本強一致性和高可用性。

NebulaGraph在數據導入方面提供了多種工具組件操作,如Importer、Console、Studio、Exchange等,其中Console是控制端使用命令行方式導入,適用于操作少量手工測試數據;Studio組件可以通過瀏覽器導入本地機器上多個csv文件,只限制使用csv類型;Importer工具可以導入單機多個csv文件,一般數據量限制在億級以內使用;Exchange組件基于Spark分布式集群,可以從csv、Hive、Neo4j、MySQL等多種數據源導入大批量數據集,支持十億級以上數據;Spark-connector組件使用需要有一定的軟件研發能力,撰寫少量代碼。

每種工具的使用復雜度和導入速度可從下面的坐標圖看出:

圖片

1.2 JanusGraph圖數據庫

JanusGraph是一款開源的分布式圖數據庫,基于Apache TinkerPop3框架開發,采用Gremlin查詢語言,具備完善的工具鏈組件,助力用戶輕松構建基于圖數據庫之上的應用和產品。JanusGraph在存儲層設計中,支持分布式存儲、數據多副本、橫向擴容,內置多種后端存儲引擎,并且可通過插件方式集成第三方存儲來擴展后端存儲引擎,如Cassandra、HBase、BerkeleyDB等數據中間件。

JanusGraph圖數據庫提供如下幾種數據導入方式:

? Api數據導入:該方案通過提交java api插入數據請求,可用于數據量較小的情況下使用;

? 基于Gremlin Server的批量數據導入:該方案通過gremlin語句提交插入請求,需搭建Gremlin Server服務,要有一定的研發能力;

? 基于Bulk Loader組件導入:官方提供批量導入方式,需要Hadoop/Spark集群環境,支持json、csv、xml、kryo等類型,可用于大批量數據導入。

JanusGraph數據導入流程如下圖所示:

圖片

1.3 Neo4jGraph圖數據庫

Neo4j是一款由Java開發的半開源圖數據庫,采用Cypher查詢語言,支持快速數據庫操作和直觀的圖數據展示,且操作速度不會隨數據量增大而明顯降低。Neo4J采用原生圖存儲設計,在存儲節點時使用了"index-free" adjacency模型,每個節點都有指向其鄰居節點的指針,可在O(1)的時間內找到鄰居節點,提供快速、高效的圖遍歷。

Neo4j支持以下幾種數據導入方式:

? 基于Cypher語法中的Load-csv方式:官方提供的ETL工具,僅支持csv文件,導入速度慢,需掌握 Cypher 語言,適用于小批量數據;

? Neo4j-import導入工具:官方自帶的大數據量導入工具,支持并行可擴展的大規模csv文件導入,適用于初始化數據在千萬級以上的數據;

? BatchInserter導入工具:一種API數據導入方案,只能在Java中使用,導入速度很快,適用于千萬級以上大批量數據操作。

Neo4j圖數據庫架構設計圖如下:

圖片

綜合比較以上多種圖數據庫的數據導入能力情況,我們選取NebulaGraph國產圖數據庫的Exchange組件作為重點研究對象,它是一款Apache Spark應用,基于Apache 2.0協議開放源代碼,支持多種不同格式、不同來源的數據,如:csv、json、hdfs、hive、MySQL、kafka、Neo4j等,我們將從代碼架構優化、依賴集群調優、存儲層結構優化等多個方面對組件的導入能力做優化。

2、數據導入優化技術點

經過調查對比研究,當前圖數據導入功能存在導入效率不高、數據源形式限制嚴格、工具操作復雜等問題,我們將以Exchange組件為基礎,從導入流程框架優化、Spark集群調優策略、存儲層RocksDb組件優化等不同維度研究提升數據導入效率,從而最大限度的縮短大批量數據導入時間,豐富導入數據源形式,節省使用人員的時間成本。

數據導入組件技術流程設計如下:

圖片


2.1 Exchange組件優化

Exchange是基于Spark組件編寫的一款應用,主要功能是將集群中多種不同格式的批式數據和流式數據批量導入到圖數據庫中。

我們通過設計并優化“Reader-Processor-Writer”三層數據導入模型,并引入并發編程模型多線程處理不同點和不同邊的數據處理過程,其中Reader層讀取不同來源的批數據并生成分布式數據集 DataFrame,Processor層負責讀取DataFrame中的批數據,通過提取圖數據的結構特點,根據配置文件中設定的映射關系按列名獲取對應值,在讀取到指定批處理的數據后,Writer層負責將獲取到的批數據一次性寫入到圖數據庫中。在整個處理流程中,部分參數設定對處理速率影響較大,如batch(指定單批次寫入圖數據庫的最大點邊數量)、partition(指定 Spark分片數量)、rate.limit(指定導入數據時令牌桶令牌數量限制)等,如何根據機器資源環境合理的設置相應的參數非常重要。

在數據導入流程中,以充分利用spark分布式引擎資源為目的,根據服務器資源使用情況、數據插入速率和響應時間等因素,通過設計集群動態參數自適應策略,動態調整batch單次批量插入數據量,以及spark集群partition分區數,合理的分區數能減少任務調度時間及數據傾斜問題,快速并行處理RDD數據集,最大程度利用集群性能,提升數據轉換效率。同時,設計RateLimiter限流機制,采用令牌桶算法控制圖數據庫單次gql數據插入量,保證在處理大批量數據時圖數據庫能正常平穩運行。另外,利用斷點續傳能力,把上一階段未轉換完的數據(網絡中斷等原因),通過保存斷點方式繼續轉換,提升數據轉換穩定性。

大批量圖數據導入流程架構圖設計如下:

圖片

2.2 Spark集群優化

Spark是一種基于內存的快速、通用、可擴展的大數據分析計算引擎,Exchange是基于Spark編寫的一款應用,它基于Spark的分布式環境將集群中的數據批量遷移到圖數據庫中,如何充分利用好分布式集群資源,是提高Exchange數據導入效率的一個關鍵點。

我們在編寫好Exchange組件代碼程序后,按照Spark約定使用spark-submit命令提交運行,Spark支持local、standalone、mesos、yarn四種運行模式,生產環境推薦使用yarn集群模式運行,我們使用此模式進行任務運行及調試。

通過一系列的調優對比測試,結合官網等資料說明,總體來講要充分壓榨使用集群資源,在資源限制內盡量多的調配內存消耗和增加并發。在應用運行調優過程中,需根據當前Spark集群配置來設置調優各個參數,以減少任務調度時間及數據傾斜問題,最大化提升數據運行效率。

? 個別重要參數簡要說明如下:num-executors 根據集群服務器臺數來參考設置,executor-cores根據每臺機器CPU核數來設置,driver-memory和execute-memeory根據總的內存來設置,其中num-executors * execute-memory不能超過集群可用內存等。

2.3 Storage存儲層優化

圖存儲的主要數據是點和邊,Nebula圖數據庫將點和邊的信息存儲為key,同時將點和邊的屬性信息存儲在value中,以便更高效地使用屬性過濾。Nebula在Storage層使用RocksDB作為存儲組件,RocksDB是一個可插拔式的持久化存儲系統,基于LSM架構,支持高效的讀寫吞吐,具備和分布式存儲系統類似的術語操作定義,如 WAL,Compact,Transaction等。

作為分布式存儲引擎的一個存儲媒介,在方案設計時為了保證數據一致性,RocksDB整個寫入鏈路會先寫WAL,再寫memtale,其中WAL保證了數據的高可用性,在宕機時可根據WAL恢復數據。

在存儲層的參數配置上,RocksDB中部分比較重要的參數介紹如下:rocksdb_block_cache,設置默認塊緩存大小,用來緩存解壓后的數據,建議設置為節點有效負載內存的1/3左右;max_background_jobs,設置后臺工作子線程數,加快壓縮效率,建議設置為節點機器的有效可用核數;max_subcompactions,設置壓縮線程數。

上述參數可結合數據導入配置中batch等參數一起調試使用,進而選擇與當前環境資源比較匹配的一個理想參數配置。

存儲層數據寫入流程圖如下:

圖片

3、總結

上面是我們在大批量圖數據導入功能總結的一些優化經驗,經過多種策略調優設計,測試報告顯示在同等資源下億級數據量優化前后導入性能提升了12.66%。軟件優化是一項無止境的系統工程,除了上面我們提到的這些調優策略之外,還有很多其它的處理手段我們沒有發現,希望大家能繼續探索研究,多多交流。

責任編輯:龐桂玉 來源: 移動Labs
相關推薦

2020-03-23 15:15:57

MySQL性能優化數據庫

2009-12-16 14:10:12

路由技術性能比較

2025-01-21 14:00:00

Golang數據結構struct

2023-12-30 14:05:32

Golangstruct數據結構

2010-07-06 09:07:09

2016-09-28 22:04:05

5G5G技術

2009-12-16 14:10:22

路由技術性能比較

2011-05-18 09:39:19

Oracle數據庫性能優化

2020-07-17 19:55:50

Vue前端性能優化

2023-06-30 13:22:19

2022-10-28 13:41:51

字節SDK監控

2019-08-02 11:28:45

HadoopYARN調度系統

2021-09-24 14:02:53

性能優化實踐

2024-03-19 09:24:00

大數據數據分析性能優化

2022-03-29 13:27:22

Android優化APP

2014-03-19 14:34:06

JQuery高性能

2017-03-01 20:53:56

HBase實踐

2015-09-17 09:08:08

2016-11-17 09:00:46

HBase優化策略

2012-12-24 09:55:15

JavaJava WebJava優化
點贊
收藏

51CTO技術棧公眾號

日韩黄色网址| 国产精品丝袜白浆摸在线| 中文国产一区| 成人免费在线观看网站| 色偷偷噜噜噜亚洲男人| 精品亚洲成a人| 国产cdts系列另类在线观看| 亚洲一区二区三区四区在线播放| 亚洲欧美日韩在线| www国产精品| 十八禁视频网站在线观看| 中文字幕免费国产精品| 国产aⅴ精品一区二区三区色成熟| 久久亚洲导航| 日韩资源av在线| 日韩久久久精品| 日韩av电影天堂| 好吊日av在线| 丝袜美腿玉足3d专区一区| 51午夜精品国产| 免费在线亚洲| 国语对白在线刺激| 免费观看中文字幕| 亚洲精选中文字幕| 成人午夜av电影| 天堂久久av| 91.·福利| 国产欧美日韩中文字幕| 欧美日韩国产一中文字不卡| 婷婷亚洲五月色综合| 黄色的视频在线免费观看| 国产精品v欧美精品∨日韩| 欧美久久高跟鞋激| 免费一级片91| 成人国产精品一区二区免费麻豆 | 亚洲成a人片777777久久| 国产日韩欧美精品在线观看| 日韩视频在线免费观看| 国产午夜一区二区三区| 99re8这里有精品热视频免费| 成人嫩草影院免费观看| 日韩免费高清在线观看| 欧美日韩亚洲国产一区| 国产日韩欧美一区在线| 女人让男人操自己视频在线观看| 国产在线播放观看| 97久久精品人搡人人玩| 大伊人狠狠躁夜夜躁av一区| 日韩一级网站| 国产精品一区二区av影院萌芽| 国产女大学生av| 26uuu另类亚洲欧美日本一| 黑人巨大精品欧美一区二区一视频| 亚洲国内自拍| 国产亚洲一区二区手机在线观看| 日日噜噜噜噜久久久精品毛片| 国产精品女人网站| 欧美顶级少妇做爰| 粉嫩蜜臀av国产精品网站| 欧美人成在线观看ccc36| 九色在线视频| 国产 国语对白 露脸 | 国内精品久久久久久久久电影网| 午夜cr在线观看高清在线视频完整版| 久久久久久99| 中文字幕欧美国内| 亚洲成人免费视频| 日韩精品一区第一页| 欧美久久久网站| 国产最顶级的黄色片在线免费观看| 国产视频一区二区三区四区| 亚洲午夜小视频| 一区二区在线看| 久色成人在线| 中文字幕一区二区三区日韩精品| 国产在线中文字幕| 国产一线二线三线女| 国产精品久久久久不卡| 日韩三级在线免费观看| 久久久久久99精品| 国产专区一区| 亚洲欧美久久精品| av在线中文| 亚洲中文字幕久久精品无码喷水| 91久久精品国产91久久性色| 亚洲四色影视在线观看| 亚洲国产精品久久艾草纯爱| 久久成人av少妇免费| 亚洲区小说区| 欧美13videosex性极品| 传媒在线观看| 大胆欧美熟妇xx| 91久久偷偷做嫩草影院| 日韩视频在线一区| 欧美丝袜自拍制服另类| 国产视频一区在线播放| 亚洲综合二区| 一区三区在线欧| 一级毛片久久久| 中文字幕一二三区在线观看 | 久久精品五月婷婷| 欧美一区二区在线不卡| 国产精品免费免费| 4438全国成人免费| 亚洲女同在线| 精品日产乱码久久久久久仙踪林| 最爽无遮挡行房视频在线| 羞羞的视频网站| 强伦女教师2:伦理在线观看| 国产精品99久久久久久久久久久久| 亚洲激情视频网| 日韩欧美a级成人黄色| 久久久久久久久免费| 美女被久久久| 精品国产一区二区三区久久久蜜臀| 黄毛片在线观看| 加勒比一区二区三区在线| 99热手机在线| www.午夜色| 国产二区不卡| 国产极品jizzhd欧美| 免费99精品国产自在在线| 亚洲第一精品自拍| 欧美亚洲图片小说| 亚洲一区二区三区在线看| 91在线云播放| 精品一区二区三区影院在线午夜| 韩日精品视频| 欧美手机在线| 超碰cao国产精品一区二区| 国产精品一区二区av影院萌芽| 老司机午夜在线| 欧美69xxxxx| 曰本人一级毛片免费完整视频| www.玖玖玖| 成人在线观看毛片| 午夜欧美性电影| 九九九九精品九九九九| 96sao精品视频在线观看| 日本视频久久久| 午夜精品在线视频| 欧美日韩国产123| 日韩在线观看免费网站| 亚洲精品中文字幕有码专区| 欧美一级二级三级乱码| 91国产精品成人| 欧美性猛交xxxx富婆弯腰| 一区二区三区加勒比av| 中文字幕一区三区| 国产精品三级电影| 亚洲国产精品ⅴa在线观看| 99精品视频在线观看| 成人夜色视频网站在线观看| 国产一区二区看久久| 精品一区二区日韩| 九九**精品视频免费播放| 毛片av一区二区三区| 美国欧美日韩国产在线播放| 日韩高清不卡在线| 日本美女视频一区二区| 美女尤物国产一区| 精品无人码麻豆乱码1区2区| 精品综合久久久久久8888| 精品一区二区三区免费| 九九国产精品视频| 国产乱码精品一区二区三区忘忧草 | 亚洲精选一二三| 亚洲色大成网站www久久九九| 国产日韩欧美激情| 久久精品人人做人人综合| 国产视频在线观看一区二区三区 | 精品一区二区三区视频日产| 丁香五月网久久综合| 国产精品免费在线播放| 国产精品视频福利| 欧美日韩一区二区三区在线视频| 欧美日韩一区二区三区在线视频 | 精品裸体bbb| 欧美网站免费| 91麻豆精品激情在线观看最新| 色播一区二区| 欧美成人基地| 成人av二区| 亚洲视频免费| 奇米色一区二区三区四区| 国产在线精品一区二区不卡了| 高清视频一区二区| 国产欧美一二三区| 夜色激情一区二区| 91九色最新地址| 欧美大黄免费观看| 亚洲视频一区二区三区| 久久久精品免费| 91精品国产高清自在线看超| 国产精品久久一| 国产精品推荐精品| 中文字幕在线亚洲精品| 国产xxxxx在线观看| 女生裸体视频网站免费观看| 国产午夜精品一区理论片|