zoukankan      html  css  js  c++  java
  • SSIS教程:创建简单的ETL包 -- 1. 创建项目和基本包

    在本课中,将创建一个简单 ETL 包,该包可以从单个平面文件(Flat File)源中提取数据,使用两个查找转换组件转换该数据,然后将该数据写入AdventureWorksDW2012 的 FactCurrency 事实数据表中。 在本课中,您还将学习如何创建新包、添加和配置数据源和目标连接以及使用新的控制流和数据流组件。

    AdventureWorksDW2012 下载地址:http://msftdbprodsamples.codeplex.com/releases/view/55330

    Step 1:创建新的Integration Services项目

    在开始菜单中找到SQL Server Data Tools并打开,在Microsoft SQL Server下。

    创建新的Integration Services Project。

    Step 2:添加和配置平面文件连接管理器

    文件中的数据导入到目标库,需要创建平面文件(Flat File)连接。(点击文件连接,下载SQL2012.Integration_Services.Create_Simple_ETL_Tutorial.Sample.zip)

    1. Connection Managers中右键,选择New Flat File Connection...

    2. 在File Name中点击浏览,选中刚才下载文件中的SampleCurrencyData.txt文件

    3. 取消"Column names in the first data row"复选框

    4. 在Advanced页签,更改Column名和数据类型。

    • 将 Column 0 名称属性改为 AverageRate。类型改为float。

    • 将 Column 1 名称属性改为 CurrencyID。类型改为DT_WSTR。

    • 将 Column 2 名称属性改为 CurrencyDate。类型改为DT_DBDATE。

    • 将 Column 3 名称属性改为 EndOfDayRate。类型改为float。

    Step 3:添加和配置OLE DB连接管理器

    1. Connection Managers中右键,选择New OLE DB Connection...

    2. 点击New,并连接上AdventureWorksDW2012数据库

    Step 4:将数据流任务添加到包

    1. 单击Control Flow,然后打开SSIS Toolbox

    2. 将Data Flow Task拖拽到Control Flow,并Rename为Extract Sample Currency Data

    Step 5:添加并配置平面文件源

    1. 双击Step 4创建的Extract Sample Currency Data,会打开Data Flow页签。

    2. 打开SSIS Toolbox => Other Source => Flat File Source,拖拽到Data Flow中,并Rename额外Extract Sample Currency Data。

    Step 6:添加并配置查找转换

    添加Lookup转换组件,给予DimCurrency表的CurrencyKey,该字段和平面文件的CurrencyID匹配。

      1. 在SSIS Toolbox中找到Lookup组件,拖拽到Data Folw中,并Rename为Lookup Currency Key

      2. 双击Lookup Currency Key,进行编辑

        General页签Cache Model选择"Full cache",Connection Type选择"OLE DB connection manage"

        Connection页签,OLE DB连接管理器选择localhost.AdventureWorksDW2012,使用SQL查询的结果,输入如下SQL语句,

    select * from (select * from [dbo].[DimCurrency]) as refTable
    where [refTable].[CurrencyAlternateKey] = 'ARS'
    OR
    [refTable].[CurrencyAlternateKey] = 'AUD'
    OR
    [refTable].[CurrencyAlternateKey] = 'BRL'
    OR
    [refTable].[CurrencyAlternateKey] = 'CAD'
    OR
    [refTable].[CurrencyAlternateKey] = 'CNY'
    OR
    [refTable].[CurrencyAlternateKey] = 'DEM'
    OR
    [refTable].[CurrencyAlternateKey] = 'EUR'
    OR
    [refTable].[CurrencyAlternateKey] = 'FRF'
    OR
    [refTable].[CurrencyAlternateKey] = 'GBP'
    OR
    [refTable].[CurrencyAlternateKey] = 'JPY'
    OR
    [refTable].[CurrencyAlternateKey] = 'MXN'
    OR
    [refTable].[CurrencyAlternateKey] = 'SAR'
    OR
    [refTable].[CurrencyAlternateKey] = 'USD'
    OR
    [refTable].[CurrencyAlternateKey] = 'VEB'

      3. 在Columns中,将CurrencyID拖放到CurrencyAlternateKey上,并选中CurrencyKey的复选框。

      

      

    添加Lookup转换组件,给予DimDate表的DateKey,该字段和平面文件的CurrencyDate匹配。

      1. 在SSIS Toolbox中拖拽Lookup到Data Flow中,Rename为Lookup Date Key并放在Lookup Currency Key下面。

      2. 将Lookup Currency Key 和Lookup Date Key连接,Output选择Lookup Match Output.

      3. 双击Lookup Date Key进行编辑

        Gerenal:选择partial cache和OLE DB connection manager

        Connection:选中DimDate表

        Columns:将Currency Date拖放到FullDateAlternateKey上并选中DateKey的复选框。

      

      

    Step 7:添加和配置OLE DB目标

      1. 将SSIS Toolbox => Other Destincations => OLE DB Destination拖放到Data Folw中,并Rename为Sample OLE DB Destination。

      2. 连接Lookup Date Key和Sample OLE DB Destination,Output选择Lookup Match Output。

      3. 双击Sample OLE DB Destination,进行编辑

        Connection Manager:在Name of the table or the view中选择[dbo].[FactCurrencyRate],点击New,将脚本中的TableName更改为NewFactCurrencyRate。

        Mappings:所有源列都已经映射到了目标列。

      

      

    Step 8:使ETL包更易于理解

      1. 选中所有的数据流组件,在菜单栏上进行Format =>Make Same Size => Both,Format => Align => Lefts

      2. 在Data Folw空白处点击右键,Add annotation,输入批注信息

      

    Step 9:测试ETL包

      1. 工程完成后,控制流和数据流如下图所示。

      2. 点击Debug => Start Debugging,包开始运行,结果有1097个行被成功添加到NewFactCurrency表中

      

      

  • 相关阅读:
    [笔记] 《我的第一本c++书》
    [c++] 输入输出
    [c++] STL 标准算法
    [c++] 模板、迭代器、泛型
    [计算机科学] 图灵机
    shell专题(五):运算符
    shell专题(四):Shell中的变量
    shell专题(三):Shell脚本入门
    shell专题(二):Shell解析器
    shell专题(一):Shell概述
  • 原文地址:https://www.cnblogs.com/Niko12230/p/5730638.html
Copyright © 2011-2022 走看看