본문 바로가기

분류 전체보기847

PostgreSQL Partitioning 적용하는 방법 PostgreSQL Version 10미만 1. 테이블 생성 먼저 아래와 같이 부모 테이블을 생성한다. CREATE TABLE users( id bigint, nickname varchar(20), gender char(1), )다음으로 부모 테이블을 상속받아서 자식 테이블을 생성한다. 본 예제에서는 gender를 따라 남성/여성을 구분할 것이므로 users_male과 users_female 두개의 테이블을 만들었다. CREATE TABLE users_male( CHECK (gender = 'M') ) INHERITS(users) CREATE TABLE users_female( CHECK (gender = 'F') ) INHERITS(users)여기서 CHECK 문법을 사용하.. 2019. 8. 7.
MongoDB 위치 기반 쿼리(Geospatial) 개요 위치와 관련된 정보를 저장할 때 보통 위도, 경도를 저장하여 사용한다. 저장된 위도, 경도를 토대로 특정 범위 내에 존재하는 다른 값들을 찾는 경우가 간간히 있다. 예를 들어 현재 내 위치에서 10km 이내에 존재하는 모든 카페를 찾고 싶다고 해보자. 이러한 경우 단순 쿼리를 체이닝하기에는 약간 복잡하게 느껴질 수 있다. MongoDB에서는 이러한 지리, 거리 관련 쿼리를 쉽게 하기 위해 지리 공간적인(Geospatial) 쿼리를 지원한다. 선행 지식은 다음과 같다. 선행지식 GeoJson : Json 형태로 지형에 대한 데이터를 정의하는 포맷이며 형태는 아래와 같다. : {: , coodinates: } type에는 Point, PolyGon, MultiPoint등 여러가지가 존재한다. 본 예제에.. 2019. 7. 22.
Python Method Chaining SQLAlchemy, MongoEngine 또는 Django ORM 등의 쿼리를 보면 Chaining을 통해 쿼리를 쉽게 작성할 수 있다는걸 알 수 있다. 예를 들어 아래와 같은 형태이다. User.objects.filter(user_id=1).order_by('-user_id')위 쿼리는 user_id=1의 결과값을 역순으로 정렬하여 return해준다. 쿼리에서 알 수 있듯이 filter().order_by() 형태로 함수들을 Chaining해줬다. 만약 Chaining을 지원하지 않았다면 filter()를 한번해주고 그 결과값을 다시 order_by()를 해주는 형태로 나눠서 작성해야 했을 것이다. 이는 상당히 많은 경우에서 유용한데, 파이썬의 경우 정말 간단한 방법을 통해 Method.. 2019. 7. 17.
삼성화재 실손보험 실비보험 청구 하는 방법 오늘은 삼성화재 실손보험/실비보험 보험비 청구하는 방법에 대해 포스팅하겠습니다. 젊은 나이임에도 불구하고 최근에 대상포진이라는 질병에 걸려서 병원을 자주 다녀왔는데요. 대상포진은 "항 바이러스제"를 먹어야 몸속에 있는 바이러스를 치료할 수 있기 때문에 관련 약을 처방받아야 하는데, 해당 약품은 급여가 아닌 비급여 대상이었습니다. 보통 약을 처방받아도 만원 안쪽에서 비용이 처리됐는데, 이번 약은 비급여이기 때문에 한번 처방받을 때 마다 3만원 정도의 비용이 소요됐습니다. 아무래도 부담이 되지 않을 수 없는데요. 저같은 경우 삼성화재 실손보험/실비보험을 가입해놓은 상태이기에 실비청구가 가능하다는 것을 알게 되었습니다. (정확하게는 "무배당 삼성화재 건강보험 NEW새시대건강파트너" 입니다) 많은 청구 방법이 .. 2019. 7. 13.
MongoDB aggregate lookup으로 컬렉션 조인하는 방법 MongoDB는 NoSQL이므로 관계형 데이터베이스와 달리 조인이라는 기능이 없다. 하지만 쿼리를 질의하다보면 가끔씩 조인이 필요한 경우가 있다. 그럴 때 aggregate()라는 집계함수를 사용하면 다른 컬렉션을 조인시킬 수 있다. aggregate는 조인만을 위한 함수는 아니고 보다 복잡한 질의문을 구성할 때 사용하는것인데, 여기서 제공하는 기능 중 $lookup을 사용하면 타 컬렉션과 조인을 할 수 있다고 생각하면 될 것 같다. 먼저 예시를 위해 아래와 같은 도큐먼트가 존재한다고 가정한다. posts> db.posts.find() { "_id" : ObjectId("5d22de26fc60aab610f73e04"), "post_id" : 1, "user_id" : 1, "body" : "first",.. 2019. 7. 8.
Mongo Atlas 데이터 마이그레이션 하는 방법 현재 회사에서 작업을 하며 관리형 데이터베이스로 Mongo Atlas를 사용하고 있다. 보통 테스트/라이브 용 클러스터를 따로 두고 작업을 하는데, 테스트 용 데이터베이스에 실제 라이브처럼 수많은 데이터가 들어있진 않다. 하지만 데이터베이스 쿼리를 날릴 때 부하가 얼마나 걸리는지, 성능을 실제 테스트해봐야 하는 경우가 존재하는데 그럴 경우 Atlas에서 자체적으로 제공하는 Migration기능을 이용하면 손쉽게 복제 클러스터를 생성할 수 있다. 먼저 Mongo Atlas 콘솔로 들어간다음 데이터를 복제시킬 클러스터를 하나 생성한다. 그다음 클러스터쪽에 점 3개 버튼을 클릭하면 위처럼 메뉴가 나오는데 Migrate Data to this Cluster를 선택한다. I'm ready to migrate 버튼.. 2019. 6. 26.