亚马逊AWS官方博客
物流数据湖构建与分析中台转型案例分析
![]() |
在现代物流行业中,数据的有效管理与分析对于提升业务效率和决策能力至关重要。其中,WMS(仓库管理系统)是实现高效库存管理和订单履行的基础,直接影响到客户满意度和运营成本。本文将分享一个基于亚马逊云科技构建物流数据湖的转型案例,重点讨论从传统数据库(自建 Oracle 和 RDS MySQL)迁移到数据湖+分析中台的过程及其带来的优势。
背景与挑战
WMS(Warehouse Management System)是一种用于优化和管理仓库运营的软件系统。它通过自动化和精细化管理,提高仓库的效率和准确性。WMS 的主要功能有入库管理,出库管理,库存管理,并对接订单数据与物流数据,提供物流送达数据分析与报表,打造无缝的技术体验。
用户 WMS 遇到的挑战如下:
- 性能瓶颈:依赖于 Oracle 和 RDS MySQL 数据库进行数据存储和分析,各业务部门的分析接口均在只读库上独立运行,导致读库性能下降。不同业务查询相互影响,查询结果往往需要数分钟才能返回,严重影响终端用户体验。
- 复杂查询处理:OLAP(在线分析处理)核心业务查询通常涉及大量数据,同时有复杂的查询逻辑。OLTP 数据库在面对这些复杂查询时性能不足,导致整体可用性风险增加。
- 数据库管理成本上升:随着 2B 业务的发展,需要维护的数据库数量不断增加,DB 之间的相互调用加大了数据接口管理复杂性,同时自建 DB 的可用性挑战越来越大。
数据湖方案
Step 1:通过 Amazon S3 数据湖作为数据基础架构
Amazon S3 是 AWS 数据湖方案的核心存储服务,提供 11 个 9 的数据持久性与近乎无限的数据存储容量。Amazon S3 支持灵活的数据管理,包括数据的索引、目录管理和生命周期管理工具,使得用户能够方便地组织、标记和管理数据。S3 与多种 AWS 分析服务(如 Amazon Athena、Amazon Redshift 和 AWS Glue)无缝集成,用户可以直接在 S3 上运行 SQL 查询,无需将数据迁移到其他系统。S3 提供了存储类功能,可以转移不频繁访问的数据到更低成本的存储类别(如 S3-IA 或 Glacier)。在安全性方面,S3 提供了细粒度的访问控制和加密选项。AWS Identity and Access Management (IAM)允许企业指定特定用户并管理其数据访问权限。
因此,通过使用 S3,企业能够安全地存储原始数据,并利用其高可用性和弹性来满足不断增长的数据需求。经过讨论,我们把分析业务分类为流式处理与批处理,其中批处理表采用 T+1 的更新频率,这些数据 SLA 要求高,数据量大,处理优先级较高。基于这个场景需求,我们推荐通过 DMS 把 Oracle 与 RDS 的数据批量 S3 OBS 层,之后逐级清洗到 DWD 与 DWS 层,每一层对应独立的 S3 bucket policy 与 Glue catalog 进行严格权限管控。最后应用调用 Athena 进行 SQL 检索。批处理架构如下图所示:
![]() |
基于 S3 数据湖的数据流向示意图
Step 2:使用 Glue 进行多数据源整合与 visual ETL
AWS Glue 作为无服务器的数据集成服务,将来自不同来源的数据整合到数据湖中。AWS Glue 能够整合来自各种数据源的数据,包括传统数据库(如 Oracle、MySQL)、云存储(如 Amazon S3)以及其他兼容 JDBC 的外部数据库。Glue connector 的的灵活性与管理数据源功能极大简化了用户的跨数据源整合研发复杂度。此外,通过 Glue Crawler,系统可以自动发现数据源并生成元数据,方便后续的数据分类和搜索。这一过程减少了建表的手动操作,提高了数据整合的效率。最后, AWS Glue connector 支持使用自定义 JDBC 驱动程序,并复用 JDBC 连接。通过创建和管理连接器,企业可以确保安全性,同时简化数据库之间的调用。
通过 Glue visual ETL 进行作业编排
在选择作业编排的功能过程中,我们对比了 AWS 托管 airflow 与 visual ETL。首先,由于用户业务团队多,不同 2B 的用户的处理流水线不同,通过可视化方式进行快速 ETL pipeline 原型开发非常重要。借助 AWS Glue Studio,用户可以通过可视化界面创建和管理 ETL 作业,无需编写代码。这降低了技术门槛,使更多业务人员能够参与到数据处理过程中。
随着 Glue visual ETL 的深入了解,我们挖掘了 Glue ETL pipeline 的更多功能:例如,之前很多在 Lambda 上的自动化任务运行时间有可能超过 15 分钟,改为 Glue Bash 运行时后,通过加载自定义环境依赖项,可以非常灵活地实现自定义任务,并且可以和 Glue pipeline 进行集成,减少人工操作。
使用 AWS Secrets Manager 存储连接凭证
此外,为了提高安全性,我们推荐通过 AWS Secrets Manager 存储 Glue JDBC 连接凭证,而不是直接在配置中提供用户名和密码。这种做法进一步确保敏感信息的安全性,并支持对多个应用连接复用。
Step 3:流式处理与聚合
随着批处理 pipeline 完成,流式处理任务开启调研。在流式数据处理场景中,我们对多种架构进行了深入的评估,包括 Spark Streaming、Apache Flink 等流行的流处理框架。尽管这些技术在处理大规模实时数据方面具有强大的能力,但我们最终选择了基于 AWS DMS(数据库迁移服务)和 Amazon Redshift 的方案,主要考虑到以下几个因素:
用户团队对 AWS DMS 已经相对熟悉,并且对于 DMS 的稳定性评价很高。DMS 的使用能够减少学习曲线,使团队能够更快地上手并有效实施流式数据处理。
项目中的数据库管理员(DBA)是核心成员,他们在管理和维护数据库方面具有丰富的经验,利用数仓产品 Redshift 可以充分发挥他们的专业技能,从而确保数据迁移和流式处理的高效性和稳定性。
基于这些考虑,我们最终提出的流式架构如下:采用 AWS DMS 将数据流式传输到 Amazon Redshift。在这个架构中,DMS 负责从各种源数据库中捕获实时数据变更,并将这些数据高效地同步到 Redshift 中。流处理架构如下:
![]() |
基于 Redshift 数仓的数据流向示意图
这个方案有如下好处:
- 操作简便,数据更新迅速:用户只需通过控制台配置两个托管服务,就能实现秒级的数据更新。AWS DMS(数据库迁移服务)原生支持用户使用的数据库,包括 Oracle、MySQL 和 PostgreSQL 等。通过对 MaxFullLoadSubTasks 的控制,DMS 能够在迁移过程中保持源数据库的正常运行,最大限度地减少对核心数据库的影响。同时,DMS 还支持将数据迁移到 Amazon Redshift,并通过转换规则确保被标记为删除的数据仍然会复制到 Redshift 中,并以删除标记(Deletion Tag)进行标注,以满足用户的需求。此外,Redshift 自动化了大多数常见的管理任务,如配置、监控和备份,使得管理和维护变得更加简单和经济。
- 成本低廉:AWS DMS 和 Amazon Redshift 均采用按需计费模式,用户只需为实际使用的资源付费。对于 DMS,流式处理可以复用之前批处理的 DMS 实例。此外,宁夏区已推出 AWS DMS Serverless,用户可以根据实际需求自动调整资源。Redshift 的管理存储(Managed Storage)每 GB 每月仅需 ¥0.154,与 S3 的费用相当,这使得大规模数据存储的成本相对较低。
- 性能提升:作为托管的数据仓库,Redshift 通过采用列式存储格式,实现了快速的查询和 I/O 性能。它自动对数据进行压缩,从而减少存储空间并加快数据读取速度。此外,Redshift 的架构支持大规模并行处理(MPP),能够将查询负载分配到多个节点上,从而显著提高查询速度。AQUA(高级查询加速器)通过硬件加速缓存,使某些类型的查询速度提高至其他企业云数据仓库的十倍。通过使用 Redshift,用户可以 offload 绝大部分之前位于 Oracle 与 RDS 的分析 workload,实现更佳业务体验。
总结与展望
通过将传统的数据库架构转型为基于 AWS 的数据湖和分析中台,用户不仅解决了原有系统中的性能瓶颈和管理复杂性,还显著提升了数据处理的效率与灵活性。具体来说:
借助 Amazon S3 和 Amazon Redshift,用户实现了数据存储和查询的高效化。S3 的高可用性和弹性存储能力,结合Redshift的列式存储和大规模并行处理(MPP)架构,使得复杂查询的响应时间大幅缩短,用户能够在几秒钟内获取所需数据,从而提升决策效率。
采用按需计费模式的AWS服务使得企业能够根据实际使用情况灵活调整资源,降低了 IT 成本。特别是通过 S3 和 Redshift 的管理存储,企业在大规模数据处理和存储上实现了显著的成本节约。
AWS Glue 的引入使得多数据源整合变得更加简单高效。通过可视化 ETL 工具,业务团队能够快速构建数据处理流程,降低了技术门槛,同时提高了数据管理的灵活性。Glue Crawler 的自动化功能也减少了手动操作,提高了数据分类和搜索的效率。
通过使用托管服务与 AWS Secrets Manager,确保了数据存储与查询过程中的安全。此外,通过 S3 与 Redshift 提供的细粒度访问控制和加密选项,企业可以有效管理数据访问权限,进一步提升数据安全性。
在未来,我们可以持续进行架构优化:
流批一体,统一流处理与批处理 workflow 整合,进一步降低研发与运维成本,更快响应客户需求。
智能化应用:结合机器学习和 Text2SQL 技术,对物流数据进行自定义分析,为业务决策提供更具前瞻性的洞察。
系统整合:通过与其他数据源,业务系统及工具的整合,实现更全面的数据生态系统。
如果您有类似的需求或者建议,欢迎随时联系我们。