일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 카파도키아
- Deep Learning
- nlp
- mysql
- 튀르키예 여행
- 텍스트마이닝
- 회귀분석
- hackerrank
- ADP실기
- pyspark
- 스택/큐
- 시계열분석
- SparkSQL
- sparkml
- 기초통계학
- 파이썬
- spark
- postgresql
- 통계분석
- sql
- 터키 여행
- 딥러닝
- 프로그래머스
- 데이터분석
- 인과추론
- 튀르키예
- python
- Machine Learning
- 머신러닝
- text mining
- Today
- Total
목록SQL & DB (67)
YSY의 데이터분석 블로그
PostgreSQL이란 오픈소스로 개발된 관계형 데이터베이스 ( ORDBMS) 다양한 영역에서 활용되고 있으며, 오라클/MySQL/MsSQL다음으로 많이 사용되는 RDBMS PostgreSQL 특징 1. 라이센스 비용이 전혀 들지 않음 PostgreSQL은 BSD(Berkeley Software Distribution) 라이센스를 활용하여 개발되었음 PostgreSQL은 자유로운 오픈 소스 라이선스를 통해 원하는 대로 DBMS를 사용, 수정 및 배포할 수 있음 따라서 데이터 volume가 커지더라도 라이센스 문제가 없기에, 기업에서는 부담이 전혀 없음 CF) BSD(Berkeley Software Distribution) BSD는 미국 캘리포니아 대학교 버클리의 CSRG(Computer System Re..
DATASET QUERY DROP TABLE IF EXISTS mst_users_with_dates; CREATE TABLE mst_users_with_dates ( user_id varchar(255) , register_stamp varchar(255) , birth_date varchar(255) ); INSERT INTO mst_users_with_dates VALUES ('U001', '2020-02-28 10:00:00', '2000-02-29') , ('U002', '2020-02-29 10:00:00', '1992-03-29') , ('U003', '2020-03-01 10:00:00', '2002-01-29') , ('U004', '2020-03-01 11:00:00', '1988-08-..
CSV파일을 PostgreSQL에 삽입하는 방법은 다음과 같습니다. 먼저 데이터를 다운로드합니다. 그리고 데이터를 넣을 데이블을 만들어줍니다. DROP TABLE IF EXISTS sale_data; CREATE TABLE sale_data ( order_id SERIAL, date DATE, category VARCHAR(50), itemcode integer, price integer, amount integer, Primary KEY(order_id) ); 데이블을 만들어 준후 CSV파일을 IMPORT하는 방법은 PSQL을 이용하는 것과 PgAdmin 기능을 이용하는 2가지 방법이 있습니다. PSQL로 CSV파일 IMPORT하기 psql을 실행합니다. 실행후 서버, 데이터베이스, 포트, 이름, 암호..
DATASET QUERY DROP TABLE IF EXISTS mst_users_with_card_number; CREATE TABLE mst_users_with_card_number ( user_id varchar(255) , card_number varchar(255) ); INSERT INTO mst_users_with_card_number VALUES ('U001', '1234-xxxx-xxxx-xxxx') , ('U002', NULL ) , ('U003', '5678-xxxx-xxxx-xxxx') ; DROP TABLE IF EXISTS purchase_log; CREATE TABLE purchase_log ( purchase_id integer , user_id varchar(255) , am..
PostgreSQL에서 중복을 제거하는 방법은 다음과 같습니다. 로직의 원리는 중복되지 않는 데이터의 id만을 필터링해서 해당 id가 아닌 id를 제거하는 로직입니다. 1. 중복 제거하고자 하는 컬럼들만 group by 해서 가장 앞의 id만 남기는 로직 DELETE FROM table_name WHERE id NOT IN ( SELECT MIN(id) FROM table_name GROUP BY column_name ); 2. 중복 제거하고자 하는 컬럼들을 기준으로 rank를 매긴 다음에, 가장 앞의 id만 남긴다. DELETE FROM table_name WHERE id IN ( SELECT T.id FROM ( SELECT id , ROW_NUMBER() OVER(PARTITION BY column..
선택도와 카디널리티 1. 선택도 : 조건절에 의해 선택되는 레코드 비율 선택도 = 1 / NDV(컬럼 값 종류 개수) 카디널리티 : 전체 레코드 중 조건절에 의해 선택되는 레코드 수 카디널리티 = 총 로우 수 * 선택도 = 총 로우 수 / NDV 옵티마이저는 카디널리티를 구하고, 데이터를 액세스하는데 드는 비용을 계산해서 데이블 액세스 방식, 조인순서, 조인방식 등을 결정 선택도를 제대로 계산하는 것이 중요 통계정보 테이블 통계 인덱스 통계 컬럼 통계 : 테이블 통계 수집할 때 함께 수집. '=' 조건에 대한 선택도는 데이터 분포가 균일하지 않은 컬럼에서는 잘못 산출될 수 있기 때문에 옵티마이저는 일반적인 컬럼통계 외에 히스토그램을 추가로 활용 시스템 통계 : 애플리케이션 및 하드웨어 성능 특성 측정 C..
오라클 Lock - 공유 리소스와 사용자 데이터를 보호할 목적으로 DML Lock, DDL Lock, 래치, 버퍼 Lock, 라이브러리 캐시 Lock/Pin 등 다양한 종류의 Lock을 사용 - 래치 : SGA에 공유된 각종 자료구조를 보호하기 위해 사용 - 버퍼 LOCK : 버퍼 블록에 대한 액세스를 직렬화 하기 위해 사용 - 라이브러리 캐시 Lock와 Pin은 라이브러리 캐시에 공유된 SQL 커서와 PL/SQL프로그램을 보호하기 위해 사용 - 애플리케이션 개발에서 가장 중요한 것은 DML LOCK - 다중 트랜잭션이 동시에 액세스하는 사용자 데이터의 무결성 보호 DML 로우 Lock - 두개의 동시 트랜잭션이 같은 로우를 변경하는 것을 방지 - DML 로우 Lock에는 배타적 모드를 사용하므로 UPD..
테이블 파티션 - 파티셔닝은 테이블 또는 인덱스 데이터를 특정 컬럼(파티션 키) 값에 따라 별도 세크먼트에 나눠서 저장하는 것 - 파티션이 필요한 이유 1. 관리적측면 : 파티션 단위 백업, 추가, 삭제, 변경 --> 가용성 향상 2. 성능 측면 : 파티션 단위 조회 및 DML, 경합 또는 부하 분산. 1) Range 파티션 주로 날짜 컬럼을 기준으로 파티셔닝함. 파티션 테이블에 대한 SQL 성능 향상 원리는 파티션 Pruning(=elimination)에 있음. 파티션 pruning이란 SQL 하드파싱이나 실행 시점에 조건절을 분석해서, 읽지 않아도 되는 파티션 세그먼트를 액세스 대상에서 제외하는 기능. 파티션도 클러스터, IOT와 마찬가지로 관련있는 데이터가 물리적으로 인접하도록 저장하는 클러스터링 ..