본문 바로가기

데이터베이스 기초7

DevOps Day 19 (3.31) 데이터베이트_실습 실습 안내 nginx 웹 서버의 로그로부터 접속 기록을 추출하여, PostgreSQL에 적재하는 것입니다. 1. PostgreSQL 데이터베이스 생성하고 SQL문을 이용해 데이터를 넣고 결과 확인 2. Nginx 웹 서버의 로그를 확인 3. 파서 (Parser) 프로그램 수정 및 활용 4. 프로그램 수집기 Collector.js으로 내용 확인 1. Github 에서 실습 내용 fork 후 git clone 으로 파일 받습니다. 2. Nginx 로그 파일 분석하기 위해 $cat sample.log 으로 확인합니다. 3. Npm install 으로 모듈 설치 후 $cat sample.log | ./parser.js 으로 내용 확인합니다. (필요시 Parser 파일 수정하여 원하는 값이 나올 수 있도록 합니다.. 2023. 3. 31.
DevOps Day 18 (3.30) 데이터베이스_데이터 파이프라인 데이터 파이프라인과 OLTP vs OLAP 데이터 파이프라인이란 다양한 데이터 소스로부터 원시 데이터를 수집하여 분석을 위해 데이터 웨어하우스와 같은 별도의 데이터 저장소로 이전하는 과정을 의미합니다. OLTP vs OLAP OLTP (Online Transaction Processing) 데이터베이스는 그 목적이 트랜잭션(기본적인 CRUD 작업)에 포커스가 맞추어져 있는 데이터베이스임. - 분석은 가능하나 여러 개의 테이블을 함께 묶어 조회할 경우 복잡도가 늘어 처리가 힘들어짐 OLAP (Online Analytical Processing) 데이터베이스는 적재된 데이터를 다양한 방법으로 분석하는 데 포커스가 맞춰져 있습니다. - 데이트터 기반의 의사결정을 위한 도구로, 다양한 관점의 분석을 하는데 적합.. 2023. 3. 31.
DevOps Day 17 (3.29) 데이터베이스_수평확장된 데이터베이스와 중복처리 데이터 중복성 높은 가용성을 위해 한 컴퓨터의 클론을 만든다는 것은, 그 안에 존재하는 데이터 역시 복제되어야 함을 의미합니다. 이러한 데이터 중복 메커니즘은 가용성을 얻기 위해 필요한 작업입니다. 물론 여기에는 Trade-off가 존재합니다. 데이터 중복 발생의 원인 1. 관리시스템 내의 소프트웨어(코딩) 품절 데이터 중복은 조직에 긍정적이거나 부정적인 결과를 가져옵니다. 우발적인 데이터 중복의 원인 중 하나는 조직의 데이터 관리 시스템 내 소프트웨어 품질 때문입니다. 이로 인해 경로 오작동으로 이어질 수 있습니다. 2. 백업시스템 조직에 백업 스토리지가 있는 경우 백업은 데이터 관리 시스템 또는 원본 데이터베이스의 문제를 완화하기 위해 정보의 복사본 역할을 합니다. 이를 위해서는 궁극적으로 정보가 손.. 2023. 3. 31.
DevOps Day 17 (3.29) 데이터베이스_배치 작업에 따른 성능 저하 배치 작업에 따른 성능 저하 – 스트림 처리 Data Batch Processing : 데이터 배치작업을 데이터 일괄처리작업이라고 칭하기도 합니다. 이름에서 알 수 있듯이 유입되는 데이터를 특정량 또는 특정기간 모아서 한번에 처리한다는 의미입니다. 배치의 특징 : - 대량의 데이터 처리 - 특정 시간에 프로그램 실행 - 일괄적으로 처리 배치 작업의 단점 예약된 일이 순차적으로 실행되기 때문에 앞선 프로그램의 실행이 다 끝나야지만 뒤에 등록된 데이터가 실행이 됩니다. 대량의 배치작업을 한꺼번에 진행하게 되면 특정시간대에 I/O가 몰리게 되어 서버에 갑작스러운 부하가 일어나 성능이 저하 될 수 있습니다. DB를 효율적으로 처리하는 방법 지체를 줄이기 위해서는 좀 더 자주 처리를 실행해야 합니다. 시간을 초단.. 2023. 3. 31.
DevOps Day 17 (3.29) 데이터베이스_데이터 파티셔닝 + 캐시 대용량의 데이터 – 파티셔닝 데이터셋이 매우 크거나, 쿼리 처리량이 매우 높아 복제하는 것만으로는 부족할 수 있는 문제가 있을 경우 데이터베이스를 파티션이라는 작은 단위로 쪼개서 활용하는 방법이 있습니다. 샤딩 (sharding)이라고도 표현합니다. 파티셔닝의 목적 데이터 파티셔닝을 필요로 하는 주된 이유는 확장성 때문입니다. 데이터베이스가 확장되면서 점점 대용량의 데이터베이스가 되고, 그러한 환경에 맞게 프로세스를 처리할 필요성이 생기기 때문입니다. 쓸림현상 (Skewed) 방지를 위한 시도 - 일반적으로 파티셔닝과 복제(Replica)는 함께 사용됩니다. 파티션 내부를 더 자세히 살펴보면 각 파티션의 복사본을 여러 노드에 저장하고 있는 것을 알 수 있습니다. 이러한 방식을 사용하는 이유는 요청의 쏠림.. 2023. 3. 31.
DevOps Day 17 (3.29) 데이터베이스_문제 상황에 따른 해결책 문제 상황에 따른 해결책 낮은 검색 성능 – 인덱싱 첫번째는 데이터를 저장하는 것이고, 두번째는 요청에 왔을 때 저장되어있는 데이터 중에 요청에 맞는 데이터를 찾아서 제공하는 것입니다. 데이터베이스 기능의 두번째 경우에서, 낮은 검색 성능이 나타날 때, 좀 더 효율적인 방법으로 특정 키의 값을 확인하고 제공하기 위해서 인덱스(색인)를 이용합니다. 데이터 검색에 도움을 주기 위한 메타데이터 인덱스는 데이터베이스에 저장된 기본데이터(primary data)에서 파생된 부가적인 메타데이터(meta-data : 데이터에 관한 구조화된 데이터)입니다. 데이터에 영향을 주지 않는 인덱스 인덱스 추가 및 삭제가 가능하며 인덱스 편집사항은 데이터베이스의 내용에는 영향을 주지 않습니다. 단지 질의 (Query) 성능에만.. 2023. 3. 31.