일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 환경 구성
- AWS Athena
- 카이호스트만
- Java
- AWS
- AWS SQS
- 환경구성
- Git
- s3
- #jQuery
- ibsheet
- 로그 데이터
- Study
- jQuery
- naver smartEditor
- db
- java8
- aws lambda
- 아이비시트
- AWS Glue
- 인텔리J
- Log
- function
- aws S3
- 자바8
- JavaScript
- athena
- intellij
- 자바스크립트
- 자바
- Today
- Total
애매한 잡학사전
신규 프로젝트 투입 후 세팅을 처음부터 하다보니 몰랐던 문제들이 보여서 해결한 내용을 정리해 보려고 합니다. Intellij에서 DB 접속 후 console에서 쿼리 실행 시 DB 데이터의 한글이 깨지는 현상이 나타나서 보니 이 DB는 charset이 eucksc여서 별도 옵션을 줘야 한글이 정상적으로 출력되었습니다. 아래 이미지처럼 접속정보 마지막에 ;charset=eucksc 옵션을 추가하였습니다.
아래 링크의 로그 데이터 처리하기에서 S3에 로그 파일을 업로드하는 배치 프로그램을 개발했었는데 비슷한 로그 파일 및 통계 프로그램들이 늘어서 비슷한 배치 프로그램도 계속 추가되어야 하는 상황이 발생하였습니다. 그래서 고민하다 DI 적용으로 코어 로직은 그대로 두고 옵션 형태로 조건만 변경해서 동작하는 방식으로 리팩터링을 진행하여 정리하고자 합니다. AWS Athena, Glue, S3 활용으로 로그 데이터 처리하기 with Batch 1. Flow - Batch 프로그램으로 별도의 시스템을 사용하지 않고 바로 S3로 데이터를 저장하는 프로세스 2. 환경 세팅 - 내용이 너무 많아 별도로 정리 하였습니다. 각 링크를 참고하시면 되겠습 dev-gabriel.tistory.com 순서는 다음과 같습니다. 1..
아래의 표와 같은 날짜가 동적으로 변경되는 List를 화면에 출력할 때 일반적인 RDB에서는 PIVOT 기능을 활용하여 쿼리를 아래 표와 같은 모양으로 실행하면 쉽게 구현할 수 있습니다. 그러나 AWS Athena에서는 아래 표와 같은 모양으로 쿼리를 실행할 수 없어서 JAVA에서 List를 만들어 주려고 합니다. 회사 코드 회사 명 2022-01-01 2022-01-02 2022-01-03 2022-01-04 2022-01-05 ... COMP001 우리회사 100 200 110 110 123 ... COMP002 니네회사 200 330 111 220 444 ... Athena Table 구조 Athena 테이블 구조는 다음과 같이 같단하게 구성하였습니다. CREATE EXTERNAL TABLE ex_..
데이터베이스에 있는 데이터를 조회해서 AWS Athena에 저장하는 Java 배치 프로그램을 만들면서 DB manager를 구현했는데 정리해 보려고 합니다. 바로 클래스를 생성해서 구현할 수 있지만 이번에는 의존성 주입(DI : Dependency Injection) 연습을 위해 인터페이스로 생성했습니다. 제가 정리할 내용은 다음과 같습니다. - DB manager 인터페이스 생성 - DB manager 클래스 생성 및 인터페이스의 abstract method 구현 DB manager 인터페이스 생성 의존성 주입을 위해 인터페이스를 생성합니다. 처음 생각했을 때는 필요한 method는 connection, close 이렇게 2개였지만 조금 더 생각을 하다 보니 기본적인 CRUD 기능을 별도의 클래스로 구..
개요 현재 시스템이 운영 DB와 통게, 로그 데이터가 한 곳에 있어 사용자가 많을 때는 통계나 로그 데이터를 활용할 수 없는 상황이었습니다. 그래서 AWS Athena를 적용 시켜 로그, 통계 데이터를 이관 처리를 하고 Web에서 활용할 수 있는 방법을 구현 하였고, 만족할만한 결과가 나왔습니다. 혹시 환경 구성이 궁금하시면 하단의 링크를 통해서 확인할 수 있습니다. 그래서 이 블로그에 작성할 내용은 Java 에서 AWS Athena로 Query를 실행시켜 간단한 게시판을 만들어 보려고 합니다. 1. DataSearchInAthena 클래스 1) AWS 접근 권한 - AWS Athena accessKeyId 와 secretAccessKey 를 발급 받아서 AWS 접근할 수 있는 권한을 생성합니다. /**..
1. 개요 - 상황 1) 사용자가 Web에서 클릭한 모든 기능에 대해 데이터베이스에 저장 2) 하루 평균 40만 ~ 50만 건의 데이터가 저장 3) 현재까지 약 4억 건의 데이터가 저장 되어 있음 4) DBMS에서 쿼리 실행 시 Web 사용자가 많을 경우 DB lock 현상이 발생 5) 운영 DB와 Data log 데이블이 한 서버에 있어서 log 데이터 조회 시 DB 커넥션 증가 : 위 상황으로 인해 log data를 효율적으로 활용할 수 있게 새로운 시스템으로 이관이 필요해 진행 하였고 히스토리를 정리하려고 합니다. 2. 환경 - 데이터베이스 : MS-SQL - 개발언어 : JAVA - 도입 시스템 : AWS S3, AWS Athena, AWS Lambda, AWS SQS, AWS Glue, Java..
1. Flow - Batch 프로그램으로 별도의 시스템을 사용하지 않고 바로 S3로 데이터를 저장하는 프로세스 2. 환경 세팅 - 내용이 너무 많아 별도로 정리 하였습니다. 각 링크를 참고하시면 되겠습니다. 2-1. Batch - 일반 Java application (maven) 프로젝트 생성 2-2. AWS S3 로그 데이터 처리를 위한 AWS S3 환경 구성 - 버킷 생성 : 버킷 이름 작성 후 나머지 옵션들은 그냥 기본으로 놓고 스크롤 제일 하단으로 내린 후 버킷 만들기 버튼 선택 dev-gabriel.tistory.com 2-3. AWS Glue 로그 데이터 처리를 위한 AWS Glue 환경 구성 1. AWS Glue Crawler 추가 - 클롤러 추가 버튼 클릭 합니다. - 크롤러 이름을 입력 ..
1. Flow - Batch, AWS SQS, AWS Lambda 사용 2. 환경 구성 - 내용이 너무 많아 별도로 정리 하였습니다. 각 링크를 참고하시면 되겠습니다. 2-1. Batch - 일반 Java application (maven) 프로젝트 생성 2-2. AWS SQS 로그 데이터 처리를 위한 AWS SQS 환경 구성 1. 대기열 생성 - AWS 콘솔 접속 후 AWS SQS 페이지로 이동 - 대기열 생성 버튼 클릭 - 대기열 세부 정보 입력 - 구성 정보 입력 (default 유지, 필요시 수정) - 액세스 정책 선택 (default 유지) - 대기열.. dev-gabriel.tistory.com 2-3. AWS Lambda 로그 데이터 처리를 위한 AWS Lambda 환경 구성 1. 람다 함수..
1. Flow - AWS SQS, AWS Lambda 사용 2. 환경 세팅 - 내용이 너무 많아 별도로 정리 하였습니다. 각 링크를 참고하시면 되겠습니다. 2-1. AWS SQS 로그 데이터 처리를 위한 AWS SQS 환경 구성 1. 대기열 생성 - AWS 콘솔 접속 후 AWS SQS 페이지로 이동 - 대기열 생성 버튼 클릭 - 대기열 세부 정보 입력 - 구성 정보 입력 (default 유지, 필요시 수정) - 액세스 정책 선택 (default 유지) - 대기열.. dev-gabriel.tistory.com 2-2. AWS LAMBDA 로그 데이터 처리를 위한 AWS Lambda 환경 구성 1. 람다 함수 생성 - AWS 콘솔 접속, lambda 검색 후 서비스 선택 - 왼쪽 메뉴에서 함수 선택 후 오른..
1. 대기열 생성 - AWS 콘솔 접속 후 AWS SQS 페이지로 이동 - 대기열 생성 버튼 클릭 - 대기열 세부 정보 입력 - 구성 정보 입력 (default 유지, 필요시 수정) - 액세스 정책 선택 (default 유지) - 대기열 생성 버튼 클릭 (나머지 옵션 사항은 필요 시 수정) - 대기열 생성 완료 2. 대기열 엑세스 정책 추가 - AWS SQS 세부 정보의 arn 항목의 주소를 복사 - AWS SQS 의 엑세스 정책 탭 선택 후 액세스 정책(권한) 항목의 편집 버튼 클릭 - 변경된 화면에서 액세스 정책 항목의 '정책 생성기'를 클릭 - 각 항목 입력 후 Add Statement 버튼 클릭 -> Principal : * -> Actions : "sqs:CreateQueue, sqs:GetQu..