Lookup的几种缓存模式.docx
文本预览下载声明
HYPERLINK /biwork/p/3296602.html 微软BI 之SSIS 系列 - Lookup 组件的使用与它的几种缓存模式 - Full Cache, Partial Cache, NO Cache
2013-09-04 20:28 by BIWORK, 1496 阅读, 13 评论, HYPERLINK /biwork/p/3296602.html 收藏, HYPERLINK /EditPosts.aspx?postid=3296602 编辑
开篇介绍
先简单的演示一下使用 Lookup 组件实现一个简单示例 - 从数据源表 A 中导出数据到目标数据表 B,如果 A 数据在 B 中不存在就插入新数据到B,如果存在就更新B 和 A 表数据保持统一。
随后再来解释在这个过程中使用到的一些术语,以及分析一下 Lookup 中出现的几种缓存模式,各自的特点以及常用的场合。
案例讲解
两张表,一张是目标表 DEMO_LK_Customer,一张是 DEMO_LK_LegacyCustomer? 旧系统表。我们可以理解我们这个示例要实现的目标是 DEMO_LK_Customer 表的数据要和DEMO_LK_LegacyCustomer?实现同步,保持一致。
USE BIWORK_SSIS
GO
-- Look up demo table
IF OBJECT_ID(DEMO_LK_Customer,U) IS NOT NULL
DROP TABLE DEMO_LK_Customer
GO
IF OBJECT_ID(DEMO_LK_LegacyCustomer,U) IS NOT NULL
DROP TABLE DEMO_LK_LegacyCustomer
GO
CREATE TABLE DEMO_LK_Customer
(
CustomerID INT PRIMARY KEY,
CustomerCompany NVARCHAR(255),
CustomerName NVARCHAR(20),
CustomerAddress NVARCHAR(255)
)
CREATE TABLE DEMO_LK_LegacyCustomer
(
CustomerID INT PRIMARY KEY,
CustomerCompany NVARCHAR(255),
ContactName NVARCHAR(20),
ContactTitle NVARCHAR(50),
CustomerAddress NVARCHAR(255)
)
INSERT INTO DEMO_LK_Customer VALUES
(1,HFBZG,Allen,Michael,Obere Str. 0123),
(2,MLTDN,Hassall, Mark,Avda. de la Constitución 5678),
(3,KBUDE,Peoples, John,Mataderos 1000)
INSERT INTO DEMO_LK_LegacyCustomer VALUES
(1,NRZBB,Allen,Michael,Sales Representative,Obere Str. 0123),
(2,MLTDN,Hassall, Mark,Owner,Avda. de la Constitución 5678),
(3,KBUDE,Peoples, John,Owner,Mataderos 7890),
(4,HFBZG,Arndt, Torsten,Sales Representative,7890 Hanover Sq.),
(5,HGVLZ,Higginbotham, Tom,Order Administrator,Berguvsv?gen 5678)
SELECT * FROM DEMO_LK_Customer
SELECT * FROM DEMO_LK_LegacyCustomer
--UPDATE DEMO_LK_Customer SET CustomerName = ?, CustomerCompany = ?, CustomerAddress = ? WHERE CustomerID = ?
--UPDATE DEMO_LK_Customer SET CustomerName = ? WHERE CustomerID = ?
--UPDATE DEMO_LK_Customer SET CustomerAddress = ? WHERE CustomerID = ?
在测试数据中,我们认为两张表的 ID 都是不变的唯一的,第1条数据和第
显示全部