如何从AWS Redshift迁移到Azure Synapse Analytics
什么是Azure Synapse?
Azure Synapse 由 Azure SQL 数据仓库演进而成,它将企业数据仓库、大数据分析、数据整合集成在一起形成一个服务,提供无限扩展、全数据(关系型+非关系型数据)分析、端到端解决方案和统一体验。它可以显著缩短项目开发时间,获得更优的性价比。Azure Synapse 包含四个组件:
- SQL Analytics:完整的基于 T-SQL 分析的数仓
SQL pool(SQL DW+新增功能, 按DWU 付费)-正式发布
SQL on-demand(Serverless,按处理数据量付费)-(预览)
- Spark:深度集成的 Apache Spark (预览)
- 数据集成:混合数据集成(预览版)
- Azure Synapse Studio:统一的用户体验(预览版)
事实上,Azure Synapse是业界也是在PB规模数据上运行完全部TCP-H查询的数据分析系统。第三方机构基于30TB TCP-H数据对Azure Synapse、Redshift、Snowflake和BigQuery进行了基准测试。结果显示Azure Synapse获得佳的性价比,价格比BigQuery降低94%,比Redshift高降低30.8%;性能比BigQuery快14倍,比Redshift快2倍。
从AWS Redshift迁移数据到Azure Synapse
迁移生产环境数据仓库,通常需要考虑现有数据和持续产生的业务数据,迁移过程分为4个阶段:
- 一次性迁移(Onetime Migration)
- 增量数据迁移(Incremental)
- 并行运行(Parallel Run)
- 正式割接,关闭Redshift,保持Azure Synapse为生产环境
本文采用Azure Data Factory(下面简称为ADF)完成迁移任务。ADF是基于Azure全托管的大数据ELT/ETL (E: Extract, L: Load, T: Transform) 服务,可实现无代码(或嵌入代码)数据集成工作流编排,并支持DevOps。它提供超过90个预构建的连接器(包括 Azure 数据服务、本地数据源、Amazon S3、Amazon Redshift),这些连接器均无额外费用。ADF利用基础网络带宽的完整容量,提供高达 4 GB 每秒的吞吐量,可实现高效而可靠的数据传输。
1.一次性迁移
使用ADF将Redshift数据迁移至Azure Synapse。首先创建Copy Activity使用Redshift提供的UNLOAD功能将查询结果卸载到AWS S3存储;然后通过二进制复制将S3文件迁移至Azure Blob存储;后通过PloyBase将数据从Azure Blob加载至SQL pool(之前的SQL DW)。
2.增量数据
生产环境每日产生增量业务数据和日志数据,通过ETL/ELT工具导入数据仓库。比如业务系统生产库为MySQL,在Azure创建MySQL Slave库,实时从生产复制增量数据。构建ADF定时任务,使用MySQL 连接器将增量数据从MySQL Slave库复制到Azure Blob,并进行相应清洗转换,然后加载进Azure Synapse。当然,如果增量数据实时追加存储在S3,则定时任务使用Copy Activity将数据复制到Azure Blob,然后清洗转换加载进Azure Synapse。
3. 并行运行
数据迁移配置完成,新增数据实时加载进入生产环境和Azure Synapse。报表和分析工具正常连接Azure Synapse,数据分析功能运行正常,则可以投入生产运行。同时保留原有Redshift环境一段时间,验证Azure Synapse环境稳定运行。
4. 割接,保持Azure Synapse为生产环境,关闭并删除Redshift环境。
总结
Azure Synapse 是业界领先的数据分析平台,无论Redshift、BigQuery还是Netezza、Teradata,都可以平滑地迁移到Azure Synapse。数据工程师和数据科学家正在轻松快捷地使用Azure Synapse获得数据洞察,越来越多的企业正在使用Azure Synapse作为数仓和大数据分析平台,并享受它带来的佳性价比。
附录:
GigaOm TPC-H benchmark report, January 2019, “GigaOm report: Data Warehouse in the Cloud Benchmark
https://azure.microsoft.com/mediahandler/files/resourcefiles/>AWS Redshift UNLOAD
https://docs.aws.amazon.com/redshift/latest/dg/r_UNLOAD.html
使用 Azure 数据工厂从 Amazon Redshift 复制数据
https://docs.microsoft.com/zh-cn/azure/>从 Amazon Web Services S3复制数据至 Azure Data Lake Storage Gen2
https://docs.microsoft.com/zh-cn/azure/data-factory/load-azure-data-lake-storage-gen2
相关文章