发布于: Oct 30, 2022
如何设计一套完整的数据库迁移方案?我们可以考虑借助 Amazon 的帮助。Amazon 构建并运营了数千种微服务,为数百万客户提供服务。这些服务包括目录浏览、下单、交易处理、交付计划、视频服务和 Prime 注册。每项服务均向 Amazon 分析基础设施发布数据集,包括超过 50 PB 的数据和 75,000 个数据表,每天处理 600,000 次用户分析作业。发布数据的团队超过 1,800 个,并有超过 3,300 个数据使用者团队分析这些数据,以生成见解、发现机会、制作报告和评估业务绩效。
支持该系统的本地 Oracle 数据库基础设施无法处理 PB 级的数据,以致其生成的单一解决方案由于在功能和财务方面缺少分离而导致难以维护和操作。从操作角度来说,超过 1 亿行的数据表转换往往会失败。这就限制了业务团队生成见解或部署大规模机器学习解决方案的能力。很多用户放弃了单一的 Oracle 数据仓库,转而采用利用 Amazon Web Services 技术的定制解决方案。
Oracle 数据仓库的数据库管理复杂、昂贵且容易出错,每个月都需要工程师花费数百小时进行软件升级、跨多个 Oracle 集群复制数据、修补操作系统和监控性能。低效的硬件配置需要投入大量工作来预测需求和规划容量。由于 Oracle 许可成本不断增加,其经济效率也很低下,无法满足峰值负载的静态大小,并且缺乏为成本优化而动态扩展硬件的能力。
Amazon 遵循四条原则:客户至上而非只关注竞争对手、对发明创造充满热情、致力于卓越运营以及长远思考。客户评论、一键购物、个性化推荐、Prime,Fulfillment by Amazon、Amazon Web Services、Kindle Direct Publishing、Kindle、Fire 平板电脑、Fire TV、Amazon Echo 和 Alexa 是亚马逊首创的几款产品和服务。
为了满足其不断增长的需求,Amazon 的消费者业务决定将 Oracle 数据仓库迁移到基于 Amazon Web Services 的解决方案中。新的数据湖解决方案使用多种 Amazon Web Services 服务,以极高的性能和可靠性实现 PB 级数据处理、流和分析。
公司使用 Amazon Simple Storage Service (Amazon S3) 作为数据湖,在需要进行分析之前以原生格式保存原始数据。借助 Amazon S3,Amazon 可以大规模灵活管理各种数据,同时降低成本、改善访问控制并加强法规遵从性。除了 Amazon S3 本身支持的治理和安全功能之外,Amazon 还集成了内部服务功能,用于身份验证、授权和数据治理。并开发了一种元数据服务来简化数据集发现,使数据使用者可以轻松搜索、排序和识别数据集以进行分析。
为使最终用户实现自助分析,Amazon 专门开发了一种服务,该服务可使来自数据湖的数据与包括 Amazon Elastic MapReduce (Amazon EMR) 和 Amazon Redshift 在内的计算系统同步。Amazon EMR 提供了一个托管的 Hadoop 框架,该框架可在 Amazon Elastic Compute Cloud (Amazon EC2) 实例上运行 Apache Spark、HBase、Presto 和 Flink,并与 Amazon S3 中的数据交互。Amazon Redshift 为 Amazon Web Services 数据仓库服务,其允许分析系统最终用户使用 Amazon QuickSight 等工具执行复杂查询并将结果可视化。
此外,Amazon 还将数据湖与 Amazon Redshift Spectrum 功能集成在一起,允许用户直接从 Redshift 查询数据湖中的任何数据集,而无需将数据同步到其群集。这加速了整个消费者业务的临时分析,无需存储大型数据集的本地副本便可进行容量规划分析。这实现了分析系统的联合以及分析成本的可见性,而以前的架构对此造成了严重的限制。
为帮助从 Oracle 解决方案迁移到联合数据湖架构,Amazon 使用 Amazon Schema Conversion Tool (Amazon SCT) 开发了批量查询迁移工具。该工具用来自动转换和验证从 Oracle SQL 到 Amazon Redshift SQL 的 200,000 条查询中的 80% 以上,节省了超过 1,000 人月的人工。对于无法自动转换的查询,工程师会记录并与最终用户分享最佳实践,以便转换这些查询。
相关文章