在 Excel 上:
您可以使用「名稱(Name)」,讓公式更容易了解及維護。
您可以為儲存格範圍、函數、常數或資料表定義名稱。
一旦採取在活頁簿中使用名稱的做法以後,就可以輕鬆更新、稽核及管理這些名稱。
可以使用「公式(Formulas)」頁籤的「名稱管理員(Name Manager)」來管理與設計。
在 SSIS 的「Excel 來源」或「Excel 目的地」資料項目:
Excel 活頁簿中資料的來源可以是工作表 (必須附加 $ 符號,例如 Sheet1$) 或已「命名的範圍(Named range)」 (例如 MyRange)。
在 SQL 陳述式中,工作表的名稱必須加以分隔 (例如 [Sheet1$]),以避免 $ 符號造成的語法錯誤。
「查詢產生器」會自動加入這些分隔符號。
當您指定工作表或範圍時,驅動程式會讀取連續的資料格區塊,從工作表或範圍左上角的第一個非空白資料格開始。
因此,來源資料的資料列不可以空白,或標題或標頭資料列與資料列之間不可以有空白資料列。
在 Excel 中,工作表或範圍相當於資料表或檢視。
「Excel 來源」及「Excel 目的地」編輯器中的可用資料表清單,僅會顯示現有工作表 (以附加到工作表名稱的 $ 符號識別,例如 Sheet1$) 及具名範圍(Named range) (以沒有 $ 符號的方式識別,例如 MyRange)。
綜合前述
可以先在 Excel 上,利用「公式(Formulas)」頁籤的「名稱管理員(Name Manager)」來管理與設計資料的區域。
之後,在 SSIS 封裝上的「Excel 來源」或「Excel 目的地」上,就可以使用這些「名稱」來存取指定的資料區塊。
示範環境:
1. Excel 2010。
2. SSIS 2008。
以下是使用 Excel 上的「公式(Formulas)」頁籤的「名稱管理員(Name Manager)」來管理與設計資料之區域。
-- 01_設定好的名稱管理員_視窗
之後,在 SSIS 封裝上的「Excel 來源」或「Excel 目的地」上,就可以使用這些「名稱」來存取指定的資料區塊。
-- 02_Region_選擇指定工作表,點選「預覽」
-- 03_Shippers_選擇指定工作表,點選「預覽」
-- 04_選取整個「工作表」
參考資料:
定義及使用公式中的名稱
http://office.microsoft.com/zh-tw/excel-help/HA010147120.aspx
Excel 來源
http://msdn.microsoft.com/zh-tw/library/ms141683.aspx
Excel 目的地
http://msdn.microsoft.com/zh-tw/library/ms137643.aspx
SSIS:認識 Excel 公式的「名稱(Name)」、工作表(Worksheet)、具名範圍(Named Range) -- 圖文版本
http://sharedderrickref.blogspot.com/2012/03/ssis-excel-nameworksheetnamed-range.html
搜尋本站文章
2012-03-06
2012-03-03
SSIS 效能測試:使用 Oracle 當做資料來源,以 Attunity、Oracle Client 與 Microsoft 資料提供者,彙整數據(1)
示範環境:
1. Oracle 11g R2 x64 版本。
2. SQL Server 2008 R2 x64 版本。並且已經安裝了 Oracle Database 11g Release 2 Client (11.2.0.1.0) 。
使用各類資料提供者的執行效能之數據
(1) 使用 .Net 資料提供者:OracleClient Data Provider 為資料來源
此資料連接提供者是 SSIS 內建的。
有支援 32 與 64 位元模式來執行。
-- 01_OracleClient_檢視已完成執行的資料流程工作
執行時間是:00:00:51.750,也就是:51.750 秒。
-- 02_OracleClient_檢視已完成執行的進度與時間
若將來源 Oracle 的資料表筆數,增加到:15,507,560 筆,也就是約:一千一百五十萬筆。
執行時間是:00:10:19.843,也就是:10 分 19.843 秒,619.843 秒。
(2) 使用 原生 OLE DB 資料提供者:Microsoft OLE DB Provider for Oracle 為資料來源
此資料連接提供者是 SSIS 內建的。
使用 32 位元模式執行。
其中,資料目的地部分,目前好像不支援在 64 位元模式下執行。
以下是使用 32 位元模式:
-- 03_OLE DB Provider for Oracle_檢視已完成執行的資料流程工作
執行時間是:00:00:29.438,也就是:0 分 29.438 秒。
-- 04_OLE DB Provider for Oracle_檢視已完成執行的進度與時間
使用此資料提供者,還遭遇到無法偵測資料行字碼頁資訊的警告。
若將來源 Oracle 的資料表筆數,增加到:15,507,560 筆,也就是約:一千一百五十萬筆。
執行時間是:00:06:42.109,也就是:6 分 42.109 秒,402.109 秒
(3) 使用 Attunity 提供的「Oracle Source」為資料來源
此資料提供者是在安裝 Microsoft Connector Version 1.1 for Oracle by Attunity 後,由 Attunity 所提供的。
有支援 32 與 64 位元模式來執行。
-- 05_Attunity_檢視已完成執行的資料流程工作
執行時間是:00:00:16.437,也就是:0 分 16.437 秒。
-- 06_Attunity_檢視已完成執行的進度與時間
若將來源 Oracle 的資料表筆數,增加到:15,507,560 筆,也就是約:一千一百五十萬筆。
執行時間是:00:03:54.562,也就是:3 分 54.562 秒,234.562 秒。
彙整使用各類資料提供者的執行效能之數據
-- 實驗(1)
資料列的筆數是:1,150,016,約一百一十五萬筆,轉出文字檔案的大小約 79 MB。
-- 07_資料提供者的數據彙整
MSORA:Microsoft Connector for Oracle by Attunity
-- 08_資料提供者_執行時間
在上圖 8 中,執行時間是越短越好。
-- 09_資料提供者_每秒可處理筆數
在上圖 9 中,每秒可處理的筆數是越多越好。
-- 實驗(2)
資料列的筆數是:15,507,560 筆,也就是約:一千一百五十萬筆,轉出文字檔案的大小約 1.17GB。
-- 10_資料提供者的數據彙整
-- 11_資料提供者_執行時間
在上圖 11 中,執行時間是越短越好。
-- 12_資料提供者_每秒可處理筆數
在上圖 12 中,每秒可處理的筆數是越多越好。
使用的環境:
1. 軟體資訊:
(1) Oracle 11g R2 x64 版本。
(2) SQL Server 2008 R2 x64 版本。並且已經安裝了 Oracle Database 11g Release 2 Client (11.2.0.1.0) 。
2. 匯出後資料目的地文字檔案:
檔案名稱:tb01.txt。
實驗(1)
檔案大小約:79 MB。
資料列筆數:1,150,016,約一百一十五萬筆。
實驗(2)
檔案大小約:1.17GB。
資料列筆數:1,150,016,約一千一百五十萬筆。
參考資料
SSIS 效能測試:使用 Oracle 當做資料目的地,以 Attunity、Oracle Client 與 Microsoft 資料提供者,彙整數據(1)
http://sharedderrick.blogspot.com/2012/03/ssis-oracle-attunityoracle-client.html
SSIS 效能測試:使用 Oracle 當做資料目的地,以 Attunity、Oracle Client 與 Microsoft 資料提供者,彙整數據(2)
http://sharedderrick.blogspot.com/2012/03/ssis-oracle-attunityoracle-client_02.html
--
SSIS 效能測試:使用 Oracle 當做資料來源,彙整使用各類資料提供者的執行效能之數據 -- 圖文版本
http://sharedderrickref.blogspot.com/2012/02/ssis-oracle.html
SSIS 效能測試:使用 Oracle 當做資料來源,以 Attunity、Oracle Client 與 Microsoft 資料提供者為例(5) -- 圖文版本
http://sharedderrickref.blogspot.com/2012/02/ssis-oracle-attunityoracle-client_5642.html
SSIS 效能測試:使用 Oracle 當做資料來源,以 Attunity、Oracle Client 與 Microsoft 資料提供者為例(4) -- 圖文版本
http://sharedderrickref.blogspot.com/2012/02/ssis-oracle-attunityoracle-client_2318.html
SSIS 效能測試:使用 Oracle 當做資料來源,以 Attunity、Oracle Client 與 Microsoft 資料提供者為例(3) -- 圖文版本
http://sharedderrickref.blogspot.com/2012/02/ssis-oracle-attunityoracle-client_2902.html
SSIS 效能測試:使用 Oracle 當做資料來源,以 Attunity、Oracle Client 與 Microsoft 資料提供者為例(2) -- 圖文版本
http://sharedderrickref.blogspot.com/2012/02/ssis-oracle-attunityoracle-client_4881.html
SSIS 效能測試:使用 Oracle 當做資料來源,以 Attunity、Oracle Client 與 Microsoft 資料提供者為例(1) -- 圖文版本
http://sharedderrickref.blogspot.com/2012/02/ssis-oracle-attunityoracle-client_24.html
1. Oracle 11g R2 x64 版本。
2. SQL Server 2008 R2 x64 版本。並且已經安裝了 Oracle Database 11g Release 2 Client (11.2.0.1.0) 。
使用各類資料提供者的執行效能之數據
(1) 使用 .Net 資料提供者:OracleClient Data Provider 為資料來源
此資料連接提供者是 SSIS 內建的。
有支援 32 與 64 位元模式來執行。
-- 01_OracleClient_檢視已完成執行的資料流程工作
執行時間是:00:00:51.750,也就是:51.750 秒。
-- 02_OracleClient_檢視已完成執行的進度與時間
若將來源 Oracle 的資料表筆數,增加到:15,507,560 筆,也就是約:一千一百五十萬筆。
執行時間是:00:10:19.843,也就是:10 分 19.843 秒,619.843 秒。
(2) 使用 原生 OLE DB 資料提供者:Microsoft OLE DB Provider for Oracle 為資料來源
此資料連接提供者是 SSIS 內建的。
使用 32 位元模式執行。
其中,資料目的地部分,目前好像不支援在 64 位元模式下執行。
以下是使用 32 位元模式:
-- 03_OLE DB Provider for Oracle_檢視已完成執行的資料流程工作
執行時間是:00:00:29.438,也就是:0 分 29.438 秒。
-- 04_OLE DB Provider for Oracle_檢視已完成執行的進度與時間
使用此資料提供者,還遭遇到無法偵測資料行字碼頁資訊的警告。
若將來源 Oracle 的資料表筆數,增加到:15,507,560 筆,也就是約:一千一百五十萬筆。
執行時間是:00:06:42.109,也就是:6 分 42.109 秒,402.109 秒
(3) 使用 Attunity 提供的「Oracle Source」為資料來源
此資料提供者是在安裝 Microsoft Connector Version 1.1 for Oracle by Attunity 後,由 Attunity 所提供的。
有支援 32 與 64 位元模式來執行。
-- 05_Attunity_檢視已完成執行的資料流程工作
執行時間是:00:00:16.437,也就是:0 分 16.437 秒。
-- 06_Attunity_檢視已完成執行的進度與時間
若將來源 Oracle 的資料表筆數,增加到:15,507,560 筆,也就是約:一千一百五十萬筆。
執行時間是:00:03:54.562,也就是:3 分 54.562 秒,234.562 秒。
彙整使用各類資料提供者的執行效能之數據
-- 實驗(1)
資料列的筆數是:1,150,016,約一百一十五萬筆,轉出文字檔案的大小約 79 MB。
-- 07_資料提供者的數據彙整
MSORA:Microsoft Connector for Oracle by Attunity
-- 08_資料提供者_執行時間
在上圖 8 中,執行時間是越短越好。
-- 09_資料提供者_每秒可處理筆數
在上圖 9 中,每秒可處理的筆數是越多越好。
-- 實驗(2)
資料列的筆數是:15,507,560 筆,也就是約:一千一百五十萬筆,轉出文字檔案的大小約 1.17GB。
-- 10_資料提供者的數據彙整
-- 11_資料提供者_執行時間
在上圖 11 中,執行時間是越短越好。
-- 12_資料提供者_每秒可處理筆數
在上圖 12 中,每秒可處理的筆數是越多越好。
使用的環境:
1. 軟體資訊:
(1) Oracle 11g R2 x64 版本。
(2) SQL Server 2008 R2 x64 版本。並且已經安裝了 Oracle Database 11g Release 2 Client (11.2.0.1.0) 。
2. 匯出後資料目的地文字檔案:
檔案名稱:tb01.txt。
實驗(1)
檔案大小約:79 MB。
資料列筆數:1,150,016,約一百一十五萬筆。
實驗(2)
檔案大小約:1.17GB。
資料列筆數:1,150,016,約一千一百五十萬筆。
參考資料
SSIS 效能測試:使用 Oracle 當做資料目的地,以 Attunity、Oracle Client 與 Microsoft 資料提供者,彙整數據(1)
http://sharedderrick.blogspot.com/2012/03/ssis-oracle-attunityoracle-client.html
SSIS 效能測試:使用 Oracle 當做資料目的地,以 Attunity、Oracle Client 與 Microsoft 資料提供者,彙整數據(2)
http://sharedderrick.blogspot.com/2012/03/ssis-oracle-attunityoracle-client_02.html
--
SSIS 效能測試:使用 Oracle 當做資料來源,彙整使用各類資料提供者的執行效能之數據 -- 圖文版本
http://sharedderrickref.blogspot.com/2012/02/ssis-oracle.html
SSIS 效能測試:使用 Oracle 當做資料來源,以 Attunity、Oracle Client 與 Microsoft 資料提供者為例(5) -- 圖文版本
http://sharedderrickref.blogspot.com/2012/02/ssis-oracle-attunityoracle-client_5642.html
SSIS 效能測試:使用 Oracle 當做資料來源,以 Attunity、Oracle Client 與 Microsoft 資料提供者為例(4) -- 圖文版本
http://sharedderrickref.blogspot.com/2012/02/ssis-oracle-attunityoracle-client_2318.html
SSIS 效能測試:使用 Oracle 當做資料來源,以 Attunity、Oracle Client 與 Microsoft 資料提供者為例(3) -- 圖文版本
http://sharedderrickref.blogspot.com/2012/02/ssis-oracle-attunityoracle-client_2902.html
SSIS 效能測試:使用 Oracle 當做資料來源,以 Attunity、Oracle Client 與 Microsoft 資料提供者為例(2) -- 圖文版本
http://sharedderrickref.blogspot.com/2012/02/ssis-oracle-attunityoracle-client_4881.html
SSIS 效能測試:使用 Oracle 當做資料來源,以 Attunity、Oracle Client 與 Microsoft 資料提供者為例(1) -- 圖文版本
http://sharedderrickref.blogspot.com/2012/02/ssis-oracle-attunityoracle-client_24.html
2012-03-02
SSIS 效能測試:使用 Oracle 當做資料目的地,以 Attunity、Oracle Client 與 Microsoft 資料提供者,彙整數據(2)
請先參考此篇文章:
SSIS 效能測試:使用 Oracle 當做資料目的地,以 Attunity、Oracle Client 與 Microsoft 資料提供者,彙整數據(1)
http://sharedderrick.blogspot.com/2012/03/ssis-oracle-attunityoracle-client.html
使用各類資料提供者的執行效能之數據:
在安裝上 Oracle Clinet 後,多增加了兩種資料提供者可以使用。
(4) 使用 原生 OLE DB 資料提供者:Oracle Data Provider for OLE DB 為資料目的地
此資料提供者是額外安裝 Oracle Client 後,由 Oracle 所提供的。
有支援 32 與 64 位元模式來執行。
-- 01_Oracle Data Provider_檢視執行的資料流程工作
執行時間是:21:41.987,也就是:21 分 41.984 秒,約 1,301.984 秒。
-- 02_Oracle Data Provider_檢視執行的進度與時間
在上圖 2 中,觀察到記憶體竟然被耗用殆盡。
(5) 使用 .Net 資料提供者:Oracle Data Provider for .NET 為資料目的地
此資料提供者是額外安裝 Oracle Client 後,由 Oracle 所提供的。
-- 03_遭遇的錯誤訊息
目前測試的結果是:
當做資料來源可以,但是當做資料目的地卻是無法執行。
彙整使用各類資料提供者的執行效能之數據
-- 04_資料提供者的數據彙整
-- 05_資料提供者_執行時間
在上圖 5 中,執行時間是越短越好。
-- 06_資料提供者_每秒可處理筆數
在上圖 6 中,每秒可處理的筆數是越多越好。
參考資料
SSIS 效能測試:使用 Oracle 當做資料目的地,以 Attunity、Oracle Client 與 Microsoft 資料提供者,彙整數據(1)
http://sharedderrick.blogspot.com/2012/03/ssis-oracle-attunityoracle-client.html
OLE DB Providers Tested with SQL Server
http://msdn.microsoft.com/en-us/library/ms187072.aspx
Data Access Technologies Road Map
http://msdn.microsoft.com/en-us/library/ms810810.aspx
System.Data.OracleClient Update
http://blogs.msdn.com/b/adonet/archive/2009/06/15/system-data-oracleclient-update.aspx
SSIS 效能測試:使用 Oracle 當做資料目的地,以 Attunity、Oracle Client 與 Microsoft 資料提供者為例 -- 圖文版本
http://sharedderrickref.blogspot.com/2012/02/ssis-oracle-attunityoracle-client.html
SSIS:使用 Microsoft、Oracle 資料提供者來與 Oracle 11g R2 連線 -- 圖文版本
http://sharedderrickref.blogspot.com/2012/02/ssis-microsoftoracle-oracle-11g-r2.html
SSIS:下載與安裝 Connector for Oracle by Attunity -- 圖文版本
http://sharedderrickref.blogspot.com/2012/02/ssis-connector-for-oracle-by-attunity.html
SSIS 效能測試:使用 Oracle 當做資料目的地,以 Attunity、Oracle Client 與 Microsoft 資料提供者,彙整數據(1)
http://sharedderrick.blogspot.com/2012/03/ssis-oracle-attunityoracle-client.html
使用各類資料提供者的執行效能之數據:
在安裝上 Oracle Clinet 後,多增加了兩種資料提供者可以使用。
(4) 使用 原生 OLE DB 資料提供者:Oracle Data Provider for OLE DB 為資料目的地
此資料提供者是額外安裝 Oracle Client 後,由 Oracle 所提供的。
有支援 32 與 64 位元模式來執行。
-- 01_Oracle Data Provider_檢視執行的資料流程工作
執行時間是:21:41.987,也就是:21 分 41.984 秒,約 1,301.984 秒。
-- 02_Oracle Data Provider_檢視執行的進度與時間
在上圖 2 中,觀察到記憶體竟然被耗用殆盡。
(5) 使用 .Net 資料提供者:Oracle Data Provider for .NET 為資料目的地
此資料提供者是額外安裝 Oracle Client 後,由 Oracle 所提供的。
-- 03_遭遇的錯誤訊息
目前測試的結果是:
當做資料來源可以,但是當做資料目的地卻是無法執行。
彙整使用各類資料提供者的執行效能之數據
-- 04_資料提供者的數據彙整
-- 05_資料提供者_執行時間
在上圖 5 中,執行時間是越短越好。
-- 06_資料提供者_每秒可處理筆數
在上圖 6 中,每秒可處理的筆數是越多越好。
參考資料
SSIS 效能測試:使用 Oracle 當做資料目的地,以 Attunity、Oracle Client 與 Microsoft 資料提供者,彙整數據(1)
http://sharedderrick.blogspot.com/2012/03/ssis-oracle-attunityoracle-client.html
OLE DB Providers Tested with SQL Server
http://msdn.microsoft.com/en-us/library/ms187072.aspx
Data Access Technologies Road Map
http://msdn.microsoft.com/en-us/library/ms810810.aspx
System.Data.OracleClient Update
http://blogs.msdn.com/b/adonet/archive/2009/06/15/system-data-oracleclient-update.aspx
SSIS 效能測試:使用 Oracle 當做資料目的地,以 Attunity、Oracle Client 與 Microsoft 資料提供者為例 -- 圖文版本
http://sharedderrickref.blogspot.com/2012/02/ssis-oracle-attunityoracle-client.html
SSIS:使用 Microsoft、Oracle 資料提供者來與 Oracle 11g R2 連線 -- 圖文版本
http://sharedderrickref.blogspot.com/2012/02/ssis-microsoftoracle-oracle-11g-r2.html
SSIS:下載與安裝 Connector for Oracle by Attunity -- 圖文版本
http://sharedderrickref.blogspot.com/2012/02/ssis-connector-for-oracle-by-attunity.html
SSIS 效能測試:使用 Oracle 當做資料目的地,以 Attunity、Oracle Client 與 Microsoft 資料提供者,彙整數據(1)
示範環境:
1. Oracle 11g R2 x64 版本。
2. SQL Server 2008 R2 x64 版本。並且已經安裝了 Oracle Database 11g Release 2 Client (11.2.0.1.0) 。
使用各類資料提供者的執行效能之數據:
(1) 使用 .Net 資料提供者:OracleClient Data Provider 為資料目的地
此資料連接提供者是 SSIS 內建。
有支援 32 與 64 位元模式來執行。
-- 01_OracleClient_檢視執行的資料流程工作
執行時間是:19:53.078,也就是:19 分 53.078 秒,約 1,193.078 秒。
-- 02_OracleClient_檢視執行的進度與時間
(2) 使用 原生 OLE DB 資料提供者:Microsoft OLE DB Provider for Oracle 為資料目的地
此資料連接提供者是 SSIS 內建。
但是沒有提供 64 位元版本的資料供者。
-- 03_Microsoft_檢視執行的資料流程工作
以下是使用 32 位元模式:
執行時間是:01:59:01.094,也就是:1 小時 59 分 1.156 秒,約 7,141.156 秒。
-- 04_Microsoft_檢視執行的進度與時間
使用此資料提供者,還遭遇到無法偵測資料行字碼頁資訊的警告。
(3) 使用 Attunity 提供的「Oracle Destination」為資料目的地
此資料提供者是在安裝 Microsoft Connector Version 1.1 for Oracle by Attunity 後,由 Attunity 所提供的。
有支援 32 與 64 位元模式來執行。
執行時間是:00:56.844,也就是:56.844 秒,不到一分鐘。
彙整使用各類資料提供者的執行效能之數據
-- 07_資料提供者的數據彙整
MSORA:Microsoft Connector for Oracle by Attunity
-- 08_資料提供者_執行時間
在上圖 8 中,執行時間是越短越好。
-- 09_資料提供者_每秒可處理筆數
在上圖 9 中,每秒可處理的筆數是越多越好。
使用的環境:
1. 軟體資訊:
(1) Oracle 11g R2 x64 版本。
(2) SQL Server 2008 R2 x64 版本。並且已經安裝了 Oracle Database 11g Release 2 Client (11.2.0.1.0) 。
2. 資料來源的文字檔案:
檔案名稱:tb01.txt。
檔案大小約:79 MB。
資料列筆數:1,150,016,約一百一十五萬筆。
參考資料
OLE DB Providers Tested with SQL Server
http://msdn.microsoft.com/en-us/library/ms187072.aspx
Data Access Technologies Road Map
http://msdn.microsoft.com/en-us/library/ms810810.aspx
System.Data.OracleClient Update
http://blogs.msdn.com/b/adonet/archive/2009/06/15/system-data-oracleclient-update.aspx
SSIS 效能測試:使用 Oracle 當做資料目的地,以 Attunity、Oracle Client 與 Microsoft 資料提供者為例 -- 圖文版本
http://sharedderrickref.blogspot.com/2012/02/ssis-oracle-attunityoracle-client.html
SSIS:使用 Microsoft、Oracle 資料提供者來與 Oracle 11g R2 連線 -- 圖文版本
http://sharedderrickref.blogspot.com/2012/02/ssis-microsoftoracle-oracle-11g-r2.html
SSIS:下載與安裝 Connector for Oracle by Attunity -- 圖文版本
http://sharedderrickref.blogspot.com/2012/02/ssis-connector-for-oracle-by-attunity.html
1. Oracle 11g R2 x64 版本。
2. SQL Server 2008 R2 x64 版本。並且已經安裝了 Oracle Database 11g Release 2 Client (11.2.0.1.0) 。
使用各類資料提供者的執行效能之數據:
(1) 使用 .Net 資料提供者:OracleClient Data Provider 為資料目的地
此資料連接提供者是 SSIS 內建。
有支援 32 與 64 位元模式來執行。
-- 01_OracleClient_檢視執行的資料流程工作
執行時間是:19:53.078,也就是:19 分 53.078 秒,約 1,193.078 秒。
-- 02_OracleClient_檢視執行的進度與時間
(2) 使用 原生 OLE DB 資料提供者:Microsoft OLE DB Provider for Oracle 為資料目的地
此資料連接提供者是 SSIS 內建。
但是沒有提供 64 位元版本的資料供者。
-- 03_Microsoft_檢視執行的資料流程工作
以下是使用 32 位元模式:
執行時間是:01:59:01.094,也就是:1 小時 59 分 1.156 秒,約 7,141.156 秒。
-- 04_Microsoft_檢視執行的進度與時間
使用此資料提供者,還遭遇到無法偵測資料行字碼頁資訊的警告。
(3) 使用 Attunity 提供的「Oracle Destination」為資料目的地
此資料提供者是在安裝 Microsoft Connector Version 1.1 for Oracle by Attunity 後,由 Attunity 所提供的。
有支援 32 與 64 位元模式來執行。
執行時間是:00:56.844,也就是:56.844 秒,不到一分鐘。
彙整使用各類資料提供者的執行效能之數據
-- 07_資料提供者的數據彙整
MSORA:Microsoft Connector for Oracle by Attunity
-- 08_資料提供者_執行時間
在上圖 8 中,執行時間是越短越好。
-- 09_資料提供者_每秒可處理筆數
在上圖 9 中,每秒可處理的筆數是越多越好。
使用的環境:
1. 軟體資訊:
(1) Oracle 11g R2 x64 版本。
(2) SQL Server 2008 R2 x64 版本。並且已經安裝了 Oracle Database 11g Release 2 Client (11.2.0.1.0) 。
2. 資料來源的文字檔案:
檔案名稱:tb01.txt。
檔案大小約:79 MB。
資料列筆數:1,150,016,約一百一十五萬筆。
參考資料
OLE DB Providers Tested with SQL Server
http://msdn.microsoft.com/en-us/library/ms187072.aspx
Data Access Technologies Road Map
http://msdn.microsoft.com/en-us/library/ms810810.aspx
System.Data.OracleClient Update
http://blogs.msdn.com/b/adonet/archive/2009/06/15/system-data-oracleclient-update.aspx
SSIS 效能測試:使用 Oracle 當做資料目的地,以 Attunity、Oracle Client 與 Microsoft 資料提供者為例 -- 圖文版本
http://sharedderrickref.blogspot.com/2012/02/ssis-oracle-attunityoracle-client.html
SSIS:使用 Microsoft、Oracle 資料提供者來與 Oracle 11g R2 連線 -- 圖文版本
http://sharedderrickref.blogspot.com/2012/02/ssis-microsoftoracle-oracle-11g-r2.html
SSIS:下載與安裝 Connector for Oracle by Attunity -- 圖文版本
http://sharedderrickref.blogspot.com/2012/02/ssis-connector-for-oracle-by-attunity.html
2012-02-05
SSIS:Excel 來源有資料,但匯入到資料庫後卻是 NULL;設定連線字串 IMEX 與 登錄機碼 TypeGuessRows
請先參考以下的文章:
Excel 有資料,但匯入到資料庫後卻是 NULL;設定登錄機碼 TypeGuessRows、連線字串 IMEX
http://sharedderrick.blogspot.com/2012/02/excel-null-typeguessrows-imex.html
以下提供 SSIS 在「資料來源」項目上的連線字串之設定:
-- 01_Jet.OLEDB.4.0 資料提供者_xls_使用IMEX
-- 02_ACE.OLEDB.12.0 資料提供者_xlsx_使用IMEX
可能作法:
若不考慮對於效能的影響,可以使用以下的方式來設定:
1. 修改 登錄機碼:TypeGuessRows 的值為 0。
2. 在連線字串上,加入設定參數:IMEX = 1。
讓 Excel 資料提供者掃描來源資料列的筆數,可達到:16384。
在使用「Excel 來源」項目時,預設一開始是沒有加入參數 IMEX 的。
在「Excel 來源」項目上,點選「預覽」,看到的資料會是 NULL。
若僅是使用「Excel 來源」項目,異動調整連線字串加參數 IMEX,BIDS 開發工具好像沒有偵測到此參數的異動。
或許,請先入一個「轉換」項目,例如:「複製資料行」 ,加入「資料檢視器」。
再去修改「Excel 來源」項目,加入參數 IMEX 後,BIDS 開發工具應該出現偵測中繼資料變更的視窗。
-- 03_加入IMEX_更新中繼資料
在「Excel 來源」項目上,點選「預覽」,應該可以檢視到資料,而非 NULL。
範例程式碼:
20120205_Excel_NULL_IMEX.7z
參考資料:
Excel 有資料,但匯入到資料庫後卻是 NULL;設定登錄機碼 TypeGuessRows、連線字串 IMEX
http://sharedderrick.blogspot.com/2012/02/excel-null-typeguessrows-imex.html
Excel 有資料,但匯入到資料庫後卻是 NULL;設定登錄機碼 TypeGuessRows、連線字串 IMEX
http://sharedderrick.blogspot.com/2012/02/excel-null-typeguessrows-imex.html
以下提供 SSIS 在「資料來源」項目上的連線字串之設定:
-- Microsoft.Jet.OLEDB.4.0 資料提供者,Excel 2003,附檔名:xls。 Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\mySSIS\Ex23_NULL.xls;Extended Properties="EXCEL 8.0;HDR=YES;IMEX = 1"; -- Microsoft.ACE.OLEDB.12.0 資料提供者,Excel 2010,附檔名:xlsx。 Data Source=C:\mySSIS\Ex27_NULL.xlsx;Provider=Microsoft.ACE.OLEDB.12.0;Extended Properties="Excel 12.0 Xml;IMEX=1";
-- 01_Jet.OLEDB.4.0 資料提供者_xls_使用IMEX
-- 02_ACE.OLEDB.12.0 資料提供者_xlsx_使用IMEX
可能作法:
若不考慮對於效能的影響,可以使用以下的方式來設定:
1. 修改 登錄機碼:TypeGuessRows 的值為 0。
2. 在連線字串上,加入設定參數:IMEX = 1。
讓 Excel 資料提供者掃描來源資料列的筆數,可達到:16384。
在使用「Excel 來源」項目時,預設一開始是沒有加入參數 IMEX 的。
在「Excel 來源」項目上,點選「預覽」,看到的資料會是 NULL。
若僅是使用「Excel 來源」項目,異動調整連線字串加參數 IMEX,BIDS 開發工具好像沒有偵測到此參數的異動。
或許,請先入一個「轉換」項目,例如:「複製資料行」 ,加入「資料檢視器」。
再去修改「Excel 來源」項目,加入參數 IMEX 後,BIDS 開發工具應該出現偵測中繼資料變更的視窗。
-- 03_加入IMEX_更新中繼資料
在「Excel 來源」項目上,點選「預覽」,應該可以檢視到資料,而非 NULL。
範例程式碼:
20120205_Excel_NULL_IMEX.7z
參考資料:
Excel 有資料,但匯入到資料庫後卻是 NULL;設定登錄機碼 TypeGuessRows、連線字串 IMEX
http://sharedderrick.blogspot.com/2012/02/excel-null-typeguessrows-imex.html
2012-01-11
新手學SSIS 2008樞紐轉換與取消樞紐轉換
在 SQL Server 2005 Transact-SQL陳述式上,提供了「PIVOT 關係運算子」與「UNPIVOT 關係運算子」。可以用來將資料表值運算式變更為另一個資料表。
其中,PIVOT 會將運算式內一個資料行中的唯一值轉成輸出中的多個資料行,以旋轉資料表值運算式,然後依據最終輸出的需要,對其餘的任何資料行值執行必要的彙總。而UNPIVOT 執行的作業則與 PIVOT 相反,它會將資料表值運算式旋轉為資料行值。
在SSIS 2005上的「資料轉換工作」內,提供了「樞紐轉換(Pivot transformation)」與「取消樞紐轉換(Unpivot transformation)」來達成所需要的功能。
請參考以下的網址:
新手學SSIS 2008樞紐轉換與取消樞紐轉換
參考資料:
樞紐轉換
http://msdn.microsoft.com/zh-tw/library/ms140308.aspx
轉換自訂屬性
http://msdn.microsoft.com/zh-tw/library/ms136014.aspx
取消樞紐轉換
http://msdn.microsoft.com/zh-tw/library/ms141723.aspx
取消樞紐轉換編輯器
http://msdn.microsoft.com/zh-tw/library/ms186498.aspx
影片:SSIS:認識_樞紐轉換(Pivot transformation)
http://sharedderrick.blogspot.com/2011/12/ssispivot-transformation.html
影片:SSIS:認識_取消樞紐轉換(Unpivot transformation)
http://sharedderrick.blogspot.com/2011/12/ssisunpivot-transformation.html
其中,PIVOT 會將運算式內一個資料行中的唯一值轉成輸出中的多個資料行,以旋轉資料表值運算式,然後依據最終輸出的需要,對其餘的任何資料行值執行必要的彙總。而UNPIVOT 執行的作業則與 PIVOT 相反,它會將資料表值運算式旋轉為資料行值。
在SSIS 2005上的「資料轉換工作」內,提供了「樞紐轉換(Pivot transformation)」與「取消樞紐轉換(Unpivot transformation)」來達成所需要的功能。
請參考以下的網址:
新手學SSIS 2008樞紐轉換與取消樞紐轉換
參考資料:
樞紐轉換
http://msdn.microsoft.com/zh-tw/library/ms140308.aspx
轉換自訂屬性
http://msdn.microsoft.com/zh-tw/library/ms136014.aspx
取消樞紐轉換
http://msdn.microsoft.com/zh-tw/library/ms141723.aspx
取消樞紐轉換編輯器
http://msdn.microsoft.com/zh-tw/library/ms186498.aspx
影片:SSIS:認識_樞紐轉換(Pivot transformation)
http://sharedderrick.blogspot.com/2011/12/ssispivot-transformation.html
影片:SSIS:認識_取消樞紐轉換(Unpivot transformation)
http://sharedderrick.blogspot.com/2011/12/ssisunpivot-transformation.html
2011-12-21
影片:SSIS:認識_取消樞紐轉換(Unpivot transformation)
使用環境:
SQL Server 2008 R2
主題:
認識:取消樞紐轉換(Unpivot transformation)
影片資訊:
原始錄影檔案的解析度: 1024 * 768
目前 YouTube 的解析度: 960 * 720
不包含聲音。
建議:
使用 720p HD + 全螢幕 的方式來觀看。
認識_取消樞紐轉換(Unpivot transformation)
http://youtu.be/ztEltHvxa5A?hd=1
參考資料
樞紐轉換
http://msdn.microsoft.com/zh-tw/library/ms140308.aspx
轉換自訂屬性
http://msdn.microsoft.com/zh-tw/library/ms136014.aspx
取消樞紐轉換
http://msdn.microsoft.com/zh-tw/library/ms141723.aspx
取消樞紐轉換編輯器
http://msdn.microsoft.com/zh-tw/library/ms186498.aspx
影片:SSIS:認識_樞紐轉換(Pivot transformation)
http://sharedderrick.blogspot.com/2011/12/ssispivot-transformation.html
SSIS:認識:樞紐轉換(Pivot transformation) -- 實作練習_版本
http://sharedderrickref.blogspot.com/2011/12/ssispivot-transformation.html
SSIS:認識:取消樞紐轉換(Unpivot transformation) -- 實作練習_版本
http://sharedderrickref.blogspot.com/2011/12/ssisunpivot-transformation.html
SQL Server 2008 R2
主題:
認識:取消樞紐轉換(Unpivot transformation)
影片資訊:
原始錄影檔案的解析度: 1024 * 768
目前 YouTube 的解析度: 960 * 720
不包含聲音。
建議:
使用 720p HD + 全螢幕 的方式來觀看。
認識_取消樞紐轉換(Unpivot transformation)
http://youtu.be/ztEltHvxa5A?hd=1
參考資料
樞紐轉換
http://msdn.microsoft.com/zh-tw/library/ms140308.aspx
轉換自訂屬性
http://msdn.microsoft.com/zh-tw/library/ms136014.aspx
取消樞紐轉換
http://msdn.microsoft.com/zh-tw/library/ms141723.aspx
取消樞紐轉換編輯器
http://msdn.microsoft.com/zh-tw/library/ms186498.aspx
影片:SSIS:認識_樞紐轉換(Pivot transformation)
http://sharedderrick.blogspot.com/2011/12/ssispivot-transformation.html
SSIS:認識:樞紐轉換(Pivot transformation) -- 實作練習_版本
http://sharedderrickref.blogspot.com/2011/12/ssispivot-transformation.html
SSIS:認識:取消樞紐轉換(Unpivot transformation) -- 實作練習_版本
http://sharedderrickref.blogspot.com/2011/12/ssisunpivot-transformation.html
2011-12-20
影片:SSIS:認識_樞紐轉換(Pivot transformation)
使用環境:
SQL Server 2008 R2
主題:
認識:樞紐轉換(Pivot transformation)
影片資訊:
原始錄影檔案的解析度: 1024 * 768
目前 YouTube 的解析度: 960 * 720
不包含聲音。
建議:
使用 720p HD + 全螢幕 的方式來觀看。
認識_樞紐轉換(Pivot transformation)
http://youtu.be/Fx7ZsquyGvc?hd=1
參考資料
樞紐轉換
http://msdn.microsoft.com/zh-tw/library/ms140308.aspx
轉換自訂屬性
http://msdn.microsoft.com/zh-tw/library/ms136014.aspx
取消樞紐轉換
http://msdn.microsoft.com/zh-tw/library/ms141723.aspx
取消樞紐轉換編輯器
http://msdn.microsoft.com/zh-tw/library/ms186498.aspx
SSIS:認識:樞紐轉換(Pivot transformation) -- 實作練習_版本
http://sharedderrickref.blogspot.com/2011/12/ssispivot-transformation.html
SQL Server 2008 R2
主題:
認識:樞紐轉換(Pivot transformation)
影片資訊:
原始錄影檔案的解析度: 1024 * 768
目前 YouTube 的解析度: 960 * 720
不包含聲音。
建議:
使用 720p HD + 全螢幕 的方式來觀看。
認識_樞紐轉換(Pivot transformation)
http://youtu.be/Fx7ZsquyGvc?hd=1
參考資料
樞紐轉換
http://msdn.microsoft.com/zh-tw/library/ms140308.aspx
轉換自訂屬性
http://msdn.microsoft.com/zh-tw/library/ms136014.aspx
取消樞紐轉換
http://msdn.microsoft.com/zh-tw/library/ms141723.aspx
取消樞紐轉換編輯器
http://msdn.microsoft.com/zh-tw/library/ms186498.aspx
SSIS:認識:樞紐轉換(Pivot transformation) -- 實作練習_版本
http://sharedderrickref.blogspot.com/2011/12/ssispivot-transformation.html
SSIS:64 位元 Excel 2010 與 BIDS 開發工具
SSIS 2008、SSIS 2008 R2,使用的開發工具是:Visual Studio 2008,也就是 SQL Server Business Intelligence Development Studio(BIDS)。
但目前 Visual Studio 2008 僅有 32 位元版本,因此,BIDS 也是 32 位元版本,這表示也僅能使用 32 位元版本的 OLE DB 驅動程式。
雖然在 Excel 2010 版本上,提供了 32 位元與 64 位元版本的 OLE DB 驅動程式。
Excel 2007、Excel 2010 不是使用 Microsoft Jet 4.0 驅動程式,而是使用 Access Database Engine (ACE) OLE DB 驅動程式。
但在使用 Visual Studio 2008 開發封裝上,是無法直接使用 64 位元版本的 OLE DB 驅動程式。
可能的作法:
(一) 在 SSIS 伺服器
在 SSIS 伺服器上安裝 64 位元版本的 Access Database Engine 2010 (ACE) OLE DB 驅動程式。
(二) 在開發人員環境
(1) 若是安裝 32 位元版本的 Access Database Engine (ACE)
這會是平順地開發 SSIS 封裝的作法。
雖然是在 32 位元環境上開發,但若是 BIDS 上執行此 SSIS 封裝,預設會使用 64 位元環境來執行封裝,請設定屬性:Run64BitRuntime 為 False。
-- 01_調整為 32 模式來執行封裝
若是將封裝部署到 SSIS 伺服器上,是無需調整,可以使用 64 位元模式來執行此封裝。
在 BIDS 上執行此 SSIS 封裝,預設會使用 64 位元環境來執行,請設定屬性:Run64BitRuntime 為 False。
--
若仍是使用預設的 64 位模式來執行,將遭遇到以下的錯誤訊息:
-- 06_未安裝 64 位元驅動程式,卻使用 64 模式來執行
(2) 若是安裝 64 位元版本的 Access Database Engine (ACE)
由於 Visual Studio 2008 不支援 64 位元,但是可以採用變通的開發封裝之作法:
1. 使用「匯入和匯出資料 (64 位元)」來建立此封裝的雛形。
2. 再使用 BIDS 開啟與設計此封裝,應該仍是可以正常運作,但有以下的注意事項。
-- 02_使用「匯入和匯出資料 (64 位元)」
若使用 BISD 開啟此封裝,編輯使用 Access Database Engine 2010 OLE DB 驅動程式的資料來源,將遭遇到以下的錯誤訊息:
-- 03_編輯使用 Access Database Engine 2010 OLE DB 驅動程式的資料來源,所遇到的錯誤訊息
-- 04_進階資訊
-- 05_點選「預覽」的錯誤
--
若是在安裝 64 位元版本的 Access Database Engine 2010 (ACE) OLE DB 驅動程式的環境,使用 BIDS 執行此封裝,卻刻意調整屬性:Run64BitRuntime 為 False。
將遭遇到以下的錯誤訊息:
-- 07_已安裝64位元驅動程式,卻刻意用32位元模式來執行
觀念說明
雖然 Visual Studio 2008 僅有 32 位元版本。
但在使用 BIDS 來執行 SSIS 封裝時,所使用的程式是:
(1) DtsDebugHost.exe
此為 64 位元版本。
(2) DtsDebugHost.exe * 32
此為 32 位元版本。
-- 08_使用32位元模式,「Windows 工作管理員」
-- 09_使用64位元模式,「Windows 工作管理員」
依據預設值:
若作業系統上已經先安裝了 32 位元版本的 「Microsoft Access Database Engine 2010 可轉散發套件」,是無法額外安裝 64 位元版本的「Microsoft Access Database Engine 2010 可轉散發套件」。
同樣的,若是先安裝了 64 位元版本後,也無法再將安裝 32 位元版本。
但之前曾經嘗試過以下的作法:
1. 先安裝 32 位元版本 Office 2007。
2. 移除 32 位元版本 Office 2007。
3. 再安裝 64 位元版本 Office 2010。
或是
1. 先安裝 32 位元版本的Microsoft Access Database Engine 2007 可轉散發套件。
2. 再安裝 64 位元版本的Microsoft Access Database Engine 2010 可轉散發套件。
或許,就可以讓 32 位元與 64 位元的 「Microsoft Access Database Engine 2010 可轉散發套件」並存在同一套作業系統上。
參考資料:
檢查是否已經安裝 「Microsoft Access Database Engine 2010 可轉散發套件」驅動程式;Microsoft Access Database Engine 2010 Redistributable
http://sharedderrick.blogspot.com/2011/08/microsoft-access-database-engine-2010.html
SSIS:使用 Excel 2010 (例如:附檔名為 xlsx)為來源或是目的地
http://sharedderrick.blogspot.com/2011/10/ssis-excel-2010-xlsx.html
Microsoft Access Database Engine 2010 可轉散發套件
http://www.microsoft.com/downloads/details.aspx?FamilyID=C06B8369-60DD-4B64-A44B-84B371EDE16D&displayLang=zh-tw
Service Pack 1 for Microsoft Access Database Engine 2010 (KB2460011) 32-bit Edition - 中文(繁體)
http://www.microsoft.com/downloads/zh-tw/details.aspx?FamilyID=b663a458-2fe9-4d45-9c2d-992298fe4434
但目前 Visual Studio 2008 僅有 32 位元版本,因此,BIDS 也是 32 位元版本,這表示也僅能使用 32 位元版本的 OLE DB 驅動程式。
雖然在 Excel 2010 版本上,提供了 32 位元與 64 位元版本的 OLE DB 驅動程式。
Excel 2007、Excel 2010 不是使用 Microsoft Jet 4.0 驅動程式,而是使用 Access Database Engine (ACE) OLE DB 驅動程式。
但在使用 Visual Studio 2008 開發封裝上,是無法直接使用 64 位元版本的 OLE DB 驅動程式。
可能的作法:
(一) 在 SSIS 伺服器
在 SSIS 伺服器上安裝 64 位元版本的 Access Database Engine 2010 (ACE) OLE DB 驅動程式。
(二) 在開發人員環境
(1) 若是安裝 32 位元版本的 Access Database Engine (ACE)
這會是平順地開發 SSIS 封裝的作法。
雖然是在 32 位元環境上開發,但若是 BIDS 上執行此 SSIS 封裝,預設會使用 64 位元環境來執行封裝,請設定屬性:Run64BitRuntime 為 False。
-- 01_調整為 32 模式來執行封裝
若是將封裝部署到 SSIS 伺服器上,是無需調整,可以使用 64 位元模式來執行此封裝。
在 BIDS 上執行此 SSIS 封裝,預設會使用 64 位元環境來執行,請設定屬性:Run64BitRuntime 為 False。
--
若仍是使用預設的 64 位模式來執行,將遭遇到以下的錯誤訊息:
[myOrders_Excel_2010 [1]] 錯誤: SSIS 錯誤碼 DTS_E_CANNOTACQUIRECONNECTIONFROMCONNECTIONMANAGER。 對 "myOrders_Excel_2010" 連接管理員呼叫 AcquireConnection 方法失敗,錯誤碼為 0xC0209303。 在此之前可能已公佈過錯誤訊息,說明 AcquireConnection 方法呼叫為何失敗的詳細資訊。 [SSIS.Pipeline] 錯誤: 元件 "myOrders_Excel_2010" (1) 驗證失敗,傳回錯誤碼 0xC020801C。 [連接管理員 "myOrders_Excel_2010"] 錯誤: SSIS 錯誤碼 DTS_E_OLEDB_NOPROVIDER_64BIT_ERROR。 要求的 OLE DB 提供者 Microsoft.ACE.OLEDB.12.0 並未註冊 -- 可能是沒有 64 位元提供者可用。 錯誤碼: 0x00000000。 有 OLE DB 記錄可用。來源: "Microsoft OLE DB Service Components" Hresult: 0x80040154 描述: "類別未登錄"。
-- 06_未安裝 64 位元驅動程式,卻使用 64 模式來執行
(2) 若是安裝 64 位元版本的 Access Database Engine (ACE)
由於 Visual Studio 2008 不支援 64 位元,但是可以採用變通的開發封裝之作法:
1. 使用「匯入和匯出資料 (64 位元)」來建立此封裝的雛形。
2. 再使用 BIDS 開啟與設計此封裝,應該仍是可以正常運作,但有以下的注意事項。
-- 02_使用「匯入和匯出資料 (64 位元)」
若使用 BISD 開啟此封裝,編輯使用 Access Database Engine 2010 OLE DB 驅動程式的資料來源,將遭遇到以下的錯誤訊息:
錯誤位置 新的封裝 [連接管理員 "SourceConnectionOLEDB"]: SSIS 錯誤碼 DTS_E_OLEDB_NOPROVIDER_ERROR。 要求的 OLE DB 提供者 Microsoft.ACE.OLEDB.12.0 並未註冊。錯誤碼: 0x00000000。 有 OLE DB 記錄可用。 來源: "Microsoft OLE DB Service Components" Hresult: 0x80040154 描述: "類別未登錄"。 錯誤位置 資料流程工作 1 [來源 - Orders [1]]: SSIS 錯誤碼 DTS_E_CANNOTACQUIRECONNECTIONFROMCONNECTIONMANAGER。 對 "SourceConnectionOLEDB" 連接管理員呼叫 AcquireConnection 方法失敗,錯誤碼為 0xC0209302。 在此之前可能已公佈過錯誤訊息,說明 AcquireConnection 方法呼叫為何失敗的詳細資訊。 ------------------------------ 其他資訊: 發生例外狀況於 HRESULT: 0xC020801C (Microsoft.SqlServer.DTSPipelineWrap)
-- 03_編輯使用 Access Database Engine 2010 OLE DB 驅動程式的資料來源,所遇到的錯誤訊息
-- 04_進階資訊
-- 05_點選「預覽」的錯誤
--
若是在安裝 64 位元版本的 Access Database Engine 2010 (ACE) OLE DB 驅動程式的環境,使用 BIDS 執行此封裝,卻刻意調整屬性:Run64BitRuntime 為 False。
將遭遇到以下的錯誤訊息:
[來源 - Orders [1]] 錯誤: SSIS 錯誤碼 DTS_E_CANNOTACQUIRECONNECTIONFROMCONNECTIONMANAGER。 對 "SourceConnectionOLEDB" 連接管理員呼叫 AcquireConnection 方法失敗,錯誤碼為 0xC0209302。 在此之前可能已公佈過錯誤訊息,說明 AcquireConnection 方法呼叫為何失敗的詳細資訊。 [SSIS.Pipeline] 錯誤: 元件 "來源 - Orders" (1) 驗證失敗,傳回錯誤碼 0xC020801C。 [連接管理員 "SourceConnectionOLEDB"] 錯誤: SSIS 錯誤碼 DTS_E_OLEDB_NOPROVIDER_ERROR。 要求的 OLE DB 提供者 Microsoft.ACE.OLEDB.12.0 並未註冊。錯誤碼: 0x00000000。 有 OLE DB 記錄可用。 來源: "Microsoft OLE DB Service Components" Hresult: 0x80040154 描述: "類別未登錄"。
-- 07_已安裝64位元驅動程式,卻刻意用32位元模式來執行
觀念說明
雖然 Visual Studio 2008 僅有 32 位元版本。
但在使用 BIDS 來執行 SSIS 封裝時,所使用的程式是:
(1) DtsDebugHost.exe
此為 64 位元版本。
(2) DtsDebugHost.exe * 32
此為 32 位元版本。
-- 08_使用32位元模式,「Windows 工作管理員」
-- 09_使用64位元模式,「Windows 工作管理員」
依據預設值:
若作業系統上已經先安裝了 32 位元版本的 「Microsoft Access Database Engine 2010 可轉散發套件」,是無法額外安裝 64 位元版本的「Microsoft Access Database Engine 2010 可轉散發套件」。
同樣的,若是先安裝了 64 位元版本後,也無法再將安裝 32 位元版本。
但之前曾經嘗試過以下的作法:
1. 先安裝 32 位元版本 Office 2007。
2. 移除 32 位元版本 Office 2007。
3. 再安裝 64 位元版本 Office 2010。
或是
1. 先安裝 32 位元版本的Microsoft Access Database Engine 2007 可轉散發套件。
2. 再安裝 64 位元版本的Microsoft Access Database Engine 2010 可轉散發套件。
或許,就可以讓 32 位元與 64 位元的 「Microsoft Access Database Engine 2010 可轉散發套件」並存在同一套作業系統上。
參考資料:
檢查是否已經安裝 「Microsoft Access Database Engine 2010 可轉散發套件」驅動程式;Microsoft Access Database Engine 2010 Redistributable
http://sharedderrick.blogspot.com/2011/08/microsoft-access-database-engine-2010.html
SSIS:使用 Excel 2010 (例如:附檔名為 xlsx)為來源或是目的地
http://sharedderrick.blogspot.com/2011/10/ssis-excel-2010-xlsx.html
Microsoft Access Database Engine 2010 可轉散發套件
http://www.microsoft.com/downloads/details.aspx?FamilyID=C06B8369-60DD-4B64-A44B-84B371EDE16D&displayLang=zh-tw
Service Pack 1 for Microsoft Access Database Engine 2010 (KB2460011) 32-bit Edition - 中文(繁體)
http://www.microsoft.com/downloads/zh-tw/details.aspx?FamilyID=b663a458-2fe9-4d45-9c2d-992298fe4434
2011-12-11
SSIS:認識:合併聯結轉換(Merge Join Transformation)
示範環境:
SSIS 2008 R2。
實作練習:認識:合併聯結轉換(Merge Join Transformation)
工作1:使用資料流程工作,設定資料流程來源
步驟01. 在「封裝設計師」視窗,新增加一個「資料流程」工作。
步驟02. 點選「資料流程」頁面,在左邊的工具箱,由「資料流程來源」區域,拖曳所需的來源物件,設定與其連線的資訊連線。
在本範例中,使用兩個「OLE DB 來源」,分別連接到 Excel 2010 (*.xlsx) 與 Access 2010 (*.accdb) 為例:客戶_Excel 2010、訂單_Access 2010。
-- 01_增加_資料來源
工作2:使用排序轉換
步驟01. 在左邊的工具箱,由「資料流程轉換」區域,選擇「排序」轉換拖曳到右邊的封裝設計師頁面上。
步驟02. 點選資料來源:客戶_Excel 2010,將其綠色線路的「資料流程路徑」,拖曳到「排序」轉換。
步驟03. 滑鼠雙擊此「排序」轉換,在「排序轉換編輯器」視窗,勾選要作為排序用的資料行,例如:客戶編號,點選「確定」。
步驟04. 在左邊的工具箱,由「資料流程轉換」區域,選擇「排序」轉換拖曳到右邊的封裝設計師頁面上。
步驟05. 點選資料來源:訂單_Access 2010,將其綠色線路的「資料流程路徑」,拖曳到「排序」轉換。
步驟06. 滑鼠雙擊此「排序」轉換,在「排序轉換編輯器」視窗,勾選要作為排序用的資料行,例如:CustomerID,點選「確定」。
-- 02_設定好排序轉換
工作3:使用合併聯結轉換
步驟01. 在左邊的工具箱,由「資料流程轉換」區域,選擇「合併聯結」轉換,拖曳到右邊的封裝設計師頁面上。
步驟02. 點選資料轉換:排序_客戶編號的綠色線路之「資料流程路徑」,拖曳到「合併聯結」轉換。
步驟03. 在「輸入輸出選擇」視窗,在下方的「輸入」區域,下拉選擇:「合併聯結左方輸入」,點選「確定」。
-- 03_設定_「合併聯結」轉換_輸入輸出選擇
步驟04. 點選資料轉換:排序_CustomerID 的綠色線路之「資料流程路徑」,拖曳到「合併聯結」轉換。
步驟05. 滑鼠雙擊此「合併聯結」轉換,在「合併聯結轉換編輯器」視窗,勾選所需抓取的資料行,點選「確定」。
將左輸入中的資料行拖曳至右輸入中的資料行,以指定聯結資料行。
如果這些資料行的名稱相同,則可以選取「聯結索引鍵」核取方塊,「合併聯結」轉換會自動建立聯結。
附註
您可以只在排序位置相同的資料行之間建立聯結,而這些聯結必須以排序位置指定的順序建立。
如果您嘗試不按順序建立聯結,則 [合併聯結轉換編輯器] 會提示您為略過的排序次序位置建立其他聯結。
附註
依預設,輸出會在聯結資料行上進行排序。
例如:
在「聯結類型」,設定選取:內部聯結。
在「排序_客戶編號」,勾選:客戶編號、公司名稱、連絡人、電話。
在「排序_CustomerID 」,勾選:OrderID、OrderDate。
-- 04_準備設定_「合併聯結轉換編輯器」
-- 05_設定_「合併聯結轉換編輯器」
-- 06_設定好_合併聯結
工作4. 使用資料流程目的地
步驟01. 在左邊的工具箱,由「資料流程目的地」區域,選擇「一般檔案目的地」物件,拖曳到右邊的封裝設計師頁面上。
步驟02. 點選資料轉換:合併聯結_內部的綠色線路之「資料流程路徑」,拖曳到「一般檔案目的地」物件。
步驟03. 滑鼠雙擊此「一般檔案目的地」物件,設定相關的連線資料。
-- 07_設定好_一般目的地
工作5. 執行封裝
-- 08_執行封裝
-- 09_自動移除未使用的輸出資料行
-- 10_檢視_合併聯結後的成果
認識「合併聯結轉換(Merge Join Transformation)」
合併聯結轉換提供藉由使用 FULL、LEFT 或 INNER 聯結,來聯結兩個已排序資料集所產生的輸出。
您可以利用下列方式設定「合併聯結」轉換:
(A) 指定聯結為 FULL、LEFT 或 INNER 聯結。
(B) 指定聯結使用的資料行。
(C) 指定轉換是否要將 Null 值當作相當於其他 Null 處理。
附註:
如果 Null 值未當成相等值,則轉換會以與 SQL Server Database Engine 相同的方式處理 Null 值。
這個轉換有兩個輸入與一個輸出。它不支援錯誤輸出。
--
輸入需求
合併聯結轉換針對其輸入需要已排序的資料
聯結需求
合併聯結轉換會要求聯結的資料行擁有相符的中繼資料。例如,您無法聯結數值資料類型的資料行,與字元資料類型的資料行。
如果資料是字串資料類型,第二個輸入中的資料行長度就必須小於或等於與其合併之第一個輸入中的資料行長度。
--
以下整理了幾個錯誤設定:
(1) 若是刻意加入第三條資料來源
將遭遇以下的錯誤訊息:
-- 11_第三個資料來源_輸入
(2) 若是資料來源沒有排序
將遭遇以下的錯誤訊息:
-- 12_輸入未排序_錯誤
-- 13_輸入未排序_錯誤
(3) 若使用非聯結用的資料行來做排序
例如:
一個是:OrderID,一個是:客戶編號,兩者資料類型也不同。
-- 14_使用不同的資料行_排序
-- 15_轉換的兩個輸入至少必須包含一個排序資料行,且資料行必須有相符的中繼資料
參考資料:
合併聯結轉換
http://msdn.microsoft.com/zh-tw/library/ms141775.aspx
如何:排序合併和合併聯結轉換的資料
http://msdn.microsoft.com/zh-tw/library/ms137653.aspx
SSIS 2008 R2。
實作練習:認識:合併聯結轉換(Merge Join Transformation)
工作1:使用資料流程工作,設定資料流程來源
步驟01. 在「封裝設計師」視窗,新增加一個「資料流程」工作。
步驟02. 點選「資料流程」頁面,在左邊的工具箱,由「資料流程來源」區域,拖曳所需的來源物件,設定與其連線的資訊連線。
在本範例中,使用兩個「OLE DB 來源」,分別連接到 Excel 2010 (*.xlsx) 與 Access 2010 (*.accdb) 為例:客戶_Excel 2010、訂單_Access 2010。
-- 01_增加_資料來源
工作2:使用排序轉換
步驟01. 在左邊的工具箱,由「資料流程轉換」區域,選擇「排序」轉換拖曳到右邊的封裝設計師頁面上。
步驟02. 點選資料來源:客戶_Excel 2010,將其綠色線路的「資料流程路徑」,拖曳到「排序」轉換。
步驟03. 滑鼠雙擊此「排序」轉換,在「排序轉換編輯器」視窗,勾選要作為排序用的資料行,例如:客戶編號,點選「確定」。
步驟04. 在左邊的工具箱,由「資料流程轉換」區域,選擇「排序」轉換拖曳到右邊的封裝設計師頁面上。
步驟05. 點選資料來源:訂單_Access 2010,將其綠色線路的「資料流程路徑」,拖曳到「排序」轉換。
步驟06. 滑鼠雙擊此「排序」轉換,在「排序轉換編輯器」視窗,勾選要作為排序用的資料行,例如:CustomerID,點選「確定」。
-- 02_設定好排序轉換
工作3:使用合併聯結轉換
步驟01. 在左邊的工具箱,由「資料流程轉換」區域,選擇「合併聯結」轉換,拖曳到右邊的封裝設計師頁面上。
步驟02. 點選資料轉換:排序_客戶編號的綠色線路之「資料流程路徑」,拖曳到「合併聯結」轉換。
步驟03. 在「輸入輸出選擇」視窗,在下方的「輸入」區域,下拉選擇:「合併聯結左方輸入」,點選「確定」。
-- 03_設定_「合併聯結」轉換_輸入輸出選擇
步驟04. 點選資料轉換:排序_CustomerID 的綠色線路之「資料流程路徑」,拖曳到「合併聯結」轉換。
步驟05. 滑鼠雙擊此「合併聯結」轉換,在「合併聯結轉換編輯器」視窗,勾選所需抓取的資料行,點選「確定」。
將左輸入中的資料行拖曳至右輸入中的資料行,以指定聯結資料行。
如果這些資料行的名稱相同,則可以選取「聯結索引鍵」核取方塊,「合併聯結」轉換會自動建立聯結。
附註
您可以只在排序位置相同的資料行之間建立聯結,而這些聯結必須以排序位置指定的順序建立。
如果您嘗試不按順序建立聯結,則 [合併聯結轉換編輯器] 會提示您為略過的排序次序位置建立其他聯結。
附註
依預設,輸出會在聯結資料行上進行排序。
例如:
在「聯結類型」,設定選取:內部聯結。
在「排序_客戶編號」,勾選:客戶編號、公司名稱、連絡人、電話。
在「排序_CustomerID 」,勾選:OrderID、OrderDate。
-- 04_準備設定_「合併聯結轉換編輯器」
-- 05_設定_「合併聯結轉換編輯器」
-- 06_設定好_合併聯結
工作4. 使用資料流程目的地
步驟01. 在左邊的工具箱,由「資料流程目的地」區域,選擇「一般檔案目的地」物件,拖曳到右邊的封裝設計師頁面上。
步驟02. 點選資料轉換:合併聯結_內部的綠色線路之「資料流程路徑」,拖曳到「一般檔案目的地」物件。
步驟03. 滑鼠雙擊此「一般檔案目的地」物件,設定相關的連線資料。
-- 07_設定好_一般目的地
工作5. 執行封裝
-- 08_執行封裝
-- 09_自動移除未使用的輸出資料行
-- 10_檢視_合併聯結後的成果
認識「合併聯結轉換(Merge Join Transformation)」
合併聯結轉換提供藉由使用 FULL、LEFT 或 INNER 聯結,來聯結兩個已排序資料集所產生的輸出。
您可以利用下列方式設定「合併聯結」轉換:
(A) 指定聯結為 FULL、LEFT 或 INNER 聯結。
(B) 指定聯結使用的資料行。
(C) 指定轉換是否要將 Null 值當作相當於其他 Null 處理。
附註:
如果 Null 值未當成相等值,則轉換會以與 SQL Server Database Engine 相同的方式處理 Null 值。
這個轉換有兩個輸入與一個輸出。它不支援錯誤輸出。
--
輸入需求
合併聯結轉換針對其輸入需要已排序的資料
聯結需求
合併聯結轉換會要求聯結的資料行擁有相符的中繼資料。例如,您無法聯結數值資料類型的資料行,與字元資料類型的資料行。
如果資料是字串資料類型,第二個輸入中的資料行長度就必須小於或等於與其合併之第一個輸入中的資料行長度。
--
以下整理了幾個錯誤設定:
(1) 若是刻意加入第三條資料來源
將遭遇以下的錯誤訊息:
無法建立連接子。 目的地元件沒有任何可用的輸入可用來建立路徑。
-- 11_第三個資料來源_輸入
(2) 若是資料來源沒有排序
將遭遇以下的錯誤訊息:
錯誤 1 驗證錯誤。資料流程工作: 資料流程工作: 輸入未排序。必須排序 "輸入 "合併聯結左方輸入" (130)" 錯誤 2 驗證錯誤。資料流程工作 合併聯結 [129]: 輸入未排序。必須排序 "輸入 "合併聯結左方輸入" (130)"。
-- 12_輸入未排序_錯誤
-- 13_輸入未排序_錯誤
(3) 若使用非聯結用的資料行來做排序
例如:
一個是:OrderID,一個是:客戶編號,兩者資料類型也不同。
無法開啟: 轉換的兩個輸入至少必須包含一個排序資料行,且資料行必須有相符的中繼資料。
-- 14_使用不同的資料行_排序
-- 15_轉換的兩個輸入至少必須包含一個排序資料行,且資料行必須有相符的中繼資料
參考資料:
合併聯結轉換
http://msdn.microsoft.com/zh-tw/library/ms141775.aspx
如何:排序合併和合併聯結轉換的資料
http://msdn.microsoft.com/zh-tw/library/ms137653.aspx
訂閱:
文章 (Atom)
























































