시스템 환경 설정 StreamSets는 openfile 제한을 32,768 이상으로 설정해야한다. sudo vim /Library/LaunchDaemons/limit.maxfiles.plist 파일을 열어 아래 내용 입력 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>Label</key> <string>limit.maxfiles</string> <key>ProgramArguments</key> <array> <string>launchctl</string> <string>limit</string> <string>maxfiles</string> <string>32768</string> <string>32768</string> </array> <key>RunAtLoad</key> <true/> <key>ServiceIPC</key> <false/> </dict> </plist> 파일 저장 후, 다음 명령으로 적용 sudo launchctl unload […]
[SQL] mysql data sample
데이터 파이프라인, 마트 개발 업무를 맡게 되면서 SQL 역량에 대한 필요성을 많이 느낀다. 데이터베이스 엔지니어로 일했던 이전까지의 경력에서는 DB 인스턴스 레벨에서 시스템 구축에 눈높이가 맞춰져있었다. DB 성능을 개선하는 일을 많이 해보기는 했지만 인스턴스 리포트의 몇가지 지표를 보고 적절한 설정을 하는 일들 위주였고, SQL은 이미 짜여진 쿼리를 간단히 변형해보는 정도이거나 시스템 카탈로그를 뒤지는 정도의 쿼리 밖에 […]
[Impala] Data Types
[Impala] Data Types 정수 자료형 Impala에서는 다음과 같이 네 종류의 정수 자료형을 제공하며 각각 차지하는 공간과 범위가 다르다. 오라클의 TO_CHAR(), TO_NUMBER() 와 같이 숫자와 문자열을 바꿀수 없고 CAST(SOME_COLUMN_NAME as datatype_to_cast) 함수를 이용해 변형하고자 하는 타입을 지정해주어야하는데 테이블을 설계할 때 잘못하면 지원 범위를 넘어서는 숫자가 생겨 문제가 될 수 있으므로 주의를 해야할 것 같다. 번거롭긴 하지만 […]
[ElasticSearch] 검색엔진 만들기 4 – Flask 웹서비스
[ElasticSearch] 검색엔진 만들기 4 – Flask 웹서비스 elasticsearch에 필요한 데이터는 다 색인해뒀기 때문에 검색엔진 자체는 다 만들어졌고 서비스를 위해서 적당한 UI 만 있으면 될 것 같다. 기존 운영하는 웹페이지에 이식하고자 하는 경우에는 작게 모듈형태로 만들어서 간단한 스크립트로 해당 검색 엔진을 불러오게할 수도 있을 것 같은데 이것만으로 완전한 독립 서비스를 구축하는 것이어서 크게 단계를 나누어서 만들지는 […]
[ElasticSearch] 검색엔진 만들기 3 – Python 검색 모듈 만들기
[ElasticSearch] 검색엔진 만들기 3 – Python 검색 모듈 만들기 IMS 데이터는 앞서 Elasticsearch에 인덱싱 해두었고 이를 검색하는 모듈을 Python API 를 이용해서 만들어본다. Python Flask로 만들면 웹서비스를 직접 할 수도 있고 다른 프레임워크에 이식하기 위한 HTTP API 를 만들어내기도 간편한 것 같다. 쿼리 템플릿 먼저 검색에 사용할 쿼리를 만들어야하는데 kibana dev tools 에서 SQL 툴처럼 […]
[ElasticSearch] 검색엔진 만들기 2 – IMS 데이터 크롤링
[ElasticSearch] 검색엔진 만들기 2 – IMS 데이터 크롤링 Selenium, BeautifulSoup 를 이용해서 IMS 이슈 페이지 Crawler 를 만든다. 기초적인 부분은 [여기]()를 참고. 단위 크롤러 수집할 이슈 번호에 대한 리스트를 만들어 한번에 수집하고 Elasticsearch에 인덱싱 하는 IndexIssueList 함수를 만들었다. (IMS 는 이슈 번호를 URL(https://ims.tmaxsoft.com/tody/ims/issue/issueView.do?issueId=) 에 변수로 대입해서 각 이슈 페이지에 접근할 수 있다.) _LOGIN_ID = "IMS_USERNAME" […]
[ElasticSearch] 검색엔진 만들기 1 – Mac에 ElasticSearch, Kibana 설치
기존에 만들었던 IMS 검색엔진의 아이디어들을 정리하면서 동시에 Mac과 친해질 겸 Mac 환경으로 진행할 예정. 그리고 기존 검색엔진은 ELK 6 버전에서 만들었었는데 7 버전에서 구현해보며 최신 버전 체험도 해보려고 한다. 서버에 있던 소스들을 Mac 로컬 환경으로 내려받아 구동해보려고 했더니 index 만드는 것부터 변경 사항이 있었고, Search API에도 type 구조가 드디어 없어지면서 달라진 부분이 바로 눈에 띄었다. […]
[Tibero] _TX_RECOVERY_SUSPEND=Y
_TX_RECOVERY_SUSPEND=Y 대용량 트랜잭션 수행 중 DB가 종료되었을 때, 복구 대상인 트랜잭션들을 undo segment에서 모두 찾아 해당 object에 반영해주는 작업을 수행하게 된다. 대용량 insert 또는 update 도중 DB가 종료된 경우 모두 rollback 처리가 선행되며 이 과정에서 해당 object에 대한 아무런 작업을 할 수 없고 모든 DDL이 수행되지 않는 상태가 되는데 이런 경우 _TX_RECOVERY_SUSPEND 파라미터를 적용해볼 수 […]
[oracle] 12c Silent 설치
Oracle 12c silent 모드 설치 사전 준비 커널 파라미터 설정 vi /etc/sysctl.conf fs.aio-max-nr = 1048576 fs.file-max = 6815744 kernel.shmall = 2097152 kernel.shmmax = 4056393728 kernel.shmmni = 4096 kernel.sem = 250 32000 100 128 net.ipv4.ip_local_port_range = 9000 65500 net.core.rmem_default = 262144 net.core.rmem_max = 4194304 net.core.wmem_default = 262144 net.core.wmem_max = 1048586 sysctl -p User Limit 설정 vi […]
[Hadoop] Oozie 설치
Oozie 설치 아파치 우지(Apache Oozie)는 하둡의 잡(job)을 관리하기 위한 서버 기반의 워크플로 스케줄링 시스템이다. 사전 준비 다음과 같은 사전 준비 작업이 필요하다. Java java -version java version “1.8.0_181” Java(TM) SE Runtime Environment (build 1.8.0_181-b13) Java HotSpot(TM) 64-Bit Server VM (build 25.181-b13, mixed mode) Maven mvn -version Apache Maven 3.6.0 (97c98ec64a1fdfee7767ce5ffb20918da4f719f3; 2018-10-25T03:41:47+09:00) Maven home: /app/maven Java […]