Web开发

首页 » 常识 » 诊断 » GraphQLDash和Grafana
TUhjnbcbe - 2023/7/1 20:09:00
补骨脂针剂 http://pf.39.net/bdfyy/bdfhl/140227/4344811.html

全文共字,预计学习时长13分钟

图源:Unsplash

本期小芯给大家带来的是GraphQL、Grafana和Dash大乱战,科普向,让你茶余饭后的闲谈多一份科学的气息(高大上的谈资)。

如果你对数据科学、数据操作或者数据可视化感兴趣,那就更好啦,本文是你不可错过的最佳选择。

标题里的这些词,相信你已经听过。接下来,小芯将对它们进行逐一的详细介绍,然后进行比较。

我们开始吧~

GraphQL、Grafana和Dash

在以上三个工具中,除了GraphQL外,另外两个用于数据可视化。

如今的数据可视化工具不再是MicrosoftExcel电子表格所使用的标准图表了。它们以更复杂的方式显示数据,如信息图、表盘和仪表、地理图、波形图、热图以及精细的条形图、饼图和散点图。

这些图像可能包括交互功能,使用户可以操作它们或深入数据进行查询分析。还可能包括指示器,用来在数据更新或出现预定义条件时提醒用户。数据可视化已经成为现代商业智能约定俗成的标准。

无论如何,为使数据可视化,首先必须从某个来源中提取出数据。这个来源可以是传感系统、API、数据库等。同时需要理解数据的不同特征,并从中提取出有意义的、重要的和有趣的属性。

数据提取还用来执行探索性分析,并从数据中提取相关信息。用于数据操作的方法和技术有很多,如Pandas、R、SQL、GraphQL等。所以我选取的主题之一GraphQL也是一种数据提取方法,但是与其它方法有很大的不同。

因此,首先从GraphQL开始吧。

GraphQL是什么?

如今大多数应用程序都需要从服务端中获取数据,而这些数据被存储在数据库中。API应该为存储数据提供符合应用程序需要的接口。否则,就需要对通过API获取的数据进行某种过滤,以满足应用程序的需要。

大多数人把GraphQL错当作是一种数据库技术。这不是很准确,因为GraphQL是针对API的查询语言,而非数据库。从这种意义上说,它与数据库无关,但可以在使用API的任何环境中有效使用。它支持声明式数据获取,因此可以与React/ReactNative完美结合,作为构建用户接口的声明性框架。GraphQL可以补充或完全替代RESTAPI的使用。

REST和GraphQL的主要不同在于,RESTfulAPI有多个端点用于返回固定的数据结构,而GraphQL服务端只暴露一个端点就能返回灵活的数据结构。

使用RESTfulAPI最终会获得不需要的数据。例如,当调用environment/build/id端点时,会获得所有和该特定build相关的数据。你可能会获得这些返回数据,如date_created,date_updated,status等,但我们需要的只是作者的名字。这是RESTfulAPI过度获取的一个明显的例子。

当调用environment/build/id端点不足以检索到我们要查找的内容时,为了获取build所属的代码库,必须调用另一个端点environment/build/id/codebases。这种情况称为不足获取。

GraphQL使用自己的类型系统来定义API的模式,其语法称为模式定义语言(SDL)。这个模式在服务端和客户端间起着桥梁作用,定义客户端如何访问数据。

因为前端可以轻松的测试模拟数据,所以一旦模式定义好,前端和后端开发人员就可以独立工作了。前端还可以从模式中获取有用信息,如类型、查询和变异。模式还提供型别安全,可以尽早捕获类型错误,这对前后端的开发很有帮助。

查询示例:

query{

books{

id

title

author

isbn

price}

}

在这个示例中,GraphQL服务端提供了单端点,调用这个端点可以得到所有必要的数据,而不会过度获取或不足获取。

支持GraphQL的流行编程语言:

·C#/.NET

·Go

·Groovy

·Java

·JavaScript

·Kotlin

·PHP

·Python

·Ruby

·Scala

除了数据获取方面的提升,性能优化、版本控制和易于上手也是应该尝试GraphQL的一些原因。

Dash是什么?

Dash是用于构建响应式Web应用程序的开源python库。两年前它作为一种公开概念验证出现在GitHub上。我们把这个原型放在网上,但Dash的后续工作是在幕后进行的。我们使用来自银行、实验室和数据科学团队的私人试验的反馈来指导产品的改进。

现在,我们很高兴的宣布Dash的第一个公开版本不仅是企业级的,还是Plotly开源工具中的一流成员。如今,可以从python的包管理器使用pipinstalldash下载Dash——它是完全开源的并且获得麻省理工学院授权。

来自DashAppGallery的示例仪表盘

Dash使数据科学团队能够专注于数据和模型,同时仍可以开发和部署企业级应用程序。通常需要一组后端和前端开发人员队伍的任务都可以用Dash来完成。

Dash是一种基于python的框架,主要用于构建包含大量数据可视化的web应用程序。顾名思义,Dash专门用于创建基于web的仪表盘应用程序。但这需要在一些python库的帮助下,通过纯python或纯R来完成。

这特别适合那些用python或R语言处理数据的人。Dash抽象出了构建交互式的web应用程序所需的所有技术和协议,因此对于开发者更加便利。Dash现在有开源版本和企业版本。

我们可以通过有吸引力的主题和任意类型的图表来制作出色的数据可视化应用程序。它的美妙之处在于,它是由纯python或R语言完成的。进一步来说,因为可以使用python从头构建仪表盘,使用Dash时将有更大的灵活性。这样就可以创建自定义的仪表盘。

Dash写在Flask,Plotly.js和React.js上,是构建拥有高度吸引力的仪表盘的数据可视化应用程序的理想工具。它尤其适合使用python进行数据处理的人。

Dash应用程序呈现在web浏览器上,因此是跨平台的和可移动的。Dash是一个高层框架,它抽象了图形、表格等UI组件的底层实现。

以下是使用Dash进行数据可视化的优点:

能创建可打印PDF格式的报告或者交互式的分析型web应用程序。可自动汇报和监控数据流动历史存档、版本控制、状态跟踪、便于审核和合规、创建制度记忆

由于Dash与之前讨论的两个框架相比是较新的框架,可以在这里得到关于Dash的整体描述性知识,以及如何使用Dash创建仪表盘。

Grafana是什么?

使用Grafana的气候站仪表板

(

1
查看完整版本: GraphQLDash和Grafana