Software Development/Data Engineering
-
[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..
-
[Kafka] 단일 파티션에 대한 고민Software Development/Data Engineering 2024. 5. 27. 14:23
이름에서 알 수 있듯이 단일 파티션 topic은 파티션이 하나만 정의된 Kafka topic입니다. 이 옵션은 몇 가지 제한 사항이 있습니다.1. consumer group 사이즈에 관계없이 한 번에 하나의 consumer group 멤버가 메세지를 처리할 수 있습니다.2. group member와 메세지 처리를 나눠서 할 수 없기 때문에 최대 처리량은 단일 consumer와 동일합니다.3. 2 이상의 consumer 그룹의 경우 1개 빼고 전부 유휴 상태로 있게됩니다. 처리량 및 확장성의 관점에서 아주 나쁜 선택입니다. 카프카의 파티셔닝 기능을 포기하는 것은 거의 필수인데, 드물게 예외케이스가 있긴 합니다. 모든 메시지가 동일한 파티션 내에 있으므로 해당 주제 내에서 메시지의 grobal (쓰기) o..
-
[Spark] Spark JDBC와 하이브 연동 이슈들.Software Development/Data Engineering 2023. 5. 5. 11:53
Spark JDBC로 RDB의 데이터를 가져올 수 있음. 이때 성능 이슈가 있을 수 있음. fetchsize 옵션 추가해서 사이즈를 키워볼 것. partition 옵션을 사용하여 병렬로 가져올 수 있도록 쿼리 짤 것. Spark JDBC로 데이터 가져올 때, Action 한 번만 호출하도록 신경쓸 것. Cache가 좋은 대안. Spark JDBC로 가져온 데이터를 Hive metastore와 연동하는 경우가 많음. 이때 스키마 이슈가 발생할 수 있음. saveAsTable로 Overwrite하면, table drop 후 create 함. 이때 기존 스키마 전부 날라감. 스키마 날라가도, 데이터는 잘 저장될 수 있음. spark.sql로 읽는다면 큰 문제없음. 그러나 여기에 하이브가 붙는다면, 하이브가 읽..
-
[Hive] 하이브 테이블에 Spark으로 적재 시, HQL로 읽을 때, 값이 Null로 조회되는 이슈.Software Development/Data Engineering 2023. 5. 2. 16:58
Spark 데이터프레임을 하이브 테이블에 저장할 때, 미리 생성한 테이블이 없을 경우(CREATE TABLE로 미리 테이블을 만들지 않았을 경우), 메타데이터를 spark에서 제공하는 값으로 업데이트를 한다. SHOW TABLE TBLPROPERTIES tbl_name; 로 테이블 속성을 확인해보면, 하이브에서 테이블을 만들때와 다른 속성이 조회될 것이다. 업로드된 값을 SparkSQL로는 조회가 잘됐는데, HiveQL로 조회하면, 대부분의 값이 null로 반환되었다. 값이 존재하는 것은 맞는데, Spark으로는 잘 읽어오고 Hive로는 잘 읽어오지 못하는 상황이다. 나의 문제와 비슷한 오류를 겪는 글을 발견했다. 발생한 원인은 다음과 같다고 한다. Hive queries output NULL value..
-
[Data Pipelines with Apache Airflow] 3. Airflow의 스케줄링Software Development/Data Engineering 2022. 8. 2. 21:00
해당 블로그의 내용은 책(Apache Airflow 기반의 데이터 파이프라인)을 요약 정리한 것입니다. 3.3 데이터 증분 처리하기 스케줄된 하나의 작업에서 처리해야 할 데이터 양을 크게 줄일 수 있기 때문에 전체 데이터 셋을 처리하는 것보다 효율적인 방식. 3.3.2 실행 날짜를 사용하여 동적 시간 참조하기 Airflow는 태스크가 실행되는 특정 간격을 정의할 수 있는 추가 매개변수를 제공. execution_date: DAG가 실행되는 날짜와 시간. 매개변수 이름과 달리 execution_date는 DAG를 시작하는 시간의 특정 날짜가 아니라 스케줄 간격으로 실행되는 시작 시간을 나타내는 타임스탬프. 3.3.3 데이터 파티셔닝 데이터 세트를 더 작고 관리하기 쉬운 조각으로 나누는 작업은 데이터 저장 ..
-
[Data Pipelines with Apache Airflow] 2. Airflow DAG의 구조Software Development/Data Engineering 2022. 8. 1. 21:00
해당 블로그의 내용은 책(Apache Airflow 기반의 데이터 파이프라인)을 요약 정리한 것입니다. 2.2.1 태스크와 오퍼레이터 차이점 오퍼레이터는 단일 작업 수행 역할. 오퍼레이터와 task는 거의 같은 의미를 가지지만, 태스크는 작업의 올바른 실행을 보장하기 위한 오퍼레이터의 wrapper 또는 manager. 2.3 Airflow에서 DAG 실행하기 Airflow는 스케줄러, 웹 서버, 데이터베이스의 세 가지 핵심 컴포넌트로 구성. Airflow 설치 pip install apache-airflow Airflow를 설치 후 메타스토어 초기화, 사용자 생성, DAG 폴더에 DAG 복사, 스케줄러 및 웹서버 시작. 1. airflow db init 2. airflow users create --u..
-
[Data Pipelines with Apache Airflow] 1. Apache Airflow 살펴보기Software Development/Data Engineering 2022. 6. 22. 00:19
해당 블로그의 내용은 책(Apache Airflow 기반의 데이터 파이프라인)을 요약 정리한 것입니다. Airflow의 주요 기능은 유연한 파이썬 프레임워크를 사용해 쉽게 데이터 파이프라인을 구축할 수 있게 해 주며, 최신 기술 환경에서 접하게되는 서로 다른 기술들을 연결. 1.1 데이터 파이프라인 소개 1.1.1 데이터 파이프라인 그래프 DAG 방향성 비순환 그래프, 방향이 있는데 순환은 안하는 그래프. 비순환 속성은 태스크 간의 순환 실행을 방지. 순환 의존성은 논리적 오류로 인한 교착상태로 이어질 수 있다. 1.1.2 파이프라인 그래프 실행 DAG는 파이프라인 실행을 위한 단순한 알고리즘을 제공한다는 이점을 제공. 1. 그래프 안에 태스크는 각각 개방된 상태(미완료)이며 다음과 같은 단계를 수행. ..