在图像处理管道中表示数据沿袭的最佳方式是什么?

问题描述

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

Image1 -ProcessA-> Image2 -ProcessB-> Image3

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

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

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

解决方法

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

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

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

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

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

enter image description here

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

这是 Objectivity,Inc. 应用程序元数据连接的基础。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...