SSIS中的容器和数据流—举例说明数据转换任务

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
简介: 在上一个随笔中我们熟悉了数据流任务,现在来做一个例子,通过实践学习这些介绍的内容。这个例子从AdventureWorks数据库中取得数据,然后对数据进行聚合,排序,计算产生新列操作并输入到一个.csv文件中。

在上一个随笔中我们熟悉了数据流任务,现在来做一个例子,通过实践学习这些介绍的内容。这个例子从AdventureWorks数据库中取得数据,然后对数据进行聚合,排序,计算产生新列操作并输入到一个.csv文件中。

  1. 新建一个新的package将它重命名为AdventureWorksExtract.dtsx,在control flow中拖放一个数据流任务,双击进入data flow 界面
  2. 在data flow界面内拖放一个OLE DB数据源,右击重命名为TransactionHistory,双         击打开编辑界面AdventureWorks数据库连接如果已经存在就直接选择它,如果不存在点击新建一个连接
  3. 新建连接之后回到OLE DB Source Editor界面,默认Data Access Mode选项是Table or View,选择数据库中的表[Production].[TransactionHistoryArchive],如图4-32img_2ebde192ce8da5989f4f32c3171a1808.png                              图4-32
  4. 点击Column Page如图4-33选择列ProductID, Quantity,和 ActualCost,点击OK退出img_6bc14c6b43f98d8d974611b376bf22ad.png                              图4-33
  5. 从工具栏Data Flow Transformations中拖放一个Derived Column任务用来产生派生新列,重命名为Calculate Total Cost,用鼠标拖住TransactionHistory 数据源连接这个task
  6. 双击这个Derived Column打开编辑界面如图4-34,在表达式列中输入下面的表达式:[Quantity]* [ActualCost],列名也可以从左边Columns拖放如图img_0e8002982682bfdd3b84d81648995044.png,在Derived Column Name列中输入TotalCost,Derived Column列中选择<add as a new column>,点击OK退出编辑界面img_dbcc61fb1705fbabf3655665e4b2aa6f.png                        图4-34
  7. 在data flow中拖放一个Aggregate任务,重命名为Aggregate Data,把它和Derived Column连接起来。双击Aggregate任务打开编辑界面如图4-35双击ProductID可以看到下面表格中新添加了一行,在Operation中选择Group By,然后栓剂Quantity和TotalCost,在Operation中选择Sum。点击OK退出编辑界面                            img_9894a6db7a5a5d9efd1dd982475dec5e.png                                  图4-35
  8. 从Data Flow Transformations中拖放一个Sort任务重命名为Sort by ProductID,把它和Aggregate任务连接起来。双击Sort任务打开编辑界面,选择Quantity字段降序排列,意思是按照销售量从高到低排序,点击OK退出编辑界面。
  9. 从Data Flow Destinations中拖放一个一个Flat File Destination任务重命名为Vendor Extract,把它和Sort任务连接起来。
  10. 双击Flat File Destination打开编辑界面,新建一个文件连接,在弹出的文件格式选择对话框中默认选择第一个Delimited,将连接命名为Vendor Extract,在File Name文本框中输入C:\SSISDemos\VendorExtract.csv,如果C盘下没有这个文件夹,要新建一个。最后的界面如图4-36,点击OK退出编辑界面。img_bc6be655564fffe077ad077fc14b8456.png                                                         图4-36 
    点击mapping标签界面,可以看到从Sort任务中输入的数据和文件中的数据列一一对应,如图4-37
    img_e7fa4b647340284d303a711173432b42.png
    图4-37

现在整个package完成了,这是一个典型的ETLpackage,右击运行这个package执行完成之后可以看到绿色的连线傍边有转换的数据行数,如图4-38img_f4837a3746639756290b54f03d028b4c.png

图4-38

作者:Tyler Ning
出处:http://www.cnblogs.com/tylerdonet/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,如有问题,可以通过以下邮箱地址williamningdong@gmail.com  联系我,非常感谢。

目录
相关文章
|
3月前
|
移动开发 前端开发 HTML5
Twaver-HTML5基础学习(20)数据容器(3)_数据的批量加载(节省性能方法)
本文介绍了Twaver HTML5中数据的批量加载方法,通过使用`box.startBatch()`可以在大量数据加载时提高性能。文章通过示例代码展示了如何在React组件中使用批量加载功能,以减少界面重绘次数并提升效率。
59 2
Twaver-HTML5基础学习(20)数据容器(3)_数据的批量加载(节省性能方法)
|
3月前
|
XML 存储 JSON
Twaver-HTML5基础学习(19)数据容器(2)_数据序列化_XML、Json
本文介绍了Twaver HTML5中的数据序列化,包括XML和JSON格式的序列化与反序列化方法。文章通过示例代码展示了如何将DataBox中的数据序列化为XML和JSON字符串,以及如何从这些字符串中反序列化数据,重建DataBox中的对象。此外,还提到了用户自定义属性的序列化注册方法。
49 1
|
3月前
|
XML 移动开发 JSON
Twaver-HTML5基础学习(18)数据容器(1)_增删查改、遍历数据容器、包含网元判断
本文介绍了Twaver HTML5中的数据容器(DataBox),包括如何进行增删查改操作、遍历数据容器以及判断网元是否存在于数据容器中。DataBox用于管理所有的网元对象,如ElementBox、LayerBox、AlarmBox等,并通过示例代码展示了其常用方法的使用。
48 1
Twaver-HTML5基础学习(18)数据容器(1)_增删查改、遍历数据容器、包含网元判断
|
3月前
|
存储 索引 Python
python中的数据容器
python中的数据容器
|
4月前
|
安全 网络安全 数据安全/隐私保护
云原生技术探索:容器化与微服务架构的实践之路网络安全与信息安全:保护数据的关键策略
【8月更文挑战第28天】本文将深入探讨云原生技术的核心概念,包括容器化和微服务架构。我们将通过实际案例和代码示例,展示如何在云平台上实现高效的应用部署和管理。文章不仅提供理论知识,还包含实操指南,帮助开发者理解并应用这些前沿技术。 【8月更文挑战第28天】在数字化时代,网络安全和信息安全是保护个人和企业数据的前线防御。本文将探讨网络安全漏洞的成因、加密技术的应用以及提升安全意识的重要性。文章旨在通过分析网络安全的薄弱环节,介绍如何利用加密技术和提高用户警觉性来构建更为坚固的数据保护屏障。
|
4月前
|
存储 Docker 容器
在Docker中,容器退出后,通过docker ps命令查看不到,数据会丢失么?
在Docker中,容器退出后,通过docker ps命令查看不到,数据会丢失么?
|
5月前
|
Shell Linux Docker
docker常用命令大全(基础、镜像、容器、数据卷)
这些命令仅仅是 Docker 命令行工具的冰山一角,但对于日常操作来说已经非常全面。通过熟练地使用这些基础命令,用户可以有效地管理 Docker 的镜像、容器、数据卷和网络。随着用户对 Docker 的深入使用,更高级的命令和选项将会变得必需,但上面列出的命令已经为用户提供了一个坚实的起点。对于初学者来说,理解和掌握这些常用命令是深入学习 Docker 的基础。
520 5
docker常用命令大全(基础、镜像、容器、数据卷)
|
4月前
|
监控 安全 网络安全
|
5月前
|
存储 C++ 容器
开发与运维数组问题之C++标准库中提供数据容器作为数组的替代如何解决
开发与运维数组问题之C++标准库中提供数据容器作为数组的替代如何解决
58 5
|
4月前
|
域名解析 Kubernetes 负载均衡
在K8S中,外部访问容器服务,比如说提供了一个域名,链路怎么走?数据经过哪些组件?
在K8S中,外部访问容器服务,比如说提供了一个域名,链路怎么走?数据经过哪些组件?