내 잡다한 노트
대규모 데이터를 다루기 위한 기초지식 본문
대규모 데이터를 다루는 방법은 두가지 관점에서 바라볼 수 있다.
1. 프로그램을 작성할 때의 요령
2. 프로그램 개발의 근간이 되는 기초라는 점에서 전제로서 알아두었으면 하는 것
대규모 데이터를 다루는 포인트
1. 메모리에서 처리를 마치게 하는 점
이거에 대한 이유는 디스크 seek 횟수가 확장성, 성능에 크게 영향을 주기 때문.
디스크 seek 횟수를 최소화한다는 의미로 메모리를 활용하고자 한다.
2. 데이터량 증가에 강한 알고리즘을 사용하는 것
레코드 천만건이 있을 때 단순히 선형탐색으로 하면 천만번 계산을 수행해야 하는데, Log Order인 알고리즘을 적용하면 수십 번만에 마칠 수 있다는 예시가 있다
3. 데이터 압축이나 검색기술과 같은 테크닉이 활용될 수 있는 국면이 있다.
단적으로 말하면 압축해서 데이터량을 줄일 수 있다면 읽어내는 seek 횟수도 적어지게 되므로 디스크 읽는 횟수를 최소화할 수 있다.
또한 메모리에 캐싱하기 쉬워진다. 데이터가 크면 메모리에서 넘치거나 디스크에 저장해도 읽어내기에 시간이 걸리므로 압축이 중요해진다.
검색이 중요한 이유는 확장성 면에서 DB에만 맡겨서 해결할 수 없을 때, 특정 용도에 특화된 검색 엔진 등을 만들어 해당 검색 시스템을 웹 애플리케이션에서 이용하는 형태로 전환한다면 속도를 제대로 확보할 수 있기 때문이다.
'데이터엔지니어' 카테고리의 다른 글
Apache Iceberg란? (0) | 2025.02.09 |
---|---|
Ingestion (0) | 2025.02.04 |
Pandas 란? (1) | 2024.12.27 |
데이터 웨어하우스와 데이터 레이크 등의 용어들 (0) | 2024.12.24 |
데이터 웨어하우스 (0) | 2024.12.09 |