首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >异构数据源的数据集成

异构数据源的数据集成
EN

Software Engineering用户
提问于 2016-11-09 15:22:04
回答 2查看 296关注 0票数 1

一个客户要求我们构建一个平台,用于将合作伙伴的数据集成到他们的中央数据存储区。这将不是“大数据”的规模。来自每个合作伙伴的数据可以通过RESTful API访问。由于RESTful API不是基于标准的(至少目前不是这样),所以我将问题分为三个部分:

  1. 认证/授权
  2. 存取模式
  3. 数据结构

我认为每个部分都有其内在的复杂性。我们提出了一个“驱动程序”模型,其中每个API类型都有一个驱动程序,它将负责处理每个API的这三个问题。

如果出现了一个新的API,我们可以为它开发一个新的驱动程序。

问题是,客户不希望为每个新API要求开发资源。

我一直在研究来自Informatica、IBM等的ETL /工具以及一些开源选项。似乎没有一项涉及到每一项复杂问题的一小部分。

我正在寻找一种方法,可以提供解决方案的类型,客户正在寻找,但有困难,找到一个。

EN

回答 2

Software Engineering用户

回答已采纳

发布于 2016-11-09 19:23:55

这里的根本问题是REST不是一个标准。它是web的一种架构风格。虽然有使这些API自我描述的机制,并且有web服务描述格式,但大多数API没有使用这些技术--为什么要使用这些技术呢?这是一个很有价值的企业仪式。

即使您能够表示API的结构,您仍然必须为所接收的数据指定一个意义。这并不是一台电脑能自己想出来的东西。您将需要查看您正在适应的API,并自己编写映射。

好消息是,从接收的数据到客户的数据模型的映射通常非常简单,以至于您可以在配置文件中指定它。不过,这仍然是一种编程。最重要的是,需要对这些配置进行非常彻底的测试,以避免数据丢失和数据损坏。

如果API和数据模型都是基于XML的,则可以使用XSLT来指定大多数这些转换。我确信JSON也有类似的转换技术,但是在JavaScript中进行转换要简单得多。

由于这些问题没有一刀切的解决方案,所以你没有找到任何合适的现有产品也就不足为奇了。这是一个典型的情况,定制软件开发是不可避免的。有趣的是,每个API只编写一个适配器(开发团队注意到API之间的相似之处),可能比开发能够处理任何事情的通用适配器更便宜和更快。这种含糊不清、过于复杂的项目带来的风险要大得多,而且可能永远不会带来任何价值。

那你还有什么选择吗?理想情况下,您可以说服客户机放弃这个通用API适配器的梦想。您可以尝试将独立的适配器装扮成一个“集成平台”,可以用“最小”配置代码将其扩展到新的API。您可以编写一个能够处理当前需要的API类型的通用适配器,但如果需要其他类型,则需要进一步开发。这可能是个很好的妥协。但是,无论你做什么,都不要签订固定价格的合同来开发这个通用的通用驱动程序--它只会在你的客户的想象中存在。

票数 4
EN

Software Engineering用户

发布于 2016-11-10 11:50:32

如果不知道剩下的端点将被用来做什么,就很难给出一个确切的答案。但是,我假设客户机只是希望将数据转储到一个东西中,然后能够查看它,而不必编写一堆代码。如果这些数据不是二进制数据,那么您所要做的就是像Elastic这样的东西,这将花费您可以转换成JSON的几乎所有东西,并且有很好的基于web的工具来搜索和可视化数据。我意识到这大大减少了所涉及的软件工程的数量,但它可以解决客户的问题。

票数 0
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/335712

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档