파이썬에서 자기란 무엇인가: 실제 사례
파이썬에서 자기란 무엇인가: 실제 사례
이 자습서에서는 LuckyTemplates에서 통화 변환을 위해 파워 쿼리를 사용하는 방법을 알아봅니다. 이 블로그 하단에서 이 튜토리얼의 전체 비디오를 볼 수 있습니다.
이 블로그에서 설명하는 방법은 사용 가능한 마지막 환율을 사용하여 환율 테이블의 문제를 해결하는 데 도움이 됩니다.
환율표에 매일 환율이 표시되지 않을 때 문제를 해결하는 방법을 이해하게 될 것입니다.
목차
누락된 데이터 식별
이 문제는 날짜 테이블에 휴일이나 주말에 대한 데이터가 없는 경우에 발생할 수 있습니다.
요율이 없고 고려하지 않은 경우 총 판매액과 같은 지표는 변환되지 않습니다.
이 환율표를 보면 2016년 1월 환율이 유로로 표시되어 있습니다.
그러나 27일과 28일은 누락되었으며 요율이 없습니다. 따라서 매트릭스로 이동하면 27과 28에 대한 비율이 없음을 알 수 있습니다.
측정값이 누락된 통화 비율은 사실 통화 비율 테이블의 합계입니다.
테이블의 총 26.6983은 의미가 없습니다. 그것은 현재 날짜에 있기 때문에 합산할 필요가 없는 그 위에 있는 모든 환율의 합일 뿐입니다.
이제 이것은 쿼리 및 집계와 관련된 데이터 모델링 문제에 가깝기 때문에 파워 쿼리 에서 수정할 수 있습니다. 이 작업은 DAX로도 수행할 수 있지만 LuckyTemplates의 파워 쿼리를 사용하면 더 쉽고 빠릅니다.
따라서 데이터 변환 을 클릭한 다음 파워 쿼리 창을 엽니다.
누락된 데이터가 있는 테이블입니다. 이 환율표에서 유로, 파운드 및 달러가 포함된 것을 볼 수도 있습니다.
그리고 이것은 1월 27일과 28일에 값이 있는 최종 테이블입니다. 이것은 가지고 있어야 하는 테이블 또는 출력입니다.
데이터를 가져오는 모든 소스에서 데이터를 가져오고 데이터 유형을 변경하기만 하면 됩니다.
다른 통화 분리
다음으로, 둘 이상의 통화가 있는 경우 시세 표시기로 구분하고 그룹화하는 것이 중요합니다.
예를 들어 유로를 클릭하면 환율이 유로로만 표시되도록 그룹화할 때 모든 행에서 그룹화해야 합니다.
여기에는 파운드 통화뿐만 아니라 누락된 날짜도 있음을 알 수 있습니다.
LuckyTemplates에는 Invoke Custom Function 이라는 것이 있습니다 . 이것은 FillMissingRates가 있는 함수입니다.
유로를 클릭하면 확장된 테이블에서 보았던 누락된 데이터가 포함된 전체 테이블이 표시됩니다. 가장 오래된 요율부터 최신 요율 순으로 정렬됩니다.
사용자 지정 함수가 수행하는 작업을 파악합니다. Invoke Custom Function 근처의 톱니바퀴 아이콘을 클릭하면 All 컬럼을 끌어오고 있는 컬럼 이름과 소스를 확인할 수 있습니다.
그렇게 하려면 기본 테이블부터 시작하십시오. 변환을 수행하고 원하는 결과를 얻은 다음 이를 사용하여 함수를 빌드합니다. 다른 모든 하위 테이블이 있는 테이블에서 수행하려고 시도하는 것보다 더 의미가 있습니다.
예를 들어 유로화에 초점을 맞추려면 시세 표시기로 필터링하십시오.
누락된 날짜를 확인하려면 날짜 테이블과 병합하십시오.
다음은 필터링된 기본 통화 테이블과 DimDate 테이블입니다.
Join Kind의 경우 Full Outer를 사용하여 두 테이블의 모든 행을 가져올 수 있습니다. 이것은 누락된 항목과 일치하는 요율을 보여줍니다.
병합하면 전체 테이블이 하위 테이블로 제공됩니다.
그런 다음 행을 정렬한 다음 날짜 열만 포함하도록 DimDate를 확장합니다.
이제 모든 것이 일치하는 것을 볼 수 있습니다. 그리고 가장 오래된 순서로 행을 정렬하면 null 값이 있는 누락된 2일도 볼 수 있습니다.
누락된 요율 채우기
Date.1을 제외한 모든 열의 모든 null을 채울 것이기 때문에 이 순서대로 배열하는 것이 중요합니다.
입력하고 나면 null 값이 유로 및 마지막으로 사용 가능한 환율로 변경된 것을 볼 수 있습니다.
그런 다음 테이블에서 Date 열과 같은 불필요한 열을 제거합니다.
Date.1 열에는 이미 날짜가 있으므로 날짜 열은 필요하지 않습니다. 그런 다음 Crossrate를 십진수로 설정합니다.
마지막으로 열을 재정렬하고 이름을 바꾸고 데이터 유형이 설정되었는지 확인합니다.
이제 완전한 환율표가 생겼습니다.
그러나 이것은 이 테이블에서만 작동합니다. 통화가 그룹화된 테이블에 동일한 논리를 적용하는 방법을 찾아야 합니다.
모든 통화 병합
통화가 다른 경우 다른 요율표를 유지하기가 어렵습니다. 따라서 하나의 통화 테이블을 만들려면 병합해야 합니다.
시작하려면 기존 테이블에서 테이블을 클릭하고 함수 생성을 선택하여 함수를 생성합니다 . 다음으로 함수 이름을 입력합니다.
그런 다음 고급 편집기 로 이동합니다 . 필요하지 않은 계산을 제거하십시오. 이 경우 소스, 필터를 제거하고 구문을 변경하십시오.
다음으로 매개 변수 이름을 Source로 지정하고 Let을 입력합니다. Filtered Rows가 제거되었으므로 Merged Queries 구문 내부의 값을 Source로 변경합니다. 그런 다음 구문 끝에 있는 소스를 삭제하고 완료를 클릭합니다.
이제 열 추가로 이동하여 사용자 지정 함수 호출을 클릭합니다. All Data와 같은 열 이름을 입력합니다. 함수 쿼리의 경우 이전에 만든 함수를 선택합니다. 소스로 모두를 선택한 다음 확인을 클릭합니다.
다음으로 할 일은 모든 데이터를 제외한 모든 열을 제거하는 것입니다. 그런 다음 해당 열을 확장하고 "원래 열 이름을 접두사로 사용" 설정을 선택 취소합니다. 그런 다음 확인을 클릭하고 열 유형을 변경하십시오.
Date, Ticker 및 Crossrate 열의 유형을 각각 Date, Text 및 Decimal로 설정합니다. 완료되면 닫기 및 적용을 클릭합니다.
이제 누락된 날짜와 요율이 없는 결합된 환율표를 얻을 수 있습니다.
데이터 모델에서 관계 생성
데이터 모델에서 FactCurrencyRates 테이블을 볼 수 있습니다. 이제 해당 테이블과 DimCurrencyRates 및 DimDate 테이블을 사용하여 Ticker to Ticker 및 Date to Date 관계를 만듭니다.
매트릭스에서 누락되지 않은 통화 환율을 가져와 이제 파워 쿼리에서 모두 수행된 27일과 28일의 환율이 있는지 확인합니다.
마지막으로 보고된 환율 열에는 누락된 날짜의 환율도 표시됩니다. 동일한 비율과 값을 보여줍니다. 그러나 차이점은 이 열이 DAX에서 생성된다는 것입니다.
이것은 해당 열의 측정값 및 구문입니다. 파워 쿼리에서 함수 만 사용하는 것처럼 간단하지 않습니다 .
테이블을 보면 Converted Sales No Missing 열이 표시됩니다. 누락되지 않은 환율 열을 사용하여 변환된 매출을 표시합니다. 변환된 매출이 있는 다른 열은 DAX에서 만든 열을 사용합니다.
전환된 판매액을 가져오는 데 사용되는 함수는 입니다 . 해당 열의 측정값을 보면 SUMX가 DimDate 테이블에 적용되는 것을 볼 수 있습니다.
DAX 및 파워 쿼리 방법 비교
LuckyTemplates에서 DAX와 파워 쿼리를 사용한 변환된 판매 열을 실제로 비교할 수 있습니다.
그러기 위해서는 변환된 판매 열을 제외한 모든 열을 제거하십시오. 그런 다음 성능 분석기를 실행하고 기록 시작을 클릭합니다.
다음으로 DAX Studio를 엽니다. 모델에서 작동하는 방식과 이유를 보여주는 애플리케이션입니다. 그런 다음 행렬의 쿼리를 복사하여 스튜디오에 붙여넣습니다.
비교를 위해 테스트 중인 다른 열을 방해하지 않도록 먼저 그 중 하나를 주석으로 전환합니다.
그런 다음 서버 타이밍 및 쿼리 계획을 로드합니다. 성능을 비교하는 것이므로 비교를 실행하기 전에 먼저 캐시를 지우십시오.
테스트를 실행한 후 DAX를 사용한 열이 많은 스캔을 받았고 총 시간이 71밀리초임을 알 수 있습니다.
이제 파워 쿼리를 사용한 다른 열을 실행합니다. 그러나 먼저 구문의 다른 열을 주석으로 바꾸십시오.
열이 25밀리초 동안만 실행되고 스캔이 7개만 있는 것을 볼 수 있습니다.
DAX와 파워 쿼리 방법 중 어느 것이 더 빠르고 더 나은 성능을 보이는지 명확하게 확인할 수 있습니다.
결론
LuckyTemplates에서 파워 쿼리 방법을 사용할 때의 이점은 데이터가 이미 저장되어 있다는 것입니다. 따라서 측정은 비율을 찾은 다음 간단한 기능을 사용하여 가져올 수 있습니다.
이 방법의 또 다른 특징은 계산이 복잡해지면 속도가 느려지지 않는다는 것입니다.
그러나 이것은 요청하는 데이터가 즉시 변환될 필요가 없는 경우에만 작동합니다. 그렇다면 DAX를 사용해야 합니다.
모두 제일 좋다,
파이썬에서 자기란 무엇인가: 실제 사례
R의 .rds 파일에서 개체를 저장하고 로드하는 방법을 배웁니다. 이 블로그에서는 R에서 LuckyTemplates로 개체를 가져오는 방법도 다룹니다.
이 DAX 코딩 언어 자습서에서는 GENERATE 함수를 사용하는 방법과 측정값 제목을 동적으로 변경하는 방법을 알아봅니다.
이 자습서에서는 다중 스레드 동적 시각적 개체 기술을 사용하여 보고서의 동적 데이터 시각화에서 통찰력을 만드는 방법을 다룹니다.
이 기사에서는 필터 컨텍스트를 살펴보겠습니다. 필터 컨텍스트는 모든 LuckyTemplates 사용자가 처음에 배워야 하는 주요 주제 중 하나입니다.
LuckyTemplates Apps 온라인 서비스가 다양한 소스에서 생성된 다양한 보고서 및 인사이트를 관리하는 데 어떻게 도움이 되는지 보여주고 싶습니다.
LuckyTemplates에서 측정 분기 및 DAX 수식 결합과 같은 기술을 사용하여 수익 마진 변경을 해결하는 방법을 알아봅니다.
이 자습서에서는 데이터 캐시의 구체화 아이디어와 결과 제공 시 DAX 성능에 미치는 영향에 대해 설명합니다.
지금까지 Excel을 계속 사용하고 있다면 지금이 비즈니스 보고 요구 사항에 LuckyTemplates를 사용하기 시작하는 가장 좋은 시기입니다.
LuckyTemplates 게이트웨이란? 당신이 알아야 할 모든 것