계산 테이블 시나리오 및 사용 사례
데이터 흐름에서 계산 테이블을 사용하는 경우 이점이 있습니다. 이 문서에서는 계산된 테이블의 사용 사례를 설명하고 백그라운드에서 작동하는 방법을 설명합니다.
계산 테이블이란?
테이블은 데이터 흐름을 새로 고친 후 데이터 흐름에서 만든 쿼리의 데이터 출력을 나타냅니다. 원본의 데이터와 필요에 따라 적용된 변환을 나타냅니다. 경우에 따라 이전에 수집한 테이블의 함수인 새 테이블을 만들려고 할 수 있습니다.
테이블을 만든 쿼리를 반복하고 새 변환을 적용할 수 있지만 이 방법에는 단점이 있습니다. 데이터가 두 번 수집되고 데이터 원본에 대한 로드가 두 배로 증가합니다.
계산 테이블은 두 가지 문제를 모두 해결합니다. 계산 테이블은 원본에서 데이터를 가져오는 다른 테이블과 유사하며 추가 변환을 적용하여 만들 수 있습니다. 그러나 해당 데이터는 원래 데이터 원본이 아닌 사용된 스토리지 데이터 흐름에서 비롯됩니다. 즉, 이전에 데이터 흐름에서 만든 다음 다시 사용되었습니다.
동일한 데이터 흐름의 테이블을 참조하거나 다른 데이터 흐름에서 만든 테이블을 참조하여 계산 테이블을 만들 수 있습니다.
계산 테이블을 사용하는 이유는 무엇인가요?
한 테이블에서 모든 변환 단계를 수행하는 속도가 느려질 수 있습니다. 이러한 속도 저하에는 여러 가지 이유가 있을 수 있습니다. 데이터 원본이 느려지거나 수행 중인 변환을 두 개 이상의 쿼리에서 복제본(replica) 해야 할 수 있습니다. 먼저 원본에서 데이터를 수집한 다음 하나 이상의 테이블에서 다시 사용하는 것이 유리할 수 있습니다. 이러한 경우 데이터 원본에서 데이터를 가져오는 테이블과 데이터 흐름에서 사용하는 데이터 레이크에 이미 기록된 데이터에 더 많은 변환을 적용하는 계산 테이블이라는 두 개의 테이블을 만들도록 선택할 수 있습니다. 이러한 변경으로 데이터의 성능과 재사용 가능성이 높아지고 시간과 리소스가 절약됩니다.
예를 들어 두 테이블이 계산 테이블 없이 변환 논리의 일부라도 공유하는 경우 변환을 두 번 수행해야 합니다.
그러나 계산 테이블을 사용하는 경우 변환의 공통(공유) 부분이 한 번 처리되고 Azure Data Lake Storage에 저장됩니다. 다시 기본 변환은 일반 변환의 출력에서 처리됩니다. 전반적으로 이 처리는 훨씬 빠릅니다.
계산 테이블은 변환을 위한 소스 코드로 한 자리를 제공하고, 여러 번이 아닌 한 번만 수행하면 되므로 변환 속도를 향상합니다. 데이터 원본의 부하도 줄어듭니다.
계산 테이블 사용에 대한 예제 시나리오
Power BI에서 집계 테이블을 빌드하여 데이터 모델 속도를 높이는 경우 원래 테이블을 참조하고 더 많은 변환을 적용하여 집계 테이블을 빌드할 수 있습니다. 이 방법을 사용하면 원본(원래 테이블의 부분)에서 변환을 복제본(replica) 필요가 없습니다.
예를 들어 다음 그림에서는 Orders 테이블을 보여 줍니다.
이 테이블의 참조를 사용하여 계산 테이블을 작성할 수 있습니다.
Orders 테이블에서 계산 테이블을 만드는 방법을 보여 주는 스크린샷 먼저 쿼리 창에서 주문 테이블을 마우스 오른쪽 단추로 클릭하고 드롭다운 메뉴에서 참조 옵션을 선택합니다. 이 작업은 계산 테이블을 만듭니다. 여기서는 집계된 주문으로 이름이 바뀝니다.
계산된 테이블에는 추가 변환이 있을 수 있습니다. 예를 들어 Group By를 사용하여 고객 수준에서 데이터를 집계할 수 있습니다.
즉, Orders 집계 테이블은 다시 데이터 원본이 아니라 Orders 테이블에서 데이터를 가져옵니다. Orders 테이블에서 수행해야 하는 일부 변환이 이미 수행되었으므로 성능이 향상되고 데이터 변환이 더 빠릅니다.
다른 데이터 흐름의 계산 테이블
다른 데이터 흐름에서 계산 테이블을 만들 수도 있습니다. Microsoft Power Platform 데이터 흐름 커넥터를 사용하여 데이터 흐름에서 데이터를 가져오면 만들 수 있습니다.
이미지는 파워 쿼리 선택 데이터 원본 창에서 Power Platform 데이터 흐름 커넥터를 강조합니다. 또한 스토리지에 이미 유지되어 있는 다른 데이터 흐름 테이블의 데이터를 기반으로 한 데이터 흐름 테이블을 빌드할 수 있음을 나타내는 설명도 포함되어 있습니다.
계산 테이블의 개념은 데이터 원본에서 읽기 시간을 줄이고 몇 가지 일반적인 변환을 공유할 수 있도록 테이블을 스토리지 및 다른 테이블에 유지하도록 하는 것입니다. 이러한 감소는 데이터 흐름 커넥터를 통해 다른 데이터 흐름에서 데이터를 가져오거나 동일한 데이터 흐름의 다른 쿼리를 참조하여 달성할 수 있습니다.
계산 테이블: 변환을 사용하거나 사용하지 않는 경우
이제 계산 테이블이 데이터 변환의 성능을 향상시키는 데 적합하다는 것을 알게 되었으므로 변환을 항상 계산 테이블로 연기해야 하는지 아니면 원본 테이블에 적용해야 하는지를 묻는 것이 좋습니다. 즉, 데이터를 항상 하나의 테이블로 수집한 다음 계산 테이블에서 변환해야 하나요? 장단점이란?
텍스트/CSV 파일에 대한 변환 없이 데이터 로드
데이터 원본이 쿼리 폴딩(예: Text/CSV 파일)을 지원하지 않는 경우, 특히 데이터 볼륨이 큰 경우 원본에서 데이터를 가져오는 경우 변환을 적용할 때는 거의 이점이 없습니다. 원본 테이블은 변환을 적용하지 않고 텍스트/CSV 파일의 데이터만 로드해야 합니다. 그런 다음, 계산된 테이블은 원본 테이블에서 데이터를 가져와 수집된 데이터 위에 변환을 수행할 수 있습니다.
데이터만 수집하는 원본 테이블을 만드는 값은 무엇인가요? 이러한 테이블은 원본의 데이터가 둘 이상의 테이블에 사용되는 경우 데이터 원본에 대한 부하를 줄이기 때문에 유용할 수 있습니다. 또한 이제 다른 사용자 및 데이터 흐름에서 데이터를 다시 사용할 수 있습니다. 계산 테이블은 데이터 볼륨이 크거나 온-프레미스 데이터 게이트웨이를 통해 데이터 원본에 액세스하는 시나리오에서 특히 유용합니다. 게이트웨이의 트래픽과 그 뒤에 있는 데이터 원본의 부하를 줄이기 때문입니다.
SQL 테이블에 대한 몇 가지 일반적인 변환 수행
데이터 원본에서 쿼리 폴딩을 지원하는 경우 쿼리가 데이터 원본으로 접이고 변환된 데이터만 가져오기 때문에 원본 테이블에서 일부 변환을 수행하는 것이 좋습니다. 이러한 변경은 전반적인 성능을 향상시킵니다. 다운스트림 계산 테이블에서 공통적인 변환 집합은 원본 테이블에 적용되어야 하므로 원본으로 접을 수 있습니다. 다운스트림 테이블에만 적용되는 다른 변환은 계산된 테이블에서 수행해야 합니다.