네이티브 쿼리의 쿼리 폴딩
파워 쿼리에서 네이티브 쿼리를 정의하고 데이터 원본에 대해 실행할 수 있습니다. 네이티브 데이터베이스 쿼리를 사용하여 데이터베이스에서 데이터 가져오기 문서에서는 여러 데이터 원본으로 이 프로세스를 수행하는 방법을 설명합니다. 그러나 해당 문서에 설명된 프로세스를 사용하여 쿼리는 후속 쿼리 단계의 쿼리 접기를 활용하지 않습니다.
이 문서에서는 Value.NativeQuery 함수를 사용하여 데이터 원본에 대한 네이티브 쿼리를 만들고 쿼리의 후속 단계를 위해 쿼리 접기 메커니즘을 활성 상태로 유지하는 대체 방법을 보여 줍니다.
지원되는 데이터 커넥터
다음 섹션에서 설명하는 메서드는 다음 데이터 커넥터에 적용됩니다.
- Amazon Redshift
- Dataverse(향상된 컴퓨팅을 사용하는 경우)
- Google BigQuery
- PostgreSQL
- SAP HANA
- Snowflake
- SQL Server
데이터 원본에서 대상에 연결
참고 항목
이 프로세스를 소개하기 위해 이 문서에서는 SQL Server 커넥터 및 AdventureWorks2019 샘플 데이터베이스를 사용합니다. 환경은 커넥터마다 다를 수 있지만 이 문서에서는 지원되는 커넥터에 대한 네이티브 쿼리에 대해 쿼리 접기 기능을 사용하도록 설정하는 방법에 대한 기본 사항을 보여 줍니다.
데이터 원본에 연결할 때는 네이티브 쿼리를 실행하려는 노드 또는 수준에 연결하는 것이 중요합니다. 이 문서의 예제에서 해당 노드는 서버 내의 데이터베이스 수준입니다.
연결 설정을 정의하고 연결에 대한 자격 증명을 제공하면 데이터 원본에 대한 탐색 대화 상자가 열립니다. 탐색 대화 상자에는 연결할 수 있는 모든 사용 가능한 개체가 포함됩니다.
이 목록에서 네이티브 쿼리가 실행되는 개체(대상이라고도 함)를 선택해야 합니다. 이 예제에서 해당 개체는 데이터베이스 수준입니다.
파워 쿼리의 탐색기 창에서 탐색기 창에서 데이터베이스 노드를 선택하고 길게(또는 마우스 오른쪽 단추로 클릭) 데이터 변환 옵션을 선택합니다. 이 옵션을 선택하면 네이티브 쿼리를 실행하는 데 필요한 대상인 데이터베이스의 전체 뷰에 대한 새 쿼리가 만들어집니다.
쿼리가 파워 쿼리 편집기로 이동되면 원본 단계만 적용된 단계 창에 표시됩니다. 이 단계에는 탐색기 창에 표시된 것과 유사하게 데이터베이스에 사용 가능한 모든 개체가 포함된 테이블이 포함되어 있습니다.
Value.NativeQuery 함수 사용
이 프로세스의 목표는 다음 SQL 코드를 실행하고 파워 쿼리를 사용하여 원본으로 다시 접을 수 있는 더 많은 변환을 적용하는 것입니다.
SELECT DepartmentID, Name FROM HumanResources.Department WHERE GroupName = 'Research and Development'
첫 번째 단계는 올바른 대상을 정의하는 것이었습니다. 이 경우 SQL 코드가 실행되는 데이터베이스입니다.
단계에 올바른 대상이 있으면 해당 단계(이 경우 적용된 단계의 원본)를 선택한 다음 수식 입력줄에서 fx 단추를 선택하여 사용자 지정 단계를 추가할 수 있습니다. 이 예제에서는 수식을 다음 수식으로 바꿉 Source
다.
Value.NativeQuery(Source, "SELECT DepartmentID, Name FROM HumanResources.Department WHERE GroupName = 'Research and Development' ", null, [EnableFolding = true])
이 수식의 가장 중요한 구성 요소는 EnableFolding 레코드 필드가 true로 설정된 함수의 네 번째 매개 변수에 선택적 레코드를 사용하는 것입니다.
참고 항목
Value.NativeQuery 함수 에 대한 자세한 내용은 공식 설명서 문서에서 확인할 수 있습니다.
수식을 입력하면 특정 단계에 대해 네이티브 쿼리를 실행할 수 있도록 설정해야 하는 경고가 표시됩니다. 이 단계를 평가하려면 계속을 선택합니다.
이 SQL 문은 행 3개와 열 2개만 있는 테이블을 생성합니다.
쿼리 접기 테스트
쿼리의 쿼리 폴딩을 테스트하려면 필터를 열에 적용하고 적용된 단계 섹션의 쿼리 접기 표시기에서 단계가 접힌 것으로 표시되는지 확인할 수 있습니다. 이 경우 DepartmentID 열을 필터링하여 2와 같지 않은 값을 가질 수 있습니다.
이 필터를 추가한 후에도 쿼리 접기 표시기가 이 새 단계에서 발생하는 쿼리 폴딩을 계속 표시하는지 확인할 수 있습니다.
데이터 원본으로 전송되는 쿼리의 유효성을 추가로 검사하려면 필터링된 행 단계를 선택하거나 마우스 오른쪽 단추로 클릭하고 쿼리 계획 보기 옵션을 선택하여 해당 단계에 대한 쿼리 계획을 확인할 수 있습니다.
쿼리 계획 보기에서 뷰 세부 정보 하이퍼링크가 있는 Value.NativeQuery라는 이름의 노드를 볼 수 있습니다. 이 하이퍼링크를 선택하여 SQL Server 데이터베이스로 전송되는 정확한 쿼리를 볼 수 있습니다.
네이티브 쿼리는 원래의 하위 쿼리를 만들기 위해 다른 SELECT 문 주위에 래핑됩니다. 파워 쿼리는 사용된 변환과 제공된 네이티브 쿼리를 고려하여 최적의 쿼리를 만들기 위해 최선을 다합니다.
팁
쿼리 폴딩이 불가능하여 오류가 발생하는 시나리오의 경우 원래 네이티브 쿼리의 하위 쿼리로 단계의 유효성을 검사하여 구문 또는 컨텍스트 충돌이 있는지 확인하는 것이 좋습니다.