gpt4 book ai didi

c# - 我应该使用什么模型/模式来处理多个数据源?

转载 作者:太空宇宙 更新时间:2023-11-03 14:37:11 26 4
gpt4 key购买 nike

作为电子商务系统的一部分,我需要设计和实现某种黑盒。这需要接受来自各种内部和外部数据源(即网站、外联网、雅虎商店、亚马逊 xml 提要等)的客户和订单,并插入/更新后端系统。用于插入/更新客户和订单数据的 API 已在网站上运行良好。现在我们需要添加处理来自其他数据源的订单的能力。

我一直倾向于提供者模型(每个数据源一个提供者),并在调用 api 以实际添加客户和下订单之前使用它将数据标准化到 sql server 表中。我应该考虑其他模型或模式吗?你以前处理过这个问题吗?你是如何解决的?有什么我应该看的资源(文章、书籍、项目等)吗?

最佳答案

您可能会发现 ETL(提取-转换-加载)工具将使您的生活比尝试用代码解决问题更轻松。

这些专为您描述的数据加载工作类型而设计。

编辑

虽然我仍然认为 ETL 工具最能满足您的需求,但如果您坚持在代码中执行此操作,则应考虑将 ETL 实现为一种模式。这样做的原因是 ETL 是从各种来源加载数据的公认最佳实践。您应该花一些时间研究 ETL 是如何实现的。

在基本层面上,您应该具有三个层,一个提取层、一个转换层和一个加载层。

提取 层应该负责从源中检索数据。此时不必担心数据的形状。为了保持层的清洁,您应该只在此处实现“获取”数据的代码。担心在转换层塑造它。

转换 层应该负责获取从各种来源提取的数据并将其转换为目标的形状。 ETL 工具通过将数据视为管道来非常有效地做到这一点。这些可以拆分和并行化。您可能没有时间或资源来执行此操作。一种替代方法可能是将数据加载到暂存表(数据的标准化程度较低的表示形式)。

load 层获取转换后的数据(在上述情况下来自暂存表)并将它们加载到最终目标位置。

这充分分离了您的层次,以便您可以保护自己免受 future 变化的影响。但是请记住,您实际上只是在执行 ETL 工具开箱即用的功能。

关于c# - 我应该使用什么模型/模式来处理多个数据源?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/545935/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com