Power BI에서 Q&A를 최적화하는 모범 사례

일반적인 구 및 자연어를 사용하여 데이터에 대해 질문하는 것은 강력한 기능입니다. Power BI의 Q&A 기능이 수행하는 작업인 데이터가 응답할 때 훨씬 더 강력합니다.

Q&A가 응답할 수 있는 많은 질문 컬렉션을 성공적으로 해석할 수 있도록 Q&A는 모델에 대해 가정합니다. 사용자 모델의 구조가 이러한 가정을 하나 이상 충족하지 못하는 경우 모델을 조정해야 합니다. Q&A에 대한 이러한 조정은 Q&A 사용 여부에 관계없이 Power BI의 모든 모델에 대해 동일한 모범 사례 최적화입니다.

Q&A 도구를 사용하여 질문 해결

다음 섹션에서는 Power BI의 Q&A에서 잘 작동하도록 모델을 조정하는 방법을 설명합니다. Q&A 도구를 사용하면 핵심 비즈니스 용어를 Q&A에 가르치고 최종 사용자가 묻는 질문을 수정할 수 있습니다. 데이터 모양이 잘못되었거나 데이터가 누락되어 질문을 수정할 수 없는 경우도 있습니다. 이 경우 Q&A를 최적화하는 데 도움이 되는 다음 섹션을 읽어보세요. 자세한 내용은 Q&A 도구 소개를 참조 하세요.

누락된 관계 추가

모델에 테이블 간의 관계가 없는 경우 Power BI 보고서와 Q&A는 해당 테이블을 조인하는 방법을 해석할 수 없습니다. 관계는 적합한 모델의 기초입니다. 예를 들어 orders 테이블 및 customers 테이블 간 관계가 누락된 경우 “시애틀 고객의 총 매출”을 요청할 수 없습니다. 다음 이미지는 작업이 필요한 모델과 Q&A에 사용할 준비가 된 모델을 보여 줍니다.

작업 필요

첫 번째 이미지에서 Customers, Sales 및 Products 테이블 간에 아무 관계도 없습니다.

Screenshot showing Customers, Sales, and Products tables with no connected relationships.

Q&A 준비 완료

두 번째 이미지에서 테이블 간에 관계가 정의되었습니다.

Screenshot showing Customers, Sales, and Products tables with interconnected relationships.

테이블 및 열의 이름 변경

테이블 및 열 선택은 Q&A에 중요합니다. 예를 들어 고객 목록을 포함하는 CustomerSummary라는 테이블이 있다고 가정합니다. “시카고의 고객 나열” 대신에 “시카고의 고객 요약을 나열”과 같은 질문을 해야 합니다.

Q&A는 몇 가지 기본적인 단어 분리 및 복수 검색을 수행할 수 있지만 Q&A는 테이블과 열 이름이 콘텐츠를 정확하게 반영한다고 가정합니다.

이름과 성과 직원 번호가 포함된 Headcount라는 테이블이 있는 경우를 예로 들 수 있습니다. 직원 번호, 작업 번호 및 시작 날짜가 포함된 Employees라는 다른 테이블이 있습니다. 모델에 익숙한 사용자는 이 구조를 이해할 수 있습니다. “직원 수”를 묻는 다른 사용자가 “Employees” 테이블에서 행 수를 가져오려고 합니다. 이 결과는 각 직원이 담당했던 모든 작업 수이므로 사용자가 생각한 것과 다를 수 있습니다. 포함된 내용을 실제로 반영하도록 해당 테이블의 이름을 변경하는 것이 더 좋을 것입니다.

작업 필요

StoreInfoProduct List와 같은 테이블 이름은 작업이 필요합니다.

Screenshot showing examples of table names that aren't optimal for Q and A.

Q&A 준비 완료

StoreProducts와 같은 테이블 이름이 더 효과적입니다.

Screenshot showing examples of table names that are optimal for Q and A.

잘못된 데이터 형식 수정

가져온 데이터에 잘못된 데이터 형식이 있을 수 있습니다. 특히 문자열가져온 날짜숫자 열은 Q&A에서 날짜 및 숫자로 해석되지 않습니다. Power BI 모델에서 올바른 데이터 형식을 선택합니다.

Screenshot showing the Formatting panel with the Data type and Date time format selected.

연도 및 식별자 열 설정 변경

Power BI는 기본적으로 숫자 열을 집계하기 때문에 “연도별 총 매출”과 같은 질문은 매출의 총계가 연도의 총계와 함께 결과로 표시되곤 합니다. 특정 열에서 Power BI가 이 동작을 나타내지 않도록 하려면, 열의 기본 요약 속성을 요약 안 함으로 설정합니다. 연도, , ID 열은 가장 흔한 문제이므로 주의해야 합니다. 요약하기에 적절하지 않은 나이 등의 열도 기본 요약요약 안 함 또는 평균으로 설정하는 것이 좋습니다. 이 설정은 열을 선택한 후 속성 섹션에 있습니다.

Screenshot showing the Summarization field with Don't summarize selected.

각 날짜 및 지리 열에 대한 데이터 범주 선택

데이터 범주는 데이터 형식 이외의 열 콘텐츠에 대한 정보를 제공합니다. 예를 들어 정수 열을 우편 번호로 표시하거나 문자열 열을 도시, 국가/지역으로 표시할 수 있습니다. Q&A는 시각화 선택과 언어 바이어스의 두 가지 중요한 방법으로 이 정보를 사용합니다.

먼저 Q&A는 데이터 범주 정보를 사용하여 사용할 시각적 표시 종류를 선택할 수 있도록 합니다. 예를 들어 날짜 또는 시간 데이터 범주가 있는 열은 꺾은선형 차트의 가로 축 또는 거품형 차트의 재생 축에 적합한 것으로 인식합니다. 지리적 데이터 범주가 있는 열을 포함한 결과는 지도에서 잘 표시되는 것으로 가정합니다.

둘째, Q&A는 사용자가 특정 유형의 질문을 이해하는 데 도움이 되도록 날짜 및 지리 열에 대해 이야기할 가능성이 있는 방법에 대해 교육된 추측을 합니다. 예를 들어 “John Smith가 고용된 시기”의 “시기”는 거의 확실히 날짜 열에 매핑되며, “Brown의 고객 카운트”의 “Brown”은 머리 색이 아닌 도시가 될 가능성이 더 높습니다.

Screenshot showing the Data category field with Uncategorized selected.

관련 열에 대한 열 기준 정렬 선택

열 기준 정렬 속성을 사용하면 한 열에서의 정렬이 자동으로 다른 열을 대신 정렬할 수 있습니다. 예를 들어 “모자 사이즈를 기준으로 고객 정렬”이라고 질문하는 경우 아마도 모자 사이즈 열을 알파벳 순(L, M, S, XL, XS)이 아닌 기본 사이즈 번호(XS, S, M, L, XL) 순으로 정렬하려는 것입니다.

Screenshot showing the Sort by column dropdown with Hat Size ID selected.

모델 표준화

전체 모델을 재구성할 필요가 없습니다. 그러나 특정 구조는 너무 어려서 Q&A가 이를 잘 처리하지 못합니다. 모델 구조의 기본 정규화를 수행하는 경우 Q&A 결과의 정확도와 함께 Power BI 보고서의 유용성이 크게 증가합니다.

다음 일반 규칙을 따르세요. 사용자가 말하는 각 고유한 항목이 정확히 하나의 모델 개체(테이블 또는 열)로 나타나야 합니다. 따라서 사용자가 고객에 대해 말한다면 하나의 고객 개체가 있어야 합니다. 사용자가 판매에 대해 말한다면 하나의 판매 개체가 있어야 합니다. 필요한 경우 쿼리 편집기에서 사용할 수 있는 다양한 데이터 셰이핑 기능이 있습니다. Power BI 모델의 계산을 사용하여 보다 간단한 변환을 조정할 수 있습니다.

다음 섹션에서는 사용자가 수행해야 할 수도 있는 몇 가지 일반적인 변환이 포함되어 있습니다. 모델을 정규화하는 방법에 대한 자세한 내용은 별모양 스키마 및 Power BI에서의 중요성 이해 문서의 정규화 및 비정규화를 참조하세요.

다중 열 엔터티에 대한 새 테이블 만들기

더 큰 테이블 내에서 단일 고유 단위의 역할을 하는 열이 여러 개 있는 경우 해당 열을 각 테이블로 분할해야 합니다. 예를 들어 Companies 테이블 내 연락처 이름, 연락처 제목 및 연락처 전화 번호 열이 있다고 가정합니다. 더 나은 디자인은 이름, 제목 및 휴대폰이 포함된 별개의 Contacts 테이블과 Companies 테이블로 돌아가는 링크가 있는 것입니다. 그러면 연락처가 있는 회사 관련 질문 중 연락처에 관한 개별적인 질문을 더 손쉽게 할 수 있으며 유연성을 향상시킵니다.

작업 필요

Screenshot showing a Suppliers table that includes contact information.

Q&A 준비 완료

Screenshot showing two tables, one for Suppliers and one for Contacts.

속성 모음을 제거하는 피벗

모델에 ‘속성 모음’이 있는 경우, 속성당 하나의 열이 있도록 재구성해야 합니다. 속성 모음은 많은 수의 속성을 관리하는 데 편리하지만 Power BI 보고서 및 Q&A가 해결하도록 설계되지 않은 고유한 제한 사항이 있습니다.

예를 들어 고객 ID, 속성, 값 열이 있는 CustomerDemographics 테이블을 가정해 보세요. 각 행에는 고객의 다른 속성(예: 나이, 혼인 여부 또는 도시)이 표시되어 있습니다. 속성 열의 내용에 따라 값 열의 의미를 오버로드하면 Q&A가 이를 참조하는 대부분의 쿼리를 해석할 수 없게 됩니다. “각 고객의 나이를 표시”와 같은 간단한 질문은 “속성이 나이인 고객 및 고객 인구 통계를 표시”로 해석될 수 있으므로 작동할 수도 있습니다. 단, 모델 구조는 “시카고에 있는 고객의 평균 나이”처럼 더 복잡한 질문을 지원하지 않을 뿐입니다. Power BI 보고서를 직접 작성하는 사용자는 때때로 찾고 있는 데이터를 가져오는 영리한 방법을 찾을 수 있지만 Q&A는 각 열에 단일 의미가 있는 경우에만 작동합니다.

작업 필요

Screenshot showing three columns with the headings Customer ID, Property, and Value.

Q&A 준비 완료

Screenshot showing three columns with the headings Customer ID, Age, Hat Size, and City.

병합하여 분할 제거

데이터를 여러 테이블로 분할하거나 값을 여러 열로 피벗한 경우, 몇몇 일반적인 작업은 사용자가 수행하기 어렵거나 불가능하게 됩니다. Sales2000-2010 테이블 및 Sales2011-2020 테이블과 같은 일반적인 테이블 분할을 먼저 고려합니다. 중요한 보고서가 모두 특정 10년으로 제한된 경우 아마도 Power BI 보고서에 대해 이러한 방식으로 유지할 수 있습니다. 그러나 Q&A의 유연성으로 인해 사용자는 "연간 총 매출"와 같은 질문에 대한 답변을 기대할 수 있습니다. 이 쿼리가 수행되려면 데이터를 단일 Power BI 모델 테이블로 병합해야 합니다.

마찬가지로, 작성자, 책, 도시 1, 도시 2 및 도시 3 열이 포함된 BookTour 테이블과 같은 일반적인 피벗된 값 열을 고려합니다. 이와 같은 구조를 사용하면 “도시별 책 카운트”와 같이 간단한 질문도 올바르게 해석될 수 없습니다. 이 쿼리가 수행되려면 도시 값을 단일 열로 병합하는 별도의 BookTourCities 테이블을 만듭니다.

작업 필요

Screenshot showing a table with pivoted value columns, City 1, City 2, and City 3.

Q&A 준비 완료

Screenshot showing two tables, one with book and author information for tours and one with cities associated with the tours.

서식이 지정된 열 분할

데이터를 가져오는 원본에 서식이 지정된 열이 포함된 경우 Power BI 보고서(및 Q&A)는 열 내부에 도달하여 내용을 구문 분석하지 않습니다. 따라서 예를 들어 주소, 도시 및 국가/지역이 포함된 전체 주소 열이 있는 경우 사용자가 개별적으로 쿼리할 수 있도록 주소, 도시 및 국가/지역 열로 분할해야 합니다.

작업 필요

Screenshot showing a table with two columns, Customer and Full Address.

Q&A 준비 완료

Screenshot showing a table with five columns, Customer, Full address, Address, City, and Country or Region.

마찬가지로 사람의 전체 이름 열이 있다면, 부분 이름을 사용하여 질문하려는 경우를 위해 이름 열을 추가합니다.

다중값 열에 대한 새 테이블 만들기

또한 데이터를 가져오는 원본에 다중 값 열이 포함된 경우 Power BI 보고서(및 Q&A)가 열 내부에 도달하여 내용을 구문 분석할 수 없는 경우도 마찬가지입니다. 따라서 예를 들어 한 노래에 여러 작곡가의 이름이 포함된 작곡가 열이 있는 경우 개별 작곡가 테이블의 여러 행으로 분할합니다.

작업 필요

Screenshot showing a table with four columns, ID, Name, Genre, and Composers.

Q&A 준비 완료

Screenshot showing two tables, one with ID, Name, and Genre and one with ID and Composer.

비정규화로 비활성 관계 제거

한 테이블에서 다른 테이블로 가는 경로가 하나 이상인 경우에는 “정규화가 더 나은” 규칙에 대한 한 가지 예외가 발생합니다. 예를 들어 각각 Cities 테이블과 관련이 있는 SourceCityID 및 DestinationCityID 열이 포함된 Flights 테이블이 있다고 가정합니다. 해당 관계 중 하나는 비활성으로 표시해야 합니다. Q&A는 활성 관계만 사용할 수 있으므로 선택한 항목에 따라 원본 또는 대상에 대해 질문할 수 없습니다. 대신에 도시 이름 열을 Flights 테이블로 비정규화하면 “출발지가 시애틀이고 도착지가 샌프란시스코인 내일 항공편을 나열”과 같은 질문을 할 수 있게 됩니다.

작업 필요

Screenshot showing two tables, Flights and Airports.

Q&A 준비 완료

Screenshot showing one table named Flights. The columns from the Airports table are added to the Flights table.

테이블 및 열에 동의어 추가

이 단계는 특히 Q&A에 적용되며 일반적으로 Power BI 보고서에는 적용되지 않습니다. 사용자에게는 종종 총 매출액, 순매출액, 총 순매출액과 같이 동일한 항목을 참조하는 데 사용하는 많은 용어가 있습니다. Power BI 모델의 테이블과 열에 이러한 동의어를 추가할 수 있습니다.

이 단계는 중요할 수 있습니다. 간단한 테이블 및 열 이름이 있더라도 Q&A 사용자는 먼저 제공되는 어휘를 사용하여 질문을 합니다. 미리 정의된 열 목록에서 선택하지 않습니다. 더 타당한 동의어를 추가할수록 보고서를 이용하는 사용자의 경험이 향상됩니다. 동의어를 추가하려면 Power BI Desktop에서 모델 뷰로 이동하고 모델링 탭을 선택한 다음, 필드 또는 테이블을 선택합니다. 속성 창에 동의어를 추가할 수 있는 동의어 상자가 표시됩니다.

Screenshot showing the Q&A Properties pane with the Synonyms field highlighted.

동일한 동의어를 둘 이상의 열이나 테이블에 추가하면 모호성이 발생하는 것에 주의하세요. Q&A는 모호한 동의어 중에서 선택할 수 있는 컨텍스트를 사용하지만 모든 질문에 충분한 컨텍스트가 있는 것은 아닙니다. 예를 들어 사용자가 “고객 수”라고 질문하는 경우, 모델에 “고객” 동의어가 포함된 항목이 3개이면 사용자는 찾고 있는 답변을 얻지 못할 수도 있습니다. 이러한 경우 기본 동의어는 재작성 시 사용되므로 기본 동의어를 고유하게 만듭니다. 사용자에게 모호성에 대한 경고(예: “저장된 고객 레코드의 수를 표시”의 재작성)가 표시될 수 있습니다. 이러한 힌트는 다르게 질문하라는 의미일 수 있습니다.