使用雪花作為來源 AWS SCT - AWS Schema Conversion Tool

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

使用雪花作為來源 AWS SCT

您可以使用AWS SCT將結構描述、程式碼物件和應用程式程式碼從雪花轉換為 Amazon Redshift。

「雪花」作為來源資料庫的權限

您可以使用角色和SECURITYADMIN工作階段前後關聯來建立具有權限的角色,並將使用者的名稱授與此SECURITYADMIN角色。

下列範例會建立最低權限,並將其授與使min_privs用者。

create role role_name; grant role role_name to role sysadmin; grant usage on database db_name to role role_name; grant usage on schema db_name.schema_name to role role_name; grant usage on warehouse datawarehouse_name to role role_name; grant monitor on database db_name to role role_name; grant monitor on warehouse datawarehouse_name to role role_name; grant select on all tables in schema db_name.schema_name to role role_name; grant select on future tables in schema db_name.schema_name to role role_name; grant select on all views in schema db_name.schema_name to role role_name; grant select on future views in schema db_name.schema_name to role role_name; grant select on all external tables in schema db_name.schema_name to role role_name; grant select on future external tables in schema db_name.schema_name to role role_name; grant usage on all sequences in schema db_name.schema_name to role role_name; grant usage on future sequences in schema db_name.schema_name to role role_name; grant usage on all functions in schema db_name.schema_name to role role_name; grant usage on future functions in schema db_name.schema_name to role role_name; grant usage on all procedures in schema db_name.schema_name to role role_name; grant usage on future procedures in schema db_name.schema_name to role role_name; create user min_privs password='real_user_password' DEFAULT_ROLE = role_name DEFAULT_WAREHOUSE = 'datawarehouse_name'; grant role role_name to user min_privs;

在前面的範例中,取代預留位置如下:

  • role_name以唯讀權限的角色名稱取代。

  • db_name以來源資料庫的名稱取代。

  • schema_name以來源結構描述的名稱取代。

  • 取代datawarehousename為所需資料倉儲的名稱。

  • min_privs以具有最低權限的使用者名稱取代。

DEFAULT_ROLEDEFAULT_WAREHOUSE參數是按鍵敏感的。

設定對亞馬遜 S3 的安全存取

Amazon S3 儲存貯體的安全和存取管理政策允許 Snowflake 存取、讀取資料,以及將資料寫入 S3 儲存貯體。您可以使用雪花STORAGE INTEGRATION物件類型,設定對私有 Amazon S3 儲存貯體的安全存取。雪花儲存體整合物件會將驗證責任委派給 Snowflake 身分識別與存取管理實體。

如需詳細資訊,請參閱雪花文件中的設定雪花儲存整合以存取 Amazon S3

連接到雪花作為源

使用下列程序來使用連線到來源資料庫AWS Schema Conversion Tool。

連線至雪花來源資料庫
  1. 在中AWS Schema Conversion Tool,選擇「新增來源」。

  2. 選擇雪花,然後選擇「下一步」。

    這時系統顯示「添加源」對話框。

  3. 在「連線名稱」中,輸入資料庫的名稱。 AWS SCT在左側面板的樹狀結構中顯示此名稱。

  4. 使用資料庫認證來源AWS Secrets Manager或手動輸入:

    • 若要使用來自秘密管理員的資料庫認證,請遵循下列指示:

      1. 在「機AWS密」中,選擇密碼的名稱。

      2. 選擇填入來自 Secret Manager 的資料庫連線對話方塊中自動填入所有值。

      如需使用來自秘密管理員之資料庫認證的資訊,請參閱使用 AWS Secrets Manager

    • 若要手動輸入 Snowflake 來源資料倉儲連線資訊,請遵循下列指示:

      參數 動作
      伺服器名稱

      輸入來源資料庫伺服器的網域名稱系統 (DNS) 名稱或 IP 位址。

      伺服器連接埠

      輸入用於連接到來源資料庫伺服器的連接埠。

      Database (資料庫)

      輸入雪花資料庫的名稱。

      使用者名稱密碼

      輸入要連線到來源資料庫伺服器的資料庫認證。

      AWS SCT只有在您明確要求時,才會以加密格式儲存您的密碼。

      Use SSL (使用 SSL)

      如果您要使用安全通訊端層 (SSL) 連線到資料庫,請選擇此選項。在 SSL 索引標籤上提供下列適用的其他資訊:

      • 私密金鑰路徑:私密金鑰的位置。

      • 複雜密碼:私密金鑰的複雜密碼。

      如需 Snowflake SSL 支援的詳細資訊,請參閱設定連線的安全性選項

      儲存密碼

      AWS SCT 會建立安全的保存庫來存放 SSL 憑證和資料庫密碼。如果您設定這個選項,您可以儲存資料庫密碼。這樣做意味著您可以快速連接到數據庫,而無需輸入密碼。

      雪花驅動路徑

      輸入用於連接至來源資料庫的驅動程式路徑。如需詳細資訊,請參閱下載所需資料庫驅動程式

      如果您在全域專案設定中存放驅動程式路徑,驅動程式路徑不會顯示在連線對話方塊中。如需詳細資訊,請參閱在全域設定中儲存驅動程式路徑

  5. 選擇「測試連線」以確認是否AWS SCT可以連線到來源資料庫。

  6. 選擇「連線」以連線到來源資料庫。

雪花作為來源的限制

以下是使用 Snowflake 作為來源時的限制AWS SCT:

  • 物件識別元在物件類型和父物件的前後關聯內必須是唯一的:

    資料庫

    結構描述識別碼在資料庫中必須是唯一的。

    結構描述

    資料表和檢視表等物件識別碼在結構描述中必須是唯一的。

    表/檢視

    資料行識別碼在資料表中必須是唯一的。

  • 大型和 xlarge 叢集節點類型的資料表數量上限為 9,900。對於 8xlarge 叢集節點類型,資料表的數目上限為 100,000 個。此限制包括使用者定義和 Amazon Redshift 在查詢處理或系統維護期間建立的臨時資料表。如需詳細資訊,請參閱亞馬遜紅移叢集管理指南中的配額。

  • 對於存儲過程,輸入和輸出參數的最大數量是 32。

雪花的來源資料類型

接下來,您可以找到使用時支援的雪花來源資料類型,以AWS SCT及 Amazon Redshift 目標的預設對應。

雪花數據類型 亞馬遜紅移數據類型

NUMBER

數字的 (38)

NUMBER(p)

如果 p 是 = <4,則小麥林

如果 p 是 => 5 和 = < 9,則整數

如果 p 是 => 10 和 = < 18,那麼大

如果 p 是 => 19 則數字(p)

數字 (p, 0)

如果 p 是 = <4,則小麥林

如果 p 是 => 5 和 = < 9,則整數

如果 p 是 => 10 和 = < 18,那麼大

如果 p 是 => 19,那麼:數字(p,0)

數目 (p, s)

如果 p 是 => 1 和 = < 38,如果 s 是 => 1 和 = < 37,那麼

NUMERIC(p,s)

FLOAT

FLOAT

TEXT

萬國碼字元最多可達 16,777,216 個位元組;每個字元最多 4 個位元組。

水平(最大)

文字 (p)

萬國碼字元最多可達 65,535 個位元組;每個字元最多 4 個位元組。

如果 p 是 = <65,535 那麼,瓦爾查爾(p)

文字 (p)

萬國碼字元最多可達 16,777,216 個位元組;每個字元最多 4 個位元組。

如果 p 是 => 65,535 和 = <16,777,216 然後,瓦爾查爾(最大值)

BINARY

單一位元組字元最多可達 8,388,608 個位元組;每個字元 1 個位元組。

水平(最大)

二進制 (p)

單位元組字元最多可達 65,535 個位元組;每個字元 1 個位元組。

瓦爾查爾 (p)

二進制 (p)

單一位元組字元最多可達 8,388,608 個位元組;每個字元 1 個位元組。

水平(最大)

BOOLEAN

BOOLEAN

DATE

DATE

TIME

時間值介於下午 12 時至晚上 9 時之間

瓦爾查爾 (18)

時間 (f)

時間值介於凌晨 12 時至 9 時 59 分之間。

瓦爾查爾(N)— 9 + D-在 -1

TIMESTAMP_NTZ

TIMESTAMP

時間戳

TIMESTAMPTZ

雪花到亞馬遜紅移轉換設置

若要編輯雪花到 Amazon Redshift 的轉換設定,請在中選擇 [設定]AWS SCT,然後選擇 [轉換設定]。從上面的列表中,選擇雪花,然後選擇雪花-亞馬遜紅移。 AWS SCT顯示雪花到亞馬遜紅移轉換的所有可用設定。

雪花到亞馬遜 Redshift 轉換設定AWS SCT包含下列選項:

  • 用於限制轉換後代碼中行動項目的註釋數量。

    針對所選嚴重性及更高之行動項目的已轉換程式碼中新增註解,請選擇行動項目的嚴重性。 AWS SCT在已轉換的程式碼中加入所選嚴重性及更高嚴重性之行動項目的註解。

    例如,若要將轉換後的程式碼中的註解數目降到最低,請選擇「僅限錯誤」。若要在轉換的程式碼中包含所有行動項目的註解,請選擇 [所有郵件]。

  • 設定AWS SCT可套用至目標 Amazon Redshift 叢集的表格數目上限。

    對於目標 Amazon Redshift 叢集的表格數目上限,請選擇AWS SCT可套用至 Amazon Redshift 叢集的表格數目。

    Amazon Redshift 的配額會限制不同叢集節點類型的使用表格。如果選擇自動,請根據節點類型AWS SCT決定要套用至目標 Amazon Redshift 叢集的表格數目。(選擇性) 手動選擇值。如需詳細資訊,請參閱亞馬遜紅移管理指南中的配額和限制

    AWS SCT轉換所有來源表格,即使這個資料表超過 Amazon Redshift 叢集所能存放的空間也一樣。 AWS SCT將轉換後的代碼存儲在項目中,並且不將其應用於目標數據庫。如果您在套用轉換後的程式碼時達到表格的 Amazon Redshift 叢集配額,則AWS SCT會顯示警告訊息。此外,請將表格AWS SCT套用至目標 Amazon Redshift 叢集,直到表格數量達到上限為止。

  • 將壓縮應用於亞馬遜紅移表列。若要這樣做,請選取 [使用壓縮編碼]。

    AWS SCT使用預設的 Amazon Redshift 演算法,自動將壓縮編碼指派給資料行。如需詳細資訊,請參閱 Amazon Redshift 資料庫開發人員指南中的壓縮編碼

    根據預設,Amazon Redshift 不會將壓縮套用至定義為排序金鑰和分配金鑰的資料行。您可以變更此行為,並將壓縮套用至這些資料行。若要這麼做,請選取 [使用 KEY 欄的壓縮編碼]。只有當您選取 [使用壓縮編碼] 選項時,才能選取此選項。

雪花到亞馬遜紅移轉換優化設置

若要編輯雪花到 Amazon Redshift 的轉換優化設定,請在中選擇 [設定]AWS SCT,然後選擇 [轉換設定]。從上面的列表中,選擇雪花,然後選擇雪花-亞馬遜紅移。在左窗格中,選擇 [最佳化策略]。 AWS SCT顯示雪花到亞馬遜紅移轉換的轉換優化設置。

雪花到亞馬遜 Redshift 的轉換優化設置AWS SCT包括以下選項:

  • 要使用自動表優化工作。若要這麼做,請選取 [使用亞馬遜紅移自動表格調整]。

    自動表格最佳化是 Amazon Redshift 中的一項自我調整程序,可自動優化資料表的設計。如需詳細資訊,請參Amazon Redshift 資料庫開發人員指南中的使用自動表格最佳化

    若只要依賴自動表格最佳化,請針對初始索引鍵選取策略選取選擇選擇選取策略

  • 若要使用您的策略選擇排序和分配鍵。

    您可以使用 Amazon Redshift 中繼資料、統計資訊或這兩個選項來選擇排序和分發金鑰。對於「最佳化策略」標籤上的「初始金鑰選取策略」,請選擇下列其中一個選項:

    • 使用中繼資料,忽略統計資訊

    • 忽略中繼資料,使用統計資訊

    • 使用中繼資料和統計資訊

    根據您選擇的選項,您可以選取最佳化策略。然後,針對每個策略輸入值 (0—100)。這些值定義每個策略的權重。使用這些加權值,AWS SCT定義每個規則如何影響分佈和排序索引鍵的選擇。預設值以AWS移轉最佳作法為基礎。

    您可以為尋找小型資料表策略定義小型資料表的大小。對於「最小表格列計數」和「表格列數上限」,請輸入表格中的最小和最大列數,將其定義為小型表格。 AWS SCT將ALL分佈型式套用至小型表格。在這種情況下,整個表的副本會分發到每個節點。

  • 若要設定策略詳細資訊。

    除了定義每個最佳化策略的權重之外,您還可以設定最佳化設定。若要這樣做,請選擇 [轉換優化]。

    • 在「排序索引鍵欄限制」中,輸入排序索引鍵中的欄數上限。

    • 在「傾斜臨界值」中,為欄輸入傾斜值的百分比 (0—100)。 AWS SCT從分配索引鍵的候選清單中排除偏斜值大於臨界值的欄。 AWS SCT將欄的傾斜值定義為最常見值出現次數與記錄總數的百分比率。

    • 對於查詢歷史記錄表格中的前 N 個查詢,請輸入要分析的最常用查詢數目 (1—100)。

    • 在選取統計資料使用者中,選擇要分析查詢統計資料的資料庫使用者。

    此外,在「最佳化策略」標籤上,您可以定義「尋找小表格」策略的小型資料表大小。對於「最小表格資料列計數」和「表格列數上限」,請輸入表格中的最小與最大列數,將其視為小型表格。 AWS SCT將ALL分佈型式套用至小型表格。在這種情況下,整個表的副本會分發到每個節點。