從 Snowflake 遷移至 BigQuery

本文簡要介紹如何從 Snowflake 遷移至 BigQuery。以下各節將介紹遷移工具,協助您執行 BigQuery 遷移作業,並列出 Snowflake 和 BigQuery 的差異,協助您規劃遷移作業。

將工作流程從 Snowflake 遷移至 BigQuery

規劃 BigQuery 遷移作業時,請考量 Snowflake 上的不同工作流程,以及如何個別遷移這些工作流程。為盡量減少對現有作業的影響,建議您先將 SQL 查詢遷移至 BigQuery,然後再遷移結構定義和程式碼。

遷移 SQL 查詢

如要遷移 SQL 查詢,BigQuery 遷移服務提供各種 SQL 翻譯功能,可自動將 Snowflake SQL 查詢轉換為 GoogleSQL SQL,例如用於大量翻譯查詢的批次 SQL 翻譯器、用於翻譯個別查詢的互動式 SQL 翻譯器,以及 SQL 翻譯 API。這些翻譯服務也包含 Gemini 強化功能,可進一步簡化 SQL 查詢遷移程序。

翻譯 SQL 查詢時,請仔細檢查翻譯後的查詢,確認資料型別和表格結構處理正確無誤。為此,我們建議建立各種情境和資料的測試案例。接著在 BigQuery 中執行這些測試案例,比較結果與原始 Snowflake 結果。如有任何差異,請分析並修正轉換後的查詢。

遷移結構定義和程式碼

如要從 Snowflake 遷移結構定義和資料,請使用 BigQuery 資料移轉服務中的 Snowflake 連接器設定資料移轉作業。設定資料移轉時,您可以指定要納入的特定 Snowflake 資料表,也可以讓連結器在移轉期間自動偵測資料表結構定義和資料類型。

如要進一步瞭解如何設定 Snowflake 資料移轉,請參閱排定 Snowflake 移轉作業

BigQuery 安全性功能

從 Snowflake 遷移至 BigQuery 時,請考量 BigQuery 處理安全性的方式與 Snowflake 的差異。Google Cloud

BigQuery 的安全性與 Google Cloud中的身分與存取權管理 (IAM) 息息相關。IAM 權限定義資源允許的作業,並在 Google Cloud 層級強制執行,提供集中且一致的安全管理方法。以下列舉 Google Cloud的部分主要安全性功能:

  • 整合式安全性:BigQuery 會運用 Google Cloud的安全性功能。包括 IAM,可精細控管存取權,確保安全整合流程順暢無虞。
  • 資源層級安全性:IAM 著重於資源層級的存取控管,可授予使用者和群組各種 BigQuery 資源和服務的權限。這種做法可有效管理存取權,確保使用者只具備執行工作所需的權限。
  • 網路安全:BigQuery 享有 Google Cloud的完善網路安全功能,例如虛擬私有雲私人連線

從 Snowflake 遷移至 BigQuery 時,請考量下列安全性相關的遷移需求:

  • IAM 設定:您必須在 BigQuery 中設定 IAM 角色和權限,以符合現有的 Snowflake 存取權控管政策。這包括將 Snowflake 角色對應至適當的 BigQuery IAM 角色和權限
  • 精細的存取權控管:如果您在 Snowflake 中使用資料列或資料欄層級的安全防護機制,則需要在 BigQuery 中使用已授權檢視表政策標記,實作同等控管措施。
  • 檢視區塊和 UDF 遷移:遷移檢視區塊和 UDF 時,請確認相關聯的安全控制措施已正確轉換為 BigQuery 中的已授權檢視區塊已授權 UDF

加密

BigQuery 預設會加密靜態資料和傳輸中的資料。如需進一步控管加密金鑰,BigQuery 支援 Cloud Key Management Service 中的客戶管理加密金鑰。您也可以使用資料欄層級加密

為確保資料在遷移至 BigQuery 期間和之後的安全性,請考慮下列事項:

  • 金鑰管理:如果您需要客戶管理的金鑰,請在 Cloud Key Management Service 中建立金鑰管理策略,並將 BigQuery 設為使用這些金鑰。
  • 資料遮蓋/權杖化:如果涉及機密資料,請評估是否需要資料遮蓋或權杖化來保護資料。
  • 資料列層級安全性:使用授權檢視畫面、資料列層級安全性篩選器或其他適當方法,導入資料列層級安全性。
  • 安全漏洞掃描和滲透測試:定期執行安全漏洞掃描和滲透測試,檢查 BigQuery 環境的安全狀態。

角色

角色是可授予和撤銷可保護物件權限的實體。

在身分與存取權管理中,權限會納入角色群組。IAM 提供三種角色:

  • 基本角色 包括擁有者、編輯者和檢視者角色。您可以使用Google Cloud 主控台、Identity and Access Management API 或 gcloud CLI,在專案或服務資源層級套用這些角色。一般而言,為確保最高安全性,我們建議您使用預先定義的角色,遵循最低權限原則。
  • 預先定義的角色這類角色可提供更精細的產品功能存取權 (例如 BigQuery),適用於常見用途和存取權控管模式。
  • 自訂角色 這類角色是由使用者指定的權限組成。

存取權控管

Snowflake 可讓您將角色授予其他角色,建立角色階層。IAM 不支援角色階層,但會實作資源階層。IAM 階層包含機構層級、資料夾層級、專案層級和資源層級。您可以在階層的任何層級設定 IAM 角色,資源會繼承父項資源的所有政策。

BigQuery 支援資料表層級的存取權控管。資料表層級權限可以決定要允許哪些使用者、群組和服務帳戶存取資料表或檢視表。您可以授予使用者特定資料表或檢視區塊的存取權,而不必授予完整資料集的存取權。

如要更精細地控管存取權,也可以使用資料欄層級存取權控管資料列層級安全防護機制。這類控管機制會使用政策標記或依據類型的資料分類方式,對機密資料欄提供精細的存取權限。

您也可以建立授權檢視表,進一步限制資料存取權,讓指定使用者查詢檢視表,但無法讀取基礎資料表。

遷移其他 Snowflake 功能

規劃遷移至 BigQuery 時,請考量下列 Snowflake 功能。在某些情況下,你可以使用其他服務完成遷移。 Google Cloud

支援的資料類型、屬性和檔案格式

Snowflake 和 BigQuery 支援的資料類型大多相同,但有時會使用不同名稱。如需 Snowflake 和 BigQuery 支援的完整資料類型清單,請參閱「資料類型」。您也可以使用 SQL 翻譯工具,例如互動式 SQL 翻譯器SQL 翻譯 API批次 SQL 翻譯器,將不同的 SQL 方言翻譯成 GoogleSQL。

如要進一步瞭解 BigQuery 支援的資料類型,請參閱「GoogleSQL 資料類型」。

Snowflake 可以匯出下列檔案格式的資料。您可以將下列格式的資料直接載入 BigQuery:

遷移工具

下表列出可將資料從 Snowflake 遷移至 BigQuery 的工具。如要瞭解如何在 Snowflake 遷移管道中一併使用這些工具,請參閱 Snowflake 遷移管道範例

  • COPY INTO <location> 指令 在 Snowflake 中使用這項指令,將資料從 Snowflake 資料表直接擷取至指定的 Cloud Storage bucket。如需端對端範例,請參閱 GitHub 上的「Snowflake to BigQuery (snowflake2bq)」。
  • Apache Sqoop 如要將資料從 Snowflake 擷取至 HDFS 或 Cloud Storage,請使用 Sqoop 和 Snowflake 的 JDBC 驅動程式提交 Hadoop 工作。Sqoop 會在 Dataproc 環境中執行。
  • Snowflake JDBC 搭配支援 JDBC 的大多數用戶端工具或應用程式使用這個驅動程式。

您可以使用下列一般工具,將資料從 Snowflake 遷移至 BigQuery:

如要進一步瞭解如何將資料載入 BigQuery,請參閱將資料載入 BigQuery

定價

規劃 Snowflake 遷移作業時,請考量在 BigQuery 中轉移資料、儲存資料及使用服務的成本。詳情請參閱「定價」。

將資料移出 Snowflake 或 AWS 時,可能會產生輸出費用。跨區域移轉資料或跨不同雲端服務供應商移轉資料時,也可能產生額外費用。

開始使用

以下各節將摘要說明從 Snowflake 遷移至 BigQuery 的程序:

執行遷移評估

在從 Snowflake 遷移至 BigQuery 的過程中,建議您先執行 BigQuery 遷移評估工具,評估將資料倉儲從 Snowflake 遷移至 BigQuery 的可行性和潛在效益。這項工具提供結構化方法,協助您瞭解目前的 Snowflake 環境,並估算順利遷移所需的作業量。

執行 BigQuery 遷移評估工具後,會產生評估報告,其中包含下列章節:

  • 現有系統報表:現有 Snowflake 系統和用量的快照,包括資料庫、結構定義、資料表數量,以及總大小 (以 TB 為單位)。此外,這項服務還會依大小列出結構定義,並指出可能導致資源使用率不佳的情況,例如沒有寫入或讀取次數很少的資料表。
  • BigQuery 穩定狀態轉換建議:顯示遷移後 BigQuery 的系統樣貌。包括如何最佳化 BigQuery 工作負載,以及避免浪費資源的建議。
  • 遷移計畫:提供遷移作業本身的相關資訊。舉例來說,從現有系統遷移至 BigQuery 穩定狀態。這個部分會顯示自動翻譯的查詢數量,以及將每個資料表移至 BigQuery 的預估時間。

如要進一步瞭解遷移評估結果,請參閱「查看 Looker Studio 報表」。

驗證遷移作業

將 Snowflake 資料遷移至 BigQuery 後,請執行資料驗證工具 (DVT),對新遷移的 BigQuery 資料進行資料驗證。DVT 會驗證各種函式 (從資料表層級到資料列層級),確認遷移的資料是否如預期運作。