분류 전체보기
-
[Parquet] 파케이 파일 내부 구조 및 동작 방식 파악Software Development/Data Engineering 2025. 12. 30. 02:42
Parquet는 오픈소스이고 데이터 저장과 검색에 효율적인 컬럼기반 데이터 파일 포맷이다. 높은 압축률과 인코딩을 제공하며 많은 프로그래밍 언어와 분석 툴을 지원한다.[1] 이 정도의 내용은 대부분 알려진 사실이다. 다만 이번에 파케이 파일의 내부 구조를 깊이 알아보게 된 계기는 단순 Parquet 파일에 데이터를 저장하는 것이 '높은 압축률과 인코딩'을 제공하지만 다루는 도구(Spark, Flink, Trino, ...) 따라서 편차가 있다는 것을 알게 되었기 때문이다.Parquet 파일을 다룰 때 Hive Table, Iceberg Table과 같은 테이블 형식으로 다루게 되는데 이때 기본적으로 스몰파일을 핸들링하기 위한 파티셔닝, 버켓팅과 같은 전략에 대해서는 많이 알려져있다.그러나 파케이 파일..
-
[Pinot] Apache Pinot 조사Software Development/Data Engineering 2025. 2. 1. 01:18
Pinot은 링크드인에서 개발한 실시간 분산 OLAP 데이터스토어이다. 초저지연 및 높은 처리량을 제공합니다. 주요 특징으로 다음과 같은 것들이 있습니다.Fast Queries: 페타바이트 데이터셋에 대한 대부분의 필터 및 집계를 수십 밀리초 지연으로 제공합니다.High Concurrency: 동시에 수십만 쿼리를 실행할 수 있습니다.Batch and Streaming IngestUpserts: 같은 레코드를 여러번 입수해도 되고 최신 레코드만 쿼리할 수 있습니다.Versatile Joins: 다양한 조인이 가능합니다. fact/dimension, fact/fact, ...Rich Indexing Options: timestamp, inverted, StartTree, bloom filter, range..
-
[Flink] 플링크 공부Software Development/Data Engineering 2025. 1. 27. 22:20
https://m.yes24.com/Goods/Detail/89927694 아파치 플링크로 하는 스트림 데이터 처리 - 예스24아파치 플링크를 사용하면 초저지연으로 스트림 데이터를 처리하고 실시간으로 스트림 데이터를 분석할 수 있다. 강력한 아파치 플링크의 스트림 처리 기능을 바탕으로 매일 수천억 건 이상의m.yes24.comhttps://github.com/streaming-with-flink위의 책을 보고 공부하기 위해 간단하게 내용 정리를 진행하였습니다. 자세한 내용은 책을 통해서 확인하실 수 있습니다. Stream Processing with Apache FlinkStream Processing with Apache Flink has 3 repositories available. Follow th..
-
[Redis] Redis 동작방식 살펴보기Software Development/Database 2025. 1. 24. 20:04
Remote Dictionary Server의 약자로 In-memory cache 솔루션이다[1] 주요 사용 사례로는 caching, session, pub/sub이 있다.C언어로 작성되었다.Redis는 백업 저장소로 디스크를 사용한다. 레디스는 메모리에 데이터를 저장하기 때문에 메모리가 부족하면 swap으로 인해 성능 저하가 발생할 수 있다.Swap을 할 수 있는 상태라면, 시스템 다운 및 프로세스 Hang을 방지할 수 있지만, 성능 저하가 발생할 수 있다.Swap을 할 수 없는 상태라면, OOM으로 죽을 수 있다.레디스는 maxmemory라는 설정을 통해서 메모리의 양을 조절할 수 있다. 최대치로 데이터를 저장하게 되면 기존 데이터를 제거하는 방식으로 동작하는데 이를 eviction이라고 부른다. 이..
-
JanusGraph카테고리 없음 2024. 9. 6. 10:58
Index ManagementIndexing for Better Performance대부분의 그래프 쿼리는 해당 property로 식별되는 vertex 또는 edge 리스트에서 순회를 시작graph indexes: 대규모 그래프에서 이러한 전역 검색 작업을 효율적으로 수행vertex-centric indexes: 그래프를 통한 실제 순회 속도를 향상 g.V().has('name', 'hercules')g.E().has('reason', textContains('loves'))graph index없이 위와 같은 쿼리를 질의하면 edge나 vertext에 대해 full scan을 해야한다. 매우 비효율적이다.Janus는 composite 및 mixed index가 있다.composite 인덱스는 매우 빠르..
-
Database의 파일시스템 EXT4, XFS 비교 (Feat. MongoDB, ScyllaDB)Software Development/Database 2024. 6. 22. 00:00
https://www.mongodb.com/docs/manual/administration/production-notes/#kernel-and-file-systems Production Notes - MongoDB Manual v7.0This page details system configurations that affect MongoDB, especially when running in production.To learn more about running in production for deployments hosted in MongoDB Atlas, see Atlas Production Notes.For running in production, refer to the Recommewww.mongodb..
-
[Kotlin] 코틀린 코루틴의 정석 요약Software Development/기타 2024. 6. 9. 00:00
개발 도서를 읽으면서 많은 번역본을 읽을 때 마다 번역에 대한 아쉬움을 느낄 때가 있었습니다.'코틀린 코루틴의 정석'을 읽으면서 코루틴의 동자원리에 대해서 잘 이해할 수 있었습니다.이번 요약을 통해서 나중에 필요시에 가볍게 꺼내볼 수 있으면 좋겠습니다.자세한 내용은 아래의 책에 있습니다.http://www.acornpub.co.kr/book/kotlin-coroutines 코틀린 코루틴의 정석많은 개발자들이 어렵게 느끼는 비동기 프로그래밍을 다양한 시각적 자료와 설명을 통해 누구나 쉽게 이해할 수 있도록 쓰인 책이다.www.acornpub.co.kr코루틴의 이점은 성능, 안정성, 가독성에 있다.멀티 스레드 프로그래밍 방식은 사용자가 스레드를 기반으로 작업하기 때문에 스레드 블로킹을 극복하기 어려웠다.이를..
-
CPython InternalsSoftware Development/Python 2024. 6. 1. 00:00
해당 글은 CPython Internals 책을 읽으면서 중요하게 봤었던 내용의 일부를 요약한 것입니다. 자세한 내용은 아라의 책에 있습니다.https://product.kyobobook.co.kr/detail/S000061776273 CPython 파헤치기 | 앤서니 쇼 - 교보문고CPython 파헤치기 | 인터프리터 레벨에서 살펴보는 파이선 내부 동작 원리파이썬이 인터프리터 레벨에서 작동하는 방식을 이해하면 파이썬의 기능을 최대한 활용할 수 있고 애플리케이션을 최적product.kyobobook.co.kr"아무리 성공적인 혁신이라도 한때는 아이디어였다. 헌신, 학습, 협력이 성공과 성장을 위한 기반이다. 지금 하는 게 아예 안 하는 것보다 낫다."파이썬 언어와 문법컴파일러: 한 언어를 다른 언어로 변..