본문 바로가기
반응형

분류 전체보기135

[DB] MongoDB 에 대해 알아보자 | LIM MongoDB는 NoSQL 데이터 베이스 중 하나로 "도큐먼트 스토어" 이다. 도큐먼트 스토에서는 주로 데이터 처리의 유연성을 목적으로 한다. 👩‍💻 MongoDB(NoSQL) vs MySQL(DBMS) DBMS에 대표적인 MySQL 과의 비교해보자. MongoDB MySQL Structure Schemaless Fixed Structure Data Representation JSON Document Table Sharding Auto-Sharding Manual Transaction X O MongoDB의 장점과 단점에 대해서도 간략히 정리해보면 ➕ 스키마 없이 사용 가능 ➕ write 성능이 좋음 ➕ read 시 파일의 index를 메모리에 로딩해놓고 찾는다. (memory mapped file) .. 2023. 3. 26.
[File Format For Big Data] Parquer vs ORC vs Avro | LIM Parquet, ORC, Avro 모두 빅데이터를 처리하는 사람들이라면 한번씩 마주쳤을 법한 파일 포맷이다. 나는 Parquet 파일은 자주 써보았는데 다른 파일 포맷들은 어떤 특성이 있는 지 몰라서 공부 겸 정리해보고자 한다. Parquet 파일 관련해서 정리해 둔 포스팅이 있다. https://amazelimi.tistory.com/78 Parquet란 무엇이고, 왜 사용하는가 | LIM Parquet (파케이) 데이터를 저장하는 방식 중 하나로 하둡생태계에서 많이 사용되는 파일 포맷이다. 빅데이터를 처리할 때는 많은 시간과 비용이 들어가기 때문에 빠르게 읽고, 압축률이 좋아야 amazelimi.tistory.com https://amazelimi.tistory.com/79 Parquet 파일 읽고 .. 2023. 3. 12.
[DB] Clustering vs Replication vs Sharding 에 대해 알아보자 | LIM ✨ Clustering 여러 개의 DB 서버를 수평적인 구조로 구축하는 방식이다. Clustering 방식에는 다음과 같은 것들이 있다. Active-Active - 서버의 중단 없이 서비스 제공 가능 - Storage 공유하기 때문에 병목이 생길 수 있음 - 여러 대의 서버가 운영되기 때문에 CPU 와 메모리 이용률이 올라갈 수 있음 Active-Standby - Active 서버에 문제가 생길 경우 Standby 서버가 Active 서버로 전환하는 상태로 운영이 됨 - Stand By 전환 시 시간이 오래 걸릴 수 있다. - Active-Active 방식에 비해 비용 절감이 가능하다. ✨ Replication 여러 개의 DB를 수직적인 구조(Primary-Secondary) 로 구축하는 방식이다. D.. 2023. 3. 12.
[BigQuery] Partition 과 Cluster 에 대해 알아보고 적용하기 | LIM ✔️ 빅쿼리 Partition 이란? 빅쿼리 파티션이란 하나의 큰 테이블을 사용자가 지정한 column 에 맞추어 여러 스토리지 블록으로 쪼개놓은 것이다. 파티션을 추가하는 경우 장점과 단점은 다음과 같다. 장점) Query 탐색범위를 줄인다. 빅쿼리는 쿼리가 데이터를 탐색하는 양만큼 비용을 부과한다. 파티션이 걸린 경우 해당 파티션 범위만 탐색하기 때문에 비용이 덜 부과된다. Query 속도가 빨라진다. 빅쿼리에서 데이터의 양에 따라 쿼리 소요 시간이 달라짐 미리 조건에 맞추어 작은 테이블로 분할시켜놓았기 때문에 더 빠르게 결과가 나타난다. 단점) 테이블 간 join 비용이 증가한다. 🧐 Sharding(샤딩) 과의 차이는 무엇인가? 샤딩과 파티션 모두 데이터베이스를 여러개로 나누어 분산시키기 위한 .. 2023. 3. 12.
[Algorithm] 투 포인터 (feat. leetcode Two Sum, Three Sum) | LIM 📚투 포인터 알고리즘이란 투 포인터 알고리즘은 리스트에 순차적으로 접근해야 할 때 2개의 점의 위치를 기록하면서 처리하는 알고리즘을 의미한다. 예를 들어서 2, 3, 4, 5, 6, 7번 학생을 가리켜야 할 때 우리는 '2번부터 7번까지의 학생'이라고 부르곤 한다. 이처럼 리스트에 담긴 데이터에 순차적으로 접근해야 할 때는 '시작점' 과 '끝 점' 2개의 점으로 접근할 데이터의 범위를 표현할 수 있다. 그냥 naive 방식인 반복문을 쓰다보면 시간 초과가 걸리는 경우에 투 포인터를 사용하면 메모리와 시간 효율성을 높일 수 있다. 포인터는 크게 두 가지 방식으로 쓰인다. 1. 앞에서 시작하는 포인터와 끝에서 시작하는 포인터가 만나는 형식 또는 원하는 값 target을 찾을 때까지 2. 또는 빠른 포인터(f.. 2023. 2. 19.
[DB] Dirty Read, Non-Repeatable Read, Phantom Read 예시 및 Snapshot Isolation Level | LIM DB의 Transaction 들이 동시에 실행될 때 발생할 수 있는 이상 현상들에 대해 정리하고 예시를 통해 더 자세히 파악해보고자 한다. 이전에 Transaction Isolation Level 에 대해서는 정리해 둔 포스팅이 있다. https://amazelimi.tistory.com/31 [MySQL] Transaction의 모든 것 | LIM MySQL/MariaDB의 InnoDB 스토리지 엔진은 Transaction(트랜잭션) 기능을 지원한다. 📌 Transaction 단어의 뜻은 이러하다. 거래, 매매 처리과정 컴퓨터 과학 분야에서의 트랜잭션은 “더이상 분할이 불가능 amazelimi.tistory.com 위 게시글에서는 Isolation Level 이 잘 지켜지지 않았을 때 이러이러한 위와 .. 2023. 2. 17.
반응형