继续分析语义学和数据科学,现在该讨论图数据库及其所提供的内容。
介绍
我们是否应该将宝贵的时间用于学习提取,存储和分析数据的新方法?接触图表上的数学吗?
对我来说,我开始调查时不确定答案,但过了一会儿,我的答案是:
在本文的此处,我将讨论图形数据库的一些思想和概念,它们是什么,它们的优点是什么,以及它们如何在我们的日常任务中为我们提供帮助。
顺便说一句,我真的很厌倦编写大量的JOIN和loooong查询来计算2017年1月至2018年10月在Y州购买商品X的顾客数量(及其平均工资),并且顾客的购买时间超过Z个月。因此,一切对我都有帮助,并且我认为很多人都可以减少时间,并使之变得更容易,更直观。
什么是图?
当我们谈论图表时,英语存在一个问题(西班牙语则没有问题)。如果您在线搜索图形图像,则可能会看到以下内容:
但这不是我想谈的那种图表。 当我在这里谈论图形时,这是您应该在脑海中描绘的图形:
我将给出两个图形定义。首先是数学,然后是更简单的数学。
根据Behzad和Chartrand的说法:
图G是有限的非空集合V,以及V的(不同)元素的两个元素子集的(可能是空的)集合E(与V不相交)。V的每个元素被称为顶点和 V本身作为G的顶点集; 边缘集E的成员称为边缘。 图的元素是指顶点或边。
图论最吸引人的特征之一在于主题的几何或图形方面。 给定一个图形,通常用图形表示是有用的,其中集合的每个元素由平面中的一个点表示,每个边缘由一个线段表示。
将G的这种图称为G本身是很方便的,因为集合V和E很容易辨别。 在下面的图中,显示了图形G,其中顶点集V = {V1,V2,V3,V4}并且边缘集E = {V1V2,V1V3,V2V4,V3V4}
如您所见,集合V包含图中顶点或点的数量,E包含它们之间的关系(读取V1V2,就像将V1连接到V2一样)。
因此,简而言之,图是对象(或实体或节点)及其关系(或边缘)的数学表示。 这些点中的每一个都可以代表不同的内容,具体取决于您想要的内容。 顺便说一下,这里的节点和顶点是相同的,我们将互换使用它们。
我们将回顾一个有关在绘制图形数据库时如何使用它们的示例。
什么是数据库?
从技术百科:
从最一般的意义上讲,数据库(DB)是有组织的数据集合。 更具体地,数据库是一种电子系统,其允许容易地访问,操纵和更新数据。
换句话说,组织将数据库用作存储,管理和检索信息的方法。 使用数据库管理系统(DBMS)管理现代数据库。
你想知道真相吗?根据我的经验,大多数数据库是:
· 没有组织
· 不容易访问
· 不容易操纵
· 不容易更新
当我们谈论做数据科学时。 在较早的年份(例如20哈哈),因为数据简单,较小和较慢,所以维护数据库更容易。
如今,我们几乎可以将所需的任何内容保存在"数据库"中,而我认为该定义仍然存在于另一个概念中,即关系数据库。
在关系数据库中,我们有一组"正式"描述的表,可以用许多不同的方式从中访问或重组数据,而不必重新组织数据库表。 基本上,我们有一些模式可以存储不同的表,在这些表内部有一组列和行,在特定位置(行和列)有一个观察值。
这些表之间也有关系。但是它们不是最重要的,它们包含的数据是最重要的。通常,它们是这样的:
什么是图数据库?
基于数学图的概念,图数据库包含节点和边的集合。 节点代表一个对象,边缘代表两个对象之间的连接或关系。 图形数据库中的每个节点由表示键值对的唯一标识符标识。 此外,每个边均由唯一的标识符定义,该标识符详细描述了起始节点或结束节点以及一组属性。
我将使用Cambridge Semantics的一个示例来说明图数据库的工作方式。
假设我们有一些数据存储在本地餐馆连锁店中。通常,在关系数据库中,您会将客户信息存储在一个数据库表中,将您提供的物品存储在另一个数据库表中,并将您的销售额存储在第三个表中。
当我想了解我的销售产品,订单库存以及谁是我的最佳客户时,这很好。但是缺少的是结缔组织,项目之间的联系以及数据库中可以让我充分利用的功能。
图数据库存储相同种类的数据,但也能够存储事物之间的链接。 约翰买了很多百事可乐,杰克嫁给了瓦莱丽(Valerie),并购买了不同的饮料。 我不必运行JOIN即可了解如何向每个客户进行营销。 我可以看到数据中的关系,而不必进行假设和检验。
来自neo4j的人们提到:
访问本机图数据库中的节点和关系是一种高效的,恒定时间的操作,它使您能够每秒快速遍历每个内核数百万个连接。
关系数据库将高度结构化的数据存储在具有预定列和行的表中,而图数据库可以映射多种类型的关系和复杂数据。因此,图数据库的组织和结构并不像关系数据库那样僵化。所有关系都本机存储在边缘的顶点内,这意味着顶点和边缘可以各自具有与之关联的属性。这种结构允许数据库能够描述不相关数据集之间的复杂关系。
图数据库的用途
您知道吗?随着越来越多的大型和小型组织最近开始投资图数据库技术,2018年被誉为"图之年"。 因此,我们在这里并不走疯路。
我并不是说我们从关系数据库中了解的所有信息以及SQL将不再起作用。我的意思是,在某些情况下(令人惊讶的是很多情况),使用关系图数据库比使用关系图数据库更好。
现在,我将为您提供有关何时应该使用图数据库而不是其他内容的想法:
· 您有高度相关的数据。
· 您需要一个灵活的架构。
· 您想要一个结构和构建更类似于人们思维方式的查询。
相反,如果您具有高度结构化的数据,则希望进行大量的分组计算,而表之间没有那么多的关系,那么使用关系数据库可能会更好。
图数据库还有另一个(不是很明显的)优势。它使您可以构建知识图。因为它们是图,所以知识图更加直观。人们不会在表格中思考,但是他们会立即理解图表。当您在白板上绘制知识图的结构时,对于大多数人来说,这显然是什么意思。
然后,您可以开始考虑构建数据结构,这可以使您重新思考整个机器学习和数据科学的方式。但这是下一篇文章的素材。
在公司中实施图形数据库
像传统的RDBMS一样,图数据库可以是事务性的或分析性的。
选择图数据库时选择焦点。 例如,流行的Neo4J,Neptune或JanusGraph专注于事务(OLTP)图数据库。
像AnzoGraph这样的东西是分析(OLAP)图数据库。 但是,请注意,您可能需要一个不同的引擎来运行涉及单个实体的快速查询(例如,肖恩买什么苏打水?)和轮询整个数据库的分析查询。 (例如,肖恩这样的人支付的苏打水平均价格是多少?)。 随着机器学习和AI的发展,图OLAP数据库变得非常重要,因为许多机器学习算法本质上都是图算法,与在RDBMS上运行相比,它们在图OLAP数据库上运行效率更高。
在这里,您可以找到适用于不同类型图数据库和计算工具的大量资源:
https://github.com/jbmusso/awesome-graph
图OLAP数据库的用例非常广泛。 例如,可以使用PageRank算法找到关键意见领袖和书推荐者。 此外,进行客户流失分析以提高客户保留率,甚至进行机器学习分析来确定推动书籍销售的前五个因素。
下一步是什么?
以下图表(摘自https://db-engines.com/)显示了该类别受欢迎程度的历史趋势。在每个月的排名中,选择每个类别中最好的三个系统,并计算其排名分数的平均值。为了进行比较,将初始值归一化为100。
随着数据源的持续快速增长(非结构化数据以最快的速度增长),寻找基于机器的见解变得越来越重要。
图数据库为链接各种数据提供了出色的基础架构。通过轻松表达实体和数据之间的关系,图形数据库使程序员,用户和机器更容易理解数据并寻找见解。这种更深层次的理解对于成功的机器学习计划至关重要,因为基于上下文的机器学习对于功能工程,基于机器的推理和推理变得越来越重要。
将来,我将讨论图形数据库如何总体上帮助我们进行机器学习和数据科学。
(本文由闻数起舞翻译自Favio Vázquez的文章《Graph Databases. What's the Big Deal?》,转载请注明出处,原文链接:https://towardsdatascience.com/graph-databases-whats-the-big-deal-ec310b1bc0ed)