互联网技术 / 互联网资讯 · 2024年3月25日

处理复杂数据集成:是否仍需手动编写脚本?

数据并不单独存在于一个数据库、文件系统、数据湖或存储库中。在记录系统中创建的数据必须满足多种业务需求,与其他数据源相集成,然后才能在分析、面向客户的应用程序或内部工作流中使用。例子包括:

将来自电子商务应用程序的数据与用户分析、客户关系管理(CRM)系统中的客户数据或其他主数据源相集成,以建立客户细分并定制营销信息;将物联网(IoT)传感器数据与运营、财务数据存储相关联,用于控制吞吐量和报告制造过程的质量;以及将员工工作流应用程序的数据与跨多个软件即服务(SaaS)平台和内部数据源整合,以提供易用的移动界面。

如今,数据科学家、数据分析师和创新团队也在不断寻求内部与外部数据源的整合。数据科学家在构建预测模型时,通常会从计量经济学、天气、人口普查等外部数据源加载数据,并与内部数据源混合使用。开展人工智能试验的团队需要聚合大量且通常复杂的数据源来训练和测试算法。曾经在电子表格中完成分析的业务分析师也越来越需要更强大工具来加载、连接、清洗和处理多源数据。

用编程与脚本实现点对点数据集成

对于具备基本编程能力的人来说,将数据从源头移动到目标通常会选择编写简短脚本。脚本从一个或多个源提取数据,进行必要的校验和处理,然后将结果写入一个或多个目标。

开发者可以通过多种方式对点对点的数据集成进行编码,例如:

  • 将数据变化推送到其他数据库系统的存储过程,作为计划任务或服务来执行
  • 在应用程序最终用户变更数据时触发的警报
  • 系统间数据的微服务化
  • 将代码部署到无服务器架构以执行小规模数据处理

这些编码过程可以从多个源提取数据,在写入目标数据源之前进行合并、过滤、整理、校验和转换。

尽管写脚本有时很快速、很方便,但它不一定属于专业级的数据处理方法。生产级脚本需要自动化执行数据处理和传输,以及实现跨步骤的可观测性与可重复性。

例如,在处理海量数据时,数据集成通常需要多线程处理;面对多源场景,需要稳健的数据校验与异常处理。如果需要实现复杂的业务逻辑和数据转换,开发者应将步骤记录下来,或采取其他措施确保集成的可观测性。

这类脚本化实现并非易事,开发者需要预测可能的问题并据此编程。此外,在面对大量实验性数据源时,自行编写脚本往往成本高、效益低,因此跨多名开发者协作与维护也变得困难。

因此,许多具备数据集成需求的企业通常会探索除了手写代码或数据流脚本之外的替代方案。