資料遷移是新舊世界之間的橋樑 — 將本地部署的檔案伺服器、關係型資料庫、SaaS 資料和大型主機記錄移動到 AWS 資料湖或分析倉儲中。AWS 提供了四種規範的遷移服務,DEA-C01 考試將其作為服務選擇矩陣進行測試:用於 SaaS 來源的 AppFlow、用於檔案系統的 DataSync、用於關係型資料庫的 資料庫遷移服務 (DMS),以及用於 PB 級離線傳輸的 Snowball Edge。此外,還有用於 SFTP/FTPS 端點的 Transfer Family 和用於異質資料庫遷移的 結構描述轉換工具 (SCT)。來自 Tutorials Dojo、Digital Cloud Training 和 ExamCert.App 的社群研究指南都指出了相同的痛點 — 考生常會選擇 DataSync 進行資料庫遷移(工具錯誤,僅限檔案)、使用 DMS 轉換結構描述(DMS 不進行轉換,SCT 負責),或將 AppFlow 用於任意 HTTP API(AppFlow 是基於 SaaS 連接器的)。
本指南專為資料工程師的視角而編寫。它涵蓋了每種遷移服務的功能、何時選擇每種服務、AppFlow 流程組態模型、包含頻寬節流和驗證在內的 DataSync 任務組態、具有用於異質遷移的結構描述轉換工具的 DMS 全量載入和 CDC 機制、Snowball Edge 變體和 PB 級離線傳輸模式、用於受管檔案傳輸的 Transfer Family、服務選擇矩陣,以及困擾大多數資料工程師的規範考試陷阱。到最後,遷移服務的選擇應該像為包裹選擇正確的運輸承運商一樣簡單明瞭。
什麼是 AWS 資料遷移?
AWS 上的資料遷移是將資料從來源(本地部署伺服器、合作夥伴 SaaS、第三方資料庫、大型主機)移動到 AWS 受管儲存或分析服務中的實務。DEA-C01 考試將遷移視為任務 1.1(執行資料擷取)主題,因為「遷移」與「持續擷取」之間的界限很模糊 — DMS 透過 CDC 持續複寫,AppFlow 按排程執行,DataSync 按排程同步。關鍵洞察:選擇來源/協定/規模與您特定案例相匹配的服務,而不是一味套用通用解決方案。
五大來源類別
AWS 遷移服務針對五個不同的來源類別:SaaS 應用程式 (Salesforce, ServiceNow, Slack, Marketo, Google Analytics) → AppFlow。檔案系統 (NFS, SMB, HDFS, Azure Blob, Google Cloud Storage) → DataSync。關係型資料庫 (Oracle, SQL Server, PostgreSQL, MySQL, MariaDB, MongoDB) → DMS。PB 級離線資料(網路頻寬較差的資料中心、災難復原)→ Snowball Edge 或 Snowmobile。受管檔案傳輸協定(來自外部合作夥伴的 SFTP, FTPS, FTP, AS2)→ Transfer Family。考試中設置的服務選擇情境通常取決於來源類別與服務的正確匹配。
線上與離線遷移
線上遷移使用網路頻寬 — DataSync 透過公共網際網路或 VPN,DMS 透過私有連接,AppFlow 透過 HTTPS。離線遷移使用實體裝置 — Snowball Edge 透過 FedEx 運送硬碟,Snowmobile 則是一輛用於 EB 級傳輸的卡車。決定因素在於資料量除以可用頻寬:在 100 Mbps 的速度下,傳輸 100 TB 大約需要 90 天(而 Snowball Edge 的往返時間約為 1 週)。在設計之前請先進行計算。
白話文解釋 AWS Data Migration
遷移服務的選擇是一套僅憑名稱無法傳達其權衡取捨的系統。以下三個具體類比可以幫助記憶。
類比 1 — 擁有專業團隊的搬家公司
想像一家搬家公司。AppFlow 是辦公室搬遷團隊,專門從事商業設定 — 他們熟悉各個 SaaS 辦公室租戶(Salesforce、ServiceNow、SAP)的名稱,擁有為每個租戶預先建置的家具拆卸範本,並且可以在無需自定義規劃的情況下將辦公內容搬到您的新大樓。DataSync 是配備推車處理檔案箱的家庭搬運工 — 他們處理任何裝在標準箱子(NFS、SMB、HDFS 檔案系統)中的物品,排程從舊家取貨,送達 S3 或 EFS,並檢查每個箱子是否完好無損(資料完整性驗證)。DMS 是精緻古董專屬團隊(關係型資料庫)— 他們拆開每件物品(全量載入),然後在您住在舊家期間持續搬運新產生的物品(CDC),直到您準備好更換地址。Snowball Edge 是海運貨櫃,用於當您的東西太多,家庭搬運工需要幾個月才能搬完時 — 在您的舊家裝載貨櫃,透過 FedEx 運送,AWS 在資料中心卸貨。
陷阱:辦公室搬遷團隊 (AppFlow) 無法搬運古董瓷器 (資料庫) — 他們只懂辦公室。家庭搬運工 (DataSync) 無法搬運仍在寫入的資料庫 — 只能搬運靜態檔案。古董團隊 (DMS) 不包裝檔案箱 — 只處理關係型物品。選擇錯誤的團隊是典型的考試陷阱。結構描述轉換工具 (SCT) 是一位顧問,他在古董團隊到來之前,負責將您的古董瓷器 (Oracle PL/SQL) 翻譯成新家展示風格 (PostgreSQL 語法) — DMS 搬運資料,SCT 翻譯結構。
類比 2 — 擁有不同來源的圖書館採購部門
想像一個研究圖書館正在從不同的捐贈者那裡獲取新的藏書。AppFlow 是電子期刊訂閱處理器 — 處理對特定出版商(SaaS 連接器)的數位訂閱,通過每個出版商門戶的身份驗證,並按排程下載新期刊。DataSync 是實體書遞送處理器 — 接收來自莊園和其他圖書館的箱子,驗證數量和狀況,然後將其上架。DMS 是目錄遷移專家 — 當圖書館從一個編目系統切換到另一個編目系統時,該團隊會逐一傳輸卡片目錄記錄(全量載入),並持續添加遷移期間提交的任何新卡片 (CDC)。Snowball Edge 是一位去世教授的遺產,擁有 10,000 本藏書的私人圖書館 — 書籍太多,常規遞送處理器無法處理;圖書館向該莊園發送一輛 U-Haul (Snowball),裝滿後開回並卸貨。
圖書館有規則:期刊處理器 (AppFlow) 無法處理 U-Haul 裝載的書籍,實體書遞送處理器 (DataSync) 無法處理即時更新的動態目錄記錄,而目錄專家 (DMS) 不處理實體書。Transfer Family 是館際互借端點 — 公開一個標準協定 (SFTP),以便外部圖書館可以在不了解 AWS 的情況下存放貨物;在底層,它會將其存放在 S3 中。
類比 3 — 擁有多種模式的國際貨運公司
想像一家國際貨運公司。AppFlow 是整合夥伴關係服務台 — 與主要承運商(Salesforce-Amazon, ServiceNow-AWS)預先談妥協議,因此客戶包裹在訂購時會自動移動。DataSync 是一般貨運的空運貨物 — 檔案的高速網路傳輸,排程取貨和遞送,節流頻寬以免飽和客戶的電路。DMS 是敏感文件(資料庫)的外交快遞服務 — 處理海關(結構描述映射),維持監管鏈(交易一致性),並支援一次性遞送(全量載入)和持續快遞服務(CDC 複寫)。Snowball Edge 是散裝貨物的貨櫃船 — 當空運需要數月時間時,裝滿一個貨櫃,透過海運運送,在目的地卸貨。
貨運公司有一個計算器:用體積除以頻寬,與 Snowball 的往返時間進行比較,選擇較便宜的選項。結構描述轉換工具 (SCT) 是海關翻譯員,他在文件標準 (Oracle PL/SQL → PostgreSQL 語法) 之間進行轉換,以便外交快遞可以遞送到有不同文書要求的國家。Transfer Family 是公共投遞箱 — 任何知道地址的人都可以透過標準協定投遞包裹;貨運公司會提取並在內部路由。
AWS AppFlow — SaaS 資料擷取
AppFlow 是無程式碼的 SaaS 到 AWS 整合服務。
AppFlow 的功能
AppFlow 無需自定義整合程式碼即可將支援的 SaaS 應用程式連接到 AWS 儲存和分析服務。Salesforce 記錄流向 S3,ServiceNow 事件流向 Redshift,SAP 訂單資料流向 S3 — 這些都透過 AppFlow 主控台組態為具有來源、目標、映射、篩選條件和觸發器的流程 (flows)。
支援的 SaaS 來源與目標
AppFlow 支援 50 多個 SaaS 來源,包括 Salesforce、ServiceNow、SAP OData、Slack、Marketo、Zendesk、Google Analytics、Snowflake(既作為來源也作為目標)、Datadog 等。目標包括 S3、Redshift、Snowflake、EventBridge、Salesforce(用於回寫)和 Honeycode。這些來源是精選的 — 您不能將任意 HTTP API 添加為 AppFlow 來源。對於任意 API,使用 Lambda 或帶有自定義程式碼的 Glue 是正確的答案。
流程組態 — 觸發器、映射、篩選條件
流程的觸發器包括按需 (on-demand)(透過 API 執行一次)、排程 (scheduled)(基於 cron 的循環執行)或基於事件 (event-based)(由支援推送的來源之事件驅動)。映射定義了來源欄位到目標欄位的對應關係,包括類型轉換、串接和基本的轉換(如字串截斷)。篩選條件會在記錄到達目標之前將其捨棄 — 例如,僅篩選處於「結案贏得 (Closed Won)」階段的 Salesforce 機會。
AppFlow PrivateLink 支援
對於支援的來源和目標,AppFlow 使用 AWS PrivateLink 將流量保留在 AWS 骨幹網上 — 絕不會經過公共網際網路。這對於擔心資料離開 AWS 網路的法規遵循使用案例非常重要。Salesforce、Slack、Snowflake 和 ServiceNow 都支援搭配 AppFlow 使用 PrivateLink。
何時使用 AppFlow
當情境提到特定的 SaaS 來源 — Salesforce, ServiceNow, SAP, Slack, Marketo, Snowflake 時,考試通常會將 AppFlow 作為答案。任何其他內容(自定義 REST API、內部 HTTP 服務、任意資料庫)都不是 AppFlow — 它們是 Lambda、Glue 或其他工具。AppFlow 的價值在於處理了身份驗證、節流和欄位映射的預先建置連接器。
AWS AppFlow 是一種無程式碼、全受管的整合服務,用於在特定的 SaaS 應用程式(Salesforce、ServiceNow、SAP、Slack、Marketo、Snowflake 等 50 多個)與 AWS 儲存和分析服務之間移動資料。 流程可組態來源連接器、目標、欄位映射、篩選條件和觸發器(按需、排程、基於事件),無需任何程式碼。AppFlow 不支援任意 HTTP API — 它需要預先建置的 SaaS 連接器。PrivateLink 整合可為支援的連接器將流量保留在 AWS 骨幹網上。當 DEA-C01 情境命名了支援清單中的 SaaS 來源時,此服務是正確答案;對於自定義 REST API、內部應用程式整合或關係型資料庫遷移,它是錯誤答案。
AWS DataSync — 檔案系統遷移
DataSync 是用於遷移到 S3、EFS、FSx 及其反向操作的受管檔案傳輸服務。
支援的來源與目標
DataSync 來源包括本地部署 NFS、SMB、HDFS、自我管理物件儲存(相容 S3)、Azure Blob Storage、Google Cloud Storage 和 AWS 檔案服務。目標包括 S3(任何儲存類別)、EFS、FSx for Windows、FSx for Lustre、FSx for OpenZFS 和 FSx for NetApp ONTAP。支援跨區域和跨帳戶傳輸。
DataSync 代理程式與任務
對於本地部署來源,您需要在您的網路上將 DataSync 代理程式部署為虛擬機器 (VMware, KVM, Hyper-V, 或 AWS Outposts) — 代理程式從來源儲存讀取,並透過公共網際網路、VPN 或 Direct Connect 推送到 AWS。任務 (Tasks) 定義了來源位置、目的地位置、排程、頻寬限制和篩選規則。每個任務都會傳輸資料並報告詳細指標,包括傳輸的檔案、傳輸的位元組和驗證狀態。
驗證與完整性
DataSync 在多個點驗證檔案完整性 — 來源處的總和檢查碼、傳輸後的總和檢查碼,以及確保沒有靜默損壞的比較。驗證模式是可組態的:POINT_IN_TIME_CONSISTENT(預設)、ONLY_FILES_TRANSFERRED(較快,僅驗證新檔案)或 NONE(最快,不驗證)。對於大多數遷移,預設值是正確的。
頻寬節流與排程
任務可以節流到最大頻寬(以 MiB/s 為單位),以避免在工作時間使本地部署網路飽和。排程可讓您按 cron 表達式執行任務 — 例如,午夜進行全量同步,工作時間內每小時進行增量同步。
何時使用 DataSync
當來源是檔案系統或物件儲存,且您需要具有驗證、排程和頻寬控制的線上受管傳輸時,DataSync 就是答案。對於關係型資料庫遷移(使用 DMS)、SaaS 資料擷取(使用 AppFlow)或 PB 級離線傳輸(使用 Snowball Edge),它是錯誤答案。
AWS 資料庫遷移服務 (DMS)
DMS 是將關係型和某些 NoSQL 資料庫遷移到 AWS 的規範服務。
DMS 的功能
DMS 以最小的停機時間將資料從來源資料庫遷移到目標資料庫。兩種操作模式:全量載入 (full load) 會一次性複製來源資料,而 變更資料擷取 (CDC) 則持續複寫從來源到目標的進行中變更。組合模式(全量載入 + 持續 CDC)可讓您在來源仍在使用時進行遷移,然後以秒級的停機時間進行切換。
支援的來源與目標
來源包括 Oracle, SQL Server, MySQL, MariaDB, PostgreSQL, MongoDB, Aurora, 以及這些資料庫的 RDS 版本, IBM Db2, SAP ASE, Azure SQL 等。目標包括上述所有服務,再加上 Redshift, S3 (作為 Parquet/CSV), DynamoDB, OpenSearch, Kinesis Data Streams, Kafka, Neptune 和 DocumentDB。這個矩陣非常龐大且經常被測試 — 支援同質(Oracle 到 Oracle)和異質(Oracle 到 PostgreSQL)遷移。
DMS 複寫執行個體
複寫執行個體 (replication instance) 是執行 DMS 引擎的 EC2 支援運算。大小類似於 RDS 執行個體(T3, R5, C5 系列,多種規格)。Multi-AZ 部署可為生產環境遷移提供高可用性。執行個體充當來源和目標之間的具狀態管道 — 它從來源讀取、根據需要進行轉換,然後寫入目標。
DMS 任務與端點
任務 (task) 描述了一次遷移:來源端點、目標端點、遷移類型(全量載入、CDC 或全量載入 + CDC)、資料表映射(要遷移哪些資料表,可選篩選條件和欄位轉換)以及複寫設定。端點 (Endpoints) 描述了如何連接到來源或目標,包括認證(從 Secrets Manager 引用)和連線屬性。
用於異質遷移的結構描述轉換工具 (SCT)
DMS 本身不會在異質引擎之間轉換結構描述 — Oracle PL/SQL 預存程序在沒有翻譯的情況下無法在 PostgreSQL 上執行。AWS 結構描述轉換工具 (SCT) 是一個獨立的桌面或容器應用程式,它會分析來源結構描述、產生等效的目標結構描述和預存程序、標記需要手動檢閱的項目,並將轉換後的結構描述套用於目標。SCT 在 DMS 之前執行 — 先轉換結構描述,然後執行 DMS 遷移資料。
DMS CDC 機制
CDC 讀取來源資料庫的交易記錄(Oracle redo log, SQL Server transaction log, PostgreSQL WAL, MySQL binlog, MongoDB oplog)並將相同的操作套用於目標。延遲通常為秒級。來源資料庫必須組態足夠長的記錄保留時間,以便 CDC 在任何暫停後都能追趕。CDC 可以作為持續複寫無限期執行,也可以在來源退役後終止。
將 DMS 以 Parquet 格式輸出到 S3
DEA-C01 的一個常見模式:將 DMS 輸出到 S3,採用 Parquet 格式並組態 cdc_path,將進行中的 CDC 事件作為 Parquet 檔案寫入 S3,並按日期分區。這是將關係型來源複寫到資料湖的規範模式 — DMS 負責來源端的記錄讀取,S3 儲存變更,Glue 目錄和 Athena 查詢結果。結合 S3 + Glue + Athena,DMS-to-S3 可以構建一個由生產資料庫饋送的完整操作資料湖。
DMS 遷移資料,但在異質引擎之間不轉換結構描述 — 請使用 AWS 結構描述轉換工具 (SCT) 將 Oracle PL/SQL 翻譯為 PostgreSQL 語法、SQL Server T-SQL 翻譯為 PostgreSQL 函數,或任何其他跨引擎翻譯,然後執行 DMS 移動資料。 這種分離是遷移服務領域最常見的 DEA-C01 陷阱。SCT 分析來源結構描述、產生等效的目標結構描述和預存程序、標記需要手動檢閱的項目(某些 Oracle 功能沒有 PostgreSQL 等效項),並產生一個量化轉換完整性的評估報告。DMS 在 SCT 之後接手 — 全量載入將資料複製到已轉換的目標結構描述中,CDC 保持目標同步直到切換。跳過 SCT 並嘗試單獨使用 DMS 進行異質遷移會導致目標沒有可用的結構描述,也沒有預存程序。
AWS Snowball Edge — PB 級離線傳輸
Snowball Edge 是用於離線資料傳輸的實體裝置。
當 Snowball 勝過網路時
將資料量除以持續網路頻寬來計算傳輸時間。在 100 Mbps 的持續速度下,100 TB 大約需要 90 天;而 Snowball Edge 的往返時間約為 1 週。損益平衡點大約是每 100 Mbps 頻寬對應 10 TB 資料;低於此值,線上傳輸獲勝;高於此值,Snowball 獲勝。Snowmobile(一輛載重 100 PB 的 45 英尺卡車)用於 EB 級的資料中心撤離。
Snowball Edge 變體
主要有兩種變體。Snowball Edge 儲存最佳化 (Storage Optimized) (210 TB 可用) 用於單純的儲存傳輸 — 大容量,適度的運算能力。Snowball Edge 運算最佳化 (Compute Optimized)(同樣具備儲存空間,但運算能力更強,可選 GPU)用於邊緣使用案例,您可能希望在傳輸前在裝置上執行 Lambda 或 EC2 進行處理。對於單純的遷移,儲存最佳化通常是典型選擇。
Snowball 工作流程
透過主控台訂購;AWS 運送裝置。收到後,插入電源和網路,使用主控台提供的金鑰解鎖,並使用 Snowball 用戶端或 NFS 端點將資料複製到裝置上。完成後,透過預付費運送標籤寄回。AWS 接收、驗證並複製到目標 S3 儲存貯體。一個裝置的總往返時間通常為 1-2 週,可透過訂購多個裝置並行處理。
加密與法規遵循
Snowball Edge 上的資料使用 AES-256 進行靜態加密。加密金鑰由您帳戶中的 KMS 持有;裝置本身從不持有金鑰。AWS 上傳到 S3 後,裝置會按照 NIST 標準進行抹除。監管鏈可透過 CloudTrail 進行稽核。
何時使用 Snowball
當情境提到 PB 級、有限頻寬、本地部署資料中心撤離或「按當前頻寬需要數週傳輸時間」時,考試通常會將 Snowball 作為答案。對於較小的傳輸(幾 TB),透過網路的 DataSync 速度更快且成本更低。
AWS Transfer Family — 受管檔案傳輸端點
Transfer Family 公開受管的 SFTP、FTPS、FTP 和 AS2 端點,將資料直接存入 S3 或 EFS。
支援的協定
SFTP (SSH 檔案傳輸協定,預設值) 用於使用基於 SSH 的檔案傳輸的合作夥伴。FTPS (TLS 之上的 FTP) 用於具有 TLS 加密的舊式 FTP 用戶端。FTP (純文字) 僅限內部網路使用。AS2 (適用性聲明 2) 用於 B2B EDI 文件交換。
身份供應商
Transfer Family 支援透過以下方式進行身份驗證:服務受管使用者 (在 AWS 中管理)、AWS Directory Service、透過 Lambda 或 API Gateway 的自定義身份供應商,或 直接使用 IAM 角色。身份供應商決定了誰可以通過身份驗證以及他們可以存取哪些 S3 儲存貯體或 EFS 路徑。
資料工程的使用案例
規範模式:外部合作夥伴(供應商、客戶、監管機構)每天透過 SFTP 發送檔案。Transfer Family 公開一個 SFTP 端點,將這些檔案直接存放在 S3 中,下游的 Lambda 或 Glue 會在那裡提取。如果沒有 Transfer Family,您需要執行一台 EC2 SFTP 伺服器,這會產生所有維運成本;Transfer Family 是受管的替代方案。
何時使用 Transfer Family
當情境提到外部合作夥伴使用標準檔案傳輸協定時,考試通常會將 Transfer Family 作為答案。對於內部 AWS 到 AWS 或 AWS 到本地部署,DataSync 通常更合適。對於 AWS 原生用戶端的 S3 存取,直接使用 S3 API 是合適的。
遷移服務選擇矩陣
DEA-C01 考試定期測試服務選擇。
來源與服務匹配
具名 SaaS 來源 (Salesforce, ServiceNow, SAP, Slack, Marketo, Snowflake) → AppFlow。檔案系統或物件儲存 (NFS, SMB, HDFS, Azure Blob, Google Cloud Storage) → DataSync。關係型或 NoSQL 資料庫 (Oracle, SQL Server, MySQL, MongoDB 等) → DMS。PB 級、有限頻寬離線傳輸 → Snowball Edge 或 Snowmobile。使用 SFTP/FTPS/FTP/AS2 協定的外部合作夥伴 → Transfer Family。
結構描述轉換 vs 資料遷移
DMS 負責資料遷移 — 將資料列從來源移動到目標。結構描述轉換工具 (SCT) 負責結構描述轉換 — 在異質引擎之間翻譯 DDL 和預存程序。它們按順序執行:先 SCT,後 DMS。
線上與離線
線上 — DataSync, DMS, AppFlow, Transfer Family — 使用網路頻寬,適用於頻寬除以資料量能得到合理時間線的情況。離線 — Snowball Edge, Snowmobile — 使用實體裝置,適用於頻寬有限的 PB 級規模。
將線上傳輸時間計算為資料量除以持續頻寬,然後與約 1 週的 Snowball Edge 往返時間進行比較 — 損益平衡點大約是每 100 Mbps 持續頻寬對應 10 TB 資料。 在 100 Mbps 的速度下,低於 10 TB 時,透過 DataSync 在線傳輸獲勝;高於此值時,Snowball Edge 獲勝。對於 100 Mbps 下的 1 PB 資料中心撤離,線上傳輸大約需要 2.5 年;而並行使用十台 Snowball Edge 儲存最佳化裝置大約在 2 週內即可完成。考試中可能會將其設為計算題,例如「我們需要在 2 週內使用 1 Gbps 頻寬傳輸 500 TB」— 在 1 Gbps 的速度下,每週可以線上傳輸大約 100 TB,因此 500 TB 線上傳輸需要 5 週,而透過並行的 Snowball Edge 裝置大約需要 2 週。務必進行計算;不要憑直覺假設線上或離線。
遷移服務的常見考試陷阱
DEA-C01 考試設置了一套固定的陷阱。請記住這五個。
陷阱 1 — DMS 轉換結構描述
最常被提及的陷阱。DMS 僅遷移資料;它不會在異質引擎之間轉換結構描述。使用 SCT 進行結構描述轉換,然後使用 DMS 進行資料遷移。
陷阱 2 — 使用 DataSync 進行資料庫遷移
情境描述了將 Oracle 資料庫遷移到 RDS。錯誤答案:DataSync。DataSync 處理檔案系統和物件儲存,而不是關係型資料庫。請使用 DMS。
陷阱 3 — 將 AppFlow 用於任意 HTTP API
情境描述了從自定義內部 REST API 擷取資料。錯誤答案:AppFlow。AppFlow 需要預先建置的 SaaS 連接器 — 它不支援任意 HTTP。請使用具有自定義程式碼的 Lambda 或 Glue。
陷阱 4 — 將 Snowball 用於小規模傳輸
情境描述了遷移 5 TB 的檔案資料。錯誤答案:Snowball Edge。在合理的頻寬 (100 Mbps+) 下,5 TB 資料在幾天內即可線上傳輸完畢,比 Snowball 往返時間更快。請使用 DataSync。
陷阱 5 — 不帶 CDC 的 DMS
情境描述了遷移一個在遷移期間仍有寫入操作的生產資料庫。錯誤答案:僅 DMS 全量載入。需要 CDC 模式來捕捉全量載入期間及之後的寫入,從而實現近乎零停機時間的切換。
陷阱 6 — 沒有頻寬限制的 DataSync
情境提到擔心在工作時間使本地部署網路飽和。錯誤答案:DataSync 預設組態。應在任務上組態頻寬節流,並排程在非工作時間執行。
陷阱 7 — Transfer Family 與 DataSync 的混淆
情境描述了外部合作夥伴透過 SFTP 每天推送檔案。錯誤答案:DataSync(它用於 AWS 管理的基於提取的傳輸)。正確答案:Transfer Family,它公開一個 SFTP 端點,合作夥伴將檔案推送到 S3 中。
詢問如何單獨使用 DMS 將 Oracle 遷移到 PostgreSQL 的情境是一個洩漏陷阱 — DMS 不會將 Oracle PL/SQL 預存程序、自定義資料類型或專有語法翻譯為 PostgreSQL 等效項。 如果不先使用結構描述轉換工具,目標 PostgreSQL 就沒有預存程序、沒有函數、沒有觸發器 — 只有等待 DMS 填充的空資料表。甚至資料表 DDL 也可能存在類型不匹配(Oracle NUMBER 對應 PostgreSQL NUMERIC,Oracle VARCHAR2 對應 PostgreSQL VARCHAR),DMS 無法乾淨地解決這些問題。正確的順序是:執行 SCT 分析 Oracle 結構描述,檢閱不支援項目的轉換報告,將轉換後的結構描述套用於 PostgreSQL,然後組態 DMS 將資料遷移到現在已就緒的目標中。DEA-C01 考試將此作為一個多步驟答案,其中 SCT 先於 DMS — 對於異質遷移選擇僅限 DMS 是錯誤的。
常見考試陷阱第二輪 — 更多選擇陷阱
還有幾個值得記住的陷阱。
陷阱 8 — 輸出到 S3 的 DMS 始終代表 Parquet
DMS 輸出到 S3 支援 CSV、Parquet 和 JSON。根據組態,預設值可能是 CSV。請明確指定 Parquet 以獲得可用於分析的輸出。
陷阱 9 — AppFlow 僅支援提取
AppFlow 對於某些連接器是雙向的(Salesforce 既作為來源也作為目標),但大多數流程是 SaaS 到 AWS 的提取。僅在允許的連接器上才支援將 AWS 資料回寫到 SaaS。
陷阱 10 — 將 Snowball 運算最佳化用於資料遷移
Snowball Edge 運算最佳化具有 GPU,專為邊緣處理而設計。對於單純的資料遷移(典型的 DEA-C01 使用案例),儲存最佳化是正確的。運算最佳化適用於「在運送前在邊緣進行處理」的工作負載。
遷移服務矩陣:SaaS 使用 AppFlow,檔案使用 DataSync,資料庫使用 DMS(異質結構描述轉換使用 SCT),PB 級離線使用 Snowball Edge,SFTP/FTPS 合作夥伴端點使用 Transfer Family。 這是每個 DEA-C01 遷移問題都需要記住的一句話。如果情境關鍵字是「Salesforce」或「ServiceNow」或「SAP」,答案是 AppFlow。如果關鍵字是「NFS」或「SMB」或「檔案系統」或「HDFS」,答案是 DataSync。如果關鍵字是「Oracle」或「SQL Server」或「MySQL」或「PostgreSQL」或「資料庫遷移」,答案是 DMS — 如果是異質遷移則加上 SCT。如果關鍵字是「PB 級」或「頻寬有限」或「運送實體裝置」,答案是 Snowball Edge。如果關鍵字是「外部合作夥伴」或「SFTP」或「FTPS」,答案是 Transfer Family。停止嘗試讓一種服務包辦所有事情;AWS 為每個來源類別設計了專屬服務。
關鍵數字與必須記住的遷移事實
AppFlow
- 50 多個預先建置的 SaaS 連接器 (Salesforce, ServiceNow, SAP, Slack, Marketo, Snowflake 等)
- 觸發器:按需、排程、基於事件
- 目標:S3, Redshift, Snowflake, EventBridge, 支援回寫的 SaaS
- 部分連接器支援 PrivateLink
DataSync
- 來源:NFS, SMB, HDFS, 相容 S3, Azure Blob, Google Cloud Storage
- 目標:S3 (任何類別), EFS, FSx (所有變體)
- 驗證模式:POINT_IN_TIME_CONSISTENT (預設), ONLY_FILES_TRANSFERRED, NONE
- 代理程式部署為虛擬機器 (VMware, KVM, Hyper-V, AWS Outposts)
DMS
- 來源:Oracle, SQL Server, MySQL, MariaDB, PostgreSQL, MongoDB, Db2, SAP ASE 等
- 目標:同來源,外加 Redshift, S3, DynamoDB, OpenSearch, Kinesis, Kafka, Neptune, DocumentDB
- 模式:全量載入、CDC、全量載入 + CDC
- 用於高可用性的 Multi-AZ 複寫執行個體
結構描述轉換工具 (SCT)
- 分析來源結構描述,產生目標結構描述和預存程序
- 標記需要手動檢閱的項目
- 在 DMS 之前執行,而非同時執行
- 桌面或容器部署
Snowball Edge
- 儲存最佳化:210 TB 可用,基礎運算
- 運算最佳化:較小儲存,更強運算,GPU 選項
- 往返時間:約 1 週
- 加密:AES-256,金鑰存放在客戶 KMS
Transfer Family
- 協定:SFTP, FTPS, FTP, AS2
- 身份驗證:服務受管、Directory Service、自定義 Lambda/API Gateway、IAM
- 目標:S3, EFS
損益平衡計算
- 線上 (DataSync) vs 離線 (Snowball):持續頻寬下每 100 Mbps 對應約 10 TB
- 低於損益平衡點使用線上;高於則使用離線
DEA-C01 考試優先事項 — 用於資料遷移的 AppFlow、DataSync、DMS 和 Snowball。 此主題在 DEA-C01 考試中佔有很大權重。掌握每種 AWS 服務公開的權衡、決策邊界以及成本/效能觸發因素 — 考試將測試那些取決於了解哪種服務是錯誤答案的情境,而不僅僅是哪種是正確答案。
FAQ — AWS 資料遷移常見問題
Q1 — 什麼時候應該使用 AppFlow 與 Lambda 進行 SaaS 資料擷取?
當來源在 AppFlow 連接器清單中(Salesforce、ServiceNow、SAP、Slack、Marketo、Snowflake 等 50 多個),且您想要無程式碼、按排程且全受管的提取時,請使用 AppFlow。AppFlow 處理身份驗證、節流、重試、欄位映射、篩選條件,以及在支援的情況下整合 PrivateLink。當來源是自定義 REST API、內部 HTTP 服務、不在 AppFlow 連接器清單中的 SaaS,或者當您需要的轉換邏輯超出了 AppFlow 映射支援的範圍時,請使用 具有自定義程式碼的 Lambda 或 Glue。考試將此設為「按每日排程從 Salesforce 擷取資料」— AppFlow 排程流程。「每 5 分鐘從我們的內部定價 API 擷取一次」— EventBridge Scheduler 觸發的 Lambda,而非 AppFlow。決策因素在於連接器的可用性:如果 AppFlow 有預先建置的連接器,請使用它;否則,使用 Lambda 或 Glue 進行建構。
Q2 — DataSync 和 DMS 有什麼區別?
DataSync 移動檔案和物件 — NFS、SMB、HDFS、相容 S3、Azure Blob、Google Cloud Storage 到 S3、EFS 或 FSx。它用於非結構化資料,不適用於動態關係型資料庫。DMS 遷移關係型和某些 NoSQL 資料庫 — Oracle、SQL Server、MySQL、PostgreSQL、MongoDB 到 AWS 原生或 AWS 託管的等效服務,以及 S3 (作為 Parquet)、Redshift、Kinesis 和 Kafka 等目標。它支援全量載入和 CDC,以實現近乎零停機時間的遷移。它們絕不會重疊:資料庫絕不會使用 DataSync 遷移,檔案系統也絕不會使用 DMS 遷移。考試中設置的混淆情境通常會含糊地描述來源(例如「資料存放區」),以測試您是否仔細閱讀 — 檔案系統 → DataSync,資料庫 → DMS。
Q3 — 我該如何在 AWS 上遷移異質資料庫 (Oracle 到 PostgreSQL)?
這是一個分兩步走的過程。步驟 1:結構描述轉換工具 (SCT) 分析 Oracle 來源,產生等效的 PostgreSQL 結構描述(包括資料表、索引、外鍵和預存程序),標記需要手動檢閱的項目(某些 Oracle 功能沒有直接的 PostgreSQL 等效項),並產生一個量化轉換完整性的評估報告。將轉換後的結構描述套用於目標 PostgreSQL 資料庫。手動重寫 SCT 標記的項目。步驟 2:DMS 將資料遷移到現在已就緒的 PostgreSQL 目標。組態一個具有 Oracle 來源端點、PostgreSQL 目標端點和遷移類型「全量載入 + CDC」的 DMS 任務,以便遷移捕捉全量載入期間的所有寫入並持續複寫直到切換。驗證後,將應用程式流量重新導向到 PostgreSQL 並停止 DMS 任務。跳過 SCT 並嘗試單獨使用 DMS 進行異質遷移是 DEA-C01 最常見的陷阱 — DMS 遷移資料,不遷移結構描述。
Q4 — 什麼時候應該使用 Snowball Edge 與 DataSync?
首先計算線上傳輸時間:資料量除以持續頻寬等於時間。與約 1 週的 Snowball Edge 往返時間進行比較。當線上傳輸時間合理(數天而非數月)時,請使用 DataSync — 通常低於每 100 Mbps 頻寬對應 10 TB 資料,或在高頻寬下按比例增加。當線上傳輸時間無法接受時,請使用 Snowball Edge — PB 級規模、嚴重受限的頻寬、資料中心撤離時間表。針對 EB 級規模(罕見,主要用於企業資料中心退役),請使用 Snowmobile。多台並行的 Snowball Edge 裝置可線性擴展容量 — 十台裝置運送 2 PB 的時間與一台裝置運送 200 TB 的時鐘時間相同。考試將此設為計算題:進行計算,與往返時間進行比較,根據問題要求選擇較便宜或較快的選項。不要憑感覺假設;務必進行計算。
Q5 — DMS CDC 如何處理遷移期間的來源資料庫寫入?
DMS CDC 即時讀取來源資料庫的交易記錄(Oracle redo log, SQL Server transaction log, PostgreSQL WAL, MySQL binlog, MongoDB oplog)並將相同的操作套用於目標。來源資料庫必須組態足夠長的記錄保留時間以涵蓋遷移視窗 — 例如,保留 MySQL binlog 24-48 小時,以便 DMS 在暫停後可以追趕。組合的「全量載入 + CDC」模式在 CDC 緩衝進行中變更的同時執行全量載入;全量載入完成後,CDC 會套用緩衝的變更,然後即時繼續。當 CDC 追趕上時,從來源到目標的延遲通常為秒級。切換過程:短暫暫停對來源的應用程式寫入(幾秒到幾分鐘),等待 CDC 清空剩餘的緩衝變更,將應用程式流量重新導向到目標,然後停止 DMS 任務。這實現了近乎零停機時間的遷移。考試將「在生產環境運作時進行遷移」設為規範的全量載入加 CDC 情境。
Q6 — 我該如何處理外部合作夥伴將檔案推送到我的 AWS 資料湖?
使用 AWS Transfer Family 公開受管的 SFTP、FTPS、FTP 或 AS2 端點,驗證合作夥伴身份並將其檔案直接存入 S3 (或 EFS)。針對少量合作夥伴,透過服務受管使用者組態身份;針對企業整合,使用 AWS Directory Service;針對複雜的身份驗證流程,使用自定義 Lambda 或 API Gateway 身份供應商。每個合作夥伴身份都對應到特定的 S3 儲存貯體和前置詞,因此合作夥伴 A 無法看到合作夥伴 B 的檔案。檔案存入 S3 後,下游處理遵循標準的事件驅動模式:S3 事件通知觸發 Lambda 或 Glue 作業,負責驗證、轉換並註冊資料。與執行 EC2 SFTP 伺服器相比,優點顯著 — Transfer Family 是全受管的,自動擴展,與 CloudWatch 整合進行稽核,並按協定小時加傳輸資料計費。考試將「外部合作夥伴使用 SFTP」的情境設為以 Transfer Family 作為答案,而不是 EC2 加 OpenSSH 或 DataSync (DataSync 是基於提取的;Transfer Family 對於合作夥伴是基於推送的)。
Q7 — DMS 可以複寫到 S3 上的資料湖嗎?
可以 — DMS 到 S3 是構建由關係型資料庫饋送之資料湖的規範模式之一。組態具有關係型來源端點和 S3 目標端點的 DMS 任務,選擇 Parquet 作為目標格式(預設值可能是 CSV;請指定 Parquet 以獲得可用於分析的輸出),並組態 cdc_path,以便將 CDC 事件作為按日期分區的進行中檔案寫入 S3。使用遷移模式「全量載入 + CDC」,以便將來源的初始狀態作為 Parquet 轉儲到 S3,並將進行中的變更作為新的 Parquet 檔案附加。結合 Glue 資料目錄(執行爬蟲或使用分區投影)和 Athena 來查詢產生的資料湖。這種模式在 DEA-C01 中被頻繁測試,因為它是真實的生產架構:生產 OLTP 資料庫保留在 Oracle 或 PostgreSQL 中,分析工作負載透過 Athena 或 Redshift Spectrum 查詢 S3 複寫副本,且分析查詢不會影響 OLTP 效能。考試將此設為「在不影響 OLTP 效能的情況下,將生產資料庫複寫到資料湖」— 答案是將 DMS 輸出到 S3 且格式為 Parquet。
延伸閱讀 — 遷移服務官方 AWS 文件
權威的 AWS 來源包括:涵蓋連接器、流程、映射和 PrivateLink 整合的 AWS AppFlow 使用者指南;涵蓋代理程式、任務、位置和驗證的 AWS DataSync 使用者指南;涵蓋複寫執行個體、端點、任務和 CDC 的 AWS 資料庫遷移服務使用者指南;涵蓋分析、轉換和評估報告的 AWS 結構描述轉換工具使用者指南;涵蓋裝置變體、訂購和工作流程的 AWS Snowball Edge 開發人員指南;以及涵蓋協定支援、身份供應商和 S3/EFS 目標的 AWS Transfer Family 使用者指南。
AWS 遷移白皮書提供了在線上和離線傳輸之間進行選擇、計算頻寬預算以及在資料遷移前安排結構描述轉換順序的架構框架。AWS 資料庫部落格有多篇關於 DMS 效能調整、異質遷移模式和以 S3 為目標之架構的深入探討文章。AWS 大數據部落格涵蓋了 DataSync 到 S3 的模式、用於分析擷取的 AppFlow 以及 Snowball Edge 案例研究。最後,AWS 解決方案庫包含了針對常見遷移情境(Oracle 到 Aurora-PostgreSQL、本地部署 Hadoop 到 S3 以及 SaaS 到資料湖管道)的預先建置參考架構,這些架構將 DEA-C01 模式編碼為可部署的範本。