附白皮书下载 | 国产化数仓升级最佳实践:从Teradata迁移至AnalyticDB

本文涉及的产品
阿里云百炼推荐规格 ADB PostgreSQL,4核16GB 100GB 1个月
云原生数据仓库AnalyticDB MySQL版,基础版 8ACU 100GB 1个月
简介: 内附《数据仓库升级交付标准化白皮书》

00.png

前言

Teradata(TD)是美国前十大上市软件公司之一,经过逾30 年的发展,Teradata发展为全球领先的大数据分析和数据仓库解决方案厂商,赢得了超过2,000家客户的信任,在多个行业表现卓越,多年来一直居于领导者地位。随着Teradata近期宣布退出中国市场,越来越多的企业着眼于长期规划,将目光转移到国产数据库产品进行整体的技术架构升级,寻找高度契合国家战略、技术领先的国产化数据库产品。

AnalyticDB PostgreSQL(以下简称ADB PG)是阿里云自研的云原生数据仓库产品,提供基于阿里云生态的公共云和混合云服务,核心代码高度自主可控,提供PB级数据实时交互式分析,ETL/ELT,和BI报表展示功能,支持数据高吞吐实时写入与批量导入,提供ACID保证和标准事务隔离级别,采用MPP全并行架构。ADB PG已获得三方机构认证,包括:“分布式分析型数据库大规模性能认证”和 “分析型数据库Serverless分级能力”获增强级等能力认定

申万宏源证券的数仓升级项目为阿里云第一个证券行业 “去Teradata数仓”项目,阿里云与申万宏源证券历时1年的紧密合作,最终成功实现ADB PG替换Teradata数据仓库。项目总计完成100多套上游业务源系统、约30套下游系统、25000多个任务、800多个服务接口、百TB数据、日新增500~700GB数据的平稳迁移,保障现有业务平稳有序运转同时,最终实现自主可控、数据快速赋能业务。

以下是我们从该项目中总结沉淀的关于“AnalyticDB PostgreSQL替换Teradata数仓”的最佳实践。

01数据仓库的发展趋势及困境

经过近30多年的发展,企业级数仓都有了不同程度的发展,积淀了大量的业务数据。同时随着多维度的业务发展转变,数仓应用将面临如下的发展趋势。

数据层面:数据规模不断突破,非结构化信息持续增长;

业务层面:离在线快速响应,实时交互成为常态;

架构层面:数据库与大数据加速融合,云原生将成为必然;

产品层面:目前产品面临硬件老化,升级维护成本过高,需要下一代产品进行升级。

02数仓架构升级挑战

▶︎ 技术方面

功能兼容性:众多的OLAP产品,不确定那款可以替代当前的数仓环境。

改造方案全面性:改造数仓环境,涉及的环节非常多,需要通盘考虑。

迁移实施复杂度:历史沉淀数据太过庞大,当前数仓老旧,涉及多个团队合作,整个迁移过程非常复杂。▶︎ 成本方面

评估改造成本:采用新型的分布式数据库技术,改造评估成本无法准确估算。

评估应用改造周期:30多年的数据沉淀,数据迁移速度、应用改造难度等无法有效评估改造周期▶︎ 运维方面

数据安全监管:数据监管会变得空前严格,多场景的运维需求也会日益突出。

开发人员技能:企业人员能力是否能够胜任,也决定着数仓改造的成败。

DB管理技能:分布式数仓环境的DB运维能力的提升,则是对当前运维人员的又一技能挑战。

云资源管理能力:分布式数仓需要日常的运维工作具备相关技能。

03数仓迁移规划

我们将Teradata迁移至ADB PG的数仓迁移方法总结归纳为“五阶十步”法,迁移项目为保证平滑过渡、风险可控等目标,总体会倾向平迁策略,即不改架构,不动流程,尽力兼容。“五阶十步”内容如下图示:1.png

图1 - Teradata数仓迁移“五阶十步”

业务调研

业务调研阶段需对原系统上下游做详实调研,调研内容包括但不限于:

原数仓系统架构原数仓数据交互流程原系统资源盘点

原数仓库表统计

最后迭代输出调研分析报告,并与业务方做深入讨论与修正。

原数仓系统架构

2.png

图2 - 原数仓系统架构示意图

比较典型的证券企业数仓架构:上游数据依赖采集程序生成数据文件,通过Teradata的FSLoad加载入库;下游系统不直接访问Teradata数仓,通过前置环境来过渡;数仓内部分层建模,ETL任务通过Automation调度工具集成。这种架构主要好处是管控能力强,体现在安全可控、性能可控、并发可控。

原数仓数据交互流程

3.png图3 - 原数仓数据交互流程图

原系统资源盘点

针对现有系统资源使用情况进行多维度盘点,确认初步迁移计划。4.png

以数仓表统计为例,根据表的数据量和类型等关键指标,有针对性的制定下一步的迁移计划。

5.png方案设计

该阶段需多方参与共创,设计并编制可落地的执行方案,提请业务方审议。内容包括但不限于:

6.png

图4 - 方案设计

以下就几项核心内容进行描述:

系统架构

如下图所示

7.png

图5 - 新系统架构示意图

8.png

图6 - ADB PG组件部署逻辑示意图

9.png

图7 - DBStack部署架构图

DBStack是阿里云企业级交易、分析、传输、治理于一体的数据库管理平台;能够帮助企业构建稳定、安全、经济的全场景数据库解决方案,快速替换Oracle、Db2、Teradata等传统数据库。

规划设计10.png

10.png迁移方案

11.png组织保障12.png

实施计划

项目里程碑计划如图:13.png


图8 - 里程碑计划示意图

04Teradata系列产品替换

核心数仓替换:ADB PG适配

ADB PG与Teradata在数据类型、DDL/DML等语法、函数、特殊关键字等存在差异性,为此ADB PG系统性整理差异对照和语法兼容项。

以创建表为例,转换语法对照如下表:14.png15.png

举个例子,Teradata创建表DDL:

    这个Teradata的DDL有三处特殊地方:-- 1)CHARACTER SET LATIN CASESPECIFIC-- 2)DATE FORMAT 'YYYYMMDD'-- 3)INTEGER FORMAT '99:99:99'CREATE TABLE ON_BOARD_MATCH_EVT( Evt_Id VARCHAR(200) CHARACTER SET LATIN CASESPECIFIC TITLE '编号' NOT NULL, Match_Dt DATE FORMAT 'YYYYMMDD' TITLE '成交日期' NOT NULL, Match_Tm INTEGER FORMAT '99:99:99' TITLE '成交时间' NOT NULL, Order_Dt TIMESTAMP(6) TITLE '委托日期' NOT NULL, Cust_Cd VARCHAR(80) CHARACTER SET LATIN CASESPECIFIC TITLE 'A代码' NOT NULL, Cust_No VARCHAR(80) CHARACTER SET LATIN CASESPECIFIC TITLE 'A编号' NOT NULL)PRIMARY INDEX ( Evt_Id )PARTITION BY (     RANGE_N(Match_Dt BETWEEN  DATE '2000-01-01' AND DATE '2013-12-31' EACH INTERVAL '1' YEAR ,    DATE '2014-01-01' AND DATE '2015-12-31' EACH INTERVAL '1' MONTH ,    DATE '2016-01-01' AND DATE '2030-12-31' EACH INTERVAL '1' DAY ,  NO RANGE OR UNKNOWN) );


    转换成ADB PG相关DDL(三处特殊地方无法兼容,需要评估对业务的影响):


      CREATE TABLE ON_BOARD_MATCH_EVT( Evt_Id VARCHAR(200) NOT NULL, Match_Dt DATE NOT NULL, Match_Tm INTEGER NOT NULL, Order_Dt TIMESTAMP(6) NOT NULL, Cust_Cd VARCHAR(80) NOT NULL, Cust_No VARCHAR(80) NOT NULL) DISTRIBUTED BY(Evt_Id)PARTITION BY RANGE(Match_Dt)( START(DATE '2000-01-01') END(DATE '2013-12-31') INCLUSIVE EVERY(INTERVAL '1' YEAR), START(DATE '2014-01-01') END(DATE '2015-12-31') INCLUSIVE EVERY(INTERVAL '1' MONTH), START(DATE '2016-01-01') END(DATE '2030-12-31') INCLUSIVE EVERY(INTERVAL '1' DAY), DEFAULT PARTITION def__par);COMMENT ON COLUMN ON_BOARD_MATCH_EVT.Evt_Id IS '编号';COMMENT ON COLUMN ON_BOARD_MATCH_EVT.Match_Dt IS '成交日期';COMMENT ON COLUMN ON_BOARD_MATCH_EVT.Match_Tm IS '成交时间';COMMENT ON COLUMN ON_BOARD_MATCH_EVT.Order_Dt IS '委托日期';COMMENT ON COLUMN ON_BOARD_MATCH_EVT.Cust_Cd IS 'A代码';COMMENT ON COLUMN ON_BOARD_MATCH_EVT.Cust_No IS 'A编号';

      数据迁移工具:ADAM + DTSADAM


      在Teradata 迁移中,通过ADAM(亚当)可以实现数据库自动采集、兼容性评估、自动结构迁移和智能订正,同时对应用Perl 脚本SQL 自动转换,大大降低Teradata 迁移的成本和难度,目前支持Teradata13-16 的版本。

      ADAM核心功能● 采集TD 数据库的DDL、SQL、系统信息● TD => ADB For PG 兼容性分析● 自动对TD 进行结构迁移,并支持人工订正

      ● TD ETL Perl/DSQL 脚本里面SQL 自动转换

      DTS

      数据传输服务DTS(Data Transmission Service)支持将Teradata迁移至云原生数据仓库ADB PG版。

      迁移类型支持库表结构迁移DTS将源库中迁移对象的结构定义迁移到目标库。全量迁移

      DTS将源库中迁移对象的存量数据,全部迁移到目标库中。

      数据库账号的权限要求:16.png统一开发与调度平台:DMS▶︎

      背景介绍对于大型证券公司,其业务复杂度极高,据统计客户累计需要开发和调度的任务达到了2W+。阿里云DMS提供了强大的任务编排功能,能够完全对齐Automation相关功能。以下提供一个高效的迁移方案,可将生产调度系统从Automation迁移到DMS中。

      ▶︎ 任务迁移方案

      方案目标:迁移工作量小,迁移后业务无损,提升运维效率。

      1、确定业务场景

      任务编排的业务场景,对齐automation的核心系统。以下几个业务场景为例:FLD_ODS_xxx、ITF_xxx、EXP_xxx

      2、采集任务迁移

      采集任务主要为脚本任务,根据上面的业务场景划分,将不同系统的采集任务放入不同的任务流,按照“一个表对于一个任务流”原则,迁移采集任务。

      3、加载入库(FLD+ODS)的任务如何迁移

      入库任务为脚本任务,需要把入库任务划分进不同的任务流

      划分任务流 一张表对应一个任务流:根任务是脚本任务,脚本任务的内容是对于数据的完备性检查,对于脚本任务配置失败重试。

      一个任务流对应一张表:一个任务流只能有一个数据检查的脚本任务,从这个根任务起,添加所有依赖这个表的FLD与ODS任务,如下:

      17.png

      ● 任务流不需要配置调度周期,调度由上游采集任务来通过openAPI触发。

      4、对于采集加载之后的任务

      这里包含了加载任务之后,所有的任务,如明细层、汇总层、集市层等等;任务流划分方式,还是按照“一张表由且仅由一个任务流产生”的基本原则,这里我们拿ITF/EXP层来举例。

      划分任务流ITF / EXP示例18.png

      ITF与EXP类似,会交叉依赖上层的多个表,故这两个层的处理方式是类似的,所以放在一起说,但注意的是这两个层需要放到不同的业务场景里

      调度方式

      DMS任务支持基于时间调度和基于“事件”调度两种模式。

      DMS任务编排完美适配Automation各项能力和用户开发调度需求,运行ETL调度任务,实时性高,业务拓展性好,异常恢复成本低。同时,通过跨任务流依赖检查以及事件调度等功能,也实现了复杂依赖关系的调度场景。

      05

      总结过去几十年,国外数据仓库平台厂商包括Teradata、Exadata、Netezza 等一直是金融、运营商等重点行业的优先选择。但是,近年来传统数仓掣肘明显,存在软硬绑定、难以升级与维护、成本高昂,以及架构老化,难以赋能业务创新;体系封闭,受制于人,难以突破等问题,企业急需架构升级。阿里云自研的新一代云原生数据仓库AnalyticDB PostgreSQL体系化解决以上难题,在关键行业的核心应用中成果显著。帮助金融、电信行业客户将传统数仓全面升级至云原生数仓,构建数据平台全新架构,有效满足客户对于数据平台实时化、弹性扩展、高性价比及安全可控的诉求,突破传统数仓技术瓶颈,最终赋能企业数智化创新。


      点击此处填写问卷,即可下载《数据仓库升级交付标准化白皮书》

      相关实践学习
      AnalyticDB MySQL海量数据秒级分析体验
      快速上手AnalyticDB MySQL,玩转SQL开发等功能!本教程介绍如何在AnalyticDB MySQL中,一键加载内置数据集,并基于自动生成的查询脚本,运行复杂查询语句,秒级生成查询结果。
      阿里云云原生数据仓库AnalyticDB MySQL版 使用教程
      云原生数据仓库AnalyticDB MySQL版是一种支持高并发低延时查询的新一代云原生数据仓库,高度兼容MySQL协议以及SQL:92、SQL:99、SQL:2003标准,可以对海量数据进行即时的多维分析透视和业务探索,快速构建企业云上数据仓库。 了解产品 https://www.aliyun.com/product/ApsaraDB/ads
      相关文章
      |
      6月前
      |
      关系型数据库 MySQL Apache
      **ADB MySQL湖仓版能够平滑迁移到湖仓**,阿里云提供了相应的迁移工具和服务来简化这一过程。
      **ADB MySQL湖仓版能够平滑迁移到湖仓**,阿里云提供了相应的迁移工具和服务来简化这一过程。
      337 2
      |
      2月前
      |
      存储 SQL 缓存
      快手:从 Clickhouse 到 Apache Doris,实现湖仓分离向湖仓一体架构升级
      快手 OLAP 系统为内外多个场景提供数据服务,每天承载近 10 亿的查询请求。原有湖仓分离架构,由离线数据湖和实时数仓组成,面临存储冗余、资源抢占、治理复杂、查询调优难等问题。通过引入 Apache Doris 湖仓一体能力,替换了 Clickhouse ,升级为湖仓一体架构,并结合 Doris 的物化视图改写能力和自动物化服务,实现高性能的数据查询以及灵活的数据治理。
      快手:从 Clickhouse 到 Apache Doris,实现湖仓分离向湖仓一体架构升级
      |
      22天前
      |
      存储 SQL 缓存
      AnalyticDB 实时数仓架构解析
      AnalyticDB 是阿里云自研的 OLAP 数据库,广泛应用于行为分析、数据报表、金融风控等应用场景,可支持 100 trillion 行记录、10PB 量级的数据规模,亚秒级完成交互式分析查询。本文是对 《 AnalyticDB: Real-time OLAP Database System at Alibaba Cloud 》的学习总结。
      40 1
      |
      1月前
      |
      分布式计算 大数据 Serverless
      云栖实录 | 开源大数据全面升级:Native 核心引擎、Serverless 化、湖仓架构引领云上大数据发展
      在2024云栖大会开源大数据专场上,阿里云宣布推出实时计算Flink产品的新一代向量化流计算引擎Flash,该引擎100%兼容Apache Flink标准,性能提升5-10倍,助力企业降本增效。此外,EMR Serverless Spark产品启动商业化,提供全托管Serverless服务,性能提升300%,并支持弹性伸缩与按量付费。七猫免费小说也分享了其在云上数据仓库治理的成功实践。其次 Flink Forward Asia 2024 将于11月在上海举行,欢迎报名参加。
      186 1
      云栖实录 | 开源大数据全面升级:Native 核心引擎、Serverless 化、湖仓架构引领云上大数据发展
      |
      1月前
      |
      存储 SQL 缓存
      Apache Doris 3.0 里程碑版本|存算分离架构升级、湖仓一体再进化
      从 3.0 系列版本开始,Apache Doris 开始支持存算分离模式,用户可以在集群部署时选择采用存算一体模式或存算分离模式。基于云原生存算分离的架构,用户可以通过多计算集群实现查询负载间的物理隔离以及读写负载隔离,并借助对象存储或 HDFS 等低成本的共享存储系统来大幅降低存储成本。
      Apache Doris 3.0 里程碑版本|存算分离架构升级、湖仓一体再进化
      |
      22天前
      |
      缓存 监控 大数据
      构建高可用AnalyticDB集群:最佳实践
      【10月更文挑战第25天】在大数据时代,数据仓库和分析平台的高可用性变得尤为重要。作为阿里巴巴推出的一款完全托管的PB级实时数据仓库服务,AnalyticDB(ADB)凭借其高性能、易扩展和高可用的特点,成为众多企业的首选。本文将从我个人的角度出发,分享如何构建和维护高可用性的AnalyticDB集群,确保系统在各种情况下都能稳定运行。
      26 0
      |
      1月前
      |
      存储 SQL 人工智能
      【云栖实录】Hologres3.0全新升级:一体化实时湖仓平台
      2024年云栖大会,Hologres 3.0全新升级为一体化实时湖仓平台,通过统一数据平台实现湖仓存储一体、多模式计算一体、分析服务一体、Data+AI 一体,发布 Dynamic Table、External Database、分时弹性、Query Queue、NL2SQL 等众多新的产品能力,实现一份数据、一份计算、一份服务,极大提高数据开发及应用效率。同时,Hologres 的预付费实例年付折扣再降15%,仅需7折,不断帮助企业降低数据管理成本,赋能业务增长。
      |
      25天前
      |
      数据采集 分布式计算 OLAP
      最佳实践:AnalyticDB在企业级大数据分析中的应用案例
      【10月更文挑战第22天】在数字化转型的大潮中,企业对数据的依赖程度越来越高。如何高效地处理和分析海量数据,从中提取有价值的洞察,成为企业竞争力的关键。作为阿里云推出的一款实时OLAP数据库服务,AnalyticDB(ADB)凭借其强大的数据处理能力和亚秒级的查询响应时间,已经在多个行业和业务场景中得到了广泛应用。本文将从个人的角度出发,分享多个成功案例,展示AnalyticDB如何助力企业在广告投放效果分析、用户行为追踪、财务报表生成等领域实现高效的数据处理与洞察发现。
      52 0
      |
      3月前
      |
      存储 消息中间件 运维
      招联金融基于 Apache Doris 数仓升级:单集群 QPS 超 10w,存储成本降低 70%
      招联内部已有 40+ 个项目使用 Apache Doris ,拥有超百台集群节点,个别集群峰值 QPS 可达 10w+ 。通过应用 Doris ,招联金融在多场景中均有显著的收益,比如标签关联计算效率相较之前有 6 倍的提升,同等规模数据存储成本节省超 2/3,真正实现了降本提效。
      招联金融基于 Apache Doris 数仓升级:单集群 QPS 超 10w,存储成本降低 70%
      |
      5月前
      |
      SQL 分布式计算 关系型数据库
      实时数仓 Hologres产品使用合集之湖仓加速版查询maxcompute外部表,有什么优化途径吗
      实时数仓Hologres的基本概念和特点:1.一站式实时数仓引擎:Hologres集成了数据仓库、在线分析处理(OLAP)和在线服务(Serving)能力于一体,适合实时数据分析和决策支持场景。2.兼容PostgreSQL协议:Hologres支持标准SQL(兼容PostgreSQL协议和语法),使得迁移和集成变得简单。3.海量数据处理能力:能够处理PB级数据的多维分析和即席查询,支持高并发低延迟查询。4.实时性:支持数据的实时写入、实时更新和实时分析,满足对数据新鲜度要求高的业务场景。5.与大数据生态集成:与MaxCompute、Flink、DataWorks等阿里云产品深度融合,提供离在线

      热门文章

      最新文章

      相关产品

    • 云原生数据仓库AnalyticDB MySQL版