목록DB (45)
나의 잡다한 노트 및 메모
pg_hba는 PostgreSQL 데이터베이스 서버의 접근 제어와 인증을 관리하는 핵심 구성 파일인 pg_hba.conf (PostgreSQL Host-Based Authentication configuration file) 를 의미해. 이 파일은 PostgreSQL 서버에 접속하려는 클라이언트의 IP 주소, 사용자, 데이터베이스 이름 등 다양한 조건에 따라 접근을 허용하거나 거부하는 역할을 합니다.주요 기능 및 역할접속 제어:호스트 기반 인증:pg_hba.conf 파일은 클라이언트가 서버에 접근할 때 어떤 인증 방법을 사용해야 하는지 결정합니다.접근 허용/거부:각 접속 시도에 대해 클라이언트의 IP 주소, 사용자, 데이터베이스 등의 조건을 확인하여 연결을 허용하거나 차단할 수 있습니다.인증 방법 설정:..
patronictl -c /etc/patroni/patroni.yml pausepostgresql에 영향을 주지 않고 patroni 서비스를 중단할 수 있다.patroni가 유지관리 모드로 들어가게 된다.patronictl -c /etc/patroni/patroni.yml resume유지관리 모드에서 벗어난다.patroni 클러스터 상태 확인 명령어patronictl -c /etc/patroni.yml list실행 명령어patroni /etc/patroni.yml > patroni.log 2>&1 &실행할 때 postgres 계정으로 실행해줘야한다.sudo -u postgres nohup patroni /etc/patroni.yml > /var/log/postgresql/patroni.log 2>&1 &..
1. 저장 방식MOLAP (Multidimensional OLAP)데이터 큐브 형태로 데이터를 미리 집계하여 저장합니다.다차원 데이터 모델(큐브)을 사용하여, 미리 계산된 요약 정보가 빠르게 조회됩니다.데이터가 압축되어 저장되므로, 디스크 공간 효율이 높습니다.ROLAP (Relational OLAP)관계형 데이터베이스(예: SQL 기반) 내의 테이블(주로 스타 스키마나 스노우플레이크 스키마)을 사용하여 데이터를 저장합니다.데이터를 미리 집계하지 않고, 필요 시 SQL 쿼리를 통해 실시간으로 계산하거나, 일부 집계된 형태로 저장할 수 있습니다.기존 RDBMS 인프라를 활용하기 때문에, 큰 규모의 데이터 처리에 유리할 수 있습니다.2. 성능 및 응답 속도MOLAP미리 계산된 큐브 데이터 덕분에, 쿼리 응답..
**비정규화(Denormalization)**는 **정규화(Normalization)**로 설계된 데이터베이스 스키마에서, 쿼리 성능 개선 또는 개발 편의성 등을 위해 중복 데이터를 허용하고 테이블 구조를 단순화하는 작업을 말합니다. 즉, 정규화를 통해 중복을 최소화하고 데이터 무결성을 높이려는 원칙과 반대 방향이지만, 실무에서 특정 목적(속도, 편의성)을 위해 의도적으로 일부 정규화 규칙을 완화하는 것을 의미합니다.1. 정규화 vs 비정규화정규화(Normalization)중복 데이터를 최소화하고, 무결성을 유지하도록 테이블을 분리하는 방식.일반적으로 **1NF(제1정규형)**부터 **BCNF(Boyce–Codd Normal Form)**까지 여러 단계가 있음.데이터 변경 시 **갱신 이상(수정, 삭제,..
Nested Data (중첩 데이터)란?Nested Data(중첩 데이터)란, 하나의 데이터 필드(컬럼) 내에 리스트(List), 맵(Map), 또는 다른 구조체(객체)가 포함된 데이터를 의미합니다.즉, 테이블처럼 평평(flat)한 데이터 구조가 아니라, 여러 계층을 가지는 데이터 구조입니다. 1. Nested Data 예시✅ JSON 형태의 Nested Data{ "id": 1, "name": "Alice", "address": { "city": "New York", "zipcode": "10001" }, "phones": ["123-456-7890", "987-654-3210"]} address 필드는 객체(Object) 타입이며, 내부에 city와 zipcode 필드가 있음.p..
CREATE TABLE users ( id SERIAL PRIMARY KEY, username VARCHAR(50) NOT NULL, email VARCHAR(100) NOT NULL, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP);테이블은 다음과 같이 생성되었다고 가정 1. 단일 컬럼 인덱스가장 기본적인 인덱스 생성 방법입니다. 예를 들어, username 컬럼에 인덱스를 생성하여 사용자 이름으로 검색할 때 성능을 향상시킬 수 있습니다. CREATE INDEX idx_users_username ON users (username); 2. 유니크 인덱스만약 email 컬럼의 값이 중복되지 않도록 보장하려면, 유니크 인덱스를 생성할 수 있습니다. CREATE ..
우분투 환경이다. apt를 통해 설치sudo apt install postgresql postgresql-contrib postgresql.conf에서 설정새로운 위치에 옮기려면 이동시켜야한다.이때, 옮길 데이터의 디렉토리의 소유자와 그룹을 postgres로 설정하자.port나 max_connections 설정도 여기에서 잘 설정하면 된다.sudo chown -R postgres:postgres /ssd/postgresql/17/mainsudo rsync -av /var/lib/postgresql/17/main/ /ssd/postgresql/17/main/기본적으로 data를 다른 directory에서 쓸려면 data_directory를 수정한다. 원격 접속 허용여기에서 listen_addresses ..
데이터 웨어하우스나 OLAP 시스템에서 fact는 주로 측정 가능한 수치 데이터, 즉 사실 데이터를 의미합니다. 이는 비즈니스 프로세스나 이벤트에서 발생하는 수치적 정보를 담고 있으며, 분석의 중심 대상이 됩니다. 주요 특징수치 데이터:fact 테이블에는 매출, 수량, 비용, 이익 등과 같이 집계 및 계산이 가능한 수치 데이터가 저장됩니다.연관 키:각 fact 레코드는 여러 차원(dimension)과 연결되며, 이 차원에 대한 참조 키(예: 제품 ID, 시간, 지역 등)를 포함하여 데이터를 다양한 관점에서 분석할 수 있도록 합니다.집계 및 분석:사실 데이터는 주로 합계, 평균, 최대/최소값 등의 집계 함수로 분석됩니다. 예를 들어, 특정 기간 동안의 총 매출이나 지역별 평균 매출 등을 계산할 때 사용됩니..