共用方式為


Snowflake

摘要

項目 說明
發行狀態 正式發行
產品 Power BI (語意模型)
Power BI (數據流)
Fabric(Dataflow Gen2)
Power Apps (資料流)
支援的驗證類型 Snowflake (使用者名稱/密碼),Microsoft帳戶(Microsoft Entra ID)
函數參考文檔

注意

Snowflake 連接器實作 2.0 自 2025 年 7 月起已正式推出。 深入瞭解 此功能

注意

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

支援的功能

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

從 Power Query Desktop 連線到 Snowflake 數據倉儲

注意

自 2025 年 3 月版本的 Power BI Desktop 以來,預設會啟用 Snowflake 連接器實作 2.0 選項。

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

  1. 從 Power BI Desktop 的 [首頁] 功能區選取 [取得數據],從左側的類別選取 [資料庫],選取 [Snowflake],然後選取 [連線]。

    [取得資料] 對話方塊的螢幕擷取畫面,其中顯示 [Snowflake] 資料庫選取項目。

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

    Snowflake 對話框的螢幕快照,其中顯示已選取 [匯入] 單選按鈕。

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

  4. 選取 確認

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

    [Snowflake] 認證提示的螢幕擷取畫面,其中顯示 [使用者名稱] 和 [密碼] 欄位。

    注意

    輸入特定 Snowflake 伺服器的使用者名稱和密碼後,Power BI Desktop 會在後續的連線嘗試中使用這些相同的認證。 您可以移至 [檔案>選項] 和 [>資料源設定] 來修改這些認證。 詳細資訊: 變更驗證方法

    如果您想使用 Microsoft 帳戶選項,必須在 Snowflake 端配置 Microsoft Entra ID 與 Snowflake 的整合。 詳細資訊: Power BI SSO to Snowflake - 用戶入門

  6. 導航器 中,選取一個或多個元素以匯入並使用於 Power BI Desktop。 然後選取 [載入] 以載入 Power BI Desktop 中的數據表,或選取 [轉換數據] 以開啟 Power Query 編輯器,您可以在其中篩選和精簡您想要使用的資料集,然後將該精簡數據集載入 Power BI Desktop。

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

  7. 選取 [匯入] 直接將數據匯入 Power BI,或選取 [DirectQuery],然後選取 [確定]。 詳細資訊: 在 Power BI Desktop 中使用 DirectQuery

    注意

    Microsoft Entra ID 單一登錄 (SSO) 僅支援 DirectQuery。

    [連線設定] 的螢幕快照,其中包含 [匯入] 和 [DirectQuery] 選項。

從 Power Query Online 連線到 Snowflake 資料庫

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

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

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

    Power Query Online 中的 Snowflake 連線產生器。

  3. 在您想要使用的進階選項中輸入任何值。 如果UI中沒有任何進階選項,您可以在稍後的Power Query 進階編輯器 中編輯這些選項。

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

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

  6. 在 [導覽器] 中,選取您需要的資料,然後選取 [轉換資料] 以轉換 Power Query 編輯器中的資料。

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

使用進階選項進行連線

Power Query 提供一組進階選項,您可以視需要新增至查詢。

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

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

選取所需的進階選項之後,請在 Power Query Desktop 中選取 [確定],或在 Power Query Online 中選取 [下一步],以連線到您的 Snowflake 資料庫。

Snowflake 連接器實作 2.0

2025 年 1 月,我們推出了新的 Snowflake 連接器實作,以加強與 Snowflake 的整合。 此連接器自 2025 年 7 月起已正式推出。 建議您將Power BI Desktop和內部部署數據閘道升級至最新版本,以受益於最新的功能。 提供意見反應 以協助我們繼續改善連接器。

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

若要讓您利用這些效能和安全性增強功能,從 2025 年 7 月開始,所有新建立的連接都會自動使用 2.0 實作。 此外,我們會逐步將現有的客戶分階段轉換為 2.0 實作,更新會套用至不同區域到 2025 年 11 月。 在此期間,您可以藉由更新現有的查詢並在 Snowflake.Databases 中新增 Implementation="2.0" 旗標來測試 2.0 實作,如下所示。 轉換之後,未指定實作的連接會自動更新為 2.0 實作。

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

為了協助診斷任何潛在問題,您可以在 Implementation Mashup 記錄中找到 和 DriverType 詳細數據,例如下列範例。 如果您在轉換期間遇到任何問題,請連絡支持人員。 同時,若要自行緩和,您可以指定 Implementation="1.0" 繼續使用 1.0 連接器,以避免在問題解決之前發生業務中斷。

{"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 之後的日期發生溢位例外狀況。 這個選項的有效值為 nullnanosecondsmicrosecondsNull 值預設會使用 nanoseconds 。 建議在 1677 或 2262 之後需要日期的使用者使用 microseconds 設定。 如果使用者需要在 1677 年之前或 2262 年之後保留到小數點後第七位的精確度,建議繼續使用 ODBC 驅動程式。

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

以下是過去版本中發行的連接器增強功能摘要:

釋放 連接器改進
2025年7月 - 布爾數據行會傳回布爾型別,修正布爾數據行在空記錄集架構中被視為 String 類型的問題(包括元數據)。
- 將時間戳精確度上限設定為微秒的新設定。
- 改善持續時間支援。
- 已將導覽屬性的支援新增至 ADBC。
- 改善 ADBC 驅動程式中的追蹤,其中 「ActivityId」 現在可以透過驅動程式層追蹤。
2025年4月 - 已新增對 Snowflake 查詢標記的支援。 例如: {"PowerQuery":true,"Host":"PBI_SemanticModel_MWC","HostContext":"PowerBIPremium-DirectQuery"}
2025年3月 - 提升從 Snowflake 擷取數據的效能。
- 在 Power BI Desktop 中預設啟用,讓新建立的連接會自動使用新的連接器實作。
- 已修正自 3 月最新版本以來造成 檢視無法顯示的問題
2025年2月 - 藉由減少元數據呼叫數目來增強效能。
- 已解決大型結果集的重複值問題。

注意

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

注意

Power BI Desktop 的 64 位版本支援此功能,無法在 32 位版本中運作。

疑難排解

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

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

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

若要更新預設資料庫名稱: alter userusername set DEFAULT_NAMESPACE=<database name>.<schema name>。 如需詳細資訊,請參閱 Snowflake 檔 - https://docs.snowflake.com/en/sql-reference/sql/alter-user

限制和已知問題

資料庫名稱中的連字號

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

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

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

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

在 Power BI Desktop 的某些 2025 年 3 月版本中,使用 Snowflake 連接器實作 2.0Implementation="2.0") 時,您可能會遇到無法看到檢視的問題。 此問題已於2025年3月最新版本的Power BI Desktop中獲得修正。 升級您的安裝以再試一次。

TIMESTAMP_NTZ值為UTC且實作=“2.0”

TIMESTAMP_LTZ類型不會轉換成當地時區,但在使用 Snowflake 連接器實作 2.0Implementation="2.0") 時會傳回 UTC 值。 例如,從 Snowflake 執行作業 SELECT CURRENT_TIMESTAMP 會傳回 UTC 時間,而不是使用者的當地時區。 此問題已在 2025 年 7 月版本中解決。

使用 Implementation="2.0" 時,索引超出了陣列的界限。

在某些情況下,會引發一個錯誤,指出在使用 Snowflake 連接器實作 2.0 時發生的問題(Implementation="2.0")。 此問題已在 2025 年 6 月版本中解決。

其他資訊