15 notes
- PostgreSQL NULL 처리와 3값 논리NULL은 "값이 없음"이 아니라 "값을 모름" 이다. 비교 연산자가 이상하게 동작하는 이유는 전부 여기서 나온다.
- GROUPING SETS와 CUBE여러 그룹핑 조합을 한 번에 집계해야 할 때, 개별 GROUP BY를 조합 개수만큼 반복하지 않고 GROUPING SETS로 원천 테이블을 단 1회만 스캔해 처리할 수 있다.
- LATERAL 조인LATERAL은 조인 오른쪽 서브쿼리가 왼쪽 테이블의 값을 참조할 수 있게 해주는 키워드다.
- Python으로 데이터베이스 연결하기sqlalchemy의 create_engine으로 DB 엔진을 만들고, 비밀번호에 특수문자가 있으면 quote_plus로 인코딩한다
- Airflow & PostgreSQL 구축인프라 환경 구축: 안정적인 서버 운용을 위해 고정 IP를 확보하고 VCN 보안 목록에서 SSH(22), Airflow(8080), DB(5432) 포트를 개방하여 네트워크 기초를 마련한다.
- ALTER 테이블 수정테이블 자체 또는 열, 제약조건을 수정하는 경우 활용
- CREATE 테이블 생성새로운 데이터베이스, 스키마, 테이블, 인덱스 생성
- DML 데이터 조작 언어SELECT 절: 질의 결과에 요구되는 열 이름 서술 (DISTINCT, AS 활용 가능)
- Docker Compose 구조 해석docker-compose는 1개 이상의 도커 컨테이너 생성 시 스크립트 하나(docker-compose.yaml)로 컨테이너들의 설정을 관리하는 목적을 가진다.
- DROP 테이블 제거DROP: 대상 전체를 삭제 — 절대 되돌릴 수 없음
- GRANT 권한 부여스키마 권한 부여가 최우선, 그 후 스키마 내 테이블 권한 부여
- information_schema 활용법특정 schema에 속한 컬럼, 함수, 시퀀스, 테이블 정보 조회
- pg_database 용량 조회pg_database 테이블의 정보를 활용하여 DB/스키마별 용량 조회
- Postgres 컨테이너 연동postgres_custom 컨테이너 서비스를 services: 하위에, 관련 volumes 항목도 함께 추가한다.
- TRIM 공백 및 문자 제거trim은 맨 앞 또는 맨 뒤 연속된 공백/특정 문자를 제거