Develop

Develop/ComputerScience

[DB] OLTP와 OLAP

더보기 데이터 엔지니어로써 OLAP와 OLTP의 차이를 이해하고 이를 실무에서 효과적으로 활용할 수 있는 능력은 굉장히 중요하다고 생각한다. 따라서 글로 정리하며 OLAP와 OLTP의 차이를 깊이있게 파악하고 실제 업무에 적용하면 효율적인 데이터 관리 및 분석을 할 수 있을 거 같다. 데이터 처리 방식 기업은 데이터를 효과적으로 의사 결정에 활용하기 위해 여러 노력을 한다. 이를 위해 많은 조직이 OLTP(Online Transaction Processing)와 OLAP(Online Analytical Processing)라는 두 가지 중요한 데이터 처리 방식을 적절히 도입한다. 이번 글에서는 OLTP와 OLAP의 공통점을 살펴보고 각각의 특징과 차이점에 대해 알아보자. 공통점 먼저, 공통점부터 살펴보면..

Develop/TroubleShooting

error: Missing data for not-null field code: 1213 해결

Situation Tableau에서 Amazon Redshift를 연결한 후 쿼리를 실행하려고 할때 아래와 같은 오류가 났다. Error: "[Amazon][Redshift ODBC] (30) Error occurred while trying to execute a Query ERROR: Missing data for not-null field DETAIL"(오류: "[Amazon][Redshift ODBC] (30) 쿼리 실행 시 오류 발생 ERROR: null이 아닌 필드 DETAIL에 대한 데이터가 없음") 및 "[Amazon][Redshift ODBC] (30) Error occurred while trying to execute a query ERROR: Error converting text ..

Develop/DevCourseTIL

07.25 데이터 엔지니어링 77일차 - Spark AQE

Spark.sql.shuffle.partitions 이 변수 하나로 다양한 상황의 shuffling을 해결하기는 쉽지 않음 MapReduce 세상에서 mapreduce.job.reduces와 동일 적은 수의 Partition은 병렬성을 낮추고 OOM과 disk spill의 가능성을 높임 -> processing 시간이 오래 걸림 많은 수의 Partition은 task scheduler와 task 생성과 관련된 오버헤드가 생기며 너무 흔한 네트워크 I/O 요청으로 병목 초래 만약 Spark Engine Optimizer가 알아서 Partition의 수를 결정할 수 있다면? -> AQE의 목적 AQE "Dynamic query optimization that happens in the middle of qu..

Develop/DevCourseTIL

06.21 데이터 엔지니어링 일차 53일차 - Dag Dependencies

Dag를 실행하는 방법 주기적 실행: schedule로 지정 다른 Dag에 의해 트리거 Explicit Trigger: Dag A가 분명하게 Dag B를 트리거 (TriggerDagOperator) Reactive Trigger: Dag B가 Dag A가 끝나기를 대기(ExtrnalTaskSensor) 알아두면 좋은 상황에 따라 다른 태스크 실행 방식들 조건에 따라 다른 태스크로 분기 (BranchPythonOperator) 과거 데이터 Backfill시에는 불필요한 태스크 처리 (LatestOnlyOperator) 앞단 태스크들의 실행상황 어떤 경우에는 앞단이 실패해도 동작해야 하는 경우가 있을 수 있음 Explicit trigger vs Reactive trigger Explicit trigger T..

Develop/DevCourseTIL

07.13 데이터 엔지니어링 69일차 - KafkaConsumer

KafkaConsumer 파라미터 Topic 이름을 KafkaConsumer의 첫번째 인자로 지정 혹은 나중에 별도로 subscribe를 호출해서 지정 파라미터 의미 기본 값 설명 bootstrap_servers 메세지를 보낼 때 사용할 브로커 리스트 (host:port) localhost:9092 client_id Kafka Consumer 이름 'kafka-python-{version}' 지정 안 하면, 알아서 지정됨 group_id Kafka Consumer Group 이름 consumer 수 상관없이 꼭 설정해줘야 함 key_deserializer, value_deserializer 메세지의 키와 값의 deserialize 방법 지정 (함수) serialize 했더 것을 다시 deserialize..

Develop/DevCourseTIL

07.12 데이터 엔지니어링 68일차 - Kafka

Kafka란? 실시간 데이터를 처리하기 위해 설계된 오픈소스 분산 스트리밍 플랫폼 데이터 재생이 가능한 분산 커밋 로그 (Distributed Commit Log) 한번 기록되면 영구적임 Scalability와 Fault Tolerance를 제공하는 Publish-Subscription 메시징 시스템 Producer-Consumer (Publish-Subscription) High Throughput과 Low Latency 실시간 데이터 처리에 맞게 구현됨 분산 아키텍처를 따르기 때문에 Scale out 이란 형태로 스케일 가능 서버 추가를 통해 Scalability 작성 (서버=Broker) 정해진 보유기한 (default=일주일) 동안만 메시지를 저장 Eventual Consistency 100대 서..

향식이
'Develop' 카테고리의 글 목록 (4 Page)