[파워쿼리기능소개] 6-2. 쿼리 관리 : 복제와 참조

2020. 7. 23. 23:37엑셀/파워쿼리기능소개

728x90
반응형

이번 포스팅은 쿼리를 다루는 기능들에 2 번째로 쿼리의 복제와 참조입니다. 복제는 말 그대로 현재 쿼리의 진행된 내용까지를 그대로 복사하여 새 쿼리를 만드는 것이고 참조는 엑셀 시트에서 셀을 참조하듯이 해당 쿼리를 "="으로 참조하는 것을 떠올리시면 됩니다. 이번 포스팅에서 쿼리 종속성도 함께 다루겠습니다. 

  1. 쿼리 병합과 추가
  2. 쿼리 복제와 참조
  3. 쿼리 종속성

1. 그룹 관리 

쿼리의 수가 적을 때에는 별 문제가 되지 않지만 많아지면 그룹을 지어 관리하는 것이 큰 도움이 됩니다. 저는 보통 원본 데이터를 담고 있는 쿼리들을 하나로 묶고 중간에 가공되어 만들어지는 쿼리들을 분리하는 형태로 많이 사용합니다. 

그룹을 생성하는 것은 파워쿼리 편집기의 왼쪽에 위치한 쿼리 리스트에서 가능합니다. 쿼리 목록 창에서 우클릭을 하면 새 그룹을 만들 수 있습니다. 

쿼리 그룹이 만들어지면 그룹을 지정할 쿼리를 선택하고 우클릭하여 이동 처리를 할 수 있습니다. 물론 드래그 앤 드롭을 사용하여 마우스로 처리하는 것도 가능합니다. 

바로 이전 포스팅인 쿼리 병합과 추가에 대한 설명에 사용된 예제 파일의 쿼리들을 그룹을 만들어서 묶어놓은 모양입니다. 한결 보기 편해졌네요.

▶ 그룹을 만들어서 쿼리를 관리하는 것은 좋은 습관입니다. 비단 이 경우가 아니더라도 작업을 정리하는 습관을 갖는 것은 프로그램밍 할 때나 문서를 작업할 때 매우 중요합니다. 생각을 정리하기도 용이하고 빼먹은 것이 없는지 확인할 수 있는 유용한 도구가 됩니다. 

 

2. 쿼리 복제

쿼리 복제는 서두에 설명한 대로 현재 진행된 쿼리를 그대로 복사하여 새쿼리로 만든 것이죠. 따라서 적용된 단계도 그대로 복사됩니다. 다음으로 설명할 쿼리 참조는 참조된 쿼리의 적용된 단계는 가져오지 않고 참조 시점의 이후 단계만 새 쿼리에서 추가됩니다. 

쿼리 복제는 복제할 원본 쿼리를 선택하고 우클릭하여 처리 할 수 있습니다. 리본 메뉴의 '홈> 관리> 복제'로도 처리가 가능합니다. 

Table2 쿼리를 복제한 결과입니다. 새 쿼리의 이름은 엑셀 시트를 복사한 것과 동일하게 괄호에 숫자를 붙여주네요. 

적용된 단계가 원본과 동일하게 구성되어 있는 것을 확인 할 수 있습니다. 즉, 원본 쿼리에서 수행된 작업이 한번 더 수행되는 것이죠. 당연히 원본과 복제된 쿼리는 서로 관계가 없습니다. 복제를 한 시점까지를 한 번 더 반복한 결과가 됩니다. 

쿼리 종속성 보기

'보기> 쿼리 종속성'을 보면 두 개의 쿼리는 아무 관계가 없음이 확인됩니다. 어느 한쪽을 수정하더라도 서로 영향을 주지 않습니다. 

3. 쿼리 참조 

쿼리 참조는 현 시점까지 적용된 단계를 새 쿼리로 이어서 진행된다고 생각하시면 됩니다. 따라서 원본 쿼리의 변경이 참조된 새 쿼리에 영향을 주게 됩니다. 

쿼리 참조로 새쿼리를 생성하는 것은 쿼리 복제와 비슷합니다. 원본 쿼리를 선택하고 우클릭하여 참조를 생성하거나 리본 메뉴의 '홈> 관리> 복제'를 사용하여 처리할 수 있습니다. 

Table2 (2) 쿼리를 원본으로 참조하여 Table2 (3)을 생성하였습니다. 위의 그림처럼 적용된 단계가 바로 '원본'부터 시작됩니다. 그리고 적용된 M코드 함수를 보면 쿼리를 참조한다는 내용을 함수가 생성되어 있습니다. 

종속성 보기를 눌러보면 다음과 같이 두 개의 쿼리가 서로 종속 관계에 있음을 확인할 수 있습니다.

이 경우 원본인 Table2 (2) 가 변경되면 참조되어 생성된 새 쿼리인 Table2 (3)이 영향을 받습니다. 따라서 원본 쿼리 수정 시 주의가 필요합니다. 

▶ 파워 쿼리를 작성하다보면 같은 원본 쿼리로부터 데이터를 추출하여 원본과 재 병합하거나 하나의 원본으로부터 여러 다른 쿼리를 만들어야 하는 경우가 생깁니다. 이럴 때 저는 복제보다는 참조를 주로 사용합니다. 정확하게 확인된 것은 아니지만 MS 사이트의 문서를 보면 참조의 경우가 쿼리의 실행 회수가 더 적다고 표현되어 있습니다. 따라서 더 빠르게 수행되고 PC 자원도 덜 사용할 것으로 판단됩니다. 

아무래도 원본을 계속 메모리로 가져오는 것 보다는 가져온 데이터를 계속 사용하는 편이 더 유리할 것이라 생각되네요. 물론 제 추측을 뿐이지만요. 

 

4. 쿼리 종속성 보기

쿼리 종속성 보기를 통해서 각 쿼리간의 관계와 로드된 상태를 확인할 수 있습니다. 

그림이 작아서 안보이면 클릭해서 확대된 상태로 보세요. 

그림을 보면 현재통합문서를 최상위로 각 쿼리의 관계가 표시되어 있습니다. 그림에서 처럼 "병합-내부"를 클릭하면 해당 쿼리와 관계된 쿼리를 하이라이트 색을 주어 표현해줍니다. 

이것으로 "병합-내부"는 Table1 과 Table2, 이 2개의 쿼리에 종속된 관계에 있음을 확인할 수 있습니다. 각 쿼리 간의 관계를 한눈에 확인할 수 있으므로 문제가 생겼을 때 관련 쿼리를 쉽게 찾을 수 있게 됩니다. 

 

이제 마지막 함수에 대해서 다루면 기본 소개는 마무리가 되네요. 목표한 수준에는 미치지 못하지만 처음 목차를 가지고 진행한 포스팅이라 나름 뿌듯합니다. 마무리 잘 하고 본격적?으로 실제 업무 Case를 가정한 사례를 동영상 시연을 포함하여 구성해 볼 생각입니다. 예제 파일은 지난 '쿼리병합과 추가' 파일과 동일하고 단 복제와 참조만 간단하게 해 본 것이라 따로 첨부하지는 않습니다. 지난번 포스팅 참조하세요. 

2020/07/21 - [엑셀/파워쿼리기능소개] - [파워쿼리기능소개] 6-1. 쿼리 관리 : 병합과 추가(Join , Union)

 

[파워쿼리기능소개] 6-1. 쿼리 관리 : 병합과 추가(Join , Union)

이번 포스팅부터 쿼리를 다루는 기능들에 대해서 소개합니다. 그 첫 번재로 쿼리의 병합(Join)과 추가(Union)에 대해서 알아봅니다. 그 다음으로는 쿼리의 복제와 참조에 대해서 살펴보고 쿼리그룹

myterraincognito.tistory.com

 

728x90
반응형