soword科技言
永久公益免费API接口
提供永久免费的API接口,查看更多API接口,如果您有其他免费API资源,请联系我们,造福人类。
提供商务开发:小程序,系统,APP
定制开发,免费评估,免费咨询,价格便宜,售后保障,前往开发服务中心联系开发客服中心
数据库、图形和GraphQL:过去、现在和未来

玛尼什·贾因和乔希·麦肯齐都是工程师摇滚明星,戴着很多帽子。他们还有一些共同点:他们都很热心https://graphql.org/“target=”\u blank“rel=”noopener noreferrer nofollow“data component=”externalLink“>GraphQL用户和构建者,尽管从不同的起点开始。GraphQL是一种API查询语言,在软件开发领域掀起了一股风暴,Jain和McKenzie就是一个例子。

Jain,创始人和首席技术官https://dgraph.io/“target=”\u blank“rel=”noopener noreferrer nofollow“data component=”externalLink“>Dgraph,是2015年最早注意到GraphQL的人之一。他非常喜欢它,于是就在它周围画了一幅图画。麦肯齐在2020年接触了GraphQL,当时正在建造在2018年,我们注意到GraphQL作为通用数据库访问层可能有意义。今天,我们回顾了使用GraphQL访问数据库的过程,Jain和McKenzie对技术、业务和社会意义进行了深入的探讨。

在讨论GraphQL时,即使是在2021年,也可能需要从免责声明开始:GraphQL不是一种图形查询语言。这是一个误称,正如Jain指出的,“GraphQL是一种图形查询语言,就像关系数据库是关于关系的一样。”换句话说,不太多,这是设计出来的。

Jain应该知道,正如Hasura博士后,Prisma

McKenzie在GraphQL生态系统中相对较新,但在数据库领域经验丰富,他指出,人们经常使用数据库的API来处理的一个紧张问题是磁盘上的底层表示有多少暴露在API之下。

GraphQL在开发人员中的迅速崛起也吸引了将其用作数据库访问层的兴趣。图片:Apollo

这里有一个折衷:暴露的越多,查询的性能就越高,最终用户真正能够与API接口并理解它的能力就越大。麦肯齐在这方面对卡桑德拉和蒙哥达进行了比较和对比。

卡桑德拉一开始是节俭的:没有类型的、狂野的西部。随着时间的推移,他们转向了CQL,认为它更接近SQL,人们会发现它更容易采用。这就从最终用户手中夺走了权力,但却让事情变得更加人性化。

根据麦肯齐的说法,MongoDB的策略是——我们如何最大限度地赋予最终用户权力,我们如何将最大的灵活性和权力交到他们手中?弄清楚技术方面的问题会在以后出现,随着时间的推移不断的修改和投资是一个战略性的选择:

“这可以归结为一个问题:您是在优化CPU计算时间,还是在优化人类心跳?这两件事中的哪一件是您希望API真正利用和促进的资源?GraphQL比许多定制的查询语言更适合人类使用和消费。”

GraphQL的简单性是它的魅力所在,它的致命弱点是它的理解和使用简单h、 耆那教指出,这也是它的致命弱点。但是GraphQL对数据库的实现越来越感兴趣是有原因的,他接着补充说。

看看一个典型的RESTAPI,很难定义将使用什么以及如何使用--哪些类型,哪些字段。它变成了一个排列问题,试图弄清楚人们将使用什么和不使用什么,这就是为什么很难在数据库之上构建RESTAPI以使人们更容易使用它。

“对于GraphQL数据库,有一种方法可以满足这种需要。因为用户可以告诉他们——这就是我想要的。数据库将很快将其转换为磁盘上的排序方式。因此,这是一个加号,为所有真正喜欢GraphQL的前端开发人员打开了大门,”Jain说。

GraphQL可以很好地用于CRUD操作,但其余的操作呢?自定义查询和过滤器呢?这就是规范有点模糊的地方,实现可能会有所不同。但这也是https://medium.com/paypal-tech/graphql-resolvers-best-practices-cd36fdbcef55“target=”\u blank“rel=”noopener noreferrer nofollow“data component=”externalLink“>解析器模式光芒四射。

阿波罗也利用了这种模式,让开发人员抽象出特定于每个数据库的复杂查询逻辑的实现。此外,正如McKenzie所指出的,解析器模式支持解耦。你可以有一个专门研究数据访问的团队,消费者不必知道这些数据是如何浮出水面的。

使用GraphQL访问数据库是一个有趣的想法,它会带来技术和社会影响

归根结底,您无法回避使用特定支持数据存储的专业知识和技能。而且这种模式可能并不完全是新的,毕竟SQL视图在概念上并没有那么不同。不同的是机制——GraphQL解析器通常使用REST和Javascript进行访问。

据参与其中的McKenzie说,这也是Stargate的发展过程。从许多为Cassandra提供不同API的微服务,到提供给Dynamo协调器的微服务,再到Stargate,McKenzie将其视为GraphQL和Dynamo的联姻。

他接着补充道,存在的问题是,如何简化但仍然提供90%的电力,然后把剩下的10%藏在高级用户和定制能力后面。Stargate可能只使用GraphQL作为其API,因为GraphQL允许增量采用。

但是,图形算法在这方面将变得非常重要。

然而,尽管事实上,GraphQL对于大多数人来说比专门的图形查询语言更容易理解,GraphQL规范朝这个方向发展的可能性很小。但贾恩和麦肯齐指出,这是好的。这就是委员会、规范和开源的工作方式。

GraphQL规范来自Facebook,Facebook工程师仍然是GraphQL的主要指导者。问题是,他们需要在他们的规模吗?如果他们不需要在他们的规模,为什么其他人应该?然后你就进入了关于技术使用模式的辩论。

不过,麦肯齐指出,我们谈论的是世界上一些大公司商业模式的民主化。它们基于信息图表和它们所处的巨大网络效应。因此,无论是谁,只要能在技术上为最终用户实现民主化,都将参加竞赛。

graphql只是隐含的关于实际图形,保持规范的简单可能意味着短期内不会添加任何实际的图形特性。图片:2021年医疗保健领域的数据、分析、机器学习和人工智能href=“/article/iota-still-wants-to-build-a-better-blockchain-and-get-it-right-this-time/”data omniture track=“moduleClick”data omniture track data='{“moduleInfo”:“作者的更多信息”,“pageType”:“article”}>IOTA仍然希望构建一个更好的区块链,并在这一次获得正确的结果

使用开源简化数据科学:通过注册进行数据版本控制和连续机器学习,您同意https://redventures.com/CMG-terms-of-use.html“target=”\u blank“rel=”noopener noreferrer nof


2023-03-22 10:04:31