[Oracle] Diagnosability in Jdbc, driver에서 사용되는 SQL 로깅 Oracle jdbc driver (ojdbc) 중에서 _g 로 끝나는 라이브러리가 있는데 이걸 이용하면 driver 를 통해서 쿼리하는 SQL 을 모두 추적할 수가 있다. Oracle Test DB docker hub 에 간단하게 오라클 데이터베이스를 테스트해볼 수 있는 이미지가 있어 이걸 이용했다. 등록한 사용자랑 DB 스키마를 보니 owncloud 에서 repository DB […]
[StreamSets] Data Collector 및 Oracle bulkload 설치
시스템 환경 설정 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 […]
[Nextcloud] PHP OPcache 및 imagick 설정
Nextcloud 관리 화면에서 다음과 같은 경고문이 나왔었는데 크게 신경쓰지 않고 있다가 PHP OPcache모듈이 정상적으로 로드되지 않았습니다. 더 나은 성능을 위해 PHP 설치에 위 기능을 로드하는것을 권장합니다. (The PHP OPcache module is not loaded.) This instance is missing some recommended PHP modules. For improved performance and better compatibility it is highly recommended to install them. imagick […]
[SQL] mysql data sample
데이터 파이프라인, 마트 개발 업무를 맡게 되면서 SQL 역량에 대한 필요성을 많이 느낀다. 데이터베이스 엔지니어로 일했던 이전까지의 경력에서는 DB 인스턴스 레벨에서 시스템 구축에 눈높이가 맞춰져있었다. DB 성능을 개선하는 일을 많이 해보기는 했지만 인스턴스 리포트의 몇가지 지표를 보고 적절한 설정을 하는 일들 위주였고, SQL은 이미 짜여진 쿼리를 간단히 변형해보는 정도이거나 시스템 카탈로그를 뒤지는 정도의 쿼리 밖에 […]
[Docker] 실행 중인 Container에 포트 추가하기
[Docker] 실행 중인 Container에 포트 추가하기 cloudera/quickstart 도커 이미지를 이용해서 로컬 테스트를 하던 중 drill 을 추가로 설치했는데 drill 웹 서비스 포트는 기존에 포트 맵핑을 해두지 않았기 때문에 새롭게 추가해야만 했다. 이미 컨테이너로 실행 중인 상태에서 동적으로 포트 포워딩 룰을 추가해줄 수 없고 실행중인 컨테이너를 종료하고 현재 상태를 이미지로 만든 뒤, 해당 이미지로 다시 실행해야한다고 […]
[Python] SSL: CERTIFICATE_VERIFY_FAILED 문제 우회
인터넷 연결이 자유롭지 않은 사설망에서 이런 문제가 종종 발생할 수 있는데 이런 경우 인증서 검증 단계를 무시해주는 것으로 우회(?)할 수 있다. 물론 신뢰받지 못한 호스트에 https 연결을 하는 것은 보안 측면에서 위험할 수 있다는 사실은 알고있어야 한다. pip 을 이용해서 패키지를 설치할 때 다음과 같은 문제가 발생한다면 Collecting encodings Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) […]
[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 구조가 드디어 없어지면서 달라진 부분이 바로 눈에 띄었다. […]