共用方式為


設定複製活動中的 Snowflake

本文概述如何使用資料管線中的複製活動,從 Snowflake 複製資料及將資料複製到該處。

支援的設定

對於複製活動下每個索引標籤的組態,請分別參閱下列各節。

一般

請參閱<[一般] 設定>指導,來設定 [一般] 設定索引標籤。

來源

在複製活動的 [來源] 索引標籤下,Snowflake 支援下列屬性。

螢幕擷取畫面,其中顯示 [來源] 索引標籤和屬性清單。

以下是必要的屬性:

  • 資料存放區類型:選取 [外部]
  • 連線:從連線清單中選取 Snowflake 連線。 如果不存在連線,請選取 [新增],以建立新的 Snowflake 連線。
  • 資料庫:連線後要使用的預設資料庫。 通常是指定角色擁有權限的現有資料庫。
  • 使用查詢:您可以選擇 [資料表] 或 [查詢] 作為您的使用查詢。 下列清單描述每個設定的組態。
    • 資料表:從下拉式清單選取資料庫中的資料表。 或勾選 [編輯] 以手動輸入資料表名稱。
    • 查詢:指定 SQL 查詢從 Snowflake 讀取資料。 如果結構描述、資料表和資料行的名稱包含小寫,請在查詢中為物件識別碼加上引號,例如 select * from "schema"."myTable"

在 [進階] 下,可以指定下列欄位:

  • 儲存體整合:指定您在 Snowflake 中建立的儲存體整合名稱。 如需使用儲存體整合的必要步驟,請參閱設定 Snowflake 儲存體整合

  • 其他 Snowflake 複製選項:指定將用於 Snowflake COPY 陳述式以載入資料的其他 Snowflake 複製選項。 其他複製選項,以機碼值組字典的形式提供。 範例:MAX_FILE_SIZE、OVERWRITE。 如需詳細資訊,請參閱 Snowflake 複製選項 (英文)

    螢幕擷取畫面,其中顯示了來源的其他 Snowflake 複製選項。

  • 其他 Snowflake 格式選項:指定將用於 Snowflake COPY 陳述式以載入資料的其他 Snowflake 格式選項。 提供給 COPY 命令充當機碼值組字典的其他檔案格式選項。 範例:DATE_FORMAT、TIME_FORMAT、TIMESTAMP_FORMAT。 如需詳細資訊,請參閱 Snowflake 格式型別選項 (英文)

    螢幕擷取畫面,其中顯示了來源的其他 Snowflake 格式選項。

從 Snowflake 直接複製

如果您的目的地資料存放區和格式符合本節所述的準則,則可使用複製活動,直接從 Snowflake 複製到目的地。 該服務會檢查設定,並在不符合下列準則時讓複製活動執行失敗:

  • 當您在來源中指定儲存體整合時:目的地資料存放區是您在 Snowflake 外部階段中參考的 Azure Blob 儲存體。 您必須完成下列步驟,然後才能複製資料:

    1. 使用任何支援的驗證類型,為目的地 Azure Blob 儲存體建立 Azure Blob 儲存體連線。

    2. 將至少儲存體 Blob 資料參與者角色授與目的地 Azure Blob 儲存體存取控制 (IAM) 中的 Snowflake 服務主體。

  • 當您未在來源中指定儲存體整合時:

    目的地連線是具有共用存取簽章驗證的 Azure Blob 儲存體。 如果您想要以下列支援的格式直接將資料複製到 Azure Data Lake Storage Gen2,請針對 Azure Data Lake Storage Gen2 帳戶建立具有 SAS 驗證的 Azure Blob 儲存體連線,以避免使用從 Snowflake 分段複製

  • 目的地資料格式包括 Parquet分隔符號文字JSON,並具有下列設定:

    • 針對 Parquet 格式,壓縮轉碼器為 NoneSnappyLzo
    • 針對分隔符號文字格式:
      • 資料列分隔符號\r\n,或任何單一字元。
      • 壓縮類型可以是gzipbzip2 deflate
      • 編碼會保留為預設值,或設定為 UTF-8
      • 引號字元雙引號單引號無引號字元
    • 針對 JSON 格式,直接複製僅支援來源 Snowflake 資料表或查詢結果只有單一資料行的案例,且此資料行的資料類型為 VARIANTOBJECTARRAY
      • 壓縮類型可以是gzipbzip2 deflate
      • 編碼會保留為預設值,或設定為 UTF-8
      • 複製活動目的地中的 [檔案模式]會保留為預設值,或設定為 [設定物件]
  • 在複製活動來源中,未指定 [其他資料行]

  • 未指定資料行對應。

從 Snowflake 暫存複本

您的目的地資料存放區或格式與 Snowflake COPY 命令原生不相容時,如上一節所述,請使用過渡 Azure Blob 儲存體執行個體啟用內建分段複製。 分段複製功能也能提供更好的輸送量。 服務會將資料從 Snowflake 匯出至暫存儲存體,然後將資料複製到目的地,最後從暫存儲存體中清除暫存資料。

如要使用此功能,請建立 Azure Blob 儲存體連線,參考具有過渡暫存的 Azure 儲存體帳戶。 然後移至 [設定] 索引標籤以設定您的檢閱及測試設定。 您必須選取 [外部] 來設定 Azure Blob 儲存體檢閱及測試連線。

  • 當您在來源中指定 [儲存體整合] 時,過渡檢閱及測試 Azure Blob 儲存體應該是您在 Snowflake 外部階段中參考的儲存體。 請確定您使用任何支援的驗證為其建立 Azure Blob 儲存體連線,並將至少儲存體 Blob 資料參與者角色授與暫存 Azure Blob 儲存體存取控制 (IAM) 中的 Snowflake 服務主體。 [設定] 索引標籤中 [檢閱及測試設定] 下的 [儲存體路徑] 是必要的。

  • 當您未在來源中指定 [儲存體整合] 時,根據 Snowflake COPY 命令所要求,暫存 Azure Blob 儲存體連線必須使用共用存取簽章驗證。 請確定您將適當的存取權限授與暫存 Azure Blob 儲存體中的 Snowflake。 若要深入了解,請參閱這篇文章

Destination

在複製活動的 [目的地] 索引標籤下,Snowflake 支援下列屬性。

螢幕擷取畫面,其中顯示了 [目的地] 索引標籤。

以下是必要的屬性:

  • 資料存放區類型:選取 [外部]
  • 連線:從連線清單中選取 Snowflake 連線。 如果不存在連線,請選取 [新增],以建立新的 Snowflake 連線。
  • 資料庫:連線後要使用的預設資料庫。 通常是指定角色擁有權限的現有資料庫。
  • 資料表:從下拉式清單選取資料庫中的資料表。 或勾選 [編輯] 以手動輸入資料表名稱。

在 [進階] 下,可以指定下列欄位:

  • 複製前指令碼:指定一個複製活動的指令碼,會在每次執行中將資料寫入到目的地資料表前執行此指令碼。 您可以使用此屬性來清除預先載入的資料。

  • 儲存體整合:指定您在 Snowflake 中建立的儲存體整合名稱。 如需使用儲存體整合的必要步驟,請參閱設定 Snowflake 儲存體整合

  • 其他 Snowflake 複製選項:指定將用於 Snowflake COPY 陳述式以載入資料的其他 Snowflake 複製選項。 其他複製選項,以機碼值組字典的形式提供。 範例:ON_ERROR、FORCE、LOAD_UNCERTAIN_FILES。 如需詳細資訊,請參閱 Snowflake 複製選項 (英文)

    螢幕擷取畫面,其中顯示了目的地的其他 Snowflake 複製選項。

  • 其他 Snowflake 格式選項:指定將用於 Snowflake COPY 陳述式以載入資料的其他 Snowflake 格式選項。 提供給 COPY 命令充當機碼值組字典的其他檔案格式選項。 範例:DATE_FORMAT、TIME_FORMAT、TIMESTAMP_FORMAT。 如需詳細資訊,請參閱 Snowflake 格式型別選項 (英文)

    螢幕擷取畫面,其中顯示了目的地的其他 Snowflake 格式選項。

直接複製到 Snowflake

如果您的來源資料存放區和格式符合本節所述的準則,則可使用複製活動,直接從來源複製到 Snowflake。 該服務會檢查設定,並在不符合下列準則時讓複製活動執行失敗:

  • 如果您在目的地中指定儲存體整合

    來源資料存放區是您在 Snowflake 外部階段中參考的 Azure Blob 儲存體。 您必須完成下列步驟,然後才能複製資料:

    1. 使用任何支援的驗證類型,為來源 Azure Blob 儲存體建立 Azure Blob 儲存體連線。

    2. 將至少儲存體 Blob 資料讀者角色授與來源 Azure Blob 儲存體存取控制 (IAM) 中的 Snowflake 服務主體。

  • 如果您未在目的地中指定儲存體整合

    來源連線是具有共用存取簽章驗證的 Azure Blob 儲存體。 如果您想要以下列支援的格式直接將資料從 Azure Data Lake Storage Gen2 複製,請針對 Azure Data Lake Storage Gen2 帳戶建立具有 SAS 驗證的 Azure Blob 儲存體連線,以避免使用分段複製到 Snowflake

  • 來源資料格式包括 Parquet分隔符號文字JSON,並具有下列設定:

    • 針對 Parquet 格式,壓縮轉碼器為 NoneSnappy

    • 針對分隔符號文字格式:

      • 資料列分隔符號\r\n,或任何單一字元。 如果資料列分隔符號不是 “\r\n”,則會取消選取 [第一個資料列作為標頭],而且不會指定 [Skip 行計數]
      • 壓縮類型可以是gzipbzip2 deflate
      • [編碼] 保留為預設值,或設定為 "UTF-8"、"UTF-16"、"UTF-16BE"、"UTF-32"、"UTF-32BE"、"BIG5"、"EUC-JP"、"EUC-KR"、"GB18030"、"ISO-2022-JP"、"ISO-2022-KR"、"ISO-8859-1"、"ISO-8859-2"、"ISO-8859-5"、"ISO-8859-6"、"ISO-8859-7"、"ISO-8859-8"、"ISO-8859-9"、"WINDOWS-1250"、"WINDOWS-1251"、"WINDOWS-1252"、"WINDOWS-1253"、"WINDOWS-1254"、"WINDOWS-1255"。
      • 引號字元雙引號單引號無引號字元
    • 針對 JSON 格式,直接複製僅支援目的地 Snowflake 資料表只有單一資料行的案例,且此資料行的資料類型為 VARIANTOBJECTARRAY

      • 壓縮類型可以是gzipbzip2 deflate
      • 編碼會保留為預設值,或設定為 UTF-8
      • 未指定資料行對應。
  • 在複製活動來源中:

    • 未指定其他資料行
    • 如果來源是資料夾,則會選取 [遞迴]
    • 未指定 [依上次修改時間篩選]、[啟用分割探索] 中的 [前置詞]、[開始時間 (UTC)] 和 [結束時間 (UTC)]

暫存複本到 Snowflake

您的來源資料存放區或格式與 Snowflake COPY 命令原生不相容時,如上一節所述,請使用過渡 Azure Blob 儲存體執行個體啟用內建分段複製。 分段複製功能也能提供更好的輸送量。 該服務會自動轉換資料,以符合 Snowflake 的資料格式需求。 之後系統會叫用 COPY 命令,將資料載入 Snowflake。 最後,它會清除 Blob 儲存體中的暫存資料。

如要使用此功能,請建立 Azure Blob 儲存體連線,參考具有過渡暫存的 Azure 儲存體帳戶。 然後移至 [設定] 索引標籤以設定您的檢閱及測試設定。 您必須選取 [外部] 來設定 Azure Blob 儲存體檢閱及測試連線。

  • 當您在目的地中指定 [儲存體整合] 時,過渡檢閱及測試 Azure Blob 儲存體應該是您在 Snowflake 外部階段中參考的儲存體。 請確定您使用任何支援的驗證為其建立 Azure Blob 儲存體連線,並將至少儲存體 Blob 資料讀者角色授與暫存 Azure Blob 儲存體存取控制 (IAM) 中的 Snowflake 服務主體。 [設定] 索引標籤中 [檢閱及測試設定] 下的 [儲存體路徑] 是必要的。

  • 當您未在目的地中指定 [儲存體整合] 時,根據 Snowflake COPY 命令所要求,暫存 Azure Blob 儲存體連線必須使用共用存取簽章驗證。

對應

對於 [對應] 索引標籤組態,請參閱<在 [對應] 索引標籤下設定對應>。

設定

對於 [設定] 索引標籤組態,請參閱<在 [設定] 索引標籤下進行其他設定>。

資料表摘要

下列資料表包含有關 Snowflake 中複製活動的詳細資訊。

來源

名稱 描述 必要 JSON 指令碼屬性
資料存放區類型 資料存放區類型。 外部 Yes /
[連接] 您與來源資料存放區的連線。 <您的連線> Yes connection
Database 您用作來源的資料庫。 <您的資料庫> Yes database
使用查詢 從 Snowflake 讀取資料的方式。 • 資料表
• 查詢
No • 資料表
• 查詢
Table 要讀取資料的資料表名稱。 <來源資料表的名稱> Yes 結構描述
table
查詢 從 Snowflake 讀取資料的 SQL 查詢。 <來源查詢的名稱> Yes query
儲存體整合 指定您在 Snowflake 中建立的儲存體整合名稱。 如需使用儲存體整合的必要步驟,請參閱設定 Snowflake 儲存體整合 <您的儲存體整合> No storageIntegration
其他 Snowflake 複製選項 其他複製選項,以機碼值組字典的形式提供。 範例:MAX_FILE_SIZE、OVERWRITE。 如需詳細資訊,請參閱 Snowflake 複製選項 (英文) • 名稱
• 值
No additionalCopyOptions
其他 Snowflake 格式選項 提供給 COPY 命令充當機碼值組字典的其他檔案格式選項。 範例:DATE_FORMAT、TIME_FORMAT、TIMESTAMP_FORMAT。 如需詳細資訊,請參閱 Snowflake 格式型別選項 (英文) • 名稱
• 值
No additionalFormatOptions

Destination

注意

雖然來源支援非 Azure Snowflake 執行個體,但目前只有 Azure Snowflake 執行個體支援 Snowflake 目的地 (也稱為 Azure Data Factory 中的接收器)。

名稱 描述 必要 JSON 指令碼屬性
資料存放區類型 資料存放區類型。 外部 Yes /
[連接] 與目的地資料存放區的連線。 <您的連線> Yes connection
Database 您的目的地資料庫。 <您的資料庫> Yes /
Table 您的目的地資料表。 <您的目的地資料表的名稱> Yes • 結構描述
• 資料表
複製前指令碼 一個供複製活動在每次執行時將資料寫入到 Snowflake 前執行的 SQL 查詢。 使用此屬性來清除預先載入的資料。 <您的複製前指令碼> [否] preCopyScript
儲存體整合 指定您在 Snowflake 中建立的儲存體整合名稱。 如需使用儲存體整合的必要步驟,請參閱設定 Snowflake 儲存體整合 <您的儲存體整合> No storageIntegration
其他 Snowflake 複製選項 其他複製選項,以機碼值組字典的形式提供。 範例:ON_ERROR、FORCE、LOAD_UNCERTAIN_FILES。 如需詳細資訊,請參閱 Snowflake 複製選項 (英文) • 名稱
• 值
No additionalCopyOptions
其他 Snowflake 格式選項 提供給 COPY 命令充當機碼值組字典的其他檔案格式選項。 範例:DATE_FORMAT、TIME_FORMAT、TIMESTAMP_FORMAT。 如需詳細資訊,請參閱 Snowflake 格式型別選項 (英文) • 名稱
• 值
No additionalFormatOptions