將資料從現場部署資料倉儲遷移到 Amazon Redshift - AWS Schema Conversion Tool

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

將資料從現場部署資料倉儲遷移到 Amazon Redshift

您可以使用 AWS SCT 代理程式從現場部署資料倉儲擷取資料,並將其遷移到 Amazon Redshift。代理程式會擷取您的資料,並將資料上傳到 Amazon S3,或將大規模移轉上傳至 AWS Snowball Edge 裝置。然後,您可以使用 AWS SCT 代理程式將資料複製到 Amazon Redshift。

或者,您也可以使用 AWS Database Migration Service (AWS DMS) 將資料遷移到 Amazon Redshift。其優點 AWS DMS 是支援持續複寫 (變更資料擷取)。不過,若要提高資料移轉的速度,請 parallel 時使用多個 AWS SCT 代理程式。根據我們的測試, AWS SCT 代理程式遷移資料的速度比 AWS DMS 15—35% 的速度快。速度的差異在於資料壓縮、支援 parallel 移轉表格分割區,以及不同的組態設定。如需詳細資訊,請參閱使用 Amazon Redshift 資料庫做為 AWS Database Migration Service的目標

Amazon S3 是一種儲存和擷取服務。若要將物件存放在 Amazon S3 中,請上傳您要存放至 Amazon S3 儲存貯體的檔案。當您上傳檔案時,您可以設定物件及任何中繼資料的許可。

大規模移轉

大規模的資料移轉可以包含許多 TB 的資訊,而且可能會因為網路效能和必須移動的大量資料而減慢速度。 AWS Snowball Edge 是一項 AWS 服務,您可以使用 AWS自有的設備 faster-than-network 快速將資料傳輸到雲端。 AWS Snowball 邊緣裝置最多可容納 100 TB 的資料。它使用 256 位加密和業界標準的可信賴平台模塊(TPM)來確保數據的安全性和完整 chain-of-custody 性。 AWS SCT 適用於 AWS Snowball 邊緣設備。

使用 AWS SCT 和 AWS Snowball Edge 裝置時,您會分兩個階段移轉資料。首先,您可 AWS SCT 以使用本機處理資料,然後將該資料移至 AWS Snowball Edge 裝置。然後,您可以 AWS 使用 AWS Snowball Edge 程序將裝置傳送到,然後 AWS 自動將資料載入 Amazon S3 儲存貯體。接下來,當資料在 Amazon S3 上可用時,您可 AWS SCT 以使用將資料遷移到 Amazon Redshift。資料擷取代理程式可以在關閉時 AWS SCT 在背景運作。

下圖顯示所支援的案例。

擷取代理程式架構

目前支援資料擷取代理程式的來源資料倉儲如下:

  • 突觸分析

  • BigQuery

  • 綠梅資料庫 (版本 4.3)

  • Microsoft SQL 伺服器 (2008 年及更高版本)

  • 尼泰扎(版本 7.0.3 及更高版本)

  • 甲骨文(版本 10 及更高版本)

  • 雪花 (版本 3)

  • 太數據(版本 13 及更高版本)

  • 韋爾蒂卡(版本 7.2.2 及更高版本)

如果您需要遵守聯邦資訊處理標準 (FIPS) 安全要求,可以連線到適用於 Amazon Redshift 的 FIPS 端點。FIPS 端點可在下列 AWS 區域中使用:

  • 美國東部 (維吉尼亞北部) 區域 (維吉尼亞北部)

  • 美國東部 (俄亥俄州) 區域 (中國東部)

  • 美國西部 (加利福尼亞北部) 區域 (紅移-五月-西-1.amazonaws.com)

  • 美國西部 (奧勒岡) 區域 (西部-亞馬遜)

使用下列主題中的資訊,以了解如何使用資料擷取代理程式。

使用資料擷取代理程式的前提

在您使用資料擷取代理程式之前,請將 Amazon Redshift 所需的許可作為目標新增至您的 Amazon Redshift 使用者。如需詳細資訊,請參閱 亞馬遜紅移作為目標的許可

然後,存放您的 Amazon S3 儲存貯體資訊,並設定安全通訊端層 (SSL) 信任和金鑰存放區。

Amazon S3 設置

代理程式擷取資料後,他們會將資料上傳到您的 Amazon S3 儲存貯體。在繼續之前,您必須提供登入資料以連接到您的 AWS 帳戶和 Amazon S3 儲存貯體。您可以將認證和值區資訊儲存在全域應用程式設定中的設定檔中,然後將設定檔與 AWS SCT 專案建立關聯。如有必要,請選擇「全域設定」 來建立新的設定檔。如需詳細資訊,請參閱 將AWS服務設定檔儲存在AWS SCT

若要將資料遷移到目標 Amazon Redshift 資料庫, AWS SCT 資料擷取代理程式需要您存取 Amazon S3 儲存貯體的權限。若要提供此權限,請使用下列政策建立 AWS Identity and Access Management (IAM) 使用者。

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "s3:PutObject", "s3:DeleteObject", "s3:GetObject", "s3:GetObjectTagging", "s3:PutObjectTagging" ], "Resource": [ "arn:aws:s3:::bucket_name/*", "arn:aws:s3:::bucket_name" ], "Effect": "Allow" }, { "Action": [ "s3:ListBucket", "s3:GetBucketLocation" ], "Resource": [ "arn:aws:s3:::bucket_name" ], "Effect": "Allow" }, { "Effect": "Allow", "Action": "s3:ListAllMyBuckets", "Resource": "*" }, { "Action": [ "iam:GetUser" ], "Resource": [ "arn:aws:iam::111122223333:user/DataExtractionAgentName" ], "Effect": "Allow" } ] }

在上述範例中,請bucket_name以 Amazon S3 儲存貯體的名稱取代。然後,111122223333:user/DataExtractionAgentName以 IAM 使用者的名稱取代。

假設 IAM 角色

為了獲得額外的安全性,您可以使用 AWS Identity and Access Management (IAM) 角色存取 Amazon S3 儲存貯體。若要這麼做,請在沒有任何許可的情況下為資料擷取代理程式建立 IAM 使用者。然後,建立啟用 Amazon S3 存取的 IAM 角色,並指定可擔任此角色的服務和使用者清單。如需詳細資訊,請參閱《IAM 使用者指南》中的 IAM 角色

設定 IAM 角色以存取您的 Amazon S3 儲存貯體
  1. 建立新的 IAM 使用者。對於使用者認證,請選擇程式設計存取類型。

  2. 設定主機環境,以便您的資料擷取代理程式可以擔任 AWS SCT 提供的角色。請確定您在上一個步驟中設定的使用者可讓資料擷取代理程式使用認證提供者鏈結。如需詳細資訊,請參閱AWS SDK for Java 開發人員指南中的使用認證

  3. 建立可存取 Amazon S3 儲存貯體的新 IAM 角色。

  4. 修改此角色的「信任」區段,以信任您之前建立的使用者,以擔任該角色。在下列範例中,請以您的使用者名稱取111122223333:user/DataExtractionAgentName代。

    { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:user/DataExtractionAgentName" }, "Action": "sts:AssumeRole" }
  5. 修改此角色的信任區段以信任redshift.amazonaws.com以擔任該角色。

    { "Effect": "Allow", "Principal": { "Service": [ "redshift.amazonaws.com" ] }, "Action": "sts:AssumeRole" }
  6. 將此角色附加到您的 Amazon Redshift 叢集。

現在,您可以在中執行資料擷取代理程式 AWS SCT。

假設使用 IAM 角色時,數據遷移按以下方式工作。資料擷取代理程式會啟動並使用認證提供者鏈結取得使用者認證。接下來,您可以在中建立資料移轉任務 AWS SCT,然後指定要承擔的資料擷取代理程式的 IAM 角色,然後啟動工作。 AWS Security Token Service (AWS STS) 產生臨時登入資料以存取 Amazon S3。資料擷取代理程式使用這些登入資料將資料上傳到 Amazon S3。

然後, AWS SCT 為 Amazon Redshift 提供 IAM 角色。反過來,Amazon Redshift 獲得新的臨時登入資料 AWS STS 以存取 Amazon S3。Amazon Redshift 使用這些登入資料將資料從 Amazon S3 複製到您的 Amazon Redshift 表。

安全性設定

AWS Schema Conversion Tool 和擷取代理程式可透過安全通訊端層 (SSL) 進行通訊。若要啟用 SSL,請設定信任存放區和金鑰存放區。

設定與擷取代理程式的安全通訊
  1. 啟動 AWS Schema Conversion Tool.

  2. 開啟 [設定] 功能表,然後選擇 [全域設定]Global settings (全域設定) 對話方塊隨即出現。

  3. 選擇 Security (安全性)

  4. 選擇 [產生信任和金鑰存放區],或選擇 [選取現有信任存放區]

    如果您選擇「產生信任與金鑰存放區」,請指定信任和金鑰存放區的名稱和密碼,以及產生檔案的位置路徑。您可以在稍後的步驟中使用這些檔案。

    如果您選擇 [選取現有的信任存放區],請指定信任和金鑰存放區的密碼和檔案名稱。您可以在稍後的步驟中使用這些檔案。

  5. 指定信任存放區和金鑰存放區之後,請選擇 [確定] 關閉 [全域設定] 對話方塊。

設定資料擷取代理程式的環境

您可以在單一主機上安裝多個資料擷取代理程式。但是,我們建議您在一台主機上執行一個資料擷取代理程式。

若要執行資料擷取代理程式,請確定您使用的主機至少具有四個 vCPUs 和 32 GB 記憶體。此外,請將可用的最小記憶體設定 AWS SCT 為至少四 GB。如需詳細資訊,請參閱 設定其他記憶體

最佳組態和代理程式主機數量取決於每個客戶的特定情況。請務必考慮移轉的資料量、網路頻寬、擷取資料的時間等因素。您可以先執行概念驗證 (PoC),然後根據此 PoC 的結果設定資料擷取代理程式和主機。

安裝擷取代理

建議您在個別的電腦上 (與執行 AWS Schema Conversion Tool的電腦分開),安裝多個擷取代理程式。

目前支援擷取代理程式的作業系統如下:

  • Microsoft Windows

  • Red Hat Enterprise Linux (RHEL) 6.0

  • 版本 14.04 及更高版本

請使用下列程序來安裝擷取代理程式。針對要安裝擷取代理程式的每部電腦,重複這個程序。

安裝擷取代理程式
  1. 如果您尚未下載 AWS SCT 安裝程式檔案,請按照中的指示安裝、驗證和更新 AWS SCT進行下載。包含 AWS SCT 安裝程式檔案的 .zip 檔案也包含解壓縮代理程式安裝程式檔案。

  2. 下載並安裝最新版本的 Amazon Corretto 11. 如需詳細資訊,請參閱 Amazon Corretto 11 使用者指南中的下載

  3. 在名為 agents (代理程式) 的子資料夾中,找出擷取代理程式的安裝程式檔案。針對各種電腦作業系統,用來安裝擷取代理程式的正確檔案如下所示。

    作業系統 檔案名稱

    Microsoft Windows

    aws-schema-conversion-tool-extractor-2.0.1.build-number.msi

    RHEL

    aws-schema-conversion-tool-extractor-2.0.1.build-number.x86_64.rpm

    Ubuntu Linux

    aws-schema-conversion-tool-extractor-2.0.1.build-number.deb

  4. 透過將安裝程式檔案複製到新電腦,在另一台電腦上安裝解壓縮代理程式。

  5. 執行安裝程式檔案。使用適用於您作業系統的指示,如下所示。

    作業系統 安裝說明

    Microsoft Windows

    按兩下檔案來執行安裝程式。

    RHEL

    在您下載或移動檔案的目標資料夾中執行下列命令。

    sudo rpm -ivh aws-schema-conversion-tool-extractor-2.0.1.build-number.x86_64.rpm sudo ./sct-extractor-setup.sh --config

    Ubuntu Linux

    在您下載或移動檔案的目標資料夾中執行下列命令。

    sudo dpkg -i aws-schema-conversion-tool-extractor-2.0.1.build-number.deb sudo ./sct-extractor-setup.sh --config
  6. 選擇 [下一步],接受授權合約,然後選擇 [下一步]。

  7. 輸入安裝 AWS SCT 資料擷取代理程式的路徑,然後選擇 [下一步]。

  8. 選擇 [安裝] 以安裝資料擷取代理程式。

    AWS SCT 安裝您的資料擷取代理程式。若要完成安裝,請設定您的資料擷取代理程式。 AWS SCT 會自動啟動組態設定程式。如需詳細資訊,請參閱 設定擷取代理

  9. 選擇「完成」以在規劃資料萃取代理程式之後關閉安裝精靈。

設定擷取代理

請使用下列程序來設定擷取代理程式。在已安裝擷取代理程式的每部電腦上,重複這個程序。

設定擷取代理程式
  1. 啟動組態設定程式:

    • 在 Windows 中,在安裝資料擷取代理程式期間,會自動 AWS SCT 啟動組態設定程式。

      根據需要,您可以手動啟動安裝程序。若要這麼做,請在視窗中執行該ConfigAgent.bat檔案。您可以在安裝代理程式的資料夾中找到此檔案。

    • 在 RHEL 和 Ubuntu 中,從安裝代理程式的位置執行sct-extractor-setup.sh檔案。

    安裝程式會提示您輸入資訊。針對每個提示,都會顯示預設值。

  2. 在每個提示下接受預設值,或輸入新值。

    指定下列資訊:

    • 針對監聽通訊埠,輸入代理程式監聽的連接埠號碼。

    • 針對 [新增來源供應商],輸入 yes,然後輸入您的來源資料倉儲平台。

    • 對於 JDBC 驅動程式,請輸入安裝 JDBC 驅動程式的位置。

    • 對於「工作資料夾」,輸入 AWS SCT 資料萃取代理程式將儲存萃取資料的路徑。工作資料夾可以在與代理程式不同的電腦上,而且單一工作資料夾可由位在不同電腦上的多個代理程式共用。

    • 針對「啟用 SSL 通訊」,輸入 yes

    • 金鑰存放區中,輸入金鑰存放區檔案的位置。

    • 對於金鑰存放區密碼,請輸入金鑰存放區的密碼。

    • [啟用用戶端 SSL 驗證] 中,輸入 yes

    • 在「信任存放區」中,輸入信任存放區檔案的位置。

    • 在「信任存放區密碼」中,輸入信任存放區的密碼。

安裝程式會更新擷取代理程式的設定檔。設定檔名為 settings.properties,位在擷取代理程式的安裝位置。

以下是設定檔範例。

$ cat settings.properties #extractor.start.fetch.size=20000 #extractor.out.file.size=10485760 #extractor.source.connection.pool.size=20 #extractor.source.connection.pool.min.evictable.idle.time.millis=30000 #extractor.extracting.thread.pool.size=10 vendor=TERADATA driver.jars=/usr/share/lib/jdbc/terajdbc4.jar port=8192 redshift.driver.jars=/usr/share/lib/jdbc/RedshiftJDBC42-1.2.43.1067.jar working.folder=/data/sct extractor.private.folder=/home/ubuntu ssl.option=OFF

若要變更組態設定,您可以使用文字編輯器編輯settings.properties檔案,或再次執行代理程式組態。

使用專用複製代理程式安裝和設定擷取代理

您可以在具有共用儲存區和專用複製代理程式的組態中安裝擷取代理程式。下圖說明此案例。

具有專用副本代理配置的擷取程式代理

當來源資料庫伺服器最多支援 120 個連線,且您的網路已連接充足的儲存空間時,該組態可能很有用。使用下列程序來設定具有專用複製代理程式的擷取代理程式。

安裝和設定擷取代理程式和專用複製代理程式
  1. 請確定所有解壓縮代理程式的工作目錄都使用共用儲存裝置上的相同資料夾。

  2. 依照中安裝擷取代理的步驟安裝擷取程式代理程式。

  3. 依照中的步驟設定擷取代理程式設定擷取代理,但僅指定來源 JDBC 驅動程式。

  4. 按照中的步驟設定專用複製代理程式設定擷取代理,但僅指定 Amazon Redshift JDBC 驅動程式。

啟動萃取劑

請使用下列程序來啟動擷取代理程式。在已安裝擷取代理程式的每部電腦上,重複這個程序。

擷取代理程式是做為接聽程式。當您使用此程序來啟動代理程式時,代理程式即開始接聽指示。在稍後的章節中,您會傳送指示給代理程式,以從資料倉儲擷取資料。

啟動擷取代理程式
  • 在已安裝擷取代理程式的電腦中,針對您的作業系統執行下列命令。

    作業系統 啟動命令

    Microsoft Windows

    按兩下 StartAgent.bat 批次檔。

    RHEL

    在安裝代理程式的資料夾路徑中,執行下列命令:

    sudo initctl start sct-extractor

    Ubuntu Linux

    在安裝代理程式的資料夾路徑中,執行下列命令。使用 Ubuntu 版本適用的命令。

    Ubuntu 14.04:sudo initctl start sct-extractor

    版本 15.04 及更高版本:sudo systemctl start sct-extractor

若要查看代理程式的狀態,請執行相同的命令,但將 start 取代為 status

若要停止代理程式,請執行相同的命令,但將 start 取代為 stop

將擷取代理程式註冊到 AWS Schema Conversion Tool

您可以使用來管理擷取代理程式 AWS SCT。擷取代理程式是做為接聽程式。當他們收到指令時 AWS SCT,他們會從您的數據倉庫中提取數據。

使用下列程序在 AWS SCT 專案中註冊擷取代理程式。

註冊擷取代理程式
  1. 啟動 AWS Schema Conversion Tool,然後開啟專案。

  2. 開啟 [檢] 功能表,然後選擇 [資料移轉檢視 (其他)]。Agents (代理程式) 索引標籤隨即出現。如果您先前已註冊代理程式,則 AWS SCT 會在索引標籤頂端的網格中顯示代理程式。

  3. 選擇註冊

    在專案中註冊代理程式之後,您無法在不同 AWS SCT 專案中註冊相同的代理程式。如果您不再在專案中使用代理 AWS SCT 程式,您可以取消註冊該代理程式。然後可以再將其註冊於不同的專案。

  4. 選擇 Redshift 資料代理程式,然後選擇 [確定]

  5. 在對話方塊的「連線」頁籤上輸入您的資訊:

    1. 說明中,輸入代理程式的說明。

    2. 在「主機名稱」中,輸入代理程式電腦的主機名稱或 IP 位址。

    3. 連接埠中,輸入代理程式偵聽的通訊埠號碼。

    4. 選擇「註冊」以在您的 AWS SCT 專案中註冊代理程式。

  6. 重複上述步驟,以向 AWS SCT 專案註冊多個代理程式。

隱藏和復原 AWS SCT 代理程式的資訊

AWS SCT 代理程式會加密大量資訊,例如使用者金鑰信任存放區的密碼、資料庫帳 AWS 戶、帳戶資訊和類似項目。它是使用一個名為 seed.dat 的特殊檔案來執行此作業。依預設,代理程式會在第一個設定代理程式之使用者的工作資料夾中建立此檔案。

由於不同的使用者都可以設定及執行代理程式,因此 seed.dat 的路徑會存放在 settings.properties 檔案的 {extractor.private.folder} 參數中。代理程式啟動時,可以使用此路徑來尋找 seed.dat 檔案,以存取其作用之資料庫的金鑰信任存放區資訊。

您可能會需要復原代理程式在下列情況下存放的密碼:

  • 如果使用者遺失seed.dat檔案,而 AWS SCT 代理程式的位置和通訊埠並未變更。

  • 如果使用者遺失seed.dat檔案,且 AWS SCT 代理程式的位置和通訊埠已變更。在此情況下,通常會發生變更,因為代理程式已遷移到另一個主機或連接埠,而 seed.dat 檔案中的資訊不再有效。

在這些情況下,如果啟動代理程式時未使用 SSL,則代理程式會啟動,然後存取先前建立的代理程式儲存體。接著它會變成 Waiting for recovery (等待復原) 狀態。

不過,在這些情況下,如果啟動代理程式時有使用 SSL,您就無法將其重新啟動。這是因為代理程式無法將存放在 settings.properties 檔案中之憑證的密碼解密。在這種類型的啟動作業中,代理程式無法啟動。類似下列的錯誤會寫入日誌中:「代理程式無法在啟用 SSL 模式的情況下啟動。請重新設定代理程式。原因:金鑰存放區的密碼不正確。」

若要修正此問題,請建立新的代理程式,並將該代理程式設定為使用現有的密碼來存取 SSL 憑證。若要完成此操作,請遵循下列程序:

執行此程序之後,代理程式應該會執行並移至 [等待復原] 狀態。 AWS SCT 會自動將必要的密碼傳送至處於等待復原狀態的代理程式。當代理程式取得密碼後,就會重新啟動任何任務。側面不需要進一步的用戶操 AWS SCT 作。

重新設定代理程式並還原密碼來存取 SSL 憑證
  1. 安裝新的 AWS SCT 代理程式並執行設定。

  2. instance.properties 檔案的 agent.name 屬性,變更為已為其建立儲存體之代理程式的名稱,讓新的代理程式使用現有的代理程式儲存體。

    instance.properties 檔案存放在代理程式的私有資料夾中,其使用下列命名慣例:{output.folder}\dmt\{hostName}_{portNumber}\

  3. {output.folder} 的名稱變更為先前代理程式的輸出資料夾名稱。

    此時,仍 AWS SCT 在嘗試訪問舊主機和端口上的舊提取器。因此,無法存取的擷取器會發生 FAILED (失敗) 狀態。然後您就可以變更主機和連接埠。

  4. 使用 Modify 命令,將請求流量重新導向至新的代理程式,藉以修改舊代理程式的主機及/或連接埠。

何時 AWS SCT 可以偵測新代理程式, AWS SCT 會收到「等待從代理程式復原」狀態。 AWS SCT 然後自動復原代理程式的密碼。

使用代理程式儲存體的每個代理程式都會更新一個名為 storage.lck 的特殊檔案 (位於 {output.folder}\{agentName}\storage\)。這個檔案包含代理程式的網路 ID,以及直到儲存體鎖定的時間。當代理程式使用代理程式儲存體時,會更新 storage.lck 檔案,並將儲存體的每 5 分鐘租賃期延長 10 分鐘。在租賃到期之前,其他執行個體都不能使用此代理程式儲存體。

在中建立資料移轉規則 AWS SCT

使用擷取資料之前 AWS Schema Conversion Tool,您可以設定篩選器,以減少擷取的資料量。您可以使用WHERE子句來減少擷取的資料,以建立資料移轉規則。例如,您可以編寫從單一資料表選取資料的 WHERE 子句。

您可以建立資料移轉規則,並將篩選儲存為專案的一部分。開啟專案後,請使用下列程序建立資料移轉規則。

若要建立資料移轉規則
  1. 開啟 [檢] 功能表,然後選擇 [資料移轉檢視 (其他)]。

  2. 選擇 [資料遷移規則],然後選擇 [新增規則]。

  3. 設定您的資料移轉規則:

    1. 名稱中,輸入資料移轉規則的名稱。

    2. 在綱要名稱類似的位置中,輸入要套用至結構描述的篩選。此篩選條件是使用 LIKE 子句來評估 WHERE 子句。若要選擇一個綱要,請輸入完全相同的綱要名稱。若要選擇多個綱要,請使用「%」字元作為萬用字元,以符合綱要名稱中任意數目的字元。

    3. 對於類似的表格名稱,請輸入要套用至表格的篩選條件。此篩選條件是使用 LIKE 子句來評估 WHERE 子句。若要選擇一個表格,請輸入確切的名稱。若要選擇多個資料表,請使用「%」字元作為萬用字元,以符合資料表名稱中任意數目的字元。

    4. 在 Where 子句中,輸入要篩選資料的WHERE子句。

  4. 設定篩選條件之後,選擇 Save (儲存),以儲存您的篩選條件,或選擇 Cancel (取消),以取消變更。

  5. 新增、編輯和刪除篩選器完成後,請選擇 [全部儲存] 以儲存所有變更。

若要關閉篩選條件,但不將其刪除,請使用切換圖示。若要複製現有的篩選條件,請使用複製圖示。若要刪除現有的篩選條件,請使用刪除圖示。若要儲存您對篩選器所做的任何變更,請選擇 [全部儲存]。

更改提取器並從項目設置複製設置

在的專案設定視窗中 AWS SCT,您可以選擇資料擷取代理程式和 Amazon Redshift COPY 命令的設定。

若要選擇這些設定,請選擇 [設定][專案設定],然後選擇 [資料移轉]。您可以在此編輯擷取設定Amazon S3 設定複製設定

使用下表中的說明提供有關萃取設定的資訊。

對於此參數 執行此作業

壓縮格式

指定輸入檔案的壓縮格式。選擇下列其中一個選項:GZIPBZIP2ZSTD壓縮。

分隔符號

指定用於分隔輸入檔案中欄位的 ASCII 字元。不支援非列印字元。

空值作為一個字符串

如果您的資料包含空結束字元,請開啟此選項。如果關閉此選項,Amazon Redshift COPY 命令會將空值視為記錄的結尾,並結束載入程序。

排序策略

使用排序從失敗點重新啟動解壓縮。選擇下列其中一個排序策略:在第一次失敗後使用排序 (建議選項)如果可能,請使用排序永不使用排序。如需詳細資訊,請參閱 使用移轉前排序資料 AWS SCT

源臨時模式

在來源資料庫中輸入綱要的名稱,擷取代理程式可在此建立暫存物件。

輸出檔案大小 (MB)

輸入上傳到 Amazon S3 的檔案大小 (以 MB 為單位)。

Snowball 出檔案大小 (MB)

輸入上傳目標檔案的大小 (以 MB 為單位) AWS Snowball。檔案的大小可以有 1 到 1,000 MB。

使用自動分割。如果是綠色和 Netezza,請輸入支援資料表的最小大小 (以 MB 為單位)

開啟此選項以使用資料表分割,然後輸入 Greenplum 和 Netezza 來源資料庫要分割的表格大小。對於 Oracle 到 Amazon Redshift 的遷移,您可以將此欄位保留空白,因為 AWS SCT 會為所有分區資料表建立子任務。

提取 LOB

開啟此選項可從來源資料庫萃取大型物件 (LOB)。LOB 包括 BLOB、CLOB、NCLobs、XML 檔案等。對於每個 LOB, AWS SCT 擷取代理程式都會建立一個資料檔。

Amazon S3 存儲桶 LOB 文件夾

輸入 AWS SCT 擷取代理程式儲存 LOB 的位置。

將 RTRIM 套用至字串資料行

開啟此選項可從擷取的字串結尾修剪一組指定的字元。

上傳到 Amazon S3 後將文件保留在本地

開啟此選項可在資料擷取代理程式上傳檔案到 Amazon S3 後,將檔案保留在本機電腦上。

使用下表中的說明提供 Amazon S3 設定的相關資訊。

對於此參數 執行此作業

使用代理

開啟此選項以使用代理伺服器將資料上傳到 Amazon S3。然後選擇數據傳輸協議,輸入主機名,端口,用戶名和密碼。

端點類型

選擇 FIPS 以使用聯邦資訊處理標準 (FIPS) 端點。選擇 VPCE 以使用虛擬私有雲端 (VPC) 端點。然後,針對 VPC 端點,輸入 VPC 端點的網域名稱系統 (DNS)。

將文件複製到亞馬遜紅移後保留在 Amazon S3 上

開啟此選項可在將這些檔案複製到 Amazon Redshift 之後,將擷取的檔案保留在 Amazon S3 上。

使用下表中的指示來提供 「複製」設定的資訊。

對於此參數 執行此作業

最大錯誤計數

輸入載入錯誤的數目。作業達到此限制之後, AWS SCT 資料擷取代理程式就會結束資料載入程序。預設值為 0,這表示無論失敗為何, AWS SCT 資料擷取代理程式都會繼續載入資料。

取代無效的 UTF-8 字元

開啟此選項,以指定的字元取代無效的 UTF-8 字元,並繼續資料載入作業。

使用空白作為空值

開啟此選項可將包含空格字元的空白欄位載入為 null。

使用空值作為空值

開啟此選項可將空白CHARVARCHAR欄位載入為 null。

截斷資料欄

開啟此選項可截斷欄中的資料以符合資料類型規格。

自動壓縮

開啟此選項可在複製作業期間套用壓縮編碼。

自動統計數據刷

開啟此選項可在複製作業結束時重新整理統計資料。

載入前檢查檔案

開啟此選項可在將資料檔案載入 Amazon Redshift 之前先驗證這些檔案。

使用移轉前排序資料 AWS SCT

在移轉之前對資料進行排序可 AWS SCT 提供一些好處。如果您先排序資料,則 AWS SCT 可以在失敗後的最後一個儲存點重新啟動擷取代理程式。此外,如果您要將資料遷移到 Amazon Redshift,並且先對資料進行排序, AWS SCT 可以更快地將資料插入 Amazon Redshift。

這些好處與如何 AWS SCT 建立資料萃取查詢有關。在某些情況下, AWS SCT 會在這些查詢中使用 DENSE_RANK 分析函數。但是,DENSE_RANK 可以使用大量時間和服務器資源對從提取產生的數據集進行排序,因此,如果沒有它,則 AWS SCT 可以。

若要在移轉前對資料進行排序 AWS SCT
  1. 開啟專 AWS SCT 案。

  2. 開啟物件的前後關聯 (按一下滑鼠右鍵) 功能表,然後選擇「建立本機工作」。

  3. 選擇「進階」標籤,然後針對「排序策略」選擇一個選項:

    • 永不使用排序 — 擷取代理程式不使用 DENSE_RANK 分析函式,如果發生失敗,則會從頭開始重新啟動。

    • 如果可能,請使用排序 — 如果資料表具有主索引鍵或唯一條件約束,擷取代理程式會使用 DENSE_RANK。

    • 第一次失敗後使用排序 (建議) — 擷取代理程式會先嘗試取得資料,而不使用 DENSE_RANK。如果第一次嘗試失敗,擷取代理程式就會使用 DENSE_RANK 來重建查詢,並且在發生失敗時,保留其位置。

    Global Settings (全域設定) 對話方塊的 Security (安全性) 標籤
  4. 依下列說明設定額外的參數,然後選擇 Create (建立) 來建立您的資料擷取任務。

建立、執行和監視 AWS SCT 資料萃取工作

使用下列程序來建立、執行及監控資料擷取任務。

將任務指派給代理程式並遷移資料
  1. 在中 AWS Schema Conversion Tool,轉換結構定義後,從專案的左側面板中選擇一或多個表格。

    您可以選擇所有資料表,但基於效能考量,建議您不要這麼做。建議您根據資料倉儲中的資料表大小,為多個資料表建立多個任務。

  2. 開啟每個表格的前後關聯 (按一下滑鼠右鍵) 功能表,然後選擇「建立工作」。建立本機工作對話方塊隨即開啟。

  3. 在工作名稱中,輸入工作的名稱。

  4. 針對移轉模式,選擇下列其中一項:

    • 僅擷取 — 萃取資料,並將資料儲存至本端工作資料夾。

    • 擷取和上傳 — 擷取資料,然後將資料上傳到 Amazon S3。

    • 擷取、上傳和複製 — 擷取資料、將資料上傳到 Amazon S3,然後將資料複製到 Amazon Redshift 資料倉儲。

  5. 針對「加密」類型,選擇下列其中一項:

    • — 關閉整個資料移轉程序的資料加密。

    • CSE_SK — 使用用戶端加密搭配對稱金鑰來移轉資料。 AWS SCT 自動產生加密金鑰,並使用安全通訊端層 (SSL) 將其傳輸至資料擷取代理程式。 AWS SCT 在資料移轉期間不會加密大型物件 (LOB)。

  6. 選擇 Extract LOBs (擷取 LOB),以擷取大型物件。如果您不需要擷取大型物件,可以清除此核取方塊。這麼做可以減少您擷取的資料量。

  7. 若要查看工作的詳細資訊,請選擇 [啟用工作記錄]。您可以使用任務日誌來進行問題偵錯。

    如果您啟用任務記錄功能,請選擇您要查看的詳細層級。各層級如下所示,每個層級都包含上一個層級中的所有訊息:

    • ERROR— 細節的最小量。

    • WARNING

    • INFO

    • DEBUG

    • TRACE— 最大量的細節。

  8. 若要從中匯出資料 BigQuery,請 AWS SCT 使用 GCP 儲存貯體資料夾。在此資料夾中,資料擷取代理程式會儲存您的來源資料。

    若要輸入 GCP 儲存貯體資料夾的路徑,請選擇 [進階]。對於 Google CS 值區資料夾,請輸入值區名稱和資料夾名稱。

  9. 若要擔任資料擷取代理程式使用者的角色,請選擇 Amazon S3 設定。對於 IAM 角色,請輸入要使用的角色名稱。針對「區域」,選 AWS 區域 擇此角色的。

  10. 選擇 [測試任務] 以確認您可以連線到工作資料夾、Amazon S3 儲存貯體和 Amazon Redshift 資料倉儲。此驗證取決於您選擇的遷移模式。

  11. 選擇 Create (建立),以建立任務。

  12. 針對您要遷移的所有資料,重複上述步驟來建立任務。

執行及監控任務
  1. 對於「檢視」,選擇「資料移轉視圖Agents (代理程式) 索引標籤隨即出現。

  2. 選擇 Tasks (任務) 索引標籤。您的任務會出現在網格頂端,如下所示。您可以在頂端網格中查看任務的狀態,以及在底部網格中查看其子任務的狀態。

    任務網格
  3. 在頂端網格中選擇任務,並將其展開。依據您選擇的遷移模式,您會看到任務區分成 Extract (擷取)、Upload (上傳) 和 Copy (複製)。

  4. 針對某項任務選擇 Start (啟動),以啟動該任務。您可以在任務進行時,監控其狀態。子任務會平行執行。擷取、上傳和複製也會平行執行。

  5. 如果在設定任務時,已啟用記錄功能,則可檢視日誌:

    1. 選擇 [下載記錄]。隨即出現訊息顯示包含該日誌檔的資料夾名稱。請關閉訊息。

    2. Task details (任務詳細資訊) 索引標籤中會顯示一個連結。請選擇該連結,以開啟包含日誌檔的資料夾。

您可以關閉 AWS SCT,代理程式和工作會繼續執行。您可以 AWS SCT 稍後重新開啟以檢查工作狀態並檢視工作記錄。

您可以將資料萃取工作儲存到本端磁碟,並使用匯出和匯入將其還原到相同或其他專案。若要匯出工作,請確保在專案中至少建立了一個萃取工作。您可以匯入單一萃取工作或在專案中建立的所有工作。

匯出萃取工作時, AWS SCT 會為該工作建立單獨的.xml檔案。該.xml文件存儲該任務的元數據信息,例如任務屬性,描述和子任務。.xml檔案不包含有關處理解壓縮工作的資訊。匯入工作時,會重新建立類似下列的資訊:

  • 任務進度

  • 子工作和階段狀態

  • 按子任務和階段分配提取代理

  • 任務和子任務 ID

  • Task name (任務名稱)

匯出和匯入資 AWS SCT 料萃取工作

您可以快速保存一個項目中的現有任務,並使用導 AWS SCT 出和導入將其還原到另一個項目(或同一項目)中。使用下列程序匯出和匯入資料萃取工作。

匯出和匯入資料萃取工作的步驟
  1. 對於「檢視」,選擇「資料移轉視圖Agents (代理程式) 索引標籤隨即出現。

  2. 選擇 Tasks (任務) 索引標籤。您的工作會列在出現的網格中。

  3. 選擇位於任務列表下方右下角的三個垂直對齊點(省略號圖標)。

  4. 從彈出式選單中選擇「匯出工作」。

  5. 選擇您要 AWS SCT 放置工作匯出.xml檔案的資料夾。

    AWS SCT 建立檔案名稱格式為的工作匯出檔案TASK-DESCRIPTION_TASK-ID.xml

  6. 選擇任務列表下右下角的三個垂直對齊點(省略號圖標)。

  7. 從彈出式選單中選擇「匯入工作」。

    您可以將萃取任務匯入至連接至來源資料庫的專案,並且專案至少具有一個作用中的已註冊萃取代理程式。

  8. 為匯出的萃取工作選取.xml檔案。

    AWS SCT 從檔案中取得擷取工作的參數、建立工作,並將工作新增至擷取代理程式。

  9. 重複這些步驟以匯出和匯入其他資料萃取工作。

在此過程結束時,您的匯出和匯入已完成,並且您的資料萃取工作已準備就緒可供使用。

使用 AWS Snowball Edge 裝置擷取資料

使用 AWS SCT 和 AWS Snowball Edge 的過程有幾個步驟。遷移涉及本機任務,其中 AWS SCT 使用資料擷取代理程式將資料移至 AWS Snowball Edge 裝置,然後執行中繼動作,將資料從 AWS Snowball Edge 裝置 AWS 複製到 Amazon S3 儲存貯體。此程序完成將資料從 Amazon S3 儲存貯體 AWS SCT 載入到 Amazon Redshift。

本概觀後面的各節提供了這些工作的 step-by-step 指南。此程序假設您已 AWS SCT 安裝,並且已在專用機器上設定並註冊資料擷取代理程式。

執行以下步驟,以使用 AWS Snowball Edge 將資料從本端資料倉庫移轉至 AWS 資料倉庫。

  1. 使用 AWS Snowball 主控台建立 AWS Snowball Edge 工作。

  2. 使用本機專用 Linux 機器解除鎖定 AWS Snowball 邊緣裝置。

  3. 在中建立新專案 AWS SCT。

  4. 安裝和設定資料擷取代理程式。

  5. 建立並設定要使用的 Amazon S3 儲存貯體的權限。

  6. 將 AWS Snowball 工作匯入至您的 AWS SCT 專案。

  7. 在中註冊您的資料擷取代理程式 AWS SCT。

  8. 在中建立本機工作 AWS SCT。

  9. 執行並監視中的資料移轉工作 AWS SCT。

S 使用 AWS SCT 和 AWS Snowball Edge 移轉資料的tep-by-step 程序

以下小節提供遷移步驟的詳細資訊。

步驟 1:建立 AWS Snowball 邊緣工作

依照 Edge AWS Snowball 開發人員指南中建立 AWS Snowball Edge Job 一節中概述的AWS Snowball 步驟建立工作。

步驟 2:解鎖邊 AWS Snowball 緣設備

從安裝 AWS DMS 代理程式的機器執行解除鎖定並提供認證給 Snowball Edge 裝置的命令。透過執行這些命令,您可以確定 AWS DMS 代理程式呼叫已連線至 AWS Snowball Edge 裝置。如需解除鎖定 AWS Snowball Edge 裝置的詳細資訊,請參閱解除鎖定 Snowball 邊緣

aws s3 ls s3://<bucket-name> --profile <Snowball Edge profile> --endpoint http://<Snowball IP>:8080 --recursive

步驟 3:建立新 AWS SCT 專案

接下來,創建一個新 AWS SCT 項目。

若要在中建立新專案 AWS SCT
  1. 啟動 AWS Schema Conversion Tool. 在 [案] 功能表上,選擇 [新增專案]。[新增專案] 對話方塊隨即出現。

  2. 輸入專案的名稱,這會儲存在本機電腦上。

  3. 輸入本機專案檔案的位置。

  4. 選擇 「確定」 以建立 AWS SCT 專案。

  5. 選擇 [新增來源],將新的來源資料庫新增至您的 AWS SCT 專案。

  6. 選擇添加目標以在項目中添加新的 AWS SCT 目標平台。

  7. 在左側面板中選擇源數據庫模式。

  8. 在右側面板中,指定所選來源結構描述的目標資料庫平台。

  9. 選擇建立對應。選擇來源資料庫綱要和目標資料庫平台之後,此按鈕會變成作用中狀態。

步驟 4:安裝並設定資料擷取代理程式

AWS SCT 使用資料擷取代理程式將資料遷移到 Amazon Redshift。您下載要安裝的 .zip 檔案包含解壓縮代理程式安裝 AWS SCT程式檔案。您可以在視窗、RHEL 或 Ubuntu 中安裝資料擷取代理程式。如需詳細資訊,請參閱 安裝擷取代理

若要設定資料擷取代理程式,請輸入來源和目標資料庫引擎。此外,請確定您已在執行資料擷取代理程式的電腦上下載來源和目標資料庫的 JDBC 驅動程式。資料擷取代理程式會使用這些驅動程式連線至來源和目標資料庫。如需詳細資訊,請參閱 下載所需資料庫驅動程式

在 Windows 中,資料擷取代理程式安裝程式會在命令提示字元視窗中啟動設定精靈。在 Linux 中,從安裝代理程式的位置執行sct-extractor-setup.sh檔案。

步驟 5:設定 AWS SCT 以存取 Amazon S3 儲存貯體

如需設定 Amazon S3 儲存貯體的相關資訊,請參閱 Amazon 簡單儲存服務使用者指南中的儲存貯體概觀

步驟 6:將 AWS Snowball 工作匯入 AWS SCT 專案

若要將 AWS SCT 專案與 AWS Snowball Edge 裝置連線,請匯入 AWS Snowball 工作。

若要匯入您的 AWS Snowball 工作
  1. 開啟 [設定] 功能表,然後選擇 [全域設定]Global settings (全域設定) 對話方塊隨即出現。

  2. 選擇AWS 服務設定檔,然後選擇 [匯入工作]。

  3. 選擇你的 AWS Snowball 工作。

  4. 輸入您的 AWS Snowball IP 位址。如需詳細資訊,請參閱《使用指南》中的AWS Snowball 〈變更 IP 位址

  5. 輸入您的 AWS Snowball 港口。如需詳細資訊,請參閱 Edge 開發人員指南中的 AWS Snowball 邊緣裝置使用 AWS 服務所需的連接埠。AWS Snowball

  6. 輸入您的AWS Snowball 訪問密鑰AWS Snowball 密鑰。如需詳細資訊,請參閱《AWS Snowball 使用指南》AWS Snowball中的〈授權和存取控制

  7. 選擇 Apply (套用),然後選擇 OK (確定)

步驟 7:在中註冊資料擷取代理程式 AWS SCT

在本節中,您將在中註冊資料萃取代理程式 AWS SCT。

若要註冊資料萃取代理程式
  1. 在 [檢視] 功能表上,選擇 [資料移轉檢視 (其他)],然後選擇 [註冊]。

  2. 在「說明」中,輸入資料擷取代理程式的名稱。

  3. 在「主機名稱」中,輸入執行資料擷取代理程式之電腦的 IP 位址。

  4. 連接埠中,輸入您所設定的監聽通訊埠。

  5. 選擇註冊

步驟 8:建立本機工作

接下來,您會建立移轉任務。任務包含兩個子任務,一個子工作會將資料從來源資料庫移轉至 AWS Snowball Edge 應用裝置。另一子任務會擷取裝置載入到 Amazon S3 儲存貯體的資料,並將資料遷移到目標資料庫。

若要建立移轉任務
  1. 在 [檢] 功能表上,然後選擇 [資料移轉檢視 (其他)]。

  2. 左側窗格會顯示您的來源資料庫的結構描述,請選擇要遷移的結構描述物件。開啟物件的前後關聯 (按一下滑鼠右鍵) 功能表,然後選擇「建立本機工作」。

  3. 在「工作名稱」中,輸入資料移轉工作的描述性名稱。

  4. 對於移轉模式,請選擇 [擷取]、[上傳] 和 [複製]。

  5. 選擇 Amazon S3 設置

  6. 選取 [使用 Snowball]。

  7. 在資料擷取代理程式可以存放資料的 Amazon S3 儲存貯體中輸入資料夾和子資料夾。

  8. 選擇 Create (建立),以建立任務。

步驟 9:執行和監視中的資料移轉任務 AWS SCT

若要啟動資料移轉工作,請選擇 [開始]。請確定已建立與來源資料庫、Amazon S3 儲存貯體、 AWS Snowball 裝置的連線,以及與目標資料庫的連線 AWS。

您可以在 [工作] 索引標籤中監視和管理資料移轉工作及其子工作。您可以查看資料移轉進度,以及暫停或重新啟動資料移轉工作。

資料萃取工作輸出

在遷移任務完成後,您的資料即已準備好。利用下列資訊,根據您選擇的遷移模式和資料的位置來決定如何繼續進行。

移轉模式 資料位置

擷取、上傳和複製

資料已經存在於您的 Amazon Redshift 資料倉儲中。您可以確認資料在那裡,並開始使用。如需詳細資訊,請參閱從用戶端工具和程式碼連線到叢集

擷取並上傳

擷取代理程式會將您的資料以檔案形式儲存在 Amazon S3 儲存貯體中。您可以使用 Amazon Redshift 複製命令將數據加載到 Amazon Redshift。如需詳細資訊,請參閱亞馬遜紅移文件中的從 Amazon S3 載入資料

Amazon S3 儲存貯體中有多個資料夾,與您設定的擷取任務相對應。將資料載入 Amazon Redshift 時,請指定每個任務建立的資訊清單檔案名稱。資訊清單檔案會顯示在 Amazon S3 儲存貯體的任務資料夾中,如下所示。

Amazon S3 存儲桶中的文件列表

僅擷取

擷取代理程式會將您的資料儲存成檔案,放在工作資料夾中。手動將資料複製到 Amazon S3 儲存貯體,然後繼續執行擷取和上傳的指示。

使用虛擬磁碟分割 AWS Schema Conversion Tool

通常管理大型未分割資料表的最佳方式,就是建立子任務,以使用篩選規則來建立資料表資料的虛擬分割區。在中 AWS SCT,您可以為移轉的資料建立虛擬分割區。有三種分割區類型,適用於特定的資料類型:

  • RANGE 分割區類型適用於數值以及日期和時間資料類型。

  • LIST 分割區類型適用於數值、字元,以及日期和時間資料類型。

  • DATE AUTO 分割分割區類型適用於數值、日期和時間資料類型。

AWS SCT 驗證您為建立分割區所提供的值。例如,如果您嘗試分割具有資料類型 NUMERIC 的資料行,但您提供不同資料類型的值,就 AWS SCT 會擲回錯誤。

此外,如果您使 AWS SCT 用將資料遷移到 Amazon Redshift,則可以使用原生分割來管理遷移或大型表格。如需詳細資訊,請參閱 使用原生分割

建立虛擬分割時的限制

以下是建立虛擬分割區的限制:

  • 您只能將虛擬分割用於未分割的資料表。

  • 您只能在資料遷移檢視中使用虛擬分割。

  • 您不能將 UNION ALL VIEW 選項與虛擬分割搭配使用。

範圍分割區類型

RANGE 分割區類型會根據數值以及日期和時間資料類型的資料欄值範圍來分割資料。這個分割區類型會建立 WHERE 子句,而您要針對每個分割區提供值的範圍。若要指定資料分割資料行的值清單,請使用「」方塊。您可以使用 .csv 檔案來載入值資訊。

RANGE 分割區類型會在分割區值的兩端建立預設分割區。這些預設分割區會 catch 取小於或大於指定分割區值的任何資料。

例如,您可以根據您提供的值範圍建立多個分割區。下列範例會指定 LO_TAX 的分割值來建立多個分割區。

Partition1: WHERE LO_TAX <= 10000.9 Partition2: WHERE LO_TAX > 10000.9 AND LO_TAX <= 15005.5 Partition3: WHERE LO_TAX > 15005.5 AND LO_TAX <= 25005.95
建立 RANGE 虛擬分割區
  1. 打開 AWS SCT。

  2. 選擇「資料移轉檢視 (其他)」模式。

  3. 選擇您要在其中設定虛擬分割的資料表。開啟資料表的內容 (按一下滑鼠右鍵) 功能表,然後選擇 [新增虛擬分割]。

  4. 在 [新增虛擬磁碟分割] 對話方塊中,輸入下列資訊。

    選項 動作

    分割區類型

    選擇 RANGE。對話方塊 UI 會依據您選擇的類型而變更。

    資料欄名稱

    選擇您想要分割的資料欄。

    資料欄類型

    選擇資料欄值的資料類型。

    Values (數值)

    New Value (新值) 方塊中輸入每個值,以新增值,然後選擇加號,以加入該值。

    從檔案載入

    (選用) 輸入包含分割區值的 .csv 檔案名稱。

  5. 選擇確定

列出分割區類型

LIST 分割區類型會根據數值、字元以及日期和時間資料類型的資料欄值來分割資料。這個分割區類型會建立 WHERE 子句,而您要針對每個分割區提供值。若要指定資料分割資料行的值清單,請使用「」方塊。您可以使用 .csv 檔案來載入值資訊。

例如,您可以根據您提供的值來建立多個分割區。下列範例會指定 LO_ORDERKEY 的分割值來建立多個分割區。

Partition1: WHERE LO_ORDERKEY = 1 Partition2: WHERE LO_ORDERKEY = 2 Partition3: WHERE LO_ORDERKEY = 3 … PartitionN: WHERE LO_ORDERKEY = USER_VALUE_N

您也可以針對未包含在指定分割區中的值,建立預設分割區。

如果您想要從移轉中排除特定值,可以使用 LIST 分割區類型來篩選來源資料。例如,假設您想要省略列LO_ORDERKEY = 4。在此情況下,請勿在分割區值清單4中包含該值,並確定未選取 [包含其他值]。

建立 LIST 虛擬分割區
  1. 打開 AWS SCT。

  2. 選擇「資料移轉檢視 (其他)」模式。

  3. 選擇您要在其中設定虛擬分割的資料表。開啟資料表的內容 (按一下滑鼠右鍵) 功能表,然後選擇 [新增虛擬分割]。

  4. 在 [新增虛擬磁碟分割] 對話方塊中,輸入下列資訊。

    選項 動作

    分割區類型

    選擇 LIST。對話方塊 UI 會依據您選擇的類型而變更。

    資料欄名稱

    選擇您想要分割的資料欄。

    新價值

    在這裡輸入一個值,以將其新增至一組分割值。

    包括其他值

    選擇此選項來建立的預設分割區中,會存放不符合分割條件的所有值。

    從檔案載入

    (選用) 輸入包含分割區值的 .csv 檔案名稱。

  5. 選擇確定

日期自動拆分分區類型

DATE 自動分割分割區類型是產生 RANGE 分割區的自動化方式。使用 DATA AUTO SPLIT,您可以告訴 AWS SCT 分區屬性,從哪裡開始和結束,以及值之間的範圍大小。然後自動 AWS SCT 計算分區值。

DATA AUTO 拆分可以自動執行與創建範圍分區相關的許多工作。使用此技術和範圍分區之間的權衡是您需要對分區邊界進行多少控制。自動分割程序永遠會建立相等大小 (統一) 範圍。範圍分割可讓您根據特定資料分佈的需要,變更每個範圍的大小。例如,您可以每天、每週、每兩週、每月等使用。

Partition1: WHERE LO_ORDERDATE >= ‘1954-10-10’ AND LO_ORDERDATE < ‘1954-10-24’ Partition2: WHERE LO_ORDERDATE >= ‘1954-10-24’ AND LO_ORDERDATE < ‘1954-11-06’ Partition3: WHERE LO_ORDERDATE >= ‘1954-11-06’ AND LO_ORDERDATE < ‘1954-11-20’ … PartitionN: WHERE LO_ORDERDATE >= USER_VALUE_N AND LO_ORDERDATE <= ‘2017-08-13’
建立 DATE AUTO SPLIT 虛擬分割區
  1. 打開 AWS SCT。

  2. 選擇「資料移轉檢視 (其他)」模式。

  3. 選擇您要在其中設定虛擬分割的資料表。開啟資料表的內容 (按一下滑鼠右鍵) 功能表,然後選擇 [新增虛擬分割]。

  4. 在 [新增虛擬磁碟分割] 對話方塊中,輸入下列資訊。

    選項 動作

    分割區類型

    選擇 DATE AUTO SPLIT。對話方塊 UI 會依據您選擇的類型而變更。

    資料欄名稱

    選擇您想要分割的資料欄。

    開始日期

    輸入開始日期。

    結束日期

    輸入結束日期。

    Interval (間隔)

    輸入間隔單位,然後選擇該單位的值。

  5. 選擇確定

使用原生分割

為了加速資料移轉,您的資料擷取代理程式可以使用來源資料倉儲伺服器上的表格原生分割區。 AWS SCT 支援從綠梅林、Netezza 和甲骨文遷移到 Amazon Redshift 的原生分區。

例如,建立專案之後,您可能會收集結構描述的統計資料,並分析選取要移轉的表格大小。對於超過指定大小的資料表, AWS SCT 會觸發原生資料分割機制。

若要使用原生分割
  1. 開啟 AWS SCT,然後為 [檔案] 選擇 [新增專]。[新增專案] 對話方塊隨即出現。

  2. 建立新專案、新增來源和目標伺服器,以及建立對應規則。如需詳細資訊,請參閱 建立AWS SCT專案

  3. 選擇 [檢視],然後選擇 [主要檢視]。

  4. 對於「專案設定」,請選擇「資料移轉」頁籤。選擇「使用自動分割」。對於 Greenplum 和 Netezza 來源資料庫,請輸入受支援資料表的大小下限 (以 MB 為單位) (例如 100)。 AWS SCT 會自動為每個非空白的原生磁碟分割建立個別的遷移子工作。對於甲骨文到 Amazon Redshift 遷,請為所有分區資料表 AWS SCT 建立子任務。

  5. 在顯示來源資料庫結構描述的左側面板中,選擇結構描述。開啟物件的內容 (按一下滑鼠右鍵) 功能表,然後選擇「收集統計資料」。對於從甲骨文遷移到 Amazon Redshift 的數據,您可以跳過此步驟。

  6. 選擇要移轉的所有表格。

  7. 註冊所需的代理程式數目。如需詳細資訊,請參閱 將擷取代理程式註冊到 AWS Schema Conversion Tool

  8. 為選取的表格建立資料萃取工作。如需詳細資訊,請參閱 建立、執行和監視 AWS SCT 資料萃取工作

    檢查大型資料表是否分割為子工作,以及每個子工作是否符合顯示位於來源資料倉儲中某個資料片段上之資料表一部分的資料集。

  9. 啟動並監控移轉程序,直到 AWS SCT 資料擷取代理程式完成來源表格中的資料移轉為止。

將 LOB 遷移到 Amazon Redshift

Amazon Redshift 不支持存儲大型二進制對象(LOB)。但是,如果您需要將一個或多個 LOB 遷移到 Amazon Redshift,則 AWS SCT 可以執行遷移。為此,請 AWS SCT 使用 Amazon S3 儲存貯體來存放 LOB,並將 Amazon S3 儲存貯體的 URL 寫入存放在 Amazon Redshift 中的已遷移資料。

若要將 LOB 移轉至 Amazon Redshift
  1. 開啟專 AWS SCT 案。

  2. 連接到來源和目標資料庫。從目標資料庫重新整理中繼資料,並確定已轉換的表格存在於該資料庫中。

  3. 對於動作,選擇建立本機工作

  4. 針對移轉模式,選擇下列其中一項:

    • 擷取並上傳以擷取資料,然後將資料上傳到 Amazon S3。

    • 擷取、上傳和複製以擷取資料、將資料上傳到 Amazon S3,然後將其複製到 Amazon Redshift 資料倉儲。

  5. 選擇 Amazon S3 設置

  6. 對於 Amazon S3 儲存貯體 LOB 資料夾,請在您要存放 LOB 的 Amazon S3 儲存貯體中輸入資料夾的名稱。

    如果您使用 AWS 服務設定檔,則此欄位為選擇性欄位。 AWS SCT 可以使用您設定檔中的預設設定。若要使用其他 Amazon S3 儲存貯體,請在此處輸入路徑。

  7. 開啟使用代理選項以使用代理伺服器將資料上傳到 Amazon S3。然後選擇數據傳輸協議,輸入主機名,端口,用戶名和密碼。

  8. 針對端點類型,選擇 FIPS 以使用聯邦資訊處理標準 (FIPS) 端點。選擇 VPCE 以使用虛擬私有雲端 (VPC) 端點。然後,針對 VPC 端點,輸入 VPC 端點的網域名稱系統 (DNS)。

  9. 開啟將檔案複製到亞馬遜紅移後保留在 Amazon S3 上的選項,以便在將這些檔案複製到亞馬遜 Redshift 之後,將擷取的檔案保留在 Amazon S3 上。

  10. 選擇 Create (建立),以建立任務。

資料擷取代理程式的最佳做法和疑難排

以下是針對使用擷取代理程式的一些最佳實務和故障診斷建議。

問題 故障診斷建議

效能緩慢

為了改善效能,我們的建議如下:

  • 安裝多個代理程式。

  • 在靠近資料倉儲的電腦上安裝代理程式。

  • 不要在單一代理程式任務中執行所有資料表。

爭用延遲

避免有太多代理程式同時存取您的資料倉儲。

代理程式暫時故障

如果代理程式故障,其每個任務的狀態會在 AWS SCT中顯示為失敗。如果您稍候一下,在某些情況下,代理程式可以復原。在此情況下,其任務的狀態會在 AWS SCT中更新。

代理程式永久故障

如果執行代理程式的電腦發生永久故障,且該代理程式正在執行任務,您可以更換新的代理程式來繼續執行任務。原始代理程式的工作資料夾,必須位在與原始代理程式不同的電腦上,才可以更換新的代理程式。若要更換新的代理程式,請執行下列動作:

  • 在新的電腦上安裝代理程式。

  • 使用原始代理程式的相同設定 (包括連接埠號碼和工作資料夾) 來設定新的代理程式。

  • 啟動代理程式。代理程式啟動之後,任務會探索新的可用代理程式,並繼續在新的代理程式上執行。