如何从AWS Redshift迁移到Azure Synapse Analytics

2022-03-30 00:00:00 数据 增量 生产 环境 迁移

什么是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

相关文章