본문 바로가기

소프트웨어 이야기/데이터 저장소 + 시각화

(ElasticSearch) 엘라스틱서치에 데이터 싱크하기 ( 4 ) - 안티패턴과 멱등성 관리 이 글은 [elastic] Keeping Elasticsearch in Sync 문서를 정리한 글 입니다 ㅎㅅㅎ엘라스틱서치에 원본 데이터를 싱크할 때, 주의해야하는 점이 있다.Why Marking Source Records is an Anti-Pattern엘라스틱서치 인덱싱 필요 여부를 체크하는 방법 중, 원본 테이블에 필드를 하나 추가하는 방법이 있다. 그런데 이건 안티패턴이다. 하면 안된다.안티패턴인 이유&nb..
(ElasticSearch) 엘라스틱서치에 데이터 싱크하기 ( 3 ) - Batching Based on Ranges 이 글은 [elastic] Keeping Elasticsearch in Sync 문서를 정리한 글 입니다 ㅎㅅㅎ이전글 ((ElasticSearch) 엘라스틱서치에 데이터 싱크하기 ( 2 ))에서는 계속 변경되는 데이터를 엘라스틱서치에 싱크하는 방법에 대해서 설명했다.이번에는 Immutable한 데이터를 엘라스틱서치에 추가하는 방법에 대해서 설명하고자 한다.Batching Based on RangesImmutable한 데이터의 예시로..
(ElasticSearch) 엘라스틱서치에 데이터 싱크하기 ( 2 ) - Using Queues to Manage Batches 이 글은 [elastic] Keeping Elasticsearch in Sync 문서를 정리한 글 입니다 ㅎㅅㅎ이전 글에서는 엘라스틱서치에 저장된 문서를 업데이트할 때, Batch로 한번에 업데이트하는게 효과적이라는 내용을 살펴봤었다. - (ElasticSearch) 엘라스틱서치에 데이터 싱크하기 ( 1 ) 이번 글에서는 Batch로 한번에 업데이트할 문서 정보들을 원본 데이터에서 가져오는 방법에 대해서 ..
(ElasticSearch) 엘라스틱서치에 데이터 싱크하기 ( 1 ) - The Problems of Too-Frequent Updates and Non-Batch Updates 이 글은 [elastic] Keeping Elasticsearch in Sync 문서를 정리한 글 입니다 ㅎㅅㅎElasticSearch은 검색엔진 목적으로 많이 사용된다. 그래서 원천 데이터들은 RDB / NoSQL DB에 저장하고, 제2의 데이터 저장소로 ElasticSearch를 사용하는 경우가 많다. 그래서 원천 데이터를 ElasticSearch으로 옮기는 작업이 필요하다. 이 글에..
(PostgreSQL) Default 값이 있는 새로운 필드 추가하기 Default 값이 있는 새로운 필드 추가하기ALTER TABLE orders  ADD COLUMN price bigint NOT NULL DEFAULT 0;PostgreSQL 10 이하 버전에서는 테이블에 Default 값이 있는 필드를 추가할 땐 주의해야한다. Default값이 있는 필드를 추가할 때, 테이블을 다시 만들어내기 때문이다!그러면 시간도 오래걸리고, ACCESS EXCLUSIVE LO..
NoSQL 도입 시 고려사항 컬럼패밀리 기반 - Cassandra - 노드가 추가될 때, Mongo DB보다 더 선형적으로 성능이 좋아진다. ( 참고 - NoSQL 비교(카산드라, HBASE, MongoDB )- 타임시퀀스한 데이터를 저장할 때 좋다. - 데이터를 삭제해도, 내부적으로는 삭제한 데이터도 읽어들여서 데이터가 많아지면 성능이 좋진 않다.   그리고 클러스터링 이슈로 지워졌던 데이터가 다시 살아날 수도 있다. ( ..
(PostgreSQL)Idle in transaction 프로세스 자동으로 죽이기 문제 상황postgresql에서 transaction이 잡혀있지만, 아무것도 하지 않으면, 세션의 상태는 idle in transaction이 된다.그런데 얘가 connection은 쥐고 있지만, 아무것도 안한다면 서버 자원을 잘 활용하지 못하게 된다. ( 참고 - (Django)PostgreSQL의 Idle In Transaction Connection )그러면 connection이 무한대로 늘어난다거나, connection이 필..
(PostgreSQL) OOM Killer PostgreSQL 서버에 Out Of Memory가 발생하는 경우, PostgreSQL 자체를 재부팅해야지만 복구할 수 있다. 메모리가 부족해지고, Swap 영역이 증가하게 되면 Linux Kernel의 OOM Killer가 프로세스를 죽이게 된다. 그러면서 부족해진 메모리를 늘리고, Swap 영역을 줄인다. 이러면, 서버에 접속할 수 없는 수준으로 서버가 고장나는 일은 막을 수 있다. 그러나 OOM Killer가 Ses..
(PostgreSQL) work_mem 메모리 설정 postgresql의 work_mem이란? 이 값은 정렬 /  해시 / 조인 등의 동작에 사용될 수 있는 메모리 사용량을 의미한다.   이 메모리는 임시 디스크에 데이터를 쓰기 전에 사용된다.  기본값은 4MB으로 설정된다. 그런데 어떤 아티클에서는 일반적으로 64MB 정도가 적합한 수치라고 한다.  만약 PostgreSQL이 temporary file을 사용하고 있다면, work_mem을 늘리면 좋다..
(데이터 시각화)Redash란? Redash는 데이터 조회 / 시각화를 편하게 해주는 툴입니다. (이런 느낌? ) 특징 - SQL문을 날리면, 반환된 값으로 그래프를 만들 수 있습니다. - 당연히, CSV 다운로드 기능도 있습니다. - RDB / ElasticSearch / NoSQL / Athena / BigQuery 등의 여러 데이터 소스를 연결해서 사용할 수 있습니다. - 여러 데이터 소스에서 얻은 쿼리 ..