일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 파이썬
- airflow 설치
- 데이터리안 웨비나
- mysql :=
- Limit
- 그로스해킹
- SQL
- 다중 JOIN
- 데이터분석
- Oracle
- 프로그래머스
- 결측값
- MySQL
- having
- hackerrank
- TRUNCATE
- not in
- matplotlib
- 머신러닝
- Round
- 전처리
- 데이터시각화
- pandas
- solvesql
- GROUPBY
- SUM
- join
- SQLite
- seaborn
- PostgreSQL
- Today
- Total
목록PostgreSQL (3)
Milky's note
2021년 3월에 운영 시스템을 오픈했다. 그 시점부터 로그를 테이블에 쌓고 있다. 하지만 시간이 지날수록 점점 데이터는 늘어가고 테이블의 사이즈는 커지고 있다. 로그 같은 경우에는 물론 주기를 정해놓고 오래된 로그는 지우는 게 맞는데,,, 담당자가 불안해하고 있어서 지우지 못하고 있다..ㅜ 다시 한 번 지우자고 주기 정해서 건의해봐야지! 그래서 테이블의 크기는 커져가고 있는 중에, 데이터를 조회하는 건 부하가 점점 심해져서 월 별로 로그 테이블을 파티셔닝 하기로 했다. 당연히 작업 절차서를 만들어서 진행하였다. 개발계에 있는 건 부담없이 진행하였는데, 운영계 할 때는 떨렸다. ㅎㅎ 테이블 파티셔닝의 순서는 다음과 같다. 1. 파티션 테이블 생성 2. 기존 전체 테이블의 데이터를 기간으로 나누어서 파티션..
1. 성능저하의 원인 지금 운영 중인 시스템에서 로그 쌓는 DB를 AWS RDS PostgreSQL을 사용하고 있다. 모니터링하는 시스템이다보니 인터페이스가 될 때마다 많은 양의 로그가 테이블에 Insert, Update 되고 있다. PostgreSQL은 Update 과정이 생겨도, 디스크 상의 해당 Row를 물리적으로 업데이트하지 않고, 새로운 영역을 할당해서 사용하고 있다. 그래서 이런 과정(테이블에 Update)을 거치면서, 기존에 있던 영역들은 Dead Tuple로 발생하게 된다. PostgreSQL에서 모든 데이터는 Tuple로 저장되는데, 모든 Tuple은 live Tuple와 dead Tuple로 나뉘어진다. Dead Tuple은 더 이상 사용되지 않는 Tuple이다. Dead Tuple이 ..
데이터 분석 코딩테스트에서 판다스와 WINDOW_FUNCTION 중에서, 대부분이 SQL WINDOW_FUNCTION의 비중이 크다고 하였다. 사실은 블로그가 너무너무 써보고 싶어서 오늘 공부하고 빠르게 업로드한당^_^ 아직 개념만 잡은 단계라 실제 로그 분석 할 때 많이 쓰면서 익혀야겠다 1. 개념 행과 행 간의 관계를 쉽게 정의하기 위해 만든 함수가 윈도우함수이다. 순위, 합계, 평균, 행 위치 등을 조작할 수 있다. 분석 함수나 순위 함수로도 알려져 있다. 다른 함수와 달리 중첩해서 사용은 못하지만, 서브쿼리에는 사용이 가능하다. (물론 PostgreSQL만 지원하는 기능이 아니고, 대다수의 DBMS에서도 사용 가능하다.) CF>> Aggregate Function Window 함수는 Aggrega..