Snowflake

摘要

項目 說明
發行狀態 正式發行
產品 Power BI(語意模型)
Power BI(資料流程)
Fabric(資料流第二代)
Power Apps (資料流)
支援的認證類型 Snowflake(用戶名/密碼)、Microsoft 帳號(Microsoft Entra ID)、金鑰對驗證(ADBC)、服務主體(SPN)
函數參考文檔 —

注意

某些功能可能會存在於一個產品中,但由於部署排程和主機特定功能,而不存在於其他產品中。

注意

密碼輸入欄位僅在必要時自動顯示,依據上傳的憑證類型。 使用者上傳憑證後,系統會偵測憑證是加密還是未加密,並有條件地顯示密碼對話方塊。 支援加密和未加密的金鑰。

Important

此連接器正從嵌入的 Simba Snowflake ODBC 驅動程式過渡到 Snowflake ADBC 驅動程式。 有關遷移指引、關鍵日期及管理控制,請參閱從 ODBC 轉換至 ADBC 驅動程式於 Power BI 與 Fabric。

支援的功能

  • 匯入
  • DirectQuery(Power BI 語意模型)
  • 進階選項
    • 指定要做為角色名稱的文字值
    • 關係欄位
    • 連線逾時以秒為單位
    • 命令超時時間(秒)
    • 資料庫
    • 原生 SQL 語句

從 Power Query Desktop 連線

注意

所有新連線預設使用 Snowflake 連接器實作 2.0 。

我們建議您將 2025 年 3 月之前建立的所有連線更新為 此新實作。

若要連線到 Snowflake 運算倉儲,請執行下列步驟:

  1. 從 Power BI Desktop 的 Home 功能區選擇 Get Data,從左側分類中選擇 Database,選擇 Snowflake,然後選擇 Connect。

    「取得資料」對話框的截圖,顯示 Snowflake 資料庫的選擇。

  2. 在出現的 Snowflake 視窗中,於 [伺服器] 中輸入 Snowflake 伺服器的名稱,並在 [倉儲] 中輸入 Snowflake 運算倉儲的名稱。

    雪花對話框的截圖,顯示選取了匯入單台按鈕。

  3. 選擇性地在任何您想要用來修改連接查詢的進階選項中輸入值,例如用作角色名稱的文字值或作為命令逾時的數值。 如需更多資訊,請移至 ,使用進階選項連線。

  4. 選取 確認。

  5. 若要登入 Snowflake 運算倉儲,請輸入您的使用者名稱和密碼,然後選取 [ 連線]。

    Snowflake 憑證提示的截圖,顯示使用者名稱和密碼欄位。

    注意

    一旦你輸入特定 Snowflake 伺服器的使用者名稱和密碼,Power BI Desktop 在後續連線嘗試中也會使用相同的憑證。 您可以移至 [檔案>選項] 和 [>資料源設定] 來修改這些認證。 欲了解更多資訊,請前往 「變更認證方法」。

    如果你想使用 Microsoft 帳戶選項,必須在 Snowflake 平台上設定 Snowflake 的 Microsoft Entra ID 整合。 欲了解更多資訊,請參考 Power BI SSO to Snowflake - Getting Started。

  6. 在 Navigator 中,選擇一個或多個元素匯入並用於 Power BI 桌面。 接著選擇 Load,在桌面Power BI載入表格,或選擇 Transform Data開啟Power Query編輯器,篩選並精煉你想用的資料集,然後將精煉後的資料載入桌面Power BI。

    [導覽器] 的螢幕快照,其中已開啟測試架構資料庫,並已選取 DimProduct 數據表。

  7. 選擇 Import 直接匯入資料到 Power BI,或選擇 DirectQuery,再選 OK。 欲了解更多資訊,請前往 Use DirectQuery in Power BI Desktop。

    注意

    Microsoft Entra ID 單點登入(SSO)僅支援 DirectQuery。

    連線設定截圖,包含匯入和 DirectQuery 選項。

從 Power Query Online 連線

若要進行連線,請執行下列步驟:

  1. 選擇連接器選項中的Snowflake選項。

  2. 在 出現的 [Snowflake ] 對話框中,輸入伺服器和倉儲的名稱。

     Power Query Online 中 Snowflake 連線建構器的截圖。

  3. 在您想要使用的進階選項中輸入任何值。 如果有任何未在介面中顯示的進階選項,你可以稍後在 Power Query 的進階編輯器中編輯。

  4. 輸入您的連線認證,包括選取或建立新的連線、您想要使用的閘道,以及使用者名稱和密碼。

  5. 選取 [下一步] 以連線到資料庫。

  6. 在 Navigator 中,選擇你需要的資料,然後選擇 Transform data 以Power Query 編輯器轉換資料。

    在線導覽器的螢幕快照,其中已開啟測試架構資料庫,並已選取 DimProduct 數據表。

其他資訊

驗證詳細資料

注意

  • 使用者名稱/密碼認證模式將被淘汰。 更多內容請見此處。 更多資訊可參考我們Fabric路線圖中的連通性部分。

  • Dataflows Gen1 和 Power Apps(Dataflows)不支援金鑰組驗證。

Snowflake 連接器支援以下認證方法:

  • Microsoft Entra ID(推薦):可啟用強而無儲存使用者名稱或密碼的身份驗證。

    • 在 Microsoft Fabric 中,這種認證方法可由支援的經驗(如 Datasets 和 Dataflows Gen2)中的工作區身份來支援,讓 Fabric 能利用工作區的管理身份向 Snowflake 進行認證。
  • Workspace 身份:與 Microsoft Fabric 工作空間相關聯的管理身份。 當你使用 Microsoft Entra ID 進行認證時,支援的 Fabric 體驗(例如 Datasets 和 Dataflows Gen2)可以使用該工作區身份來進行 Snowflake 認證。 此方法允許 Fabric 使用 與工作區綁定的身份,而非個別使用者憑證存取 Snowflake。

  • 金鑰對認證(ADBC):基於憑證的認證,適用於支援的情境。

  • 服務主體(SPN):Snowflake 支援服務主體,適用於需要非使用者、應用層級身份的情境。 支援取決於 Snowflake 的設定及所使用的認證方式。

進階選項

Power Query 提供一組進階選項,你可以在需要時加入查詢。

下表列出了你可以在 Power Query 中設定的所有進階選項。

進階選項 說明
角色名稱 指定報告中透過驅動程式所使用的角色。 此角色必須對使用者開放。 否則沒有設定任何角色。
包含關係欄位 如果勾選,則會包含可能與其他資料表有關聯的欄位。 如果清除此方塊,您就無法看到這些欄。
連線逾時以秒為單位 指定在傳回錯誤之前,與 Snowflake 服務互動時等待回應的時間長度。 預設值為 0(無逾時)。
命令超時時間(秒) 指定在傳回錯誤之前等候查詢完成的時間長度。 預設值為 0(無逾時)。
資料庫 指定倉儲中的特定資料庫。 這個選項只在 Power Query Desktop 中提供。
SQL 指令 欲了解更多資訊,請參閱 使用原生資料庫查詢從資料庫匯入資料。

選擇所需進階選項後,請在Power Query桌面選擇OK,或在Power Query線上選擇Next連接您的Snowflake資料庫。

實作 2.0

2025 年 1 月,我們推出了新的 Snowflake 連接器實作,以加強與 Snowflake 的整合。 此連接器自 2025 年 7 月起普遍提供。 我們建議您將 Power BI Desktop 及本地資料閘道升級至最新版本,以享受最新功能。 提供意見反應 以協助我們繼續改善連接器。

Snowflake 連接器實作 2.0 是使用開放原始碼 箭號資料庫連線能力 (ADBC) 驅動程式所建置。 ADBC 提供一組標準介面來與Arrow數據互動,這在擷取大型數據集時特別有效率,而不需要任何串行化或複製。 ADBC 驅動程式也包含安全強化,如記憶體安全與垃圾回收。 此外,與開放原始碼社群的合作促進更快速的更新,運用新式工具和安全開發生命週期(SDL)流程。

為了讓您能夠利用這些效能和安全增強功能,從 2025 年 7 月開始,Desktop 中所有新建立的連線都會自動使用 2.0 實作。 您可以透過更新現有的查詢,並在Implementation="2.0"中加入Snowflake.Databases旗標來測試 2.0 實作,如下所示。

Source = Snowflake.Databases("contoso.snowflakecomputing.com", "CONTOSO_WH", [Implementation="2.0"])

為了協助診斷任何潛在問題,您可以在 Implementation Mashup 記錄中找到 和 DriverType 詳細數據,例如下列範例。 如果您在轉換期間遇到任何問題,請連絡支持人員。 同時,若要自我緩解,您可以移除 Implementation="2.0" 以繼續使用 ODBC 連接器,以避免在問題解決之前中斷業務。 不過,如果你使用金鑰對驗證,無論如何設定,ADBC 驅動程式都會被使用。

{
   "Start":"2024-11-02T00:14:02.7968686Z",
   "Action":"Engine/Module/Snowflake/IO/Snowflake/Implementation",
   "ResourceKind":"Snowflake",
   "ResourcePath":"powerbi.snowflakecomputing.com ;DEMO_WH",
   "HostProcessId":"29200",
   "Implementation":"2.0",
   "DriverType":"ADBC",
   "ProductVersion":"2.139.0.0 (Main)+eda56ecd858054173a4d11db9c63a6da5cf92a99",
   "ActivityId":"106f16b6-cfbb-4853-9f20-ed45486486d2",
   "Process":"Microsoft.Mashup.Container.NetFX45",
   "Pid":38560,
   "Tid":1,
   "Duration":"00:00:00.0000291"
}

自 2025 年 7 月發布以來,以下選項可供使用:

  • UseHighPrecision:控制應該如何處理 Snowflake NUMBER(38,0)欄位的精度。 如果未指定任何值,連接器會使用 SHOW PARAMETERS LIKE 'ODBC_TREAT_DECIMAL_AS_INT' 查詢來查詢 Snowflake。 如果未設定任何值,則連接器會使用數據行指定的小數字數。 true值會將 NUMBER(38,0) 視為十進位類型。 值 false 會將 NUMBER(38,0) 視為 Int64 類型。 如果比例(Scale)大於 0,則該列會被視為 Double 類型。
  • DateTimePrecision:控制如何處理 Snowflake Timestamp 值的精確度。 Snowflake 通常會使用 nanosecond 精確度來儲存 Timestamp 值。 根據 Snowflake,在 ADBC 中,這種精確度可能會導致 1677 年以前或 2262 年之後的日期出現溢出異常。 此選項的有效值為 null、 nanoseconds, 或 microseconds。 Null 值預設會使用 microseconds 。 我們建議需要1677年前或2262年之後日期的使用者使用此 microseconds 設定。 若使用者需要在1677年前或2262年後保持精確度至千萬位,我們建議繼續使用ODBC驅動程式。

如果您需要使用 Proxy 連線到 Snowflake,請參閱 Proxy 設定指示。 驅動程式會針對 Proxy 設定使用環境變數。

注意

當您使用內部部署數據閘道時,請注意最低支援的版本是 2025 年 1 月。 我們建議您使用具有最新功能的版本。

注意

此功能在 Power BI Desktop 的 64 位元版本中支援,但在 32 位元版本中無法使用。

限制與考量

Snowflake 連接器實作 2.0 中的已知問題

目前, Snowflake 連接器實作 2.0 有下列已知問題。 修正工作正在進行中,在修正發布後,文件將會更新。

  • Snowflake 查詢具有 count distinct 邏輯傳回不正確的結果。
  • 增加記憶體使用。 整體載入時間通常較快,使用 Implementation="2.0",但記憶體消耗也可能較高,有時會造成 Resource Governing: This operation was canceled because there wasn't enough memory to finish running it. Either reduce the memory footprint of your dataset by doing things such as limiting the amount of imported data, or if using Power BI Premium, increase the memory of the Premium capacity where this dataset is hosted. 等問題

解決的問題

資料庫名稱中的連字號

如果資料庫名稱中有連字元,您可能會遇到 ODBC: ERROR[42000] SQL compilation error。 此問題已在 2024 年 9 月版本中解決。

布林資料類型的篩選器視覺化

布爾數據類型的篩選器視覺效果在 2024 年 6 月版本中不如預期運作。 此非功能性是已知問題。 作為暫時解決方案,使用者可以流覽至:[傳輸 -> 數據類型 -> 文字],將報表中的布爾數據類型轉換成文字。 2024 年 10 月發行的版本中提供修正程式。

使用 Implementation="2.0" 無法看到視圖

在 2025 年 3 月版本的 Power BI Desktop 中,你可能會遇到使用 Snowflake 連接器實作 2.0(Implementation="2.0")時視圖無法顯示的問題。 此問題自 2025 年 3 月最新 Power BI Desktop 版本起已修正。 要再試一次,請升級你的安裝。

疑難排解

錯誤:SQL 編譯錯誤:物件不存在,或無法執行作業

當系統找不到指定的物件時,就會發生錯誤。 此錯誤通常是因為用戶將無效的資料庫名稱設為預設資料庫。

請確定屬性DEFAULT_NAMESPACE使用有效的預設資料庫名稱: DESC USERusername

若要更新預設資料庫名稱: alter userusername set DEFAULT_NAMESPACE=<database name>.<schema name>。 欲了解更多資訊,請參閱 Snowflake 文件。

發行歷史

下表為過去版本中釋出的連接器增強功能的摘要:

釋放 連接器改進
2025年7月 • 布林欄位回傳布林類型,修正了在空記錄集架構(包含元資料)中,布林欄位被視為字串類型的問題。
• 新增設定,將最大時間戳精確度設定為微秒級。
• 提升持續時間支援。
• 新增對 ADBC 導航屬性的支援。
• ADBC 驅動程式追蹤功能提升,「ActivityId」現在可透過驅動層追蹤。
2025年4月 • 新增對 Snowflake 查詢標籤的支援。 例如: {"PowerQuery":true,"Host":"PBI_SemanticModel_MWC","HostContext":"PowerBIPremium-DirectQuery"}
2025年3月 • 提升從 Snowflake 擷取資料的效能。
• 預設啟用於 Power BI 桌面版,使新建立的連線自動使用新的連接器實作。
• 自三月最新版本以來,已修正 檢視無法顯示的問題 。
2025年2月 • 透過減少元資料呼叫次數提升效能。
• 解決大型結果集重複值問題。