main
MonHun 2024-04-22 18:12:10 +09:00
parent afc88cdeb0
commit 91dfe5e3db
16 changed files with 857 additions and 165 deletions

View File

@ -6,5 +6,8 @@
"useMarkdownLinks": false,
"autoPairMarkdown": true,
"newFileLocation": "current",
"attachmentFolderPath": "zzz.resources"
"attachmentFolderPath": "zzz.resources",
"readableLineLength": false,
"showLineNumber": false,
"focusNewTab": false
}

View File

@ -1,5 +1,117 @@
{
"recentFiles": [
{
"basename": "2024-04-22",
"path": "Work Related/1.업무메모/2024-04-22.md"
},
{
"basename": "WIndows OpenSSH server 설치",
"path": "Programing/Windows/WIndows OpenSSH server 설치.md"
},
{
"basename": "2022-06-13",
"path": "Work Related/1.업무메모/2022.06/2022-06-13.md"
},
{
"basename": "GAM_LIST 데이터 일괄 insert",
"path": "Work Related/프로젝트/스마트계류장/1.데이터베이스/GAM_LIST 데이터 일괄 insert.md"
},
{
"basename": "주기장 기준 항공기 유무 확인 쿼리(GAM)",
"path": "Work Related/프로젝트/스마트계류장/1.데이터베이스/주기장 기준 항공기 유무 확인 쿼리(GAM).md"
},
{
"basename": "테이블 일괄 생성 스크립트",
"path": "Work Related/프로젝트/스마트계류장/1.데이터베이스/산출물작업/테이블 일괄 생성 스크립트.md"
},
{
"basename": "표준이동경로 관련 임시테이블",
"path": "Work Related/프로젝트/스마트계류장/1.데이터베이스/표준이동경로 관련 임시테이블.md"
},
{
"basename": "프로젝트 범위 요약",
"path": "Work Related/프로젝트/스마트계류장/0.관련정보/프로젝트 범위 요약.md"
},
{
"basename": "DB 필요항목",
"path": "Work Related/프로젝트/스마트계류장/1.데이터베이스/DB 필요항목.md"
},
{
"basename": "CCTV 설치된 멀티 주기장",
"path": "Work Related/프로젝트/스마트계류장/9.기타/CCTV 설치된 멀티 주기장.md"
},
{
"basename": "PassWD",
"path": "Zettelkasten/PassWD.md"
},
{
"basename": "테이블 스페이스 관련",
"path": "Programing/Tibero/테이블 스페이스 관련.md"
},
{
"basename": "JAVA -Json for VO",
"path": "Programing/Java/JAVA -Json for VO.md"
},
{
"basename": "Java ArrayList 정렬",
"path": "Programing/Java/Java ArrayList 정렬.md"
},
{
"basename": "TODO",
"path": "Work Related/프로젝트/스마트계류장/TODO.md"
},
{
"basename": "스마트계류장 요구사항",
"path": "Work Related/프로젝트/스마트계류장/0.관련정보/스마트계류장 요구사항.md"
},
{
"basename": "2023.10-4",
"path": "Work Related/3.주간계획/스마트계류장/2023.10-4.md"
},
{
"basename": "방문증 신청 문구",
"path": "Work Related/프로젝트/스마트계류장/9.기타/방문증 신청 문구.md"
},
{
"basename": "관리페이지 수정",
"path": "Work Related/프로젝트/스마트계류장/9.기타/관리페이지 수정.md"
},
{
"basename": "공유문서",
"path": "Work Related/프로젝트/스마트계류장/0.관련정보/공유문서.md"
},
{
"basename": "Elastic Search + Spring Boot에서 검색 로직",
"path": "Programing/ELK/Elastic Search + Spring Boot에서 검색 로직.md"
},
{
"basename": "query DSL",
"path": "Programing/ELK/query DSL.md"
},
{
"basename": "Kafka-ELK 테스트",
"path": "Work Related/프로젝트/스마트계류장/0.관련정보/Kafka-ELK 테스트.md"
},
{
"basename": "미들웨어 API",
"path": "Work Related/프로젝트/스마트계류장/0.관련정보/미들웨어 API.md"
},
{
"basename": "0.Learnig List",
"path": "Programing/0.Learnig List.md"
},
{
"basename": "Kafka Windows 실행",
"path": "Programing/Kafka(AMQP)/Kafka Windows 실행.md"
},
{
"basename": "오류모음",
"path": "Programing/Kafka(AMQP)/오류모음.md"
},
{
"basename": "물리적인 구성",
"path": "Programing/Kafka(AMQP)/물리적인 구성.md"
},
{
"basename": "CMD 명령어",
"path": "Programing/Windows/CMD 명령어.md"
@ -12,10 +124,6 @@
"basename": "2023.10-3",
"path": "Work Related/3.주간계획/스마트계류장/2023.10-3.md"
},
{
"basename": "2023.10-4",
"path": "Work Related/3.주간계획/스마트계류장/2023.10-4.md"
},
{
"basename": "Jenkins 설치",
"path": "Programing/Jenkins/Jenkins 설치.md"
@ -24,10 +132,6 @@
"basename": "용어정리",
"path": "Work Related/프로젝트/스마트계류장/항공용어/용어정리.md"
},
{
"basename": "프로젝트 범위 요약",
"path": "Work Related/프로젝트/스마트계류장/0.관련정보/프로젝트 범위 요약.md"
},
{
"basename": "약어표",
"path": "Work Related/프로젝트/스마트계류장/항공용어/약어표.md"
@ -60,14 +164,6 @@
"basename": "Kafka 설치",
"path": "Programing/Kafka(AMQP)/Kafka 설치.md"
},
{
"basename": "방문증 신청 문구",
"path": "Work Related/프로젝트/스마트계류장/9.기타/방문증 신청 문구.md"
},
{
"basename": "TODO",
"path": "Work Related/프로젝트/스마트계류장/TODO.md"
},
{
"basename": "EAI 데이터 초기화",
"path": "Work Related/프로젝트/스마트계류장/1.데이터베이스/EAI 데이터 초기화.md"
@ -80,10 +176,6 @@
"basename": "EAI 프로시져 테스트",
"path": "Work Related/프로젝트/스마트계류장/1.데이터베이스/EAI 프로시져 테스트.md"
},
{
"basename": "GAM_LIST 데이터 일괄 insert",
"path": "Work Related/프로젝트/스마트계류장/1.데이터베이스/GAM_LIST 데이터 일괄 insert.md"
},
{
"basename": "Docker 설치",
"path": "Programing/Docker/Docker 설치.md"
@ -107,98 +199,6 @@
{
"basename": "스키마 생성",
"path": "Programing/Tibero/스키마 생성.md"
},
{
"basename": "설치",
"path": "Programing/MariaDB/설치.md"
},
{
"basename": "ssh포트로 파일 전송",
"path": "Programing/Linux/Linux 명령어/ssh포트로 파일 전송.md"
},
{
"basename": "SSH",
"path": "Programing/Linux/RHEL9/SSH.md"
},
{
"basename": "공유문서",
"path": "Work Related/프로젝트/스마트계류장/0.관련정보/공유문서.md"
},
{
"basename": "Maven 설치",
"path": "Tools/VSCode_Server/Maven 설치.md"
},
{
"basename": "SACP maven 빌드 명령어",
"path": "Work Related/프로젝트/스마트계류장/9.기타/SACP maven 빌드 명령어.md"
},
{
"basename": "프로젝트 생성",
"path": "Tools/VSCode_Server/프로젝트 생성.md"
},
{
"basename": "Ubuntu에 설치",
"path": "Tools/VSCode_Server/Ubuntu에 설치.md"
},
{
"basename": "vscode_server 설치관련",
"path": "Tools/VSCode_Server/vscode_server 설치관련.md"
},
{
"basename": "VSCode 설치",
"path": "Tools/VSCode/VSCode 설치.md"
},
{
"basename": "VSCode Extension",
"path": "Tools/VSCode/VSCode Extension.md"
},
{
"basename": "Docker 폐쇄망 설치",
"path": "Programing/Docker/Docker 폐쇄망 설치.md"
},
{
"basename": "프로세스 확인 및 강제 종료",
"path": "Programing/Linux/Ubuntu/프로세스 확인 및 강제 종료.md"
},
{
"basename": "Reno server URL",
"path": "Work Related/프로젝트/스마트계류장/1.데이터베이스/Reno server URL.md"
},
{
"basename": "Docker Compose",
"path": "Programing/Docker/Docker Compose.md"
},
{
"basename": "Docker Engine",
"path": "Programing/Docker/Docker Engine.md"
},
{
"basename": "2022-06-06",
"path": "Work Related/1.업무메모/2022.06/2022-06-06.md"
},
{
"basename": "2022-06-16",
"path": "Work Related/1.업무메모/2022.06/2022-06-16.md"
},
{
"basename": "상황관제-방송수신내역(항적)",
"path": "Work Related/프로젝트/D-MHFH/유지보수/상황관제-방송수신내역(항적).md"
},
{
"basename": "커맨트라인(bash) 단축키",
"path": "Programing/Linux/Linux 명령어/커맨트라인(bash) 단축키.md"
},
{
"basename": "ElasticSearch 쿼리",
"path": "Programing/ELK/ElasticSearch 쿼리.md"
},
{
"basename": "Set Up",
"path": "Learning/Programing/WSL개발환경 셋팅/Set Up.md"
},
{
"basename": "Tibero 7 설치",
"path": "Programing/Tibero/Tibero 7 설치.md"
}
],
"omittedPaths": [],

View File

@ -4,16 +4,16 @@
"type": "split",
"children": [
{
"id": "e55c8d30f7a2d34c",
"id": "90db076928281e7d",
"type": "tabs",
"children": [
{
"id": "5481a3c21b2c27b9",
"id": "87246a6f2da07960",
"type": "leaf",
"state": {
"type": "markdown",
"state": {
"file": "Programing/Windows/CMD 명령어.md",
"file": "Work Related/1.업무메모/2024-04-22.md",
"mode": "source",
"backlinks": true,
"source": false
@ -49,7 +49,7 @@
"state": {
"type": "search",
"state": {
"query": "netstat",
"query": "add_month",
"matchingCase": false,
"explainSearch": false,
"collapseAll": true,
@ -82,8 +82,7 @@
"state": {}
}
}
],
"currentTab": 1
]
}
],
"direction": "horizontal",
@ -103,7 +102,7 @@
"state": {
"type": "backlink",
"state": {
"file": "Programing/Windows/CMD 명령어.md",
"file": "Work Related/1.업무메모/2024-04-22.md",
"collapseAll": false,
"extraContext": false,
"sortOrder": "alphabetical",
@ -120,7 +119,7 @@
"state": {
"type": "outgoing-link",
"state": {
"file": "Programing/Windows/CMD 명령어.md",
"file": "Work Related/1.업무메모/2024-04-22.md",
"linksCollapsed": false,
"unlinkedCollapsed": true
}
@ -143,7 +142,7 @@
"state": {
"type": "outline",
"state": {
"file": "Programing/Windows/CMD 명령어.md"
"file": "Work Related/1.업무메모/2024-04-22.md"
}
}
},
@ -185,28 +184,34 @@
"command-palette:명령어 팔레트 열기": false
}
},
"active": "5481a3c21b2c27b9",
"active": "87246a6f2da07960",
"lastOpenFiles": [
"Work Related/1.업무메모/2024-03-25.md",
"Work Related/3.주간계획/스마트계류장/2023.10-3.md",
"Work Related/3.주간계획/스마트계류장/2023.10-4.md",
"Programing/Jenkins/Jenkins 설치.md",
"Work Related/프로젝트/스마트계류장/항공용어/용어정리.md",
"Work Related/프로젝트/스마트계류장/0.관련정보/프로젝트 범위 요약.md",
"Work Related/프로젝트/스마트계류장/항공용어/약어표.md",
"Programing/Java/Java 접근제한.md",
"Programing/Java/16진수 표기.md",
"Programing/Java/CMD 실행.md",
"Programing/Docker/Docker 페쇄망 이관.md",
"Programing/Kafka(AMQP)/Kafka 명령어.md",
"Programing/Kafka(AMQP)/kafka 오류.md",
"Programing/Kafka(AMQP)/Kafka 설치.md",
"Work Related/프로젝트/스마트계류장/9.기타/방문증 신청 문구.md",
"Work Related/프로젝트/스마트계류장/TODO.md",
"Work Related/프로젝트/스마트계류장/1.데이터베이스/EAI 데이터 초기화.md",
"Work Related/1.업무메모/2024-04-01.md",
"Work Related/프로젝트/스마트계류장/1.데이터베이스/EAI 프로시져 테스트.md",
"Programing/Windows/WIndows OpenSSH server 설치.md",
"Work Related/1.업무메모/2024-04-22.md",
"Work Related/1.업무메모/2022.06/2022-06-13.md",
"Work Related/프로젝트/스마트계류장/1.데이터베이스/GAM_LIST 데이터 일괄 insert.md",
"Work Related/프로젝트/스마트계류장/1.데이터베이스/주기장 기준 항공기 유무 확인 쿼리(GAM).md",
"Work Related/프로젝트/스마트계류장/1.데이터베이스/산출물작업/테이블 일괄 생성 스크립트.md",
"Work Related/프로젝트/스마트계류장/1.데이터베이스/표준이동경로 관련 임시테이블.md",
"Work Related/프로젝트/스마트계류장/0.관련정보/프로젝트 범위 요약.md",
"Work Related/프로젝트/스마트계류장/1.데이터베이스/DB 필요항목.md",
"Work Related/프로젝트/스마트계류장/9.기타/CCTV 설치된 멀티 주기장.md",
"Zettelkasten/PassWD.md",
"Programing/Tibero/테이블 스페이스 관련.md",
"Programing/Java/JAVA -Json for VO.md",
"Programing/Java/Java ArrayList 정렬.md",
"Work Related/프로젝트/스마트계류장/TODO.md",
"Work Related/프로젝트/스마트계류장/0.관련정보/스마트계류장 요구사항.md",
"Work Related/3.주간계획/스마트계류장/2023.10-4.md",
"Work Related/프로젝트/스마트계류장/9.기타/방문증 신청 문구.md",
"Work Related/프로젝트/스마트계류장/9.기타/관리페이지 수정.md",
"Work Related/프로젝트/스마트계류장/0.관련정보/공유문서.md",
"Programing/ELK/Elastic Search + Spring Boot에서 검색 로직.md",
"Programing/ELK/query DSL.md",
"Work Related/프로젝트/스마트계류장/0.관련정보/Kafka-ELK 테스트.md",
"Work Related/프로젝트/스마트계류장/0.관련정보/미들웨어 API.md",
"Programing/0.Learnig List.md",
"Programing/Kafka(AMQP)/Kafka Windows 실행.md",
"zzz.resources/Pasted image 20240404100942.png",
"zzz.resources/Pasted image 20240404100125.png",
"zzz.resources/Pasted image 20240404095641.png",
@ -217,13 +222,7 @@
"zzz.resources/Pasted image 20240404092924.png",
"zzz.resources/Pasted image 20240404092657.png",
"zzz.resources/Pasted image 20240404092425.png",
"Programing/Docker/Docker 설치.md",
"Programing/Docker/무제 파일.md",
"Programing/Grafana/설치 및 실행.md",
"Programing/0.Root/용어.md",
"Programing/Jenkins",
"Programing/Tibero/권한(Grant).md",
"Programing/Tibero/스키마 생성.md",
"무제 파일.canvas",
"Work Related/1.업무메모/2023",
"zzz.resources/tibero-jdbc-7.jar",

View File

@ -1,4 +1,9 @@
- [ ] 일렉트론
- [ ] Git
- [ ] Perl
- [ ]
https://fastcampus.co.kr/data_online_engineering
https://fastcampus.co.kr/dev_online_linuxcloud
https://fastcampus.co.kr/dev_online_devopskit

View File

@ -0,0 +1,173 @@
- Kibana Test 쿼리
```json
POST replay_log_*/_search
{
"size" : 10000,
"track_total_hits": true,
"query" : {
"bool" : {
"filter" : [
{
"terms" : {
"header.msg_type.keyword" : [
10
]
}
},
{
"range" : {
"header.recv_time" : {
"from" : "20240416090000.000",
"to" : "20240416103059.999"
}
}
}
]
}
},
"_source": ["@timestamp", "header", "message"],
"sort" : [{"header.recv_time.keyword" : {"order" : "ASC"}}],
"search_after" : ["0"]
}
```
- Elasticsearch 라이브러리 사용
```java
public String elkSearch_replay_log(String sLogIndex, String sStartDt, String sEndDt) {
// String sLogType = "3"; // 재생용 로그 S/W구분
// String sStart_tm = "20240219160000.000"; // 일시(from)
// String sEnd_tm = "20240219170000.000"; // 일시(to)
List<Object> sAfter = null; // 일시(to)
List<IndexReplayMsg> productMatches = new ArrayList<IndexReplayMsg>();
String esQuery = "{ " + //
" \"bool\" : { " + //
" \"filter\" : [ " + //
" { \"terms\" : { " + //
" \"header.msg_type.keyword\" : [ " + //
" "+ sLogIndex +" ] } }, " + //
" { \"range\" : { " + //
" \"header.recv_time\" : { " + //
" \"from\" : \""+ sStartDt +"\", " + //
" \"to\" : \""+ sEndDt +"\" } } } ] } " + //
"}";
Query searchQuery = new StringQuery(esQuery);
// 한번에 가져올 row수 설정
((BaseQuery) searchQuery).setMaxResults(1000);
// 페이징( PageRequest.of( 페이지번호( 총개수 / size ), size) )
//searchQuery.setPageable(PageRequest.of(62, 10)); // 620번째 로우부터 10개까지 가져옴
// 데이터 정렬할 필드 설정
searchQuery.addSort(Sort.by(new Sort.Order(Sort.Direction.ASC, "header.recv_time.keyword")));
LocalDateTime dt_before = LocalDateTime.now();
while (true) {
searchQuery.setSearchAfter(sAfter);
// 검색 요청하여 검색 결과 가져오기
SearchHits<IndexReplayMsg> productHits = elasticsearchOperations.search(searchQuery, IndexReplayMsg.class, IndexCoordinates.of("replay_log_*"));
if (productHits.getTotalHits() <= 0) break;
Duration diff = Duration.between(dt_before, LocalDateTime.now());
logger.info("elastic Call " + productHits.getTotalHits() + "건 " + diff.toMillis() + "msec");
sAfter = productHits.toList().get(productHits.toList().size() -1).getSortValues();
// IndexFusion Object에 데이터 담기
productHits.forEach(srcHit -> {
productMatches.add(srcHit.getContent());
});
logger.info("map cnt " + productMatches.size() + "건 " );
if (productHits.toList().size() != 1000) {
break;
}
}
return "OK";
}
```
- Post요청 -> 결과 Map 반환
```java
public String searchReplayDSL(String sIndex, String sStartDt, String sEndDt) {
while (true) {
String sQeury = "{\r\n" + //
" \"size\" : 10000,\r\n" + //
" \"track_total_hits\": true,\r\n" + //
" \"query\" : {\r\n" + //
" \"bool\" : {\r\n" + //
" \"filter\" : [\r\n" + //
" {\r\n" + //
" \"terms\" : {\r\n" + //
" \"header.msg_type.keyword\" : [\r\n" + //
" 10\r\n" + //
" ]\r\n" + //
" }\r\n" + //
" },\r\n" + //
" {\r\n" + //
" \"range\" : {\r\n" + //
" \"header.recv_time\" : {\r\n" + //
" \"from\" : \"20240416090000.000\",\r\n" + //
" \"to\" : \"20240416103059.999\"\r\n" + //
" }\r\n" + //
" }\r\n" + //
" }\r\n" + //
" ]\r\n" + //
" }\r\n" + //
" },\r\n" + //
" \"_source\": [\"@timestamp\", \"header\", \"message\"],\r\n" + //
" \"sort\" : [{\"header.recv_time.keyword\" : {\"order\" : \"ASC\"}}],\r\n" + //
" \"search_after\" : [\"0\"]\r\n" + //
"}";
// MultiValueMap<String, String> params = new LinkedMultiValueMap<>();
// params.add("Content-Type", "application/json");
HttpHeaders headers = new HttpHeaders();
headers.add("Content-Type", "application/json");
HttpEntity<String> entity = new HttpEntity<String>(sQeury, headers);
RestTemplate rt = new RestTemplate();
Map<String, Object> personResultAsJsonStr = rt.postForObject("http://10.200.31.130:9200/replay_log_*/_search", entity, Map.class);
if (personResultAsJsonStr != null) {
break;
}
}
return "OK";
}
```

View File

@ -12,3 +12,37 @@ https://velog.io/@hanblueblue/Elastic-Search-2
- 스크립팅
https://velog.io/@soyeon207/ES-8.-Script
```json
POST replay_log_*/_search
{
"size" : 10000,
"track_total_hits": true,
"query" : {
"bool" : {
"filter" : [
{
"terms" : {
"header.msg_type.keyword" : [
10
]
}
},
{
"range" : {
"header.recv_time" : {
"from" : "20240416090000.000",
"to" : "20240416103059.999"
}
}
}
]
}
},
"_source": ["@timestamp", "header", "message"],
"sort" : [{"header.recv_time.keyword" : {"order" : "ASC"}}],
"search_after" : ["0"]
}
```

View File

@ -0,0 +1,72 @@
```java
package kr.gmtc.gw.elastic.vo;
import java.util.ArrayList;
import java.util.List;
import lombok.Getter;
import lombok.Setter;
@Setter
@Getter
public class LogMsgParserVO_Arraytype {
private LogMsgHeader header;
private ArrayList<LogMsgFieldVO> data;
public LogMsgParserVO_Arraytype() {
this.data = new ArrayList<LogMsgFieldVO>();
}
@Setter
@Getter
public static class LogMsgHeader {
private String log_dt;
private String log_se;
private String sw_se;
private String server_se;
}
@Setter
@Getter
public static class LogMsgFieldVO {
private ArrayList<Object> fields;
public LogMsgFieldVO(){
this.fields = new ArrayList<Object>();
}
public LogMsgFieldVO(ArrayList<Object> fields){
this.fields = fields;
}
}
@Setter
@Getter
public static class LogMsgFieldListVO {
private List<LogMsgFieldArrayVO> fieldList;
public LogMsgFieldListVO() {
this.fieldList = new ArrayList<LogMsgFieldArrayVO>();
}
}
@Setter
@Getter
public static class LogMsgFieldArrayVO {
private ArrayList<String> fieldArray;
}
}
```

View File

@ -0,0 +1 @@
https://hianna.tistory.com/569

View File

@ -0,0 +1,88 @@
``` cmd
# zookeeper server 실행
bin\windows\zookeeper-server-start.bat config\zookeeper.properties
# zookeeper server 실행 확인
netstat -na | findstr "2181"
# kafka server 실행
bin\windows\kafka-server-start.bat config\server.properties
# kafka server 실행 확인
netstat -na | findstr "9092"
# kafka topic 생성하기
# bin\windows\kafka-topics.bat --create --bootstrap-server 카프카 접속주소:카프카 포트 --topic 카프카 토픽이름
ex)
bin\windows\kafka-topics.bat --create --bootstrap-server localhost:9092 --topic dev-topic
# kafka topic 생성확인
# bin\windows\kafka-topics.bat --list --bootstrap-server 카프카 접속주소:카프카 포트
ex)
bin\windows\kafka-topics.bat --list --bootstrap-server localhost:9092
# zookeeper server 종료
bin\windows\zookeeper-server-stop.bat
# kafka server 종료
bin\windows\kafka-server-stop.bat
# kafdrop 실행
D:\JAVA\jdk-18.0.2\bin\java --add-opens=java.base/sun.nio.ch=ALL-UNNAMED -jar kafdrop/kafdrop-4.0.1.jar --kafka.brokerConnect=localhost:9092
```
- windows kraft
```cmd
# zookeeper server 실행
bin\windows\zookeeper-server-start.bat config\zookeeper.properties
bin\windows\zookeeper-server-start.bat config\kraft\zookeeper.properties
# zookeeper server 실행 확인
netstat -na | findstr "2181"
# kafka server 실행
bin\windows\kafka-server-start.bat config\server.properties
bin\windows\kafka-server-start.bat config\kraft\server.properties
bin\windows\kafka-storage.bat random-uuid
8vVw8BXyTKejURskMuC0xw
bin\windows\kafka-storage.bat format -t IDio-YJlQkqWjcpbrWQgUw -c config\kraft\server.properties
bin\windows\kafka-server-start.bat config\kraft\server.properties
# kafka server 실행 확인
netstat -na | findstr "9092"
# kafka topic 생성하기
# bin\windows\kafka-topics.bat --create --bootstrap-server 카프카 접속주소:카프카 포트 --topic 카프카 토픽이름
ex)
bin\windows\kafka-topics.bat --create --bootstrap-server localhost:9092 --topic dev-topic
# kafka topic 생성확인
# bin\windows\kafka-topics.bat --list --bootstrap-server 카프카 접속주소:카프카 포트
ex)
bin\windows\kafka-topics.bat --list --bootstrap-server localhost:9092
# zookeeper server 종료
bin\windows\zookeeper-server-stop.bat
# kafka server 종료
bin\windows\kafka-server-stop.bat
# kafdrop 실행
D:\JAVA\jdk-18.0.2\bin\java --add-opens=java.base/sun.nio.ch=ALL-UNNAMED -jar kafdrop/kafdrop-4.0.1.jar --kafka.brokerConnect=localhost:9092
bin\windows\kafka-console-producer.bat --broker-list localhost:9092 --topic TestTopic
```

View File

@ -0,0 +1,33 @@
- OpenSSH 다운로드 : https://github.com/PowerShell/Win32-OpenSSH/releases
- Program Filse에 압출풀기 (C:\Program Files\OpenSSH-Win64)
```shell
# Program Filse에 압출풀기 (C:\Program Files\OpenSSH-Win64)
# PowerShell 관리자권한
cd "C:\Program Files\OpenSSH-Win64"
./install-sshd.ps1
-> sshd and ssh-agent services successfully installed
## 보안 오류: (:) [], PSSecurityException 발생하는경우
PSSecurityException
-> Restricted
Set-ExecutionPolicy RemoteSigned
PSSecurityException
-> RemoteSigned
## 보안 오류: (:) [], PSSecurityException 발생하는경우 END
# 동작 확인
ssh gmt@10.200.32.59
# 스크립트 보안 원복
Set-ExecutionPolicy Restricted
```
##### CF. ExecutionPolicy
- Restricted: 기본 실행 정책으로 개별 명령을 허용하지만 스크립트를 실행하지 않습니다.
- Unrestricted: 서명되지 않은 스크립트를 실행할 수 있음. 악의적인 스크립트를 실행할 위험이 있음
- RemoteSigned : 스크립트를 실행 가능, 이미 실행한 스크립트와 로컬 컴퓨터에 작성한 스크립트에는 디지털 서명이 필요 없음.

View File

@ -0,0 +1,275 @@
-- 통계 백업
```sql
/*
* 시간별 집계 조회조건 = 일자 from ~ to
*/
-- 집계쿼리
select substr(flt_dt, 1, 8) as flt_de
, stand_no
, stand_on_off
-- , case when actl_apn_in_tm is not null then 'A'
-- when actl_apn_out_tm is not null then 'D'
-- else 'T' END as flt_se
-- , ac_grad
-- , ac_ty_iata
, sum(decode(substr(flt_dt,9,2), '01', 1, 0)) as tm01
, sum(decode(substr(flt_dt,9,2), '02', 1, 0)) as tm02
, sum(decode(substr(flt_dt,9,2), '03', 1, 0)) as tm03
, sum(decode(substr(flt_dt,9,2), '04', 1, 0)) as tm04
, sum(decode(substr(flt_dt,9,2), '05', 1, 0)) as tm05
, sum(decode(substr(flt_dt,9,2), '06', 1, 0)) as tm06
, sum(decode(substr(flt_dt,9,2), '07', 1, 0)) as tm07
, sum(decode(substr(flt_dt,9,2), '08', 1, 0)) as tm08
, sum(decode(substr(flt_dt,9,2), '09', 1, 0)) as tm09
, sum(decode(substr(flt_dt,9,2), '10', 1, 0)) as tm10
, sum(decode(substr(flt_dt,9,2), '11', 1, 0)) as tm11
, sum(decode(substr(flt_dt,9,2), '12', 1, 0)) as tm12
, sum(decode(substr(flt_dt,9,2), '13', 1, 0)) as tm13
, sum(decode(substr(flt_dt,9,2), '14', 1, 0)) as tm14
, sum(decode(substr(flt_dt,9,2), '15', 1, 0)) as tm15
, sum(decode(substr(flt_dt,9,2), '16', 1, 0)) as tm16
, sum(decode(substr(flt_dt,9,2), '17', 1, 0)) as tm17
, sum(decode(substr(flt_dt,9,2), '18', 1, 0)) as tm18
, sum(decode(substr(flt_dt,9,2), '19', 1, 0)) as tm19
, sum(decode(substr(flt_dt,9,2), '20', 1, 0)) as tm20
, sum(decode(substr(flt_dt,9,2), '21', 1, 0)) as tm21
, sum(decode(substr(flt_dt,9,2), '22', 1, 0)) as tm22
, sum(decode(substr(flt_dt,9,2), '23', 1, 0)) as tm23
, sum(decode(substr(flt_dt,9,2), '24', 1, 0)) as tm24
from (
select ucm.fun_kst_tm(ACTL_STAND_ON_de||actl_stand_on_tm) as flt_dt, stand_no, 'ON' as stand_on_off
, ac_grad, ac_ty_iata, actl_apn_in_tm, actl_apn_out_tm
from uic.SACP_GAM_LAST
where ACTL_STAND_ON_TM is not null
union all
select ucm.fun_kst_tm(ACTL_STAND_OFF_de||actl_stand_OFF_tm) as flt_dt, stand_no, 'OFF' as stand_on_off
, ac_grad, ac_ty_iata, actl_apn_in_tm, actl_apn_out_tm
from uic.SACP_GAM_LAST
where ACTL_STAND_OFF_TM is not null
order by stand_no, 4, 5
) m
where flt_dt like '2024042%'
--and stand_no = '367'
and stand_no in (
select ucm.FUN_PRE_ZERO_REMOVE(replace(a.stand_no, '00', '')) as std_stand_no
-- , decode(b.STAND_NO, null, 'N', 'Y') as cctv_yn
from ucm.SACP_STAND a, ucm.SACP_CCTVID_MAPPING b
where a.STAND_NO = b.STAND_NO (+)
and a.DSTRCT_TY in ( 'AF02003', 'AF02004', 'AF02007', 'AF02009' ) )
group by substr(flt_dt, 1, 8), stand_no, stand_on_off
order by flt_de, stand_no, decode(stand_on_off, 'ON', 1, 2)
-- 확인용
select stand_no
, stand_on_off
-- , case when actl_apn_in_tm is not null then 'A'
-- when actl_apn_out_tm is not null then 'D'
-- else 'T' END as flt_se
-- , ac_grad
-- , ac_ty_iata
, sum(decode(substr(flt_dt,9,2), '01', 1, 0)) as tm01
, sum(decode(substr(flt_dt,9,2), '02', 1, 0)) as tm02
, sum(decode(substr(flt_dt,9,2), '03', 1, 0)) as tm03
, sum(decode(substr(flt_dt,9,2), '04', 1, 0)) as tm04
, sum(decode(substr(flt_dt,9,2), '05', 1, 0)) as tm05
, sum(decode(substr(flt_dt,9,2), '06', 1, 0)) as tm06
, sum(decode(substr(flt_dt,9,2), '07', 1, 0)) as tm07
, sum(decode(substr(flt_dt,9,2), '08', 1, 0)) as tm08
, sum(decode(substr(flt_dt,9,2), '09', 1, 0)) as tm09
, sum(decode(substr(flt_dt,9,2), '10', 1, 0)) as tm10
, sum(decode(substr(flt_dt,9,2), '11', 1, 0)) as tm11
, sum(decode(substr(flt_dt,9,2), '12', 1, 0)) as tm12
, sum(decode(substr(flt_dt,9,2), '13', 1, 0)) as tm13
, sum(decode(substr(flt_dt,9,2), '14', 1, 0)) as tm14
, sum(decode(substr(flt_dt,9,2), '15', 1, 0)) as tm15
, sum(decode(substr(flt_dt,9,2), '16', 1, 0)) as tm16
, sum(decode(substr(flt_dt,9,2), '17', 1, 0)) as tm17
, sum(decode(substr(flt_dt,9,2), '18', 1, 0)) as tm18
, sum(decode(substr(flt_dt,9,2), '19', 1, 0)) as tm19
, sum(decode(substr(flt_dt,9,2), '20', 1, 0)) as tm20
, sum(decode(substr(flt_dt,9,2), '21', 1, 0)) as tm21
, sum(decode(substr(flt_dt,9,2), '22', 1, 0)) as tm22
, sum(decode(substr(flt_dt,9,2), '23', 1, 0)) as tm23
, sum(decode(substr(flt_dt,9,2), '24', 1, 0)) as tm24
from (
select ucm.fun_kst_tm(ACTL_STAND_ON_de||actl_stand_on_tm) as flt_dt, stand_no, 'ON' as stand_on_off
, ac_grad, ac_ty_iata, actl_apn_in_tm, actl_apn_out_tm
from uic.SACP_GAM_LAST
where ACTL_STAND_ON_TM is not null
union all
select ucm.fun_kst_tm(ACTL_STAND_OFF_de||actl_stand_OFF_tm) as flt_dt, stand_no, 'OFF' as stand_on_off
, ac_grad, ac_ty_iata, actl_apn_in_tm, actl_apn_out_tm
from uic.SACP_GAM_LAST
where ACTL_STAND_OFF_TM is not null
order by stand_no, 4, 5
) m
where flt_dt between '20240401' and '20240431'
--and stand_no = '367'
and stand_no in (
select ucm.FUN_PRE_ZERO_REMOVE(replace(a.stand_no, '00', '')) as std_stand_no
-- , decode(b.STAND_NO, null, 'N', 'Y') as cctv_yn
from ucm.SACP_STAND a, ucm.SACP_CCTVID_MAPPING b
where a.STAND_NO = b.STAND_NO (+)
and a.DSTRCT_TY in ( 'AF02003', 'AF02004', 'AF02007', 'AF02009' ) )
group by stand_no, stand_on_off
order by stand_no, decode(stand_on_off, 'ON', 1, 2)
```
```sql
select 'ON' as stand_on_off
, ucm.fun_kst_tm(ACTL_STAND_ON_de||actl_stand_on_tm) as flt_dt
, a.stand_no
, ac_grad
, ac_ty_iata
, actl_apn_in_tm
, actl_apn_out_tm
, b.DSTRCT_TY
, ucm.fun_get_cmmn_nm('CT003', 'AF02003') as stand_DSTRCT_TY
from uic.SACP_GAM_LAST a,
(select ucm.FUN_PRE_ZERO_REMOVE(replace(a.stand_no, '00', '')) as stand_no
, decode(b.STAND_NO, null, 'N', 'Y') as cctv_yn
, a.DSTRCT_TY
from ucm.SACP_STAND a, ucm.SACP_CCTVID_MAPPING b
where a.STAND_NO = b.STAND_NO (+)
and a.DSTRCT_TY in ( 'AF02003', 'AF02004', 'AF02007', 'AF02009' ) )b
where a.STAND_NO = b.STAND_NO
and a.ACTL_STAND_ON_TM is not null
and a.actl_stand_on_de = '20240422'
and a.stand_no = '253'
```
```sql
/*
* 일자별 집계 조회조건 = 년월(yyyymm) from ~ to
*/
-- 집계쿼리
select stand_no
, stand_on_off
-- , case when actl_apn_in_tm is not null then 'A'
-- when actl_apn_out_tm is not null then 'D'
-- else 'T' END as flt_se
-- , ac_grad
-- , ac_ty_iata
, sum(decode(substr(flt_dt,7,2), '01', 1, 0)) as day01
, sum(decode(substr(flt_dt,7,2), '02', 1, 0)) as day02
, sum(decode(substr(flt_dt,7,2), '03', 1, 0)) as day03
, sum(decode(substr(flt_dt,7,2), '04', 1, 0)) as day04
, sum(decode(substr(flt_dt,7,2), '05', 1, 0)) as day05
, sum(decode(substr(flt_dt,7,2), '06', 1, 0)) as day06
, sum(decode(substr(flt_dt,7,2), '07', 1, 0)) as day07
, sum(decode(substr(flt_dt,7,2), '08', 1, 0)) as day08
, sum(decode(substr(flt_dt,7,2), '09', 1, 0)) as day09
, sum(decode(substr(flt_dt,7,2), '10', 1, 0)) as day10
, sum(decode(substr(flt_dt,7,2), '11', 1, 0)) as day11
, sum(decode(substr(flt_dt,7,2), '12', 1, 0)) as day12
, sum(decode(substr(flt_dt,7,2), '13', 1, 0)) as day13
, sum(decode(substr(flt_dt,7,2), '14', 1, 0)) as day14
, sum(decode(substr(flt_dt,7,2), '15', 1, 0)) as day15
, sum(decode(substr(flt_dt,7,2), '16', 1, 0)) as day16
, sum(decode(substr(flt_dt,7,2), '17', 1, 0)) as day17
, sum(decode(substr(flt_dt,7,2), '18', 1, 0)) as day18
, sum(decode(substr(flt_dt,7,2), '19', 1, 0)) as day19
, sum(decode(substr(flt_dt,7,2), '20', 1, 0)) as day20
, sum(decode(substr(flt_dt,7,2), '21', 1, 0)) as day21
, sum(decode(substr(flt_dt,7,2), '22', 1, 0)) as day22
, sum(decode(substr(flt_dt,7,2), '23', 1, 0)) as day23
, sum(decode(substr(flt_dt,7,2), '24', 1, 0)) as day24
, sum(decode(substr(flt_dt,7,2), '25', 1, 0)) as day25
, sum(decode(substr(flt_dt,7,2), '26', 1, 0)) as day26
, sum(decode(substr(flt_dt,7,2), '27', 1, 0)) as day27
, sum(decode(substr(flt_dt,7,2), '28', 1, 0)) as day28
, sum(decode(substr(flt_dt,7,2), '29', 1, 0)) as day29
, sum(decode(substr(flt_dt,7,2), '30', 1, 0)) as day30
, sum(decode(substr(flt_dt,7,2), '31', 1, 0)) as day31
from (
select ucm.fun_kst_tm(ACTL_STAND_ON_de||actl_stand_on_tm) as flt_dt, stand_no, 'ON' as stand_on_off
, ac_grad, ac_ty_iata, actl_apn_in_tm, actl_apn_out_tm
from uic.SACP_GAM_LAST
where ACTL_STAND_ON_TM is not null
union all
select ucm.fun_kst_tm(ACTL_STAND_OFF_de||actl_stand_OFF_tm) as flt_dt, stand_no, 'OFF' as stand_on_off
, ac_grad, ac_ty_iata, actl_apn_in_tm, actl_apn_out_tm
from uic.SACP_GAM_LAST
where ACTL_STAND_OFF_TM is not null
order by stand_no, 4, 5
) m
where substr(flt_dt, 1, 6) between '202403' and '202403'
--and stand_no = '367'
and stand_no in (
select ucm.FUN_PRE_ZERO_REMOVE(replace(a.stand_no, '00', '')) as std_stand_no
-- , decode(b.STAND_NO, null, 'N', 'Y') as cctv_yn
from ucm.SACP_STAND a, ucm.SACP_CCTVID_MAPPING b
where a.STAND_NO = b.STAND_NO (+)
and a.DSTRCT_TY in ( 'AF02003', 'AF02004', 'AF02007', 'AF02009' ) )
group by stand_no, stand_on_off
order by stand_no, decode(stand_on_off, 'ON', 1, 2)
/*
* 년도별 집계 조회조건 = 년도(yyyy) to
*/
-- 집계쿼리
select stand_no
, stand_on_off
-- , case when actl_apn_in_tm is not null then 'A'
-- when actl_apn_out_tm is not null then 'D'
-- else 'T' END as flt_se
-- , ac_grad
-- , ac_ty_iata
, sum(decode(substr(flt_dt,1,4), to_char(to_date(:ar_year||'0101', 'yyyymmdd'), 'yyyy') -5 , 1, 0)) as year_5
, sum(decode(substr(flt_dt,1,4), to_char(to_date(:ar_year||'0101', 'yyyymmdd'), 'yyyy') -4 , 1, 0)) as year_4
, sum(decode(substr(flt_dt,1,4), to_char(to_date(:ar_year||'0101', 'yyyymmdd'), 'yyyy') -3 , 1, 0)) as year_3
, sum(decode(substr(flt_dt,1,4), to_char(to_date(:ar_year||'0101', 'yyyymmdd'), 'yyyy') -2 , 1, 0)) as year_2
, sum(decode(substr(flt_dt,1,4), to_char(to_date(:ar_year||'0101', 'yyyymmdd'), 'yyyy') -1 , 1, 0)) as year_1
, sum(decode(substr(flt_dt,1,4), to_char(to_date(:ar_year||'0101', 'yyyymmdd'), 'yyyy') -0 , 1, 0)) as year_0
from (
select ucm.fun_kst_tm(ACTL_STAND_ON_de||actl_stand_on_tm) as flt_dt, stand_no, 'ON' as stand_on_off
, ac_grad, ac_ty_iata, actl_apn_in_tm, actl_apn_out_tm
from uic.SACP_GAM_LAST
where ACTL_STAND_ON_TM is not null
union all
select ucm.fun_kst_tm(ACTL_STAND_OFF_de||actl_stand_OFF_tm) as flt_dt, stand_no, 'OFF' as stand_on_off
, ac_grad, ac_ty_iata, actl_apn_in_tm, actl_apn_out_tm
from uic.SACP_GAM_LAST
where ACTL_STAND_OFF_TM is not null
order by stand_no, 4, 5
) m
where substr(flt_dt, 1, 4) between to_char(to_date(:ar_year||'0101', 'yyyymmdd'), 'yyyy') -5 and :ar_year
--and stand_no = '367'
and stand_no in (
select ucm.FUN_PRE_ZERO_REMOVE(replace(a.stand_no, '00', '')) as std_stand_no
-- , decode(b.STAND_NO, null, 'N', 'Y') as cctv_yn
from ucm.SACP_STAND a, ucm.SACP_CCTVID_MAPPING b
where a.STAND_NO = b.STAND_NO (+)
and a.DSTRCT_TY in ( 'AF02003', 'AF02004', 'AF02007', 'AF02009' ) )
group by stand_no, stand_on_off
order by stand_no, decode(stand_on_off, 'ON', 1, 2)
```

View File

@ -23,8 +23,6 @@ http://118.220.143.172:5601/app/dev_tools#/console
http://118.220.143.175:9000/
- NAS-git
http://10.200.32.100:30080/
- NAS
@ -36,16 +34,8 @@ admin / todn
10.200.32.100:3751
admin / todn
GET spring-sacp7-/_search
{
"track_total_hits": true,
"size":1000,
"query": {
"match_all": {}
},
"sort": [{ "recptn_dt.keyword": { "order" : "desc" } }]
}
- NAS-git
http://10.200.32.100:30080/
- 판교 GIT
@ -56,3 +46,5 @@ https://git.gmt.dscloud.biz/users/sign_in
http://gitlab.think-tree.com/
jerosian@gmtc.kr /jerosian@gmtc.kr
- 통합DB root: Sacp1234!

View File

@ -0,0 +1,3 @@
http://10.200.31.42:8090/getSQL
http://10.200.31.42:8090/Select/sacp/PN_V_DATA_BLOCK_NEW

View File

@ -52,6 +52,19 @@ E
- 박재열 01057675809 880723 1187916
- 김명국 01039382570 940313 1012822
- EC-Miner 업무별 담당자
- 영상수치분석 담당
"한용천 수석" ychan@ecminer.com, 010-3358-4875
- VCCS/영상학습 담당
"김범곤 책임" bgkim@ecminer.com, 010-4154-4677
- 영상분석 담당
"박재열 책임" jypark@ecminer.com, 010-5767-5809
- AI 시스템/제스처/EMS-LOG 담당
"최환민 선임" hmchoi@ecminer.com, 010-5053-0799
- TRS 담당
"김명국 주임" mkkim@ecminer.com, 010-3938-2570
인솔자
- 박수영 2208738702 / 861020 1121323 / 01041730001
- 박준호 2304745460

View File

@ -29,6 +29,7 @@ g- [x] 데이터블럭 뷰 생성
검색 QCODE | 항공기 주기장 폐쇄됨(QMPLC)
- [ ] TSS 통합
- [ ] asde, radar, Kafka로 변경, null인경우 저장 X
- [ ] ASDE Status 수정
- [ ] KAFKA 관리정보 모니터링 개발
- [ ] 버전관리 S/W
@ -37,14 +38,14 @@ g- [x] 데이터블럭 뷰 생성
#### 프로시져 관련 작업
- [ ] uic.SACP_FLT_SCHDUL 스케줄 정보 상태 (계획, 실행, 취소)
- [ ] uic.SACP_FLT_SCHDUL GAM_ID 추가
- [ ] 각 연계 프로시져 UEAI.EAI_GRDACMVT_RCV -> uic.SACP_GAM_LAST로 변경
- [x] uic.SACP_FLT_SCHDUL 스케줄 정보 상태 (계획, 실행, 취소)
- [x] uic.SACP_FLT_SCHDUL GAM_ID 추가
- [x] 각 연계 프로시져 UEAI.EAI_GRDACMVT_RCV -> uic.SACP_GAM_LAST로 변경
- [ ] EyeIfEai : 최초실행시 스레드 순차 실행
- [ ] 로그 상태로그와 분리
- [ ]
- [ ] GAM Procedure 수정 (주기장번호 없는 취소데이터처리, 0000000002024041873834)