摘要
項目 | 說明 |
---|---|
發行狀態 | 正式發行 |
產品 | 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 運算倉儲,請執行下列步驟:
從 Power BI Desktop 的 [首頁] 功能區選取 [取得數據],從左側的類別選取 [資料庫],選取 [Snowflake],然後選取 [連線]。
在出現的 Snowflake 視窗中,於 [伺服器] 中輸入 Snowflake 伺服器的名稱,並在 [倉儲] 中輸入 Snowflake 運算倉儲的名稱。
選擇性地在任何您想要用來修改連接查詢的進階選項中輸入值,例如用作角色名稱的文字值或作為命令逾時的數值。 其他資訊:使用進階選項連線
選取 確認。
若要登入 Snowflake 運算倉儲,請輸入您的使用者名稱和密碼,然後選取 [ 連線]。
注意
輸入特定 Snowflake 伺服器的使用者名稱和密碼後,Power BI Desktop 會在後續的連線嘗試中使用這些相同的認證。 您可以移至 [檔案>選項] 和 [>資料源設定] 來修改這些認證。 詳細資訊: 變更驗證方法
如果您想使用 Microsoft 帳戶選項,必須在 Snowflake 端配置 Microsoft Entra ID 與 Snowflake 的整合。 詳細資訊: Power BI SSO to Snowflake - 用戶入門
在 導航器 中,選取一個或多個元素以匯入並使用於 Power BI Desktop。 然後選取 [載入] 以載入 Power BI Desktop 中的數據表,或選取 [轉換數據] 以開啟 Power Query 編輯器,您可以在其中篩選和精簡您想要使用的資料集,然後將該精簡數據集載入 Power BI Desktop。
選取 [匯入] 直接將數據匯入 Power BI,或選取 [DirectQuery],然後選取 [確定]。 詳細資訊: 在 Power BI Desktop 中使用 DirectQuery
注意
Microsoft Entra ID 單一登錄 (SSO) 僅支援 DirectQuery。
從 Power Query Online 連線到 Snowflake 資料庫
若要進行連線,請執行下列步驟:
選擇連接器選項中的Snowflake選項。
在 出現的 [Snowflake ] 對話框中,輸入伺服器和倉儲的名稱。
在您想要使用的進階選項中輸入任何值。 如果UI中沒有任何進階選項,您可以在稍後的Power Query 進階編輯器 中編輯這些選項。
輸入您的連線認證,包括選取或建立新的連線、您想要使用的閘道,以及使用者名稱和密碼。
選取 [下一步] 以連線到資料庫。
在 [導覽器] 中,選取您需要的資料,然後選取 [轉換資料] 以轉換 Power Query 編輯器中的資料。
使用進階選項進行連線
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 之後的日期發生溢位例外狀況。 這個選項的有效值為 null 或nanoseconds
microseconds
。 Null 值預設會使用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 USER
username
若要更新預設資料庫名稱: alter user
username
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.0 (Implementation="2.0"
) 時,您可能會遇到無法看到檢視的問題。 此問題已於2025年3月最新版本的Power BI Desktop中獲得修正。 升級您的安裝以再試一次。
TIMESTAMP_NTZ值為UTC且實作=“2.0”
TIMESTAMP_LTZ類型不會轉換成當地時區,但在使用 Snowflake 連接器實作 2.0 (Implementation="2.0"
) 時會傳回 UTC 值。 例如,從 Snowflake 執行作業 SELECT CURRENT_TIMESTAMP
會傳回 UTC 時間,而不是使用者的當地時區。 此問題已在 2025 年 7 月版本中解決。
使用 Implementation="2.0" 時,索引超出了陣列的界限。
在某些情況下,會引發一個錯誤,指出在使用 Snowflake 連接器實作 2.0 時發生的問題(Implementation="2.0"
)。 此問題已在 2025 年 6 月版本中解決。