從關聯式資料來源取得資料

已完成

如果您的組織使用關係資料庫進行銷售,您可以使用 Power BI Desktop 直接連線到資料庫,而不是使用導出的一般檔案。

將 Power BI 連線到您的資料庫將可協助您監視業務進度並找出趨勢,讓您可以預測銷售數字、規劃預算及設定績效指標與目標。 Power BI Desktop 可以連線到雲端或內部部署中的許多關聯式資料庫。

案例

Tailwind Traders 的銷售小組要求您連線到組織的內部部署 SQL Server 資料庫,並將銷售數據放入 Power BI Desktop,以便您可以建置銷售報表。

連線到關聯式資料庫中的資料

您可以在 Power BI Desktop 中使用 [取得數據] 功能,並選取關係資料庫適用的選項。 在此範例中,您會選取 [SQL Server] 選項,如下列螢幕快照所示。

提示

在 [取得資料] 按鈕旁是快速存取資料來源選項,例如 [SQL Server]。

您的下一個步驟是在 [SQL Server 資料庫] 視窗中輸入您的資料庫伺服器名稱與資料庫名稱。 資料連線模式中的兩個選項為:[匯入] \(預設會選取此選項,建議使用\) 與 [DirectQuery]。 大部分情況下,您選取 [匯入]。其他進階選項也可以在 SQL Server 資料庫視窗中使用,但您現在可以忽略這些選項。

新增伺服器和資料庫名稱之後,系統會提示您使用使用者名稱和密碼登入。 您將有三個登入選項:

  • Windows - 使用您的 Windows 帳戶 (Azure Active Directory 認證) 。

  • 資料庫 - 使用您的資料庫認證。 例如,SQL Server 有自己的登入及驗證系統,有時會加以使用。 如果資料庫管理員為您提供資料庫的唯一登入,您可能需要在 [資料庫] 索引標籤上輸入那些認證。

  • Microsoft 帳戶 - 使用您的 Microsoft 帳戶認證。 此選項經常用於 Azure 服務。

選取登入選項,輸入您的使用者名稱和密碼,然後選取 [ 連線]。

選取要匯入的資料

資料庫連線到 Power BI Desktop 之後,[導覽器] 視窗會顯示數據源中可用的數據, (此範例中的 SQL 資料庫) 。 您可以選取資料表或實體來預覽其內容,以確保正確的資料會載入至 Power BI 模型。

選取 (要帶入 Power BI Desktop (數據表) 的數據表) 複選框,然後選取 [載入] 或 [轉換數據] 選項。

  • 載入 - 自動將數據載入 Power BI 模型,並處於其目前狀態。

  • 轉換資料 - 在 Microsoft Power Query 中開啟您的數據,您可以在其中執行動作,例如刪除不必要的數據列或數據行、分組數據、移除錯誤,以及許多其他數據品質工作。

透過撰寫 SQL 查詢來匯入資料

匯入資料的另一種方式是撰寫 SQL 查詢,只指定您需要的資料表與資料行。

若要撰寫 SQL 查詢,請在 [SQL Server 資料庫] 視窗中,輸入您的伺服器和資料庫名稱,然後選取 [進階選項] 旁的箭號,展開此區段並檢視您的選項。 在 [ SQL 語句 ] 方塊中,撰寫查詢語句,然後選取 [ 確定]。 在此範例中,您將使用 Select SQL 語句 ,從 SALES 數據表載入識別碼、NAME 和 SALESAMOUNT 資料行。

變更資料來源設定

建立資料來源連線並將資料載入到 Power BI Desktop 之後,您可以隨時返回並變更連線設定。 此動作通常是因為組織內的安全性原則 (例如,需要每隔 90 天更新密碼時) 所致。 您可以變更資料來源、編輯權限或清除權限。

在 [ 首頁] 索引標籤上,選取 [ 轉換數據], 然後選取 [數據源設定 ] 選項。

從顯示的資料來源清單中,選取您要更新的資料來源。 然後,您可以用滑鼠右鍵按一下該資料來源以檢視可用的更新選項,或使用視窗左下角的更新選項按鈕。 選取您需要的更新選項、視需要變更設定,然後套用您的變更。

您也可以在 Power Query 內變更資料來源設定。 選取數據表,然後選取 [首頁] 功能區上的 [數據源設定] 選項。 或者,您也可以移至畫面右側的 [ 查詢 設定] 面板,然後選取 [來源 (旁的設定圖示,或按兩下 [選取來源]) 。 在顯示的視窗中,更新伺服器和資料庫詳細數據,然後選取 [ 確定]。

進行變更之後,請選取 [ 關閉] 並 [套用 ] 以將這些變更套用至您的數據源設定。

撰寫 SQL 陳述式

如先前所述,您可以使用 SQL 查詢將資料匯入到您的 Power BI 模型。 SQL 代表 Structured Query Language (結構化查詢語言),而且是一種標準化的程式設計語言,可用來管理關聯式資料庫並執行各種資料管理作業。

假設您的資料庫有一個大型資料表,其中包含數年的銷售資料。 2009 年的銷售數據與您正在建立的報表無關。 這種情況是 SQL 很有説明的地方,因為它可讓您只載入必要的資料集,方法是在 SQL 語句中指定確切的數據行和數據列,然後將這些數據行匯入您的語意模型。 您也可以聯結不同的資料表、執行特定的計算、建立邏輯陳述式,以及在 SQL 查詢中篩選資料。

下列範例顯示一個簡單查詢,其中的 ID、NAME 與 SALESAMOUNT 是從 SALES 資料表選取的。

SQL 查詢會從 Select 語句開始,可讓您選擇您想要從資料庫提取的特定欄位。 在此範例中,您想要載入 ID、NAME 與 SALESAMOUNT 資料行。

SELECT
ID
, NAME
, SALESAMOUNT
FROM

FROM 指定您要從中提取資料的資料表名稱。 在此案例中,其是 SALES 資料表。 下列範例是完整的 SQL 查詢:

SELECT
ID
, NAME
, SALESAMOUNT
FROM
SALES

使用 SQL 查詢匯入數據時,請嘗試避免在查詢中使用通配符 (*) 。 如果您在 SELECT 語句中使用通配符 (*) ,您會從指定的數據表匯入不需要的所有數據行。

下列範例顯示使用萬用字元的查詢。

SELECT *
FROM
SALES

通配符 (*) 將會匯入 Sales 數據表中的所有數據行。 不建議使用此方法,因為它會導致語意模型中的備援數據,這會導致效能問題,而且需要額外的步驟將您的數據正規化以進行報告。

所有查詢也應該有 WHERE 子句。 此子句將會篩選資料列,只挑選您要的篩選記錄。 在此範例中,如果您想要在 2020 年 1 月 1 日之後取得最近的銷售數據,請新增 WHERE 子句。 逐步發展的查詢看起來會像下面範例這樣。

SELECT
ID
, NAME
, SALESAMOUNT
FROM
SALES
WHERE
OrderDate >= ‘1/1/2020’

最佳做法是避免直接在Power BI 中執行此動作。 相反地,請考慮在檢視中撰寫像這樣的查詢。 檢視是關聯式資料庫中的物件,類似於資料表。 檢視具有資料列與資料行,而且可以包含 SQL 語言中的幾乎所有運算子。 如果 Power BI 使檢視,當其抓取資料時,其會參與查詢摺疊,這是 Power Query 中的一個功能。 稍後會說明查詢摺疊,但簡而言之,Power Query 將會根據稍後使用將資料的方式,將資料擷取程序最佳化。