Power BI에서 쿼리 진단 시각화 및 해석
소개
사용하려는 진단 기록하면 다음 단계에서는 해당 사용자가 말하는 내용을 이해할 수 있습니다.
이 짧은 자습서에서는 반복하지 않을 쿼리 진단 스키마의 각 열이 정확히 무엇을 의미하는지 잘 이해하는 것이 좋습니다. 여기에 전체 쓰기가 있습니다.
일반적으로 시각화를 빌드할 때 전체 상세 테이블을 사용하는 것이 좋습니다. 행 수에 관계없이 다양한 리소스에 소요된 시간이 어떻게 늘어나거나 네이티브 쿼리가 내보내졌는지를 보여 주는 일종의 묘사일 수 있습니다.
진단 기록하는 방법에 대한 문서에서 멘션 동일한 테이블(또는 거의 그 정도)에 대한 OData 및 SQL 추적(Northwind의 Customers 테이블)을 사용하고 있습니다. 특히 고객의 일반적인 질문과 추적 집합을 해석하기 쉬운 것 중 하나인 데이터 모델의 전체 새로 고침에 집중하겠습니다.
시각화 빌드
추적을 진행하는 경우 여러 가지 방법으로 추적을 평가할 수 있습니다. 이 문서에서는 두 가지 시각화 분할에 초점을 맞추겠습니다. 하나는 관심 있는 세부 정보를 표시하고 다른 하나는 다양한 요소의 기여 시간을 쉽게 살펴볼 수 있도록 합니다. 첫 번째 시각화의 경우 테이블이 사용됩니다. 원하는 필드를 선택할 수 있지만, 무슨 일이 일어나고 있는지 쉽고 개략적으로 살펴보는 데 권장되는 필드는 다음과 같습니다.
두 번째 시각화의 경우 한 가지 선택은 누적 세로 막대형 차트를 사용하는 것입니다. 'Axis' 매개 변수에서 'Id' 또는 'Step'을 사용할 수 있습니다. 새로 고침을 살펴보는 경우 편집기 자체의 단계와 아무 상관이 없기 때문에 'ID'를 살펴보려고 할 수 있습니다. 'Legend' 매개 변수의 경우 원하는 세분성에 따라 'Category' 또는 'Operation'을 설정해야 합니다. '값'의 경우 '전용 기간'을 설정하고 원시 기간 값을 얻을 수 있도록 %가 아닌지 확인합니다. 마지막으로 도구 설명의 경우 '가장 빠른 시작 시간'을 설정합니다.
시각화가 빌드되면 순서를 확인할 수 있도록 '가장 빠른 시작 시간' 오름차순으로 정렬해야 합니다.
정확한 요구 사항이 다를 수 있지만 이 차트 조합은 다양한 진단 파일을 살펴보고 다양한 용도로 시작하는 데 적합합니다.
시각화 해석
위에서 멘션 쿼리 진단 사용하여 답변할 수 있는 많은 질문이 있지만 가장 자주 볼 수 있는 두 가지 질문은 시간이 어떻게 소요되는지 묻고 원본에 전송된 쿼리가 무엇인지 묻는 것입니다.
소요되는 시간을 묻는 것은 쉽고 대부분의 커넥터와 유사합니다. 다른 곳에서 멘션 쿼리 진단 경고는 커넥터에 따라 크게 다른 기능을 볼 수 있다는 것입니다. 예를 들어 파워 쿼리는 ODBC 드라이버에 보내는 내용만 표시하므로 많은 ODBC 기반 커넥터는 실제 백 엔드 시스템으로 전송되는 쿼리를 정확하게 기록하지 않습니다.
시간이 어떻게 소요되는지 확인하려면 위에서 빌드한 시각화만 볼 수 있습니다.
여기서 사용하는 샘플 쿼리의 시간 값이 너무 작기 때문에 Power BI에서 시간을 보고하는 방법을 사용하려면 파워 쿼리 편집기에서 전용 기간 열을 '초'로 변환하는 것이 좋습니다. 이 변환을 수행하면 차트를 살펴보고 시간이 소요되는 위치를 알 수 있습니다.
내 OData 결과의 경우 이미지에서 원본에서 데이터를 검색하는 데 대부분의 시간이 소요되었음을 알 수 있습니다. 범례에서 '데이터 원본' 항목을 선택하면 데이터 원본에 쿼리를 보내는 것과 관련된 다양한 작업이 모두 표시됩니다.
동일한 작업을 모두 수행하고 유사한 시각화를 빌드하지만 ODATA 대신 SQL 추적을 사용하면 두 데이터 원본이 어떻게 비교되는지 확인할 수 있습니다.
ODATA 진단 같이 데이터 원본 테이블을 선택하면 첫 번째 평가(이 이미지의 2.3)가 메타데이터 쿼리를 내보내고 두 번째 평가는 실제로 관심 있는 데이터를 검색하는 것을 볼 수 있습니다. 이 경우 소량의 데이터를 검색하기 때문에 다시 끌어온 데이터에는 약간의 시간이 걸리지만(전체 두 번째 평가가 발생하는 데 10분의 1초 미만, 데이터 검색 자체의 경우 20초 미만) 모든 경우에 해당되지는 않습니다.
위와 같이 범례에서 '데이터 원본' 범주를 선택하여 내보낸 쿼리를 볼 수 있습니다.
데이터 파고들기
경로 보기
예를 들어 OData 쿼리에서 다음과 같은 값이 있는 데이터 원본 쿼리가 있는 것을 볼 수 있습니다.
Request:
https://services.odata.org/V4/Northwind/Northwind.svc/Customers?$filter=ContactTitle%20eq%20%27Sales%20Representative%27&$select=CustomerID%2CCountry HTTP/1.1
Content-Type: application/json;odata.metadata=minimal;q=1.0,application/json;odata=minimalmetadata;q=0.9,application/atomsvc+xml;q=0.8,application/atom+xml;q=0.8,application/xml;q=0.7,text/plain;q=0.7
<Content placeholder>
Response:
Content-Type: application/json;odata.metadata=minimal;q=1.0,application/json;odata=minimalmetadata;q=0.9,application/atomsvc+xml;q=0.8,application/atom+xml;q=0.8,application/xml;q=0.7,text/plain;q=0.7
Content-Length: 435
<Content placeholder>
이 데이터 원본 쿼리는 단독 기간의 1%만 차지하는 작업과 연결됩니다. 한편, 비슷한 하나가있다 :
Request:
GET https://services.odata.org/V4/Northwind/Northwind.svc/Customers?$filter=ContactTitle eq 'Sales Representative'&$select=CustomerID%2CCountry HTTP/1.1
Response:
https://services.odata.org/V4/Northwind/Northwind.svc/Customers?$filter=ContactTitle eq 'Sales Representative'&$select=CustomerID%2CCountry
HTTP/1.1 200 OK
이 데이터 원본 쿼리는 배타적 기간의 거의 75%를 차지하는 작업과 연결됩니다. 경로를 켜면 후자가 실제로 전자의 자식임을 알 수 있습니다. 즉, 첫 번째 쿼리는 기본적으로 '내부' 쿼리에 의해 추적되는 실제 데이터 검색과 함께 약간의 시간을 추가했습니다.
이러한 값은 극단적인 값이지만 볼 수 있는 범위 내에 있습니다.