海量資料遷移之資料抽取流程
在之前的一些博文中花了大篇幅介紹了採用外部表抽取的一些細節,可能細節到了,基本原理的內容還希望再補充補充。
採用外部表抽取資料的流程圖如下:
大體標註了一下抽取的基本結構,我們會盡量保證不去碰原本的資料來源,會建立兩個臨時的使用者,一個是隻讀使用者,這個使用者上只有同義詞,只具有資料來源中的select許可權。這就對應上面紅色標註的1,而另外一個使用者是外部表使用者,所有透過建立外部表都會在這個使用者下進行,生成了dump檔案之後,我們可以隨時刪除外部表,這個時候為了保證相關的drop操作不會牽扯到資料來源,外部表使用者會繼承只讀使用者中的select許可權。這就對應紅色標註的2.
當開始抽取資料的時候,會去查詢是否有許可權讀取資料,會找到只讀使用者,最終能夠讀取資料來源的資料,這就對應紅色標註的3,4
當滿足了基本的條件,就開始生成外部表的dump,可以為一個表生成多個dump,而且這個過程是並行的,這就對應紅色標註的5
對於步驟5,是抽取的關鍵,基本的原理可以參考下面的虛擬碼,黃色標註的重點部分。
採用外部表抽取資料的流程圖如下:
大體標註了一下抽取的基本結構,我們會盡量保證不去碰原本的資料來源,會建立兩個臨時的使用者,一個是隻讀使用者,這個使用者上只有同義詞,只具有資料來源中的select許可權。這就對應上面紅色標註的1,而另外一個使用者是外部表使用者,所有透過建立外部表都會在這個使用者下進行,生成了dump檔案之後,我們可以隨時刪除外部表,這個時候為了保證相關的drop操作不會牽扯到資料來源,外部表使用者會繼承只讀使用者中的select許可權。這就對應紅色標註的2.
當開始抽取資料的時候,會去查詢是否有許可權讀取資料,會找到只讀使用者,最終能夠讀取資料來源的資料,這就對應紅色標註的3,4
當滿足了基本的條件,就開始生成外部表的dump,可以為一個表生成多個dump,而且這個過程是並行的,這就對應紅色標註的5
對於步驟5,是抽取的關鍵,基本的原理可以參考下面的虛擬碼,黃色標註的重點部分。
CREATE TABLE MO1_MEMO_EXT
ORGANIZATION EXTERNAL
(
TYPE ORACLE_DATAPUMP
DEFAULT DIRECTORY xxxxx
LOCATION (
‘xxxx1.dmp’,‘xxxx2.dmp’)
)
parallel xx as
SELECT /*+ parallel(t xx) */
*
FROM 只讀使用者.MO1_MEMO;
我們使用了外部表的oracle_datapump引擎,可以在指定的目錄下生成多個dump檔案,我們可以指定並行度,指定多個dump的名稱等等。這些都需要透過程式設計來控制和管理這些複雜的部分。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/23718752/viewspace-1457835/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 海量資料遷移之資料載入流程
- 海量資料遷移之分割槽並行抽取並行
- 海量資料遷移之外部表並行抽取並行
- 海量資料遷移之衝突資料篩查
- 海量資料遷移之透過shell估算資料量
- 海量資料遷移之通過shell估算資料量
- 海量資料處理_資料泵分批資料遷移
- Oracle資料庫資料遷移流程Oracle資料庫
- 海量資料遷移之傳輸表空間(一)
- 海量資料遷移之外部表切分
- 使用impdp,expdp資料泵進入海量資料遷移
- 海量資料遷移之sqlldr和datapump的缺點分析SQL
- 海量資料遷移之誤操作和防範建議
- 海量資料遷移之透過rowid切分大表
- 海量資料遷移之通過rowid切分大表
- 海量資料處理_使用外部表進行資料遷移
- 海量資料遷移之外部表載入
- 海量資料遷移之使用分割槽並行切分匯入並行
- 使用資料泵(expdp、impdp)遷移資料庫流程資料庫
- 海量資料遷移之分割槽並行切分並行
- 【實驗】【外部表】以資料泵檔案格式抽取and遷移資料演示
- 資料庫遷移之資料泵實驗資料庫
- 海量資料遷移之使用shell啟用多個動態並行並行
- 遷移資料.
- 海量資料轉換遷移的程式碼自動生成
- 從雲資料遷移服務看MySQL大表抽取模式MySql模式
- 【資料遷移】使用傳輸表空間遷移資料
- Kafka資料遷移Kafka
- 資料庫遷移資料庫
- redis資料遷移Redis
- 轉資料遷移
- ORACLE 資料遷移Oracle
- DXWB 資料遷移
- 資料的遷移
- Harbor資料遷移
- Laravel 學習之資料庫遷移Laravel資料庫
- ORM實操之資料庫遷移ORM資料庫
- 【遷移】使用rman遷移資料庫資料庫