|探索图数据库在数据资产可视化中的应用( 六 )


图数据库和关系型数据库性能比较
|探索图数据库在数据资产可视化中的应用
本文插图

如图所见 , 传统关系型数据库可以非常好地处理深度为2和3的查询 。 join操作在关系型数据库世界中很常见 , 大多数数据库都是如此设计 , 在某些特定列上使用索引相关也能帮助最大化join操作的性能 。 然而 , 当深度达到4和5时 , 您会看到性能显著下降:一个涉及4个join的查询需要10秒以上才能完成 , 而在深度为5时更花了太长时间 , 超过一分半钟 , 虽然计数结果没有改变 。 这恰恰说明了在对图结构数据建模时关系型数据库的局限性:深度图遍历需要多个join操作 , 关系数据库通常并不擅长这种处理 。
但是图数据库 , 可以看见 , 除了最简单的查询 , 图数据库在其他查询的性能表现上都是明显更好的那一个 。 只有在寻找朋友的朋友时(深度为2) , 关系型数据库性能可与图数据库遍历的性能相媲美 。 在深度为3时的遍历比关系型数据库快4倍 。 在深度为4 , 结果则要好五个数量级 。 深度为5时 , 图数据库结果的速度甚至要比关系型数据库要快1000万倍 。 关系型数据库查询性能下降如此之快正是由于 , join操作需要对全部数据进行笛卡尔积运算 , 其中大部分的数据我们并不需要 。
3.探索图数据库在数据资产可视化中的应用
当前这种任务扩展方式仅仅只是给开发人员提供了便利 , 但是用户仍然很难扩展自己的任务 , 因此后续会考虑将任务扩展的能力做成平台功能的一部分提供给用户使用 。
|探索图数据库在数据资产可视化中的应用
本文插图

我们以Apache Atlas为例 , 探索图数据库在数据资产可视化方面的应用 。
Apache Atlas是Hadoop的数据治理和元数据框架 。 是一组可扩展和可扩展的核心基础治理服务 , 使企业能够有效 , 高效地满足Hadoop中的合规性要求 , 并允许与整个企业数据生态系统集成 。
Apache Atlas为组织提供了开放的元数据管理和治理功能 , 以建立其数据资产的目录 , 对这些资产进行分类和治理 , 并为数据科学家 , 分析师和数据治理团队提供围绕这些数据资产的协作功能 。
此图为Atlas的架构图 , 主要包含的组件如图所示 , 我们主要关注于在Core组件中使用JanusGraph图数据库来存储元数据对象 。 Atlas采用了分布式图数据库JanusGraph作为数据存储 , 目的在于用有向图灵活的存储、查询数据血缘关系 。 默认情况下元数据存储配置为 HBase, 索引存储配置为 Solr 。 也可以通过构建相应的配置文件使用BerkeleyDB存储元数据存储 和使用ElasticSearch存储 Index 。 元数据存储用于存储元数据对象本身 , 索引存储用于存储元数据属性的索引 , 其允许高效搜索 。
Atlas定义了一套atlas-graphdb-api , 允许采用不同的图数据库引擎来实现api , 便于切换底层存储 。 所以Atlas读写数据的过程可以看作就是将图数据库对象映射成Java类的过程 , 基本流程如下:
|探索图数据库在数据资产可视化中的应用
本文插图

在Atlas中查询某一个元数据对象时往往需要遍历图数据库中的多个顶点与边 , 相比关系型数据库直接查询一行数据要复杂的多 , 当然使用图数据库作为底层存储也存在它的优势 , 比如可以支持复杂的数据类型和更好的支持血缘数据的读写 。
JanusGraph与应用的集成 , 有如下两种方式: