데이터 엔지니어링
-
Airbyte 알아보고 사용해 보기데이터 엔지니어링/Airbyte 2022. 12. 6. 22:30
Airbyte란? Airbyte는 ELT의 주요 요소인 데이터 통합 플랫폼 스타트업 기업이다. 오픈소스이며, 소스는 airbyte라는 회사에서 관리한다. ELT에서 EL을 손쉽게 구현할 수 있도록 도와주는 툴을 제공한다. 수많은 커넥터를 제공한다. CDC도 손쉽게 구현 할 수 있게 도와준다 T에서 약점을 가지고 있지만, dbt를 이용하여 문제점을 해결할 수 있다. Airbyte 설치하기 오픈 소스 이므로 아래의 코드로 다운 받아서 docker로 올리면 된다 해당 내용은 airbyte 공식 문서에서 확인 가능하다. git clone cd airbyte docker-compose up container가 다 올라갔다면, http://localhost:8000/ 로 접속 하여 확인 초기 id : airbyte..
-
Hive 테이블 문제점 및 대체제 알아보기 Hudi vs Iceberge vs delta lake 이해하고 비교해보기데이터 엔지니어링/Hive 2022. 11. 27. 17:20
이전 글에서 HQL을 사용해보았고 Compaction에 대해 포스팅을 할려고 했으나 compaction 시 에로사항이 많아서 포스팅을 하지 못한다고 판단하였고 대신에, hive 테이블의 문제점과 대체제에 대해 알아보는 시간을 가져보면 좋을 것 같아 이 글을 작성하게 되었습니다. Hive에서는 Hive Table을 만들어서 데이터를 관리하고, Hive Query을 이용하여 데이터를 조회하게 되는데, 여기서 오는 문제점에 대해 간단하게 알아보겠습니다. Hive Table 구조 Hive는 데이터를 관리할때 메타스토어(RDB) + 데이터(HDFS안에 있는 실제 데이터 파일) 로 나뉘어서 관리 됩니다. DB에서 파일이 어디에 있는지 어떤 데이터를 추출해야하는지 스키마나 파티션 이런 정보들을 관리하고 실제데이터는 ..
-
[Kafka 원리]Kafka Consumer 동작 원리 이해하기 (Consumer group, rebalancing, commit_offset, option, fetch 튜닝, message ordering(순서))데이터 엔지니어링/Kafka 2022. 11. 6. 21:54
목차 consumer란? consumer offset Consumer는 어떤 메시지를 읽을 수 있을까? consumer group Consumer 메세지 읽기 옵션 Consumer Rebalance Consumer Group간 Rebalancing 옵션 그러면 언제 언제 Rebalancing 될까? Consumer Message Ordering(메시지 순서 조작하기) Consumer란? broker 로컬에 저장 되어있는 메시지(log Segment)에서 메시지 내용을 가져와 사용하는 사용자 역할을 하는 애플리케이션이다. 컨슈머는 반드시 컨슈머 그룹에 속해 있어야 한다. 컨슈머 그룹은 하나 이상의 컨슈머가 존재한다. consumer를 구성할 때 bootstrap.servers, group.id, key.d..
-
[Kafka 원리] replication-factor, ISR , 리더 에포크, 가용성 알아보기데이터 엔지니어링/Kafka 2022. 11. 6. 10:42
목차 replication factor leader-follower ISR(In Sync Replica) Push방식이 아닌 Pull방식 hive water mark leader epoch Replication factor kafka에서는 cluster를 구성하고 고가용성을 유지 하기 위해서 replication(복제)을 해야합니다. 복제를 얼마나 할 것인지에 대해 topic을 생성할 때 설정을 할 수 있습니다. 아래 그림과 같이 topic 1 을 복제를 2번 한다고 하고, topic2를 복제를 3번한다고 하면 아래와 같이 복제를 하게 됩니다. 복제는 broker가 장애 시에 다른 broker에서 메세지를 produce 및 consume합니다. Leader - Follower 여기서 Producer가 진..
-
[Kafka 원리] Kafka Broker 메세지 저장 방식Cluster(broker), partition, segment 기본 개념 및 옵션데이터 엔지니어링/Kafka 2022. 11. 5. 14:42
목차 Broker, kafka cluster란? Broker란? Kafka Cluster란? Partition이란? Partition이 메시지 보관하는 법 Partition이 필요한 이유는? 병목현상이 왜 일어 날까? Partition 수 늘리기 Partition 수 늘리는 것이 무조건 좋은 방법일까? Partition replica 기준 Segment란? rolling 및 retention segment 주요 옵션 Broker Message Queue시스템에서는 message Produce와 Consume 하기 위해 message를 관리하거나 보관해주는 서버가 필요한데 그것이 Kafka에서는 Broker라고 부른다. Kafka Cluster Kafka에서는 메시지 분산처리 플랫폼 이기 때문에 분산처리가..
-
[Kafka 원리]Kafka Producer 처리 방식 이해하기(feat. 튜닝, batch, linger, acks, compression, message send주기, message 순서 보장)데이터 엔지니어링/Kafka 2022. 11. 5. 14:38
목차 Producer란? Producer Message 전송 원리 이해하기 Producer Message 전송 완료 listener 원리 이해하기 Batch 처리(feat. batch.size, linger.ms) Messge Compression(메세지 압축) Message send Retry 원리 이해하기 Message 순서 보장 알아보기(feat. idempotence, max.in.flight.requests.per.connection) Producer란? Producer는 kafka broker에 메세지를 보내는 client이다. record라는 형식으로 데이터를 만들어 보낼 수 있다. record는 avro, json형식으로도 보낼 수 있다. record는 byte형식으로 serialize 되..
-
[Hive] Merge문 이해하기데이터 엔지니어링/Hive 2022. 10. 26. 20:13
Merge문을 사용하는 이유 merge문 은 match문과 unmatch문의 분기를 이용하여 내용을 합치는데 사용한다. hive에서 merge문의 matched로 update, delete를 사용하려면 transaction을 true로 설정한 테이블이여야한다. ANSI SQL문을 사용하여 쿼리를 작성 할 수 있다. Merge문 사용 메뉴얼 MERGE INTO AS T USING AS S ON WHEN MATCHED [AND ] THEN UPDATE SET WHEN MATCHED [AND ] THEN DELETE WHEN NOT MATCHED [AND ] THEN INSERT VALUES 실습 source table : 새로 생성된 데이터나 합치고 싶은 데이터 target_table : merge하고 싶은..
-
[Hive] Hive에서 Transaction이란?(component, 제약조건, delta폴더, staging 폴더, insert, update, delete)데이터 엔지니어링/Hive 2022. 10. 11. 22:32
Transaction이란? SQL 질의 문 INSERT/UPDATE/DELETE/MERGE문을 이용하여 데이터의 변화를 일으키는 행위를 말한다. Transaction compoenet Transaction 구성 요소는 ACID라고 하는 속성이 있다. 이 말을 요약하자면, 데이터가 틀리지 않고 유지 되어야 한다는 뜻이 된다. 즉, update, delete했는데 이상하게 반영되지 않아야 한다는 것으로 이해 하면 된다. Atomicity = 성공적으로 트랜잭션은 처리하고 성공적이지 않으면 처리하지 않음. Consistency = 트랜잭션이 분산 데이터를 일관된 상태에서 다른 일관된 상태로 전환해 주는지의 여부를 말함 Isolation = 트랜잭셩이 한꺼번에 동시에 운영되는 다른 트랜잭션과는 무관하게 실행 될..