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;
결과
활용
- 작업 일자에 대한 결과 관리
- 파일에 대한 필드 수 변화 확인 가능
- 향후 증분 적재시에 최종작업일자 추출하여 활용
'Qlik Sense 개발가이드' 카테고리의 다른 글
병렬로 활성화된 세션이 너무 많기 때문에 Qlik Sense에 액세스 할 수 없습니다. (0) | 2022.01.11 |
---|---|
Network 차트를 작성하기 위한 계층구조 생성 (0) | 2022.01.10 |
대용량데이터에서 일부분적재 (0) | 2022.01.10 |
[클릭센스 개발가이드] 계층별 단가 적용 (0) | 2022.01.08 |
여러 개의 파일적재 - 필드명이 다를 경우 (0) | 2022.01.08 |