본문 바로가기

일하랴 공부하랴

(26)
2022년 12월 30일자 코로나 발생현황 ETL솔루션(이노쿼츠)으로 수집한 Data를 그라파나에서 SuperSet으로 DashBaord를 변경해 보았다. 중간에 타블로 공개버젼에서 사용해봤었는데, 타블로와 유사한 구조를 가지고 있는듯 하다. 기존에 만들었던 그라파나는 아래 링크로 확인해 볼 수 있다. 2021년 7월 27일자 코로나 발생현황 ETL솔루션(이노쿼츠)으로 만든 Data를 수집 Dash보드(그라파나)를 간만에 들어가 보았다. 처음 발생한 작년 3월(1차), 2차는 작년 8월말~9월, 올해로 넘어오면서 3차(2020년 12월 ~ 2021년 1월)를 지나면서 coonta.tistory.com 기존 코로나 정보외에도 공공데이터포털에서 다른 자료를 수집해서 만들어 봤는데, 깔끔해 보인다.
[공통화 관리] Log Table을 이용한 Job 관리 수행 Job과 공통화된 로그작업 Job의 구성은 아래와 같다. innoQuartz에서 사용하는 Context 변수를 이용하여 Child Job에 변수를 전달한다 (본 수행 Job 및 Child Job 동일 Context 선언) 아래와 같이 tRunJob에 'Transmit whole context' 옵션을 선택하면 Child Job에서 동일한 context변수에 값이 전달된다. in/out component에서 추출된 Data의 건수나, Load시 Data건수를 취득 하는 방법은 OutLine에 보여지는 목록에서 해당 component를 누르면 Data건수로 제공되는 변수를 확인 할 수 있다. Job 수행 후, ETL log Table에 정상적으로 적재된 결과 입니다.
Job 초기 작성시, 표준안 Job 생성시에는 다음과 같은 구조(처리순서 : 선행 → 본처리 → 후행 → 예외처리)를 기준으로 만든다 1. 선행 처리 부분 tPreJob Conponent를 사용하며, 서버연계를 위해 qPre component나, 본 처리를 위한 dbConnection component 및 환경설정을 주로 선언한다 2. 본 수행 부분 실제 수행한 Main 내용을 기술하는 부분으로 tPreJob component에 연결된 선행처리 부분 처리 후, 수행 된다. 3. 후행 처리부분 tPostJob component를 사용하며, 서버와 연계하여 bizDate(수행 기준일자)를 저장하기 위해 qPost component나 트랜잭션 처리를 했다면, tDBClose component 및 종료시 필요한 로그 내용을 선언한다 4. ..
innoQuartz 실행을 위한 필요 설치 항목(실습 준비) 1. JVM 8이상 : InnoQuartz-Server/InnoQuartz-Designer 실행시 JDK 8이상의 버젼이 필요 JDK 8 다운로드 Link - https://www.oracle.com/kr/java/technologies/javase/javase-jdk8-downloads.html 위의 사이트에서 로그인 후, JDK를 다운로드 받는다. (OpenJDK로 다운로드는 https://jdk.java.net/java-se-ri/8-MR3에서 다운로드 가능) 2. MariaDB (테스트용) 설치 Download Link - https://mariadb.org/download/ 사용자 정보 : 계정(root / innoquartz), schema(edu_quartz) Check -> Enable a..
TDD - JUnit assert(단언) JUnit에서 assert는 테스트에 넣을 수 있는 정적 메소드 호출이다. 각 assert구문은 어떤 조건이 참인지를 검증하는 방법이다. assertTrue : 가장 기본적인 assert구분이다. 더보기 assertTrue(100 > 90); ... or ... assertTrue("false.....", 100 > 90); assertFalse : assertTrue와 반대 개념으로 false인지를 비교한다. assertThat : 명확한 값을 비교하기 위해 사용한다. 대부분 assert구문은 기대하는 값과 실제 값을 비교한다 더보기 assertThat(100, equalTo(100)); .. or .. assertThat(100 > 90, is(true)); // 100이 90보다 큰 값이 맞는지(참..
TDD (Test Driven Development :: 테스트 주도 개발) 개발 기법의 하나로 개발을 진행하기에 앞서 테스트 코드를 먼저 만들어 놓고 해당 테스트 코드를 만족하는 업무코드를 작성하는 식으로 진행한다. 결과적으로 테스트가 개발을 이끌어가는 방식이 되기 때문에 Test Driven Development(TDD)라고 불린다. TDD의 3가지 절차 1. 실패 첫번째 절차는 실패이다. 실패하는 테스트 케이스를 먼저 말들라는 것이다. 실패하는 테스트 케이스를 만들 때는 프로젝트의 전체 기능에 대하여 처음부터 모든 테스트케이스를 작성하는 것이 아니라, 지금 가장 먼저 구현할 기능 하나씩 테스트 케이스를 작성한다 2. 성공 두번째는 성공이다. 우리가 작성하는 위의 실패하는 테스트 케이스를 통과시키기 위해 코드를 작성하여 테스트를 통과하는 것이다. 3. 리팩토링 세번째는 리팩토..
InnoQuartz-Designer : File(txt) To DB(myql) 우선 첨부된 member.txt(고객정보) 내용은 더보기 ..... 1487|위하은|인천시 서구|20|2 1488|함민|광주시 동구|42|4 1489|심봄|인천시 중구|21|2 1490|도겨울|서울시 마포구|53|3 1491|민동현|대구시 북구|19|2 1492|성동현|인천시 미추홀구|38|2 1493|원주하|부산시 해운대구|24|1 1494|강도윤|광주시 남구|50|4 1495|민주원|서울시 서초구|33|1 1496|서다은|광주시 남구|44|4 1497|독고영희|대구시 서구|57|2 1498|강현수|부산시 서구|55|4 1499|표주하|광주시 북구|38|3 이렇게 되어 있다. 파일로 된 고객정보와 등급 정보를 DB에 넣는 Job을 만들 것이다. Create Job메뉴를 선택하여 job을 생성시킨다. 우..
InnoQuartz-Designer : Routines 만들기 1. Repository 영역에서 code > Routines메뉴에서 마우스 오른쪽 버튼을 클릭하면 서브메뉴가 보여진다 2. 활성화된 서브메뉴에서 Create routine을 선택한다. New routine wizard창이 뜨면, routine의 name, 목적, 설명등의 내용을 넣고 Finish버튼을 누르면, routine name 명칭으로 Job이 생성된다 새로운 Routine(java class)가 생성되고, 내용은 기본내용(HelloWorld message)으로 채워진다 routine에서 필요한 라이브러리는 생성된 루틴에서 마우스 오른쪽 버튼을 누르면, 팝업 서브메뉴가 보여진다 여기서 Edit Routine Libraries를 선택한다. 메뉴를 선택하면 외부라이브러리를 등록할 수 있는 창이 보여진..