본문 바로가기
Data Analysis/Spotfire

[TIBCO Spotfire] Information Link 활용법 - Fake element

by 불탄오징어 2019. 8. 26.
반응형

 

 

4-2-5. Fake element를 활용한 Information Link 구성하기


  앞서 설명한 것 처럼 Information Link를 사용하기 위해서는 Data Source로 부터 테이블에 속한 Column들을 Information Designer를 이용하여 element로 등록해야합니다. 그리고 이를 가져와서 하나의 Information Link를 구성하게끔 되어있는데 Join 또한 element로 구성해야하기 때문에 복잡한 형태의 SQL문의 경우 구현하기가 어렵거나 아예 불가능한 경우가 있습니다. 그리고 이미 분석가가 만들어 놓은 쿼리가 있을 경우 이것을 하나하나 만들어내는것도 매우 불편한데요.

 

  이런경우 Fake element를 생성하여 쉽고 Information Link를 만드는 방법이 있습니다. 물론 이 방법은 정공법이 아니기 때문에 Information Link나 Information deisgner에서 제공하는 관리 기능이 전혀 동작하지 않습니다. 예로 ITEM, ORD, ORD_STAT이라는 테이블이 있고 각 테이블로 부터 Column들을 가져와서 아래와 같이 등록했습니다.

 

 

ORD < ITEM <  ORD_STAT 각 세개의 테이블을 JOIN하려면 Join element를 만들어줘야 합니다. 하지만 여기서는 하나의 테이블의 element를 가지고 진행을 하겠습니다. 먼저 사용할 테이블을 정해야하는데 가능하면 다양한 속성의 Element를 가지고 있는 테이블이 좋습니다. 문자형, 숫자형(정수, 실수), Date형 등 본인이 만들고자 하는 SQL문의 Column 속성을 모두 가지고 있는 테이블을 하나 정합니다. 여기서는 ORD 테이블을 사용하겠습니다.

ORD 테이블의 element들을 모두 필요하니 새로운 폴더 "ORD_ITEM_STAT"를 만들고 ORD의 element들을 여기에 복사합니다.

 

 

다음으로 ITEM에서 가져올 Column들을 SELL_PRC, SULP_PRC 입니다. ITEM 테이블에서 가져오지 않고 동일한 형식의 Column인 ORD_QTY에 오른쪽 마우스 클릭하여 edit를 클릭합니다.

 

 

그다음 "Save AS"를 클릭한 후 "ORD_ITEM_STAT" 폴더에 "SELL_PRC"라고 저장합니다. 그 다음 바로 Save As를 클릭합니다.

 

 

이번에는 "ORD_ITEM_STAT" 폴더에 "SULP_PRC" 라고 저장합니다. 이 과정이 Fake Column을 생성하는 것입니다. 같은 방식으로 이번에는 "ORD_STAT"에 있는 "ORD_STAT_NM"를 생성합니다.

 

 

  그러면 "ORD_ITEM_STAT" 폴더 안에 필요한 element들이 모두 생성되었습니다. 이런 Fake element을 생성하는 이유는 실제 element의 경로가 서로 다른 테이블일 경우에는 Information Link 에 등록하면 Join element가 같이 등록되어야합니다. 하지만 같은 경로의 element로 이름만 바꿔서 저장한 경우에는 당연히 join element가 필요없습니다. 또한 Information Link를 실행하게 되면 먼저 등록된 SQL이 실행되고 그 결과를 information Link에 부여된 element에 따라서 값을 부여합니다. 이때 해당 element가 실제 경로에 존재하는지는 확인하지 않기 때문에 Fake element를 부여해도 전혀 상관이 없습니다. 

 

일단 새로운 Information Link를 생성하고 "ORD_ITEM_STAT" 폴더에 있는 모든 element들을 등록합니다.

 

 

그다음 하단의 SQL을 눌러 필요한 SQL문을 등록하거나 작성합니다. 본 예제에서는 아래와 같은 SQL문을 작성했습니다.

 

SELECT
		O1.ORD_NO AS ORD_NO
   ,	O1.ITEM AS ITEM
   ,	O1.ORD_STAT_CD AS ORD_STAT_CD
   ,	O1.ORD_QTY AS ORD_QTY
   ,	I2.SULP_PRC AS SULP_PRC
   ,	I2.SELL_PRC AS SELL_PRC
   ,	O3.ORD_STAT_NM AS ORD_STAT_NM
FROM
			test.dbo.ORD 		O1 
LEFT JOIN 	test.dbo.ORD_STAT 	O3 ON O1.ORD_STAT_CD = O3.ORD_STAT_CD
LEFT JOIN   test.dbo.ITEM 		I2 ON O1.ITEM = I2.ITEM

 

아래와 같이 등록합니다. 좌측에 등록된 elements와 우측의 쿼리문을 보면 순서가 일치하지 않는 것을 확인 할 수 있습니다. 

 

 

이 경우 이대로 실행되면 쿼리가 실행된 후 아래와 같이 순서대로 element에 부여가 됩니다. 만약 형식만 부합한다면 전혀 에러 없이 수행이 됩니다. 하지만 쿼리문의 "ORD_QTY"는 숫자형으로 이 값이 문자형인 "ORD_STAT_CD"에 부여되면 에러가 발생할테니 순서를 바꿔줍니다.

 

 

쿼리문의 순서에 맞춰서 바꾸면 아래와 같습니다.

 

 

그런 다음 Save를 눌러 Information Link를 저장합니다. 이름은 "ORD_ITEM_STAT_FAKE" 로 저장합니다.

 

 

해당 Information Link를 불러오면 아래와 같이 결과가 나옵니다.

 

 

앞서 사용했던 쿼리문 외에도 더 복잡한 형태의 쿼리문이나 서브쿼리문을 사용하되 최종적으로 나오는 결과만 Information Link에 등록한 element에 부합되게 설정해주면 어떤 쿼리문도 상관없습니다. 

댓글