0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

图数据库何时并不适用?到底什么时候适合用图呢?

工程师邓生 来源:TigerGraph 作者:TigerGraph 2022-09-07 14:49 次阅读

将图作为解决方案深入探索之前,需先评估图是否适合您的实际应用场景。

“我该用哪项技术?”这个棘手的问题一直困扰着开发者。技术的选择,需要经过数天的思考和分析,您得在日益增长的选项中确定哪些最符合需求,做好数量和需求管理,制定长期战略计划,简化或减少支持,并得到同事的认可和管理层的批准。

实际情况却复杂得多。认可度的高低、现有技术条件的限制和开发人员知识水平的不足,可能都会让决策的过程更加复杂。例如,投资未知或全新的解决方案意味着要付出学习成本。

如果您正在研究图数据库,可能会惊叹它处理复杂事物的能力和数据交互的简易性,或许还会被漂亮的可视化效果图和快如闪电的查询功能所震撼。因此,为了学习新事物,就会想要开始尝试图数据库。

但要如何确定图是适合您业务或技术需求的解决方案呢?需要进行什么样的调查才能确定其价值?是什么让图数据库从一众的解决方案中脱颖而出?

关于应用图的好处,相信大家已经看了很多内容了。本文将不做赘述,而是将重点介绍一些应用场景,帮您了解什么情况下不适合用图数据库。这些不是严格的准则,但可以在您将图作为解决方案深入探索之前,帮助您判断图与您的用例是否合适。

自我评估 .

您是否期望图数据库能解决所有问题?

作为开发人员(或其他头衔)总是想尝试新的解决方案,并选择这样的解决方案并将其应用于下一个出现的项目。大多数开发人员都明白不能这样做,但现实情况是,项目截止日期和紧迫感往往会迫使他们妥协。

为了改变这种心态,我们需要在评估各类解决方案之前回答这两个问题:我们使用这项技术的动机是什么?它有何与众不同之处?因此,我们要提出可能的解决方案并深入研究,从而了解每种方案的优缺点。如此一来,他人的建议可以补充我们没想到的地方,或是剔除不符合要求的选项。

场景评估 .

图数据库何时并不适用?

我们都希望我们的产品可以普遍适用,但世上没有任何东西能普适万物。因为独特的想法、人、问题和技术实在是太多了(这其实是件好事!)。您对一款产品的大部分了解可能来自该公司本身,他们通常致力于宣传自己积极和出色的一面。

如果您的用例符合以下的任何一个场景,那您就要避免将错误的工具用于不合适的场景。但是,如果您的用例不符合以下所有场景,那图对您来说或许是绝佳选择。虽然这个场景清单不算全面,但它涵盖了最常见和最容易辨认的情况。

1

数据互不关联,

数据间的关系无足轻重

如果交易数据与其他交易、人员等方面的关系无关紧要,那么图可能不是合适的解决方案。因为在某些情况下,只需使用技术存储数据即可,分析数据之间的关系和意义并不重要。

若是该交易只具备“只写”属性,且无需SQL 连接语句的简单查询,那么这就说明您的情况可能不适合图数据库。您的查询可能更依赖于顺序索引数据(下一个数据紧靠上一个数据存储),而不是关系索引数据(存储在与其相关的最邻近的数据旁)。

若只需搜索单个数据片段或项目列表,那么最好另寻他法,因为无需知晓数据环境。总体而言,图解决方案专注于从高度互接的数据中获取最大价值,查询搜索潜在的各类关联(如果这些关联还未建立)。如果您的场景不具备这些特性,其他技术或许更合适。

2

需要优化数据写入与存储,

而不是读取或查询

虽然上面提到了这一点,但我想着重强调一下。如果用例只需将数据写入存储库而无需分析数据结果,那么图可能无法解决问题。图数据库旨在快速遍历存储的数据并在几毫秒内检索结果。如果用例无需使用图的这一优势,那么您可以寻找其他解决方案。

3

核心数据模型不变,

数据结构固化或被表格化

如果您正在收集一组恒定不变的数据,那么图可能不是最佳的解决方案。图非常适用于存储多种元素类型,可以轻松适应不断变化的业务需求。

举个例子,您需要追踪来电客户人数。那么您只需在客户信息表中存储客户ID、姓名和电话号码。此外无需其他信息,表格上的列不会更改,因此每个咨询的客户都有其特有的 ID、姓名和电话号码。这是关系型数据库的一个绝佳案例。

如果预计需求会增长并且需要其它类型的分析,还可以加入电子邮件地址、公司名称、订单号等信息。此外,该表还能够灵活地处理空值(并非所有客户都是公司职员或能创建订单)、存储其他类型的实体(如订单)或调整数据定义(即客户也可以是员工)。

简而言之,如果仅限于特定需求,并且预计使用范围有限,那么图可能并不适用。

4

查询需要执行批量数据扫描

或从未知数据点开始

如果您想通过表扫描查询匹配项或找到符合一般范畴的数据,图数据库并不是解决问题的最优方案。图数据库经过优化,可以从一个起点开始遍历关系。但不适用于无指定目标区域的全表搜索。

下方的查询代码最终可能遍历一张包括各类信息却只得到单一结果的超大图(Jennifer可以是一份订单,一个物品,一位顾客,一个员工或是其他事物)。然而,下一个查询要从特定用户开始,查看该用户认识的人。

若您的大多数查询与第一个查询类似,而且查询性能至关重要,您需要考虑舍弃图数据库。尽管图数据库也能处理这些查询,但不能最大程度地优化批量扫描或未知起点的遍历性能。

5

如需用于键值存储(类似缓存)

如果您只需要查找操作,图数据库并不适合您。如上所述,图分析得益于数据之间的关系。从已知键开始查找,并不能最大限度地发挥图数据库的作用。

例如,有些人会把数据库当作缓存,存储应用程序中的会话数据。您可以在缓存中存储会话ID,并将会话详情写入数据库。当您需要检索会话详情或分析其运行时,您可以发送会话ID(作为键)来返回值(可能是存储在实体上的属性)。

这种方法不使用任何关系,它能通过已知键返回单个对象或单个实体的具体数据。在检查用例时,这种方法能确保您了解每种技术的存储和检索机制。键值存储,甚至是关系型数据库更适合查询,查询性能也更佳。

6

如需将大量文本或BLOBS存储为属性

如果您正在存储并检索包含超大值的实体属性(例如BLOB、CLOB、文本段落等),其他技术会更适合。图数据库十分擅长遍历小型数据实体之间的关系,但是并不适用于在单个节点上存储大量属性,或者在这些属性中存储超大值。虽然查询可以从一个实体跳转到另一个实体,但您需要额外步骤来获取路径中每个实体的详细信息。

有时候,您能通过重组数据模型来改善这个问题。例如,如果您将与员工有关的所有信息都储存在单一图节点上(员工的住址、工作信息、订单、福利选择、工资信息),这个节点会包含许多属性与潜在大值,十分复杂。您可以重新建模,将公司、地址和职位详情分开,简化模型并降低查询性能。

但是,在特定情况下,您可能需要将这些大值存储在单个属性中,而且这些查询不仅限于图数据库。对于这种类型的用例,我们不建议使用图数据库。

当然,上述情况不会总是单独出现。有时,场景之间的界限并不分明。在您的项目中,可能有些部分适合用图数据库,但有些则不然。虽然这可能是个复杂的选择,但我们仍需要评估每种技术的优缺点,从而确定最佳的解决方案。

简单说说 .

到底什么时候适合用图呢?

我在前面简单提到了图技术的一些核心优势,您可以通过公司资源、员工讨论或客户反馈中了解更多到信息,这里我就不再赘述了。在文章的结尾,我想和大家聊聊图数据库的优点。:)

图数据库的出现让越来越多的用户想要了解数据间的关系(隐性和显性)。如果您想了解客户兴趣,将消息推送到话题区,或是想了解网络布局,分析其影响,那么图数据库是您的不二之选,非常适合用于这些用例和查询。企业可以借助图创建全面且多样化的客户资料,或仔细审查银行交易,发现可能存在欺诈迹象的异常值。

图数据库在数据科学与分析领域的性能十分卓越。图算法能增值基于数据关联的复杂分析,突显决策模式。

总结 .

我们现在只谈到图数据库的使用范围,而这只是图数据库最浅显的部分。我们需要通过更细微的细节来选择不同技术。这篇文章旨在为您提供一些方法,帮助您更好地做出选择。无论您是否选择图数据库,我们都希望您能找到最合适(甚至超乎预料)的方法。



审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • SQL
    SQL
    +关注

    关注

    1

    文章

    766

    浏览量

    44169
  • 数据库
    +关注

    关注

    7

    文章

    3817

    浏览量

    64498

原文标题:一定要用图数据库吗?这6个场景就不一定。

文章出处:【微信号:TigerGraph,微信公众号:TigerGraph】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    使用华为云 X 实例部署数据库 Virtuoso 并存储 6500 万条大数据的完整过程与性能测评

    前言   1. 部署Virtuoso数据库的准备工作   1.1 选择华为云X实例的原因   1.2 Virtuoso数据库简介   1.3 环境准备与系统配置   2. Virt
    的头像 发表于 12-25 17:51 223次阅读
    使用华为云 X 实例部署<b class='flag-5'>图</b><b class='flag-5'>数据库</b> Virtuoso 并存储 6500 万条大<b class='flag-5'>数据</b>的完整过程与性能测评

    数据库加密办法

    ,当我们聊到数据加密的时候,可以从这些角度入手来提高数据的安全性。 TDE手段 TDE也就是透明数据加密,是一种在数据库级别进行加密的技术。
    的头像 发表于 12-24 09:47 93次阅读

    数据库数据恢复—Mysql数据库表记录丢失的数据恢复流程

    Mysql数据库故障: Mysql数据库表记录丢失。 Mysql数据库故障表现: 1、Mysql数据库表中无任何数据或只有部分
    的头像 发表于 12-16 11:05 177次阅读
    <b class='flag-5'>数据库</b><b class='flag-5'>数据</b>恢复—Mysql<b class='flag-5'>数据库</b>表记录丢失的<b class='flag-5'>数据</b>恢复流程

    数据库数据恢复—MYSQL数据库ibdata1文件损坏的数据恢复案例

    mysql数据库故障: mysql数据库文件ibdata1、MYI、MYD损坏。 故障表现:1、数据库无法进行查询等操作;2、使用mysqlcheck和myisamchk无法修复数据库
    的头像 发表于 12-09 11:05 175次阅读

    数据库和云主机哪个好一点?

    数据库和云主机哪个好一点?云主机和云数据库各有优势,选择哪个更好取决于具体需求。云主机提供虚拟化的计算资源,适用于运行各种应用;而云数据库专注于
    的头像 发表于 12-04 13:50 142次阅读

    云原生和数据库哪个好一些?

    云原生和数据库哪个好一些?云原生和数据库各有其独特的优势,适用于不同的场景。云原生强调高效资源利用、快速开发部署和高可伸缩性,适合需要高度灵活性和快速迭代的应用。而
    的头像 发表于 11-29 10:07 161次阅读

    多维表格数据库Teable的适用场景?

    Teable多维表格数据库是一款功能强大的云端数据库和协作工具,结合了电子表格的灵活性和数据库的强大功能,适用企业内部项目管理 数据收集与整
    的头像 发表于 10-31 15:48 214次阅读

    数据库数据恢复—通过拼接数据库碎片恢复SQLserver数据库

    一个运行在存储上的SQLServer数据库,有1000多个文件,大小几十TB。数据库每10天生成一个NDF文件,每个NDF几百GB大小。数据库包含两个LDF文件。 存储损坏,数据库
    的头像 发表于 10-31 13:21 255次阅读
    <b class='flag-5'>数据库</b><b class='flag-5'>数据</b>恢复—通过拼接<b class='flag-5'>数据库</b>碎片恢复SQLserver<b class='flag-5'>数据库</b>

    Oracle数据恢复—异常断电后Oracle数据库报错的数据恢复案例

    Oracle数据库故障: 机房异常断电后,Oracle数据库报错:“system01.dbf需要更多的恢复来保持一致性,数据库无法打开”。数据
    的头像 发表于 09-30 13:31 319次阅读
    Oracle<b class='flag-5'>数据</b>恢复—异常断电后Oracle<b class='flag-5'>数据库</b>启<b class='flag-5'>库</b>报错的<b class='flag-5'>数据</b>恢复案例

    TLC2272CDR适合用于哪些方案上面

    请问:TLC2272CDR这颗芯片适合用于哪些方案上面???
    发表于 09-23 08:07

    数据库数据恢复—SQL Server数据库出现823错误的数据恢复案例

    SQL Server数据库故障: SQL Server附加数据库出现错误823,附加数据库失败。数据库没有备份,无法通过备份恢复数据库
    的头像 发表于 09-20 11:46 365次阅读
    <b class='flag-5'>数据库</b><b class='flag-5'>数据</b>恢复—SQL Server<b class='flag-5'>数据库</b>出现823错误的<b class='flag-5'>数据</b>恢复案例

    恒讯科技分析:sql数据库怎么用?

    SQL数据库的使用通常包括以下几个基本步骤: 1、选择数据库系统: 选择适合您需求的SQL数据库系统,如MySQL、PostgreSQL、Microsoft SQL Server、SQ
    的头像 发表于 07-15 14:40 373次阅读

    数据库数据恢复—SQL Server数据库所在分区空间不足报错的数据恢复案例

    SQL Server数据库数据恢复环境: 某品牌服务器存储中有两组raid5磁盘阵列。操作系统层面跑着SQL Server数据库,SQL Server数据库存放在D盘分区中。
    的头像 发表于 07-10 13:54 520次阅读

    数据库数据恢复—raid5阵列上层Sql Server数据库数据恢复案例

    数据库数据恢复环境: 5块硬盘组建一组RAID5阵列,划分LUN供windows系统服务器使用。windows系统服务器内运行了Sql Server数据库,存储空间在操作系统层面划分了三个逻辑分区
    的头像 发表于 05-08 11:43 523次阅读
    <b class='flag-5'>数据库</b><b class='flag-5'>数据</b>恢复—raid5阵列上层Sql Server<b class='flag-5'>数据库</b><b class='flag-5'>数据</b>恢复案例

    数据库数据恢复】Oracle数据库ASM实例无法挂载的数据恢复案例

    oracle数据库ASM磁盘组掉线,ASM实例不能挂载。数据库管理员尝试修复数据库,但是没有成功。
    的头像 发表于 02-01 17:39 534次阅读
    【<b class='flag-5'>数据库</b><b class='flag-5'>数据</b>恢复】Oracle<b class='flag-5'>数据库</b>ASM实例无法挂载的<b class='flag-5'>数据</b>恢复案例