《GraphAr4Datafun.pdf》由会员分享,可在线阅读,更多相关《GraphAr4Datafun.pdf(24页珍藏版)》请在三个皮匠报告上搜索。
1、DataFunSummit#2024GraphAr:开源的标准图存储文件格式演讲人-曾维彬-阿里巴巴01为什么要有GraphAr02GraphAr 是什么03GraphAr 能做什么04GraphAr的开源发展目录CONTENTDataFunSummit#202401为什么要有GraphAr从图计算生态与文件存储场景说起场景一:多个图系统的协同工作一个真实场景的完整工作流数据载入以及 ETL图的模式匹配,例如clique图学习算法图的分析算法,例如标签扩散验证结果及可视化SQL/DataFrame图数据库GNN 系统图分析系统交互式分析和可视化可视化工具图分析系统 A图数据库 A图数据库 BG
2、NN 系统不同系统之间的数据导入导出图分析系统 B标准化格式需要一个标准化图文件存储格式图分析系统 A图数据库 A图数据库 BGNN 系统图分析系统 B可视化工具场景二:数据湖中的图查询Dad:Person labels:Asian&EnrolleeChild:Personlabels:Asian&EnrolleeMom:Person labels:Asian&Enrollee:Diseasename:Hypertension:Diagnoseddate2020-01-01:IsParent:DiagnosedQuery patternDisease(did,name)Person(label
3、s,pid)Diagnosed(pid,date,did)IsParent(sid,date,oid)PersonDiseaseDiagnosedIsParentData lakeSchema of an example LPG!Query on data lake1.Hard to express LPG;2.Inefficient to implement.No label filtering:Disease-:Diagnosed-:Person针对关系型数据的文件格式:1.难以准确表达图的语义2.无法支持高效的图查询数据湖中的图查询Apache ORC、Parquet 等文件格式被广泛用
4、于关系型数据的存储数据中包含的属性图语义解决方案:一种标准的图存储文件格式图存储文件格式准确表达图语义兼容现有生态高效的访问与查询DataFunSummit#202402什么是 GraphAr什么是GraphArGraphAr:一个用于图数据归档和交换的标准文件格式,目标是让不同的应用或系统(内外存图存储、数据库、图计算系统和交互式图查询框架)能够方便高效地构建和访问图数据可视化工具图分析系统 A图数据库 A图数据库 BGNN 系统图分析系统 BGraphAr图分析系统 A图数据库 A图数据库 BGNN 系统图分析系统 B可视化工具GraphAr 的特性广泛通用的文件格式定义独立于计算/存储系
5、统的文件格式属性图建模,支持多种数据类型兼容多种文件系统(本地文件系统、OSS、S3)和负载文件类型(Parquet、Orc、Csv)支持多种属性图的拓扑表示(COO、CSC、CSR)丰富的数据读写和转化接口内/外存图计算的直接数据源多语言 SDK(C+、JAVA、Scala、Python)不同层次的读写 API简单易用的数据转换工具利用 Apache Spark 批量生成、加载、转换数据格式方便高效地追加点数据和属性组Neo4jNebulaGraphApache HugeGraphGraphScopeVineyard属性图(LPG)数据模型personpersonid:933firstNam
6、e:MahindalastName:Pereragender:maleid:6597069767117firstName:ElilastName:Peretzgender:femalelikescreationDate:2010-07-30T15:19:53.298+0000knowshasCreatorcreationDate:2010-09-17T05:14:53.412+0000id:6creationDate:2011-08-17T14:26:59.961+0000locationIP:31.210.17.48browserUsed:Chromecontent:y
7、eslength:3commentpersoncommentperson knows personperson likes commentcomment hasCreator personVertex typesEdge types原始数据:关系数据文件表示idfirstNamelastNamegender933MahindaPereramale6597069767117EliPeretzfemale700JosephAndersonfemale227YacineAbdellimale32985348834100BrunoOliveiramalesr
8、cdstcreationDate93343980465116282010-07-30T15:19:53.298+000093387960930230172010-10-27T02:33:06.288+0000933285873023225372012-04-12T13:56:58.931+000065970697677892742011-03-25T14:49:23.134+0000285873023238337962012-08-21T00:02:08.530+000032985348833794329853488340532012-08-13T1
9、0:11:20.606+0000personVertex typeperson knows personEdge typeGraphAr:元数据文件GraphInfo:ldbc_sample.graph.ymlVertexInfo:person.vertex.ymlEdgeInfo:person_knows_person.edge.ymlGraphAr:数据文件图的根目录vertexperson_knows_personedgeordered_by_sourceadj_listcreationDateoffsetpart0part1chunk0chunk1Parquet、ORC、CSV等格式文
10、件personidfisrtName_lastName_genderchunk0chunk1GraphAr:灵活地构建子图Definition of Graph in GraphArldbc_sample.graph.ymlldbc.graph.yml快速灵活构建子图(仅修改元数据)元数据GraphAr 软件库Graph Info Vertex InfosEdge InfosMeta informationArrow TableSpark DataFrameSingle Vertex/EdgeVertex collectionEdge collectionA data chunkA serie
11、s of chunksA property group内存数据结构ReaderWriterGraphAr Libraries(in C+/JAVA/Scala/Python)数据访问DataFunSummit#202403GraphAr 能做什么GraphAr 的应用场景图数据库数据的归档落盘Neo4jNebulaGraphGraphAr 磁盘文件本地文件系统、S3、OSS等Spark DataFrame图分析/计算任务单机图计算算法GraphScopeBoost Graph LibraryGNN 系统Neo4j/NebulaSpark ConnectorGraphAr Spark Libra
12、ryGraphAr C+/JAVA/Scala/Python Library内/外存图计算应用的数据源New Future on CloudGraphAr C+Reader(流式访问 API)SparkGraphXGraphAr 磁盘文件本地文件系统、S3、OSS 等GraphAr Spark ReaderGraphAr C+ReaderSpark DataFrameBGL 内存图结构Boost GraphLibrary外存图算法当前所需的点/边数据湖中的高效图查询数据注入数据湖GraphAr 数据文件GraphAr 元信息和数据索引图查询基于 GraphAr 提供的高效图算子实现高效的 la
13、bel/属性过滤高效的邻点邻边访问 30倍典型负载(源于标准 benchmark LDBC SNB)的性能平均提升业务场景:子图抽取和计算原始图数据原始数据GraphArOSSDataBase图计算任务GraphScopeGraph-1:social-netGraph-2:buyingGraph-3:ratingvertex:user vertex:item vertex:rating vertex:shop edge:post edge:buy edge:friends GraphAr Writer生成数据GraphAr Reader访问数据DataFunSummit#202403Graph
14、Ar的开源发展GraphAr 开源社区百度HugeGraph 团队Nebula Graph蚂蚁集团TuGraph 团队阿里巴巴GraphScope 团队当前的社区贡献者与用户:GraphAr 目前正准备加入Apache孵化器https:/lists.apache.org/list.html?generalincubator.apache.orgGraphAr 技术规划更好的使用体验更多的应用场景更快的读写性能GraphAr CLI 工具更丰富灵活的 API更易用的数据转换工具更多内置图计算算子更多语言 SDK更多文件类型支持自定义数据类型支持跨语言支持更高性能的过滤下推更有效的缓存机制优化压缩/编码格式按时间数据分区管理欢迎关注 GraphArhttps:/