V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
aeczen
V2EX  ›  分享创造

GraphAr:一款开源的图数据存储和归档的标准化文件格式

  •  
  •   aeczen · 2023-05-16 15:51:13 +08:00 · 650 次点击
    这是一个创建于 561 天前的主题,其中的信息可能已经有所发展或是发生改变。

    Hi ,v2ers ,给大家介绍一下我们开源的标准化图数据文件格式 - GraphAr

    项目地址: https://github.com/alibaba/GraphAr

    背景

    随着社交网络分析、数据挖掘、科学计算等应用的发展,图计算作为海量数据分析的重要组成部分,变得日益重要,业界也诞生了很多基于内存 /外存的图存储、数据库、图分析和交互式图查询引擎等。由于图计算的生态非常碎片化,存在很多不同类型的数据格式和访问模式,因此需要建立一套标准化的文件格式和访问接口来解决各种图计算系统的数据导入导出,互相访问的问题。

    GraphAr 是什么

    GraphAr

    GraphAr 就是为了解决不同图计算系统数据导入导出过于复杂的问题而设计的。它为图数据定义了一套标准化的、独立于计算 /存储系统的文件格式,并提供了一系列接口用来生成、访问和转换这些格式化的文件。GraphAr 可以帮助各类图计算应用或现有系统方便快捷地构建和访问图数据,它既可以作为图计算应用的直接数据源,也可以服务于图数据的导入 /导出和持久化存储,减少各类图系统之间协同工作的开销。

    目前 GraphAr 项目包含:

    • 标准化图存储文件格式 GraphAr 的定义
    • C++ SDK:用于构建和读写 GraphAr 元信息及数据块文件,同时也通过抽象化的访问接口提供了一定支持外存图计算的能力
    • Spark SDK:用于利用 Apache Spark 高效、方便、可扩展地批量生成、加载或转化 GraphAr 文件

    未来还会添加更多的数据类型,文件类型支持,多语言 SDK 等

    设计思路

    为了尽可能兼顾各类系统对图数据存储和访问的不同需求,GraphAr 标准化图文件格式的设计考虑了如下要点:

    • 尽可能利用现有的成熟的文件格式,例如 ORC 、Parquet 、CSV 等,并保持兼容性。
    • 支持简单图及属性图,支持不同的图拓扑结构的表示方式( COO ,CSR 和 CSC )。
    • 支持使用 Apache Spark/Hadoop 等非图计算引擎来方便地生成 /加载 /转换这样的格式化文件。
    • 方便不同的单机 /分布式图计算引擎、数据库加载使用,也能支持丰富的下游计算任务,如外存图计算。
    • 支持在保持负载文件不修改的情况下做一些日常的操作,如:添加新的属性,在图中添加一组新的类型的点 /边,通过不同类型和点和边的自由组合来构建一个新的图等。

    应用场景

    GraphAr 现已支持在多个场景中进行应用,部分已经实现的案例包括

    • 接入大规模图系统 GraphScope, 为 GraphScope 系统提供图数据的导入导出。载图性能相对于从 CSV 等关系数据格式提升了6 倍
    • 通过 GraphAr 的 Spark SDK 对接典型的图数据库系统 Neo4j ,实现了将 Neo4j 数据库中的数据导出到 GraphAr 文件完成数据落盘,以及从 GraphAr 文件读取图数据并加入 /更新到 Neo4j 数据库的实例当中。

    未来

    未来随着 GraphAr 的发展成熟,我们的目标是将项目贡献到一个供应商中立的场所,例如 Apache 、LF AI & Data 。这将确保项目继续以开放透明的方式进行开发,并得到广泛的开发者社区的贡献。

    👏 如果你对开源感兴趣,欢迎加入 GraphAr 的社区,和我们一起推进 GraphAr 的发展。

    👏 如果你觉得这个项目还不错,可以在 github加星,关注,这是对我们开发者莫大的鼓励。

    目前尚无回复
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1322 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 17:46 · PVG 01:46 · LAX 09:46 · JFK 12:46
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.