0

我正在尝试确定表示图像处理数据沿袭的最佳方式。我有一个存储在 S3 中的图像,我想处理它们,然后将它们放回 S3。然后我希望能够运行一个查询,这样我就可以在一个链中查看之前和之后的所有图像和进程。例如:

Image1 -ProcessA-> Image2 -ProcessB-> Image3

我希望搜索Image2的“血统”会产生上述信息。

我知道这看起来像是图形数据库的千篇一律的案例,但我对它们并不十分熟悉,尤其是对于生产工作流程。我一直在研究如何在关系数据库中实现这个模型,但感觉就像我只是想把方钉放在圆孔里。

  • 图形数据库是唯一的选择吗?你会推荐哪种口味?
  • 有没有办法在我没有考虑过的关系模型中完成这项工作?
4

1 回答 1

0

当您说这是图形数据库的千篇一律的案例时,您是对的,并且任何可用的图形数据库产品都可能能够满足您的要求。您也可以使用关系数据库解决此问题,但正如您所指出的,这就像在圆孔中放置一个方形钉。

披露:我为 InfiniteGraph 产品的制造商 Objectivity 工作。

我已经使用 InfiniteGraph 解决了类似的数据沿袭问题。基本思想是将数据与元数据分开。“沿袭”信息是元数据。让我们把它放在图形数据库中。沿袭信息将包括包含图像元数据的对象(节点)以及将图像作为输入和生成的图像或其他信息作为输出的工作流过程步骤。

我们可以在无限图中定义一个 ImageMD 类型来包含图像的元数据,包括定义图像数据当前存储位置的 URI,以及图像的大小和格式。我们可以定义 ProcessMD 类型来描述对图像进行操作的应用程序。它的属性可能包括应用程序的名称和版本,以及它的部署时间戳和运行它的主机位置。

您最终会得到一个类似于下图的环境。

在此处输入图像描述

然后,给定一张图像,您可以向后跟踪其谱系以查看其历史,并向前跟踪以查看其或其衍生组件是如何进化或使用的。

这是 Objectivity, Inc. 应用程序 Metadata Connect 的基础。

于 2021-07-23T14:02:32.203 回答