在 Power BI 中優化 Q&A 的最佳做法
使用常見片語和自然語言來詢問數據問題十分強大。 當您的數據回答時,它更強大,也就是 Power BI 中的 Q&A 功能。
為了讓Q&A能夠成功解譯它能夠回應的大型問題集合,Q&A 會假設模型。 如果您的模型結構不符合其中一或多個假設,您需要調整模型。 不論您是否使用 Q&A,Q&A 的調整都是 Power BI 中任何模型的最佳做法優化。
使用問答工具來修正您的問題
在下列各節中,我們會說明如何調整您的模型,使其與Power BI中的Q&A搭配運作良好。 透過 Q&A 工具,您會將核心商務詞彙教導 Q&A,並修正終端使用者提出的問題。 有時候,問題仍無法解決,因為數據的形狀不正確或數據遺失。 在此情況下,請閱讀下列各節,以協助您優化問答。 如需詳細資訊,請參閱 Q&A 工具簡介。
新增遺漏關聯性
如果您的模型缺少數據表之間的關聯性,Power BI 報表和 Q&A 無法解譯如何聯結這些數據表。 關聯性是良好模型的基石。 例如,如果訂單數據表和客戶數據表之間缺少關聯性,則無法要求「西雅圖客戶的總銷售額」。 下列影像顯示需要工作的模型,以及可供Q&A使用的模型。
需要工作
在第一個影像中,[客戶]、[銷售] 和 [產品] 數據表之間沒有關聯性。
準備好進行問答
在第二個影像中,數據表之間會定義關聯性。
重新命名數據表和數據行
數據表和數據行的選擇對於Q&A很重要。 例如,假設您有一 個名為 CustomerSummary 的數據表,其中包含客戶清單。 您需要詢問「列出芝加哥的客戶摘要」之類的問題,而不是「列出芝加哥的客戶」。
雖然 Q&A 可以執行一些基本的斷詞和偵測複數,但 Q&A 假設您的資料表和數據行名稱會準確地反映其內容。
另一個範例是,如果您有一 個名為 Headcount 的數據表,其中包含名字和姓氏和員工號碼。 您有另一個名為 Employees 的數據表,其中包含員工號碼、工作號碼和開始日期。 人員 熟悉模型可能會瞭解此結構。 詢問「計算員工計數」的其他人將會從 「Employees」 資料表中取得數據列的計數。 這個結果可能不是他們心目中的,因為這是每位員工曾經擁有的每一份工作。 最好重新命名這些數據表,以真正反映其包含的內容。
需要工作
StoreInfo 和 Product List 等數據表名稱需要運作。
準備好進行問答
名為 Store 和 Products 的數據表效果更好。
修正不正確的數據類型
匯入的數據可能會有不正確的數據類型。 特別是,以字串形式匯入的日期和時間數據行不會由Q&A解譯為日期和數位。 在 Power BI 模型中選取正確的數據類型。
變更年份和標識碼數據行設定
Power BI 預設會匯總數值數據行,因此「依年度總銷售額」之類的問題有時可能會導致總銷售額與總年數。 如果您有不想讓 Power BI 顯示此行為的特定數據行,請將數據行上的預設 摘要 屬性設定為 [不要摘要]。 請注意 Year、 Month、 Day 和 ID 數據行,因為這些數據行是最常見的問題。 其他不合理加總的數據行,例如 Age,也可以受益於將預設摘要設定為 [不要摘要] 或 [平均值]。 選取資料行之後,此設定位於 [屬性 ] 區段中。
為每個日期和地理位置數據行選擇資料類別
數據 類別 目錄提供數據行內容超過其數據類型的知識。 例如,您可以將整數數據行標示為郵遞區編碼,或將字串數據行標示為城市、國家/地區。 Q&A 會以兩個重要方式使用這項資訊,用於視覺效果選取和語言偏差。
首先,Q&A 會使用 數據類別 資訊來協助選擇要使用的視覺效果顯示類型。 例如,它可辨識具有日期或時間 數據類別的數據行 是折線圖的水平軸或泡泡圖播放軸的好選擇。 它假設包含具有地理 數據類別 的數據行的結果在地圖上看起來可能不錯。
其次,Q&A 對使用者可能如何談論日期和地理數據行進行一些受過教育的猜測,以協助其瞭解特定類型的問題。 例如,「約翰·史密斯何時僱用?」中的「何時」? 幾乎可以肯定對應到日期數據行,而「布朗計數客戶」中的「布朗」更有可能是一個城市,而不是發色。
為相關數據行選擇排序依據數據行
[排序依據數據行] 屬性允許在一個數據行中排序,以改為自動排序不同的數據行。 例如,當您詢問「依帽子大小排序客戶」時,您可能希望您的 Hat Size 數據行依基礎大小數位(XS、S、M、L、XL)排序,而不是依字母順序排序(L、M、S、XL、XS)。
將模型正規化
您不需要重塑整個模型。 然而,某些結構是如此困難,Q&A無法妥善處理它們。 如果您執行模型結構的一些基本正規化,Power BI 報表的可用性會大幅增加,以及 Q&A 結果的精確度。
遵循此一般規則:用戶討論的每個唯一「事物」都應該以一個模型對象(數據表或數據行)來表示。 因此,如果您的使用者談論客戶,應該會有一個 客戶 物件。 如果您的使用者談論銷售,應該會有一個 銷售 物件。 如有需要,查詢編輯器 中提供豐富的數據成形功能。 您可以使用 Power BI 模型中的計算來調整更直接的轉換。
下列各節包含您可能需要執行的一些常見轉換。 如需標準化模型的詳細資訊,請參閱瞭解星型架構和Power BI重要性一文中的正規化與反正規化。
建立多數據行實體的新數據表
如果您有多個數據行在較大的數據表中做為單一相異單位,這些數據行應該分割成自己的數據表。 例如,假設您在 [公司] 數據表中有 [聯繫人名稱]、[聯繫人標題] 和 [聯繫人 電話] 數據行。 更好的設計是讓個別的 [聯繫人] 數據表包含名稱、標題和 電話,以及回到 [公司] 數據表的連結。 這可讓您更輕鬆地詢問與聯繫人相關公司的問題,並改善顯示彈性。
需要工作
準備好進行問答
樞紐以消除屬性包
如果您的模型中有 屬性包 ,則應該重新建構為每個屬性都有單一數據行。 屬性包雖然方便管理大量屬性,但 Power BI 報表和 Q&A 並非設計用來解決的固有限制。
例如,假設有 CustomerID、Property 和 Value 數據行的 CustomerDemographics 數據表,其中每個數據列都代表客戶的不同屬性(例如年齡、婚姻狀態或城市)。 藉由根據 Property 數據行的內容多載 Value 數據行的意義,Q&A 就不可能解譯參考它的大部分查詢。 一個簡單的問題,例如「顯示每個客戶的年齡」可能會發生工作,因為它可以解譯為「顯示屬性為年齡的客戶和客戶人口統計」。 不過,模型的結構不支援更複雜的問題,例如「芝加哥客戶的平均年齡」。 雖然直接撰寫Power BI報表的用戶有時會找到聰明的方式來取得他們正在尋找的數據,但Q&A只有在每個數據行都有單一意義時才能運作。
需要工作
準備好進行問答
排除數據分割的聯集
如果您已將數據分割到多個數據表,或已跨多個數據行樞紐值,則使用者很難或不可能完成某些常見的作業。 請考慮第一個 典型的數據表分割:Sales2000-2010 數據表和 Sales2011-2020 數據表。 如果所有重要報表都受限於特定十年,您可能會將它留給 Power BI 報表。 不過,Q&A 的彈性可引導用戶預期「依年度總銷售額」等問題的答案。 若要讓此查詢能夠運作,您必須將數據聯集到單一 Power BI 模型數據表中。
同樣地,請考慮一般樞紐值數據行: 包含 Author、Book、City1、City2 和 City3 數據行的 BookTour 數據表。 有了這樣的結構,即使是像“按城市計算書”這樣的簡單問題也無法正確解讀。 若要讓此查詢運作,請建立個別 的 BookTourCities 數據表,將城市值聯集成單一數據行。
需要工作
準備好進行問答
分割格式化的數據行
如果您要匯入數據的來源包含格式化的數據行,則 Power BI 報表 (和 Q&A) 不會觸達資料行內部來剖析其內容。 因此, 如果您有包含位址、城市和國家/地區的完整地址數據行,您也應該將其分割成 Address 、City 和 CountryRegion 數據行,讓使用者可以個別查詢它們。
需要工作
準備好進行問答
同樣地,如果您有人員的任何完整名稱數據行,請新增 名字 和 姓氏 數據行,以防有人想要使用部分名稱詢問問題。
建立多重值數據行的新數據表
同樣地,如果您匯入數據的來源包含多重值數據行,則 Power BI 報表 (和 Q&A) 無法連線到資料行內部來剖析內容。 因此,如果您有包含歌曲多個作曲家名稱的 Composer 數據行,請將它分割成個別 Composers 數據表中的多個數據列。
需要工作
準備好進行問答
反正規化以消除非作用中的關聯性
當有多個路徑可從一個數據表到另一個數據表時,就會發生「正規化較佳」規則的例外狀況。 例如,假設您有SourceCityID 和 DestinationCityID 資料行的 Flights 資料表,每個數據表都與 Cities 數據表相關。 其中一個關聯性必須標示為非作用中。 因為 Q&A 只能使用作用中關聯性,因此您無法根據您選擇的來源或目的地詢問問題。 如果您改為將城市名稱數據行反正規化為 Flights 數據表,您可以提出問題,例如「列出明天的航班,並列出西雅圖來源城市和三藩市目的地城市」等問題。
需要工作
準備好進行問答
將同義字新增至數據表和數據行
此步驟特別適用於問答(而不是一般適用於Power BI報表)。 使用者通常會使用許多詞彙來參考相同的專案,例如總銷售額、淨銷售額和總凈銷售額。 您可以將這些同義字新增至 Power BI 模型中的數據表和數據行。
此步驟可能很重要。 即使有簡單的數據表和數據行名稱,Q&A 的使用者也會使用第一次出現的詞彙來詢問問題。 它們不會從預先定義的數據列清單中進行選擇。 您新增的更合理同義字,用戶經驗越好,報表就越好。 若要新增同義字,請在Power BI Desktop 中選取 [模型] 索引標籤,然後選取字段或數據表,以移至 [模型] 檢視。 [屬性] 窗格會顯示 [ 同義字] 方塊,您可以在其中新增同義字。
請注意,將相同的同義字新增至多個數據行或數據表會造成模棱兩可。 Q&A 會盡可能使用內容來選擇模棱兩可的同義字,但並非所有問題都有足夠的內容。 例如,當使用者詢問「計算客戶」時,如果您的模型中有三個同義字「客戶」的專案,使用者可能無法取得他們正在尋找的答案。 在這些情況下,讓主要同義字成為唯一的同義字,因為該同義字是重新述詞中使用的同義字。 它可以對使用者發出模棱兩可的警示(例如,重新說明「顯示已封存的客戶記錄數目」),這暗示他們可能想要以不同的方式詢問。
相關內容
意見反映
https://aka.ms/ContentUserFeedback。
即將推出:我們會在 2024 年淘汰 GitHub 問題,並以全新的意見反應系統取代並作為內容意見反應的渠道。 如需更多資訊,請參閱:提交及檢視以下的意見反映: