데이터베이스
-
대규모 시스템에서 데이터베이스 사용시스템 설계 2022. 7. 24. 23:12
틀린 내용이 있을 수도 있습니다! 틀린 내용이 있다면 댓글로 달아주시면 감사하겠습니다! 대규모 시스템 설계에서 필요한 데이터베이스 사용에 대해 학습한 내용을 정리했다. 어떤 데이터베이스를 사용할 것인가 데이터베이스에는 여러가지 종류가 있지만, 크게 RDBMS와 NoSQL 이 두가지에 대해서 알아본다. 1. RDBMS 자료를 테이블, 행과 열을 통해서 표현한다. 테이블의 관계에 따라 Join이 가능하다. 정규화를 거쳐 데이터 중복 없이 한번만 저장할 수 있다. 스키마로 인해 데이터가 유연하지 못하다. Mysql, Oracle, postgresql, sqlite 2. NoSQL Not only SQL이라는 슬로건에서 생겨난 데이터베이스로 key와 value로 데이터를 관리한다. 관계형 모델을 사용하지 않으며..
-
RDB와 NoSQL 간단 비교데이터베이스 2021. 9. 17. 23:29
1. 관계형 데이터베이스(RDB) 대표적인 RDBMS로 오라클 DB, MySQL, PostgreSQL가 있다. 정형성 있는 데이터를 스키마 형태로 저장하며 조인을 통해 합칠 수 있다. 2. 비관계형 데이터베이스(NoSQL) 대표적으로 카산드라, AWS 다이나모 DB, MongoDB등이 있다. NoSQL은 주로 정형성이 없는 데이터를 저장하며 스키마가 없기 때문에 조인 연산을 지원하지 않는다. 어떤 데이터를 저장하는지에 따라 4가지 종류로 나뉜다. 1) 키-값 저장소 2) 그래프 저장소 3) 칼럼 저장소 4) 문서 저장소 대부분의 레거시는 RDB를 사용한다. ☞ 질문 그렇다면 언제 비관계형 데이터베이스를 사용하는게 적합할까? - 업데이트가 자주 이루어지지 않고, 읽기가 자주 사용될때 - 다루는 데이터가 비..
-
AWS RDS Multi-AZ, Read Replica 실습AWS 2021. 7. 18. 20:52
이번 포스팅은 RDS를 사용하여 애플리케이션을 동작시켜 보고, RDS의 특징인 Multi-AZ와 Read Replica를 사용해본다 . RDS Multi-AZ이란? 다른 AZ에 백업DB를 구성하여 primary DB 장애시 백업 DB(secondary DB)가 동작 RDS Read Replica란? PrimaryDB 이외에 Read-Only DB를 두는 방식이다. 평상시에 DB가 동기화 되어 읽기 Endpoint URL을 Read Replica DB로 사용할 수 있다. (RDS는 최대 5개의 Copy본을 찍어낼 수 있다) 1. RDS DB1 생성 생성 방식 : 표준 생성 엔진 옵션 : MySQL 템플릿 : 프리 티어 DB 인스턴스 식별자 : database-1 마스터 사용자 이름 : r..
-
NFS 구축 및 pv, pvc 생성과 K8S MySQL Statefulset 마운트K8S 2021. 7. 15. 00:17
이번 포스팅은 NFS 서버를 구축한 후, 이를 persistent volume으로 사용하여 mysql statefulset으로 배포하는 작업을 한다. mysql 컨테이너에서 마운트된 디렉토리에 대한 접근 권한 문제 때문에 삽집을 해서 이 부분에 대해서만 자세히 다룬다. chown: changing ownership of '/var/lib/mysql/': read-only file system (처음에 mysql 컨테이너에서 나는 문제인줄 알았는데 NFS 권한 설정 때문에 발생했던 문제였다.) NFS 서버는 EC2 우분투 18.04를 기준으로 하였고, NFS 서버의 /data/mysql 디렉토리를 마운트하여 사용할 것이다. 1. NFS 서버 구축하기 먼저 마운트할 디렉토리를 만들어준다. mkdir -p /..
-
AWS Storage 정리AWS 2021. 7. 3. 19:11
1. storage의 종류와 기능 데이터를 일정 크기의 블록으로 나누어 저장하며 호스트에서 파일 시스템을 생성할 수 있다. SSD나 HDD를 생각하면 되고, AWS에서는 EBS가 블록 스토리지에 해당된다. 디렉토리 구조로 파일을 저장하며 스토리지단에서 파일 시스템을 생성한다. 대표적으로 NAS가 있고 AWS에서는 EFS가 파일 스토리지에 해당된다. 객체 기반으로 저장하며 Rest기반의 API 호출을 통해 데이터에 접근한다. 즉 http 프로토콜을 이용하여 저장할 수 있으며, AWS에서는 대표적으로 S3가 있다. 질문 ☞ 언제 어떤 스토리지를 사용해야 효율적으로 사용할 수 있을까? Block Storage : 호스트에서 직접 파일을 액세스..
-
Docker로 mysql container 생성하고 DBeaver로 접속하기메모 및 기타 2021. 6. 13. 10:07
1. mysql container 생성 docker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root --name test-mysql \ mysql:5.7.30 --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci 2. container 내부로 들어가서 mysql 접속 docker exec -it test-mysql bash mysql -u root -p 이후 위에서 지정했던 root 비밀번호를 입력해준다. 3. Database 생성하고 확인하기 CREATE DATABASE practice; SHOW DATABASES; 4. DBeaver로 접속하기 접속 성공
-
Python: sqlite3 라이브러리 정리Python 2021. 6. 8. 11:22
1. DB 생성, Table 생성, 데이터 입력, 데이터 출력 import sqlite3 # DB 연결 con = sqlite3.connect(r"C:\Users\Seung\naverDB") # 커서를 이용해 실행된 결과를 돌려 받는다. cur = con.cursor() # 테이블 생성 cur.execute("CREATE TABLE userTable\ (id char(4), userName char(15), email char(15), birthYear int)") # 데이터 입력 cur.execute("INSERT INTO userTable Values\ ('Lee', 'Lee sin', 'leesin@daum.net', 1995)") cur.execute("INSERT INTO userTable Va..