《数据“科学家”必读》 | 数据的ETL和更新

作为一款致力于成为数字化企业「最强大脑」的服务,Azure Synapse Analysis高效高弹性的架构设计、简单易用的操作、强大的功能和澎湃的数据处理和分析能力,能够帮助我们解决与数据准备、数据管理、数据仓库、大数据和AI等方面有关的很多挑战。

我们将通过《数据“科学家”必读》系列文章带领大家全面体验Azure Synapse Analysis。本系列共分为六期内容,本篇是其中的第四期:

  1. 第一次亲密接触:开箱初体验,概括了解Azure Synapse Analysis的功能与价值

  2. 围绕Cosmos DB自行DIY的Azure Synapse Analysis解决方案

  3. Azure Synapse Analysis与Azure Function服务的配合使用

  4. 通过增量数据CDC对Azure Synapse Analysis中的数据进行更新;

  5. 借助Azure Data Factory工具实现数据处理水线的自动化操作;

  6. 借助Synapse Link的一键同步省略ETL过程,实现最新数据的直接访问。

在上一期内容中,我们已经介绍了如何通过Azure Functions实现ChangeFeed的增量数据抽取逻辑,借此完了从上游Cosmos DB ChangeFeed抽取数据并转存至Azure Data Lake的操作。本期,我们将介绍如何在Azure Data Warehouse中拉入增量数据CDC(Change Data Capture),并对Azure Data Warehouse现有数据进行更新。

首先,回顾一下整个架构:

在上述架构中,Data Lake的下一跳是Data Factory服务。Data Factory服务扮演数据水线工具,可以自动完成整个CDC数据ETL并更新到Data Warehouse中。

整个方案中ETL和更新都借助DW的算力来实现,即Data Warehouse的ELT架构。首先,我们需要将CDC Raw导入到Data Warehouse,然后在DW中进行Transform和Update操作。本期首先会介绍在Data Warehouse中手动触发T-SQL执行实现的方式,下期则会介绍如何将整个过程通过Data Factory实现数据处理水线的自动化。

手动触发T-SQL的操作过程如下:

1. 创建Azure Synapse Analysis资源。详情可参考这里

2. 创建Azure Synapse Analysis SQL Pool。详情可参考这里

3. 通过Azure Synapse Studio创建T-SQL Script。详情可参考这里

4. 创建数据表格,创建DW表格,并在演示中使用demotable命名。

5. 通过COPY命令初始化表格数据,替换datalakestorageaccountname、filestoragename和filename为前述Function转存的Data Lake存储对应的信息。

6. 通过Select语句查看当前DW表格中数据。

7. 通过Staging Table加载CDC数据并处理更新DW表格中数据。

8. 在Cosmos DB侧模拟更改数据条目,在DW手工执行上述T-SQL脚本,并通过Select语句查新DW数据是否已经完成更新。

至此,我们已经可以用手工方式在Data Warehouse ELT + Update的数据处理流程跑通。下期将为大家介绍如何通过Data Factory工具将整个数据水线自动化。