';通用';数据网关模式-Python

';通用';数据网关模式-Python,python,etl,data-science,gateway,table-data-gateway,Python,Etl,Data Science,Gateway,Table Data Gateway,我使用各种数据源(Salesforce、Google、CSV、其他REST API等)和类型(表格、键值),并使用许多不同的Python包装器公开这些提要 这些都很难维护,而且目前没有遵循一致的接口/约定-我承认这是一个不好的地方。我需要从中检索数据的源列表一直在增长,因此我想找到/想出一个更好的解决方案 我的直觉告诉我,要尝试设计某种“通用”数据网关,内置于Python中,可以为我所需的数据提供一致的接口,而不管底层的来源和检索方法(例如HTTP请求与数据库调用)。问题是,我正在努力寻找这种类

我使用各种数据源(Salesforce、Google、CSV、其他REST API等)和类型(表格、键值),并使用许多不同的Python包装器公开这些提要

这些都很难维护,而且目前没有遵循一致的接口/约定-我承认这是一个不好的地方。我需要从中检索数据的源列表一直在增长,因此我想找到/想出一个更好的解决方案

我的直觉告诉我,要尝试设计某种“通用”数据网关,内置于Python中,可以为我所需的数据提供一致的接口,而不管底层的来源和检索方法(例如HTTP请求与数据库调用)。问题是,我正在努力寻找这种类型的设置在使用中的任何具体示例,这对我来说似乎很奇怪,因为这似乎是许多组织的一个常见问题,其中数据来自具有许多不同模式和结构的多个源


如果您能就如何开始考虑这一点提出任何建议,以及/或向现有解决方案提出可能有所帮助的方向,我将不胜感激

您可能正在寻找ORM术语。对于Python中的数据库,它通常是SQLAlchemy。对于文件,这通常是一个大问题,但根据您的情况,我可能会假设它的python XB类是由XSD文件(用于XML)、json模式(用于json)和类似的CSV生成的。对于大规模ETL过程,人们通常使用已经出现的连接器(来自诸如Scoop/Spark之类的工具模块)将源数据转换为可用于通用映射的staging对象。Spark以其DataFrame对象和典型的拼花文件作为存储机制而闻名,这基本上是您的目标。如果您的公司愿意购买而不是构建,则有各种数据虚拟化软件包可以帮助您合并来自多个数据源的数据。例如,您可以使用Dendo(纯虚拟化),或Periscope(带有一些虚拟化的BI),甚至Istio(开源集成、遥测和策略管理),您可能正在寻找ORM术语。对于Python中的数据库,它通常是SQLAlchemy。对于文件,这通常是一个大问题,但根据您的情况,我可能会假设它的python XB类是由XSD文件(用于XML)、json模式(用于json)和类似的CSV生成的。对于大规模ETL过程,人们通常使用已经出现的连接器(来自诸如Scoop/Spark之类的工具模块)将源数据转换为可用于通用映射的staging对象。Spark以其DataFrame对象和典型的拼花文件作为存储机制而闻名,这基本上是您的目标。如果您的公司愿意购买而不是构建,则有各种数据虚拟化软件包可以帮助您合并来自多个数据源的数据。例如,您可以使用Dendo(纯虚拟化)或Periscope(带有一些虚拟化的BI)甚至Istio(开源集成、遥测和策略管理)