移轉龐大資料集的策略

更新日期:2017 年 10 月 11 日

本文將介紹關於資料移轉的基本概念並說明一些相關的做法,告訴您如何選擇最適當的處理方式,以便將資料移轉至 Cloud Storage。另外,我們也將探討關於使用 gsutil 工具進行數位網路移轉的最佳做法。

將現有業務營運遷移至 Google Cloud Platform (GCP) 時,通常需要將大量資料移轉至 Cloud Storage。Cloud Storage 是具備可用性高且耐用的物件儲存服務,不會限制可儲存在值區中的檔案數量,但每個檔案的大小上限為 5 TB。Cloud Storage 經過最佳化處理,能夠與 BigQueryCloud Dataflow 等其他 GCP 服務搭配使用,讓您使用可更廣泛運用的 GCP 架構,輕鬆執行雲端式資料工程與分析。

如要充分善用本文,您應該要能概略回答下列問題:

  • 您有多少資料需要移轉?
  • 您的資料位於何處?例如,資料是位於資料中心,還是位於其他雲端服務供應商?
  • 資料位置有多少可用的網路頻寬?
  • 您需要一次性移轉資料,還是定期移轉資料?

估算費用

就目前來說,如果您是將資料移轉至 Cloud Storage,不會收取輸入流量費用。gsutil 工具和 Storage 移轉服務皆為免費提供。如需最新定價詳細資料,請參閱 GCP 網路定價頁面

移轉資料之後,您需要根據儲存空間網路作業支付 Cloud Storage 使用量費用。您也應考慮不同儲存空間級別的費用相關注意事項,並根據您的用途選擇合適的儲存空間級別。Cloud Storage API 為各級別通用的介面,可允許相同的 API 存取所有儲存空間級別。詳情請參閱 Cloud Storage 定價一文。

Transfer Appliance 的定價包含使用費、運輸費用及可能產生的延遲費用。如果是將設備中的內容擷取至 Cloud Storage,則不需付費。使用 Transfer Appliance 移轉資料之後,則須根據一般 Cloud Storage 使用費率支付費用。詳情請參閱 Transfer Appliance 定價政策頁面。

資料移轉解決方案可能也會產生 Google 之外的費用。這類費用包括但不限於:

  • 來源供應商的輸出和作業費用。
  • 線上或離線移轉作業的第三方服務費。
  • 第三方網路費用。

選取合適的資料移轉方法

下圖顯示將資料移轉至 Cloud Storage 的各種方法。

讓資料進入 Cloud Storage

  • x 軸資料來源與 GCP 之間的容易存取或「接近」程度。在這種情況下,具有優異網際網路連線的來源的距離非常短,而沒有網際網路連線的來源則非常遙遠。
  • Y 軸代表要移轉的資料量。

下圖可協助您瀏覽本文的其餘部分,並在過程中引導您選取合適的工具。

選取您的工具

定義「接近」

您的資料與 GCP 之間的「接近」程度並沒有明確的定義。這終究是取決於資料大小、網路頻寬以及用途的性質。

下圖可協助您根據資料大小和網路頻寬估算資料移轉時間。請務必在特定用途的情境中分析移轉時間。在某個工作流程中,可能無法接受在三小時中移轉 1 TB 的資料,但在另一個工作流程中,可能可以接受花費 30 小時移轉相同的資料量。

估算移轉時間

讓資料更接近 GCP

本節探討如何使用兩個主要槓桿 (資料大小和網路頻寬) 來改善「接近程度」的方法。

減少資料大小

您可以在來源刪除重複資料並壓縮資料,藉此縮減資料大小。壓縮並刪除重複資料能夠將需要透過網路移轉的資料量降至最低,同時縮短移轉的時間並降低儲存空間的費用。如果您的資料包含許多小型檔案,使用 tar -cvzf 等工具將檔案壓縮並組成群組可大幅加快使用 gsutil 或 Storage 移轉服務時的移轉速度。

壓縮資料是有得有失的方法,壓縮的缺點在於可能需要大量 CPU 和時間。如果您是為了封存而儲存檔案,請考慮先壓縮檔案,然後再將檔案移轉至 Cloud Storage。如果您打算在應用程式中使用移轉的檔案,可能需要解壓縮 Cloud Storage 中的資料。在這種情況下,您應以未壓縮的狀態移轉檔案。

一般的建議是壓縮文字資料可能會導致 4:1 的壓縮比率。二進位檔和多媒體資料的失真壓縮演算法 (例如 JPEG 或 MP3) 通常是縮減其大小的最佳選擇。

請盡量選擇使用精簡的檔案格式,例如 Avro 檔案本身就是精簡格式。

增加網路頻寬

增加網路頻寬的方法取決於您選擇的 GCP 連線方式。您可以透過下列三種主要方法連線至 GCP:

  • 公開網際網路連線
  • 直接對等互連
  • Cloud Interconnect

使用公開網際網路連線進行連線

使用公開網際網路連線時,網路總處理量是無法預測的,因為您會受限於網際網路服務供應商 (ISP) 的容量和轉送。ISP 可能會提供有限的服務水準協議 (SLA),或完全不提供任何項目。另一方面,這些連線的費用相對較低。

使用直接對等互連進行連線

您可以使用直接對等互連來存取 Google 網路,盡可能減少網路躍點。這個選項讓您交換自己的網路與 Google 遍及全球的網路 (PoP) 之間的網際網路流量。這樣做可減少您的網路與 Google 網路之間的躍點數量。

使用 Cloud Interconnect 進行連線

Cloud Interconnect 透過其中一個 Cloud Interconnect 服務供應商提供直接 GCP 連線。這個服務提供更一致的大型資料移轉總處理量,而且通常包含網路可用性和效能的 SLA。 如要進一步瞭解,請直接聯絡服務供應商

將資料移轉至 GCP

您可能是從其他雲端服務或從內部部署資料中心移轉資料。您使用的移轉方法取決於您的資料與 GCP 的接近程度。本節探討下列選項:

  • 從雲端移轉:非常近
  • 從主機代管或內部部署儲存空間移轉:近
  • 從遠處移轉

從雲端移轉

如果資料來源是 Amazon S3 值區、HTTP/HTTPS 位置或 Cloud Storage 值區,您可使用 Storage 移轉服務來移轉資料。

從主機代管或內部部署儲存空間移轉

如果您是從主機代管服務供應商或內部部署資料中心操作,其位置與 GCP 相當「近」,請使用 gsutil 或第三方工具移轉資料。

gsutil

gsutil 工具是適用於 Windows、Linux 和 Mac 的開放原始碼指令列公用程式。

  • 多執行緒/多重處理:適合移轉大量檔案時使用。
  • 平行複合式上傳:可分割大型檔案、平行移轉區塊,以及在目的地撰寫。
  • 重試:適用於暫時網路故障以及 HTTP/4295xx 錯誤代碼。
  • 續傳:在發生錯誤後繼續移轉作業。
限制

gsutil 未提供網路調節的內建支援。您必須將它與 Trickle 等工具搭配使用,才能控制網路層的流量。如果您擁有作業系統層級的權限,而且對低層級微調有把握,可以調整 TCP 參數和/或提高移轉總處理量速率,以改善移轉時間。

gsutil 工具非常適合用於一次性移轉或手動初始化的移轉。如果您需要建立進行中的資料移轉管道,則須將 gsutilCron 工作形式執行,或使用 Airflow 等其他工作流程管理工具自動化調度管理工作。

加密資料

gsutil 工具可透過傳輸層加密 (HTTPS) 來加密傳輸中的流量。Cloud Storage 會以加密的形式儲存資料,而且可讓您使用自己的加密金鑰。如要瞭解詳細安全性建議,請參閱安全性和隱私權注意事項

多執行緒移轉

使用單一執行緒 gsutil 程序在網路上移轉多個檔案時,移轉可能不會使用所有可用的頻寬。下圖顯示四個檔案的單一執行緒移轉。每個檔案都必須等候先前的檔案移轉作業完成,因而浪費未使用的頻寬。

單一執行緒移轉

您可平行複製檔案,以使用更多可用的頻寬並加速資料移轉。下圖說明四個檔案的多執行緒移轉。

多執行緒移轉

根據預設,gsutil 工具可使用單一執行緒移轉多個檔案。如要啟用多執行緒複本,請在執行 cp 指令時使用 -m 標記。

下列指令會將所有檔案從來源目錄複製到 Cloud Storage 值區。請將 [SOURCE_DIRECTORY] 改成您的目錄,並將 [BUCKET_NAME] 改成您的 Cloud Storage 值區名稱。

gsutil -m cp -r [SOURCE_DIRECTORY] gs://[BUCKET_NAME]
撰寫平行上傳

如果您打算上傳大型檔案,gsutil 可提供平行複合式上傳。這項功能可將每個檔案分割為多個較小的元件,然後平行上傳元件。下圖顯示上傳一個大型檔案與使用平行複合式方法上傳同一個檔案之間的差異。

上傳一個大型檔案

平行複合式上傳

如要進一步瞭解使用平行複合式上傳的優點與取捨,請造訪 cp 指令說明文件

調整 TCP 參數

您可調整下列 TCP 參數,以改善 TCP 移轉效能。變更下列設定之前,請參閱作業系統說明文件並尋求專家的專業建議。

  • TCP 窗口縮放 (RFC 1323)

    這項設定可透過縮放係數讓 TCP 窗口大小超過 16 位元。這項設定允許資料移轉使用更多可用的頻寬。傳送方與接收方都必須支援 TCP 窗口縮放,才能使用這項設定。

  • TCP 時間戳記 (RFC 1323)

    這項設定可準確測量封包往返時間,協助提升 TCP 效能。

  • TCP 選擇性確認 (RFC 2018)

    這項設定表示傳送者只能重新傳送接收者那一方遺失的資料。

  • 傳送與接收緩衝區大小

    這些設定可決定在傳送確認給對方之前,您可傳送或接收多少資料。如果您認為這些設定會限制頻寬使用率,可以嘗試增加這些設定。

提高移轉總處理量速率

您可以增加有效的網路頻寬,可能就能提高資料移轉總處理量速率。您可以執行下列 gsutil 效能診斷工具指令,以測試網路延遲時間。請將 [BUCKET_NAME] 改成您的 Cloud Storage 值區名稱。

gsutil perfdiag gs://[BUCKET_NAME]

您可以使用 gsutil 進行實驗,嘗試不同的作業系統程序、執行緒等組合。gsutil 工具可讓您更全面地瞭解網路的最佳設定選項,並判斷是否應移轉許多小型檔案或一些大型檔案。

您可以使用下列選項,協助定義網路總處理量。

  • -c 選項可設定程序的數量。
  • -k 選項可設定每個程序的處理緒數量。
  • -n 選項可設定物件數量。
  • -s 選項可設定每個物件的大小。
  • -t wthru_file 選項可從本機磁碟讀取檔案,以測量本機磁碟讀取效能。

舉例來說,下列指令會使用 2 個程序和 10 個執行緒,上傳大小各為 10 MB 的 100 個檔案。這個指令包含用於多執行緒的 -m 選項,以及用於平行複合式上傳的 -p 選項。請將 [BUCKET_NAME] 改成您的 Cloud Storage 值區名稱。

gsutil perfdiag -c 2 -p both -t wthru_file -s 10M -n 100 -k 10 gs://[BUCKET_NAME]

以下顯示診斷輸出範例,包括單位為每秒 Mbit 的寫入總處理量值。

------------------------------------------------------------------------------
                        Write Throughput With File I/O
------------------------------------------------------------------------------
Copied 100 10 MiB file(s) for a total transfer size of 1000 MiB.
Write throughput: 135.15 Mbit/s.
Parallelism strategy: both

如要查看您的網路與 Google 的網路之間有幾個躍點,您可以使用 traceroute 指令列工具並設定自治系統 (AS) 編號標記。下列指令可在 Linux 環境中運作:

traceroute -a test.storage-upload.googleapis.com

尋找 AS15169 (大多數 Google 服務的 AS 編號,包括 GCP)。下列輸出範例顯示需要 6 個躍點才能進入 Google 的網路。

traceroute to storage.l.googleusercontent.com (74.125.68.128), 64 hops max, 52 byte packets
     1  [AS0] XXXX.XXXXX.XXX (192.168.2.1)  1.374 ms  1.094 ms  0.982 ms
     2  [AS0] XXXX.XXXXX.XXX (192.168.1.1)  1.582 ms  1.932 ms  1.858 ms
       ...
     6  [AS15169] 108.XXX.XXX.XXX (108.XXX.XXX.XXX)  17.281 ms
       ...

如要查看效能診斷工具選項的完整清單,請參閱 gsutil 工具說明文件

第三方工具

gsutil 工具適合用於許多工作流程。不過,如果是進階網路層級最佳化或進行中的資料移轉工作流程,您可能會想要使用更進階的工具。如要進一步瞭解更進階的工具,請造訪 Google 合作夥伴

下列連結重點說明眾多選項中一部分的選項 (按字母順序排列):

  • Aspera On Demand for Google 是以 Aspera 獲得專利的通訊協定為基礎,適合大規模的工作流程使用。提供隨選的訂閱授權模型。

  • Bitspeed 提供最佳化檔案傳輸通訊協定,適合用於移轉大型檔案或大量檔案。這些解決方案能以實體和虛擬設備的形式提供,讓您整合至現有的網路和檔案系統中。

  • Tervela 提供的 Cloud FastPath 可用來建構往返 GCP 的代管資料串流。詳情請參閱使用 Cloud FastPath 建立資料串流一文。

  • Komprise 可用來分析內部部署儲存空間上的資料,找出冷資料並將它移至 Cloud Storage。詳情請參閱使用 Komprise 將冷資料封存至 Cloud Storage 一文。

  • Signiant 以軟體式伺服器 (SaaS) 解決方案的形式提供 Media Shuttle,移轉往返於任何位置的任何檔案。Signiant 也提供 Flight,做為以高度最佳化通訊協定為基礎的自動調度資源公用程式,並提供 Manager+Agents,做為不同地理位置的大規模移轉自動化工具。

從遠處移轉資料

如果您的資料不被視為「接近」GCP,則適合使用離線資料移轉。透過離線移轉,您會在實體儲存媒體上載入資料,並將它傳送至與 GCP 之間具有良好網路連線的內容擷取點,然後從該位置上傳資料。

Transfer Appliance 以及許多第三方服務供應商提供各種移轉選項,您可根據需求調查這些選項並從中選取適合的選項。有兩項主要的選擇條件。

  • 移轉的大小。
  • 資料的動態性質。

Transfer Appliance 適合用於大型資料移轉。不過,如果您有大量動態資料,Zadara Storage 可能會是更好的選項。

如需選取最佳選項的相關協助,請與您的 Google 代表聯絡。

後續步驟

本頁內容對您是否有任何幫助?請提供意見:

傳送您對下列選項的寶貴意見...

這個網頁
解決方案