본문 바로가기

DBMS16

DBMS 연결 및 쿼리 처리 방법 (파이썬) 00 개요회사에서 이런 저런 DBMS를 다루다보니 여러가지 오픈소스 RDBMS를 파이썬으로 다루게 되었는데 이에 대해 기본적인 연결 방법 및 쿼리 처리 방법에 대해 정리하고자 함다양한 DBMS에서 Python으로 connection과 cursor를 생성하고 닫는 방법에 대한 정리MySQL, PostgreSQL, SQLite, Oracle(유료), Microsoft SQL Server, Vertica (유료)주요 DBMS마다 사용하는 Python 라이브러리가 다르므로, 각 DBMS별로 필요한 방법을 구체적으로 설명01 MySQL (MySQL Connector/Python)1. 설치pip install --upgrade mysql-connector-python2. 코드 예시import mysql.connec.. 2024. 9. 5.
REFRESH (프로젝션 함수) 00 개요목적: Vertica 안에 Projection이라는 개념이 있는데, 이 Projection을 어떻게 하는  REFRESH() 함수에 대해 정리하기01 REFRESH()1. 정의 및 기능Synchronously refreshes one or more table projections in the foreground, and updates the PROJECTION_REFRESHES system table. If you run REFRESH with no arguments, it refreshes all projections that contain stale data.If a refresh would violate a table or schema disk quota, the operation fail.. 2024. 7. 5.
View (가상 테이블) 00 개요회사에서 DBMS Vertica 사용하는데 .sql 파일에 View를 만드는 쿼리가 있어서 View가 뭔지 정리하고자 함01 View란1. View 정의가상 테이블DB에서 View란, 메모리 상에 존재하는 테이블 → 메모리상에 존재하기 때문에 View를 많이 사용하면 메모리를 많이 사용하게 되어 처리 속도 저하View 생성 시 사용된 테이블을 수정하게 되면 해당 View에도 적용됨 참조https://do-develop-diary.tistory.com/4 2024. 6. 18.
Segmentation and Partitioning 00 개요Vertica에서 테이블 생성 시 SEGMENTED BY랑 PARTITION BY 둘 다 사용하는데, 둘다 데이터를 분산하는 것인데 어떻게 다른 것인지 알아보기 위해 정리01 Partitioning and Segmentation (파티셔닝과 세그멘테이션)Vertica에서 partitioning과 segmentation은 데이터를 현지화 (localize data) 하는 데에 있어서 각각 다른 개념이고 목적이 다르다1. SegmentationSegmentation은 신속한 데이터 삭제 및 쿼리 성능 (data purges and query performance)을 위해 클러스터 노드들 사이에서 데이터를 정리하고 분산하는 것을 의미Segmentation은 모든 노드들이 쿼리 실행에 참여할 수 있도록.. 2024. 6. 17.
Projection (프로젝션, 데이터 저장소) 00 개요회사에서 코드분석 하는데 VIEW를 만들길래 이것이 뭔가 하고 정리하고자 함01 Projection이란1. Projection 정의 (테이블과 프로젝션)Vertica의 테이블은 논리적인 구조를 정의 할 뿐 데이터를 저장하고 있지 않으며, 데이터를 저장하는 곳은 Projection이라는 물리적인 구조임테이블당 복수 개의 projection을 생성 가능전체 컬럼을 가지는 projection이 반드시 하나 존재해야 하며(super projection), 테이블의 컬럼을 일부만 가지고 projection도 생성 가능또한 테이블과 다른 정렬순서로 데이터를 저장 가능정렬은 항상 ASC(오름)로 정렬됨버티카에서는 table을 anchor table이라고 부르기도 함2. Projection 생성되는 시기Ver.. 2024. 6. 13.
Encoding/Compression Types (인코딩/압축 종류) 00 개요회사에서 코드분석 할 때 sql 파일 안 쿼리문에서 encoding을 COMMONDELTA_COMP이랑 RLE를 많이 사용하는데 이것들이 뭔지 알기 위해 정리하고자 함01 Encoding TypesVertica는 여러가지 encoding 및 compression 종류를 제공함종류설명AUTO (기본값)- ideal for sorted, many-valued columns such as Primary Keys- also suitable for general purpose applications for which no other encoding or compression scheme is applicable- CPU requirements for this type are relatively small.. 2024. 6. 13.
View (가상 테이블) 00 개요회사에서 코드분석 하는데 VIEW를 만들길래 이것이 뭔가 하고 정리하고자 함 01 VIEW 란1. View 정의DB에서 View(뷰)란, 하나 이상의 테이블 또는 다른 View에서 선택한 열의 집합을 표시하는 가상 테이블기본 테이블(View를 만드는데 기반이 되는 물리적인 테이블)에서 일부 데이터를 추출하여 만들어진 새로운 가상 테이블데이터를 실제로 저장하지 않고 논리적으로만 존재하는 테이블이나 일반 테이블과 동일한 방법으로 사용됨주로 쿼리나 리포트를 작성하는 데 사용됨 (DB에서 원하는 정보를 쉽게 추출하고 표시 가능하기에)View를 통해 기본 테이블의 내용을 쉽게 검색 가능하나 기본 테이블의 내용을 수정하는 것은 제한적→ 뷰란 일종의 가상 테이블로 실제 데이터를 저장하지 않고 원본 테이블의 .. 2024. 6. 13.
Sequence (시퀀스) 00 개요회사에서 .sql 파일에서 CREATE SEQUENCE가 나오는데 시퀀스가 뭔지 알아보기 위해 개념을 정리해보려 한다01 Sequence란1. 정의'순서'일렬번호 (유일한UNIQUE 값) 생성해주는 DBMS (Oracle, Vertica 등) 객체MySQL에서 auto_increment로 할 수 있으나 Oracle과 Vertica에서는 테이블 속성으로 제공하지 않고 별도의 SEQUENCE 객체를 생성해서 이용해야 보통 기본키 (PRIMARY KEY) 값을 생성하기 위해 사용행을 구분하기 위해 기본키를 두는데 이 기본키는 중복되지 않는 것이 이상적인데 중복된 값을 가질 수 있으므로 항상 유일한 값을 가지게 하기 위해 SEQUENCE 사용SEQUENCE를 생성하면 순차적으로 증가하는 컬럼을 자동적으.. 2024. 6. 13.
Replication/Replica (데이터 백업 수단) 01 Replication이란1. 정의사전적인 의미로 '복제, 대답, 응답'DB에서는 DB 처리의 효율화와 백업의 수단원본 데이터베이스(original - master)를 복사(replica - slave)해서 동일한 데이터를 가지고 있는 DB를 항상 다른 서버에 준비해 놓는 것즉, 처리를 분산시킴2. 용도백업용Master의 DB와 그로부터 복사된 Slave의 DB는 동일하기에 Master에 문제가 생겼을 경우 Slave는 Master가 하던 일을 떠맡도록 하면 다시 시스템을 정상적으로 가동하는 데 소비되는 시간 절약 가능역할 분산예시: Master가 테이블의 변경 처리 (예, UPDATE tb SET number='B103' WHERE sales>=50; 이나 INSERT INTO tb1(number,.. 2024. 6. 12.