본문 바로가기

Qlik Sense 개발가이드

Qlik Sense ETL Log 정보 생성

Create ETL Log

목적: 소스파일을 읽어서 가공 후 목적 파일을 생성한다. 이때 작업에 대한 정보를 로그 파일로 관리하면 향후 특정파일에 대한 작업일자 및 시간, 필드 수, 필드 수의 변화 작업 로 수를 관리할 수 있다. 또한 증분 적재시에 최종 작업일자를 추출하여 이 일자의 데이터를 추출하는데 활용할 수 있다.

 

Script

함수부분을 먼저 생성한다.

//-------------------------------------------------------------

//           ETL Log 생성

//-------------------------------------------------------------

Sub Create_ETL_Log(vFile);

Let vETL_Log_Fle           = 'ETL_Log_Fle';

Let vNoOfFields            = NoOfFields(vFile);

    Let vNoOfRows            = NoOfRows(vFile);

    Let vNow                     = Now();

 

             [$(vETL_Log_Fle)]:

           Load '$(vFile)'                     As 파일명,

           '$(vNoOfFields)'     As 필드수,

        '$(vNoOfRows)'                    As 레코드수,

        '$(vNow)'                            As 작업일시

             AutoGenerate 1;

   

    Let vFileSize = FileSize('lib://Data/$(vETL_Log_Fle).qvd');

   

    If Len('$(vFileSize)') > 0 Then

           Load *

        From [lib://Data/$(vETL_Log_Fle).qvd]

        (qvd);

            End If;

   

    Store [$(vETL_Log_Fle)] Into [lib://Data/$(vETL_Log_Fle).qvd]; 

End Sub

//-------------------------------------------------------------

 

 

//----------------------------------------------------

//           ETL Log 파일 생성 예제 (by Qliker)

//----------------------------------------------------

 

Let vETL_Flie = '제품대분류색상';                      // ETL 대상 파일

 

//----< ETL Main>-------------

[$(vETL_Flie)]:

LOAD *

FROM [lib://Data/제품대분류색상.xlsx]

(ooxml, embedded labels, table is Sheet1);

 

//---< Log 생성함수 호출 >------------------------

Call Create_ETL_Log('$(vETL_Flie)');

 

//---< ETL Main 작업의 결과가 정상적이면 적재 >----------------

vNoOfRows  = NoOfRows('$(vETL_Flie)');

If vNoOfRows > 0 Then

Store [$(vETL_Flie)] Into [lib://Data/[$(vETL_Flie)].qvd];

    Drop Table [$(vETL_Flie)];

End If;   

 

결과

 

활용

  • 작업 일자에 대한 결과 관리
  • 파일에 대한 필드 수 변화 확인 가능
  • 향후 증분 적재시에 최종작업일자 추출하여 활용

 

Create ETL Log.pdf
0.22MB