ODBC 資料來源的 Power BI 閘道和報表產生器支援

適用于: Power BI 報表產生器 Power BI Desktop

本文說明如何在 Power BI 閘道中設定 Open Database 連線ivity (ODBC) 資料來源,以及如何在 Power BI 報表產生器中使用 ODBC 資料來源。

支援資料來源名稱 (DSN) 和驅動程式連接字串。

注意

Power BI 報表產生器現在是 64 位,且不再使用 32 位驅動程式。 Power BI 報表產生器 和 Power BI 閘道都需要 64 位版本。

安裝 Power BI 閘道之前

您需要 Power BI 閘道版本 2021 年 2 月或更新版本。 建議您在與 Power BI 報表產生器 或 Power BI Desktop 不同的電腦上安裝閘道。 在某些情況下,使用相同的電腦可能會導致問題。

安裝和設定 ODBC 資料來源的 Power BI 報表產生器

最新版的 Power BI 報表產生器已經包含 ODBC 資料延伸模組。

  1. 安裝最新版的 Power BI 報表產生器
  2. 安裝您打算與 Power BI 報表產生器搭配使用的 64 位 ODBC 驅動程式。

安裝 Power BI 閘道,設定 ODBC 資料來源

請遵循下列步驟來設定 ODBC 資料來源的 Power BI 閘道。

  1. 下載最新的 Power BI 閘道

    注意

    編頁報表不支援個人閘道,因為它們需要 DirectQuery 支援。

  2. 如需設定內部部署資料閘道的相關資訊,請參閱什麼是內部部署資料閘道一

  3. 安裝您打算在閘道電腦上使用的 64 位 ODBC 驅動程式。

    注意

    不支援檔案 DSN。 如果您想要使用 DSN,請在閘道電腦上建立 64 位 系統 DSN

  4. 若要在Power BI 服務中設定 ODBC 資料來源,請選取 [管理設定 下的 連線和閘道

    Screenshot of Manage gateway option under settings.

  5. 選取 功能區頂端的 [新增 ],以新增資料來源。 然後選擇 [ 新增資料來源 > ODBC 資料來源類型 ]:

    Screenshot of data source settings.

  6. 貼上連接字串(系統 DSN 或驅動程式),然後選取驗證方法。 針對 ODBC 資料來源,支援下列驗證方法:

    • 基本
    • Windows

    注意

    不支援匿名驗證方法。 您可以針對 ODBC 資料來源選取它,但在轉譯報表時,您會收到類似下列「未預期的錯誤」:

    Screenshot of error message that says anonymous authentication isn't supported.

  7. 當您選取 [ 新增 ] 按鈕時,Power BI 服務會使用提供的連接字串和認證連接到 ODBC 資料來源,以驗證閘道是否能夠連線。

ODBC 連接字串範例

以下是系統 DSN 的一些 ODBC 連接字串範例,以及各種 ODBC 驅動程式:

  • 「dsn=Northwind」
  • 「driver={Microsoft Access Driver (*.mdb, *.accdb)};dbq=c:\Data\Northwind.mdb」
  • 「driver={SnowflakeDSIIDriver};warehouse=DEMO_WH;server= org.snowflakecomputing.com
  • 「driver={Amazon Redshift (x64)};server= org.us-west-2.redshift.amazonaws.com ;database=dev」

某些驅動程式和組態可能不支援所有驗證方法。

除了在閘道前面建立 ODBC 資料來源之外,您也可以在上傳編頁報表時視需要建立 ODBC 資料來源。 如果 ODBC 資料來源不存在,上傳程式會提示您建立一個:

Screenshot of Create data source prompt.

已知問題

一般而言,在 Power BI 中使用 ODBC 資料延伸模組的所有限制報表產生器也適用于在 Power BI 閘道中使用 ODBC 資料延伸模組。

以下是一些已知的限制:

  • 對於大部分的 ODBC 驅動程式,DateTime 參數需要變更 RDL 資料集中的命令文字,才能將 DateTime 參數值轉換成指定 ODBC 資料來源的適當格式。

    範例查詢:
    SELECT * FROM DEMO_DB.PUBLIC.DATES WHERE DATE < DATE(?)

    注意

    某些資料來源可能需要特定格式設定。 您可以使用運算式來格式化上述範例中的 參數。 例如: =Format(Parameters!Date.Value, "yyyy-MM-dd")

  • 對於某些 ODBC 驅動程式,閘道與 Power BI 報表產生器之間有行為差異。 這可能適用于所有、部分或只套用一個驅動程式。 其中一個已知的範例是 ,如果參數不是字串類型,Simba-BigQuery 查詢需要轉換參數。

    錯誤字串範例:「此報表所使用的資料來源傳回錯誤。 存取目標資料來源錯誤 [42000] [Simba][BigQuery] (70) 不正確查詢時發生例外狀況:運算子 = 的引數類型沒有相符的簽章:INT64、STRING。 支援的簽章:ANY = ANY at [2:7]」

    具有 INT64 資料行適當轉換的範例查詢:
    SELECT * FROM 'teamplz.Sample.SampleTable' WHERE DataID=CAST(? as INT64)

  • 不支援任何由指定 ODBC 驅動程式或後端公開的特殊資料類型,而不只是對應至 ADO.Net 資料類型。 其中一個範例是 Snowflake Array 資料類型。

  • 通常不支援 ODBC 驅動程式使用不含參數的預存程式的情況。 不過,Amazon Redshift 驅動程式具有支援的 in/out 參數。