GraphQL作为数据建模工具的抽象

时间:2017-08-25 12:39:04

标签: graphql

我正试图在这里大声思考,以了解graphql是否适合我的需求。

我们拥有自行开发的自助服务报告创建工具。这是基于网络的。它从用户选择特定报告类型开始。 报告类型本身是基本SQL查询。在后续屏幕中,可以选择所需的列,过滤器等。正如我们所有这些步骤的输出是一个SQL查询,然后在Oracle数据库上运行。

正如您所看到的,这个工具有很多缺点。它与Oracle OLTP表紧密耦合。有数百个表。

鉴于当前的数据模型以及许多表的存在,我想知道GraphQL是否是设计可能像“数据浏览器”的UI的正确方法。如果我可以组合一些密切相关的表并通过GraphQL将它们抽象为逻辑组,我想知道我是否可以用它们创建一个报告。

**Logical Group 1**
Table1
Table2
Table3
Table4
Table5

**Logical Group 2**
Table6
Table7
Table8
Table9
Table10

依旧......

假设我想要逻辑组1中的表中的2列和逻辑组2中的4列,这是否可以定义为GraphQL对象并检索为在屏幕上呈现还是写入文件?

我想我正在尝试通过GraphQL编写数据建模UI。这甚至是这种需求的良好候选者吗?

我们一直在评估Looker作为可能的数据建模层。但是,似乎可能会有一些 感谢。

1 个答案:

答案 0 :(得分:0)

如果不能更好地理解您的数据,很难肯定地说,但乍一看,这似乎不是一个非常适合GraphQL的问题。

GraphQL的优势在于它能够模拟+遍历数据图。对我而言,听起来你并没有像数据库中的樱桃选择表那样遍历连续的数据图表。这当然是可能的,但可能会有很多摩擦,因为这不是它的预期设计。

我将使用的试金石是以下两个问题:

  • 您能想象您的问题能很好地映射到REST API吗?
  • 性能敏感的客户端是否会使用您的API?

如果是这样,那么GraphQL可以很好地满足您的需求,如果不是,您可能希望查看类似https://grpc.io/

的内容