최신 글
-
Kafka 카프카를 활용한레이싱카 센서 실시간 수집 데이터 파이프라인 구축 오늘은 카레이싱에서 자동차에서 출력되는 여러 지표들을 수집하는 데이터 파이프라인을 만들어 보겠습니다. F1, WRC를 비롯한 다양한 카레이싱 팀에서는 데이터의 수집과 활용이 우승으로 가는 지름길인 것은 이미 널리 알려져 있습니다. 2021 F1 의 월드 컨스트럭터 챔피언인 메르세데스-AMG 페트로나스 포뮬러 원팀은 데이터를 잘 활용하는 팀 중 하나입니다. 페트로나스 포뮬러팀에서 수집하는 F1 자동차의 센서는 5만개에..
-
빅데이터 아파치 피노(apache pinot) 소개 https://engineering.linkedin.com/analytics/real-time-analytics-massive-scale-pinot Real-time Analytics at Massive Scale with Pinot Two years ago we hit a wall. The scale of LinkedIn’s data was growing beyond what we could analyze. At the same time, our members needed their analytics and insights in real-time. We needed a solid solution that would grow with LinkedIn and serve as the engineering...
-
Kafka Kafka Producer JMX exporter 사용하기 이 글은 오픈소스 아파치 카프카 공식 자바 라이브러리를 사용하여 개발할 때 JMX exporter를 사용하여 producer의 지표를 수집하기 위한 글입니다. 1) KafkaProducer 애플리케이션 개발 build.gradle 코드 plugins { id 'java' } group 'com.example' version '1.0' repositories { mavenCentral() } dependencies { compile 'org.apache.kafka:kafka-clients:2.5.0' compile 'org.slf4j:slf4j-simple:1.7.30' } task uberJar(t..
-
Kafka 대규모 데이터의 카프카 프로듀서 성능 향상 방법 카프카 프로듀서는 acks, linger.ms, batch.size 조절을 통해 성능 향상을 달성 할 수 있습니다. 각 옵션별로 한계점과 성능 향상 방법을 알아보겠습니다. 여기서는 대규모 데이터가 들어오는 것을 가정하였습니다. 가정사항 - Record의 메시지 크기 10Kbytes - 레코드 유입량 : 1000tps acks acks는 카프카 프로듀서로 전송한 레코드가 정상적으로 리더 또는 팔로워 파티션에 적재되었는지 확인하는 역할을 합니다. 0으로 설정..
-
Kafka [번역]카프카 스트림즈 운영하기(상태 복구) 원글 : https://docs.confluent.io/platform/current/streams/developer-guide/running-app.html Running Streams Applications | Confluent Documentation Home Build Applications for Kafka Streams Developer Guide Running Streams Applications You can run Java applications that use the Kafka Streams library without any additional configuration or requirements. Kafka Streams also provides the ability to re..
-
Kafka 카프카 커넥트의 태스크 밸런싱 로직, DistributedHerder(양치기) 그리고 IncrementalCooperativeAssignor 내부 동작 소개 Herder; 명사 1. 양치기, 목부 카프카 커넥트는 워커, 커넥터, 태스크로 이루어져 있습니다. 워커는 카프카 커넥트 프로세스를 뜻하며 커넥터와 태스크를 실행시키기 위한 프로세스입니다. 커넥터는 태스크를 실행하는 관리도구로서 여러 태스크를 하나의 파이프라인으로 라이프 사이클을 관리합니다. 태스크는 데이터를 실질적으로 처리하는 부분이라고 볼 수 있습니다. 커넥터에는 1개 이상의 태스크가 포함되며 각 태스크..
-
빅데이터 MLOps란 무엇인가? 영상 해설 https://www.youtube.com/watch?v=xZKtofBe18I MLOps란 무엇인가 2021년 AI업계에서 많이 나온 단어, 머신러닝을 실제로 다룰때 서비스에 적용하는 과정에서 필요한 분야. 초창기라 공식적이 정의 없음. 다만, 머신러닝 -> 서비스 전달 과정에 필요한 operation 데이터 브릭스에 따르면 - ModelOps : 모델 개발에 필요한 운영 - DataOps : 데이터 관련 운영 - DevOps : 소프트웨어 관련 운영 머신러닝 모델을 서비스에 올리려는..
-
cassandra 카산드라 특정 테이블에 TTL 데이터를 넣을 때 적합한 컴팩션 전략은? 질문 카산드라에서 특정 테이블에 일부 데이터는 TTL 2일로 설정되어 있고, 일부 데이터는 60일 TTL로 되어 있다면 가장 적합한 컴팩션 전략은 무엇인가요? 1. LeveledCompactionStrategy (LCS) 2. SizeTieredCompactionStrategy (STCS) 3. TimeWindowCompactionStrategy (TWCS) 답변 가장 적합한 전략은 TimeWindowCompactionStrategy입니다. 만에하나 동일 테이블에 여러 종류의 ttl 시간이 설정되어 있다고 하더라도 T..
-
cassandra 카산드라 TimeWindowCompactionStrategy 설명 TimeWindowCompactionStrategy TimeWindowCompactionStrategy(TWCS)는 데이터가 디스크에서 timestamp 단위로 묶일 때 유용합니다. 주로 TTL로 쓰여진 데이터를 다룰 경우 사용됩니다. 데이터가 만료되거나 TTL이 도달한 SSTable의 데이터는 대략적으로 비슷한 시간대에 삭제됩니다. 이 전략을 사용하면 이런 데이터를 완전히 삭제시킵니다. SizeTieredCompactionStrategy(STCS) 또는 LeveledCompactionStrategy(LSC)를 사용할..
-
cassandra 카산드라와 TTL, 툼스톤 그리고 관련 동작(컴팩션) 카산드라에서는 데이터의 TTL 또는 삭제에 의해 데이터가 바로 삭제되는 것이 아니라 툼스톤을 사용하여 데이터를 삭제합니다. 카산드라와 같은 분산 데이터베이스에서 데이터를 바로 삭제하는 것은 매우 어려운 일입니다. 그렇기 때문에 데이터를 삭제하기 전에 툼스톤이라고 불리는 플래그를 사용하여 해당 데이터가 삭제 대기로 옮긴 이후 추후에 데이터를 삭제시킵니다. 관련 동작을 알기 위해서는 우선 컴팩션이 무엇인지..
인기글
-
빅데이터 프로메테우스 지표 rate와 increase의 차이점 프로메테우스로 다음과 같은 지표들을 쌓을 때가 있습니다. http_request_count_total{method="POST",router="/"} 10 http_request_count_total{method="POST",router="/"} 15 http_request_count_total{method="POST",router="/"} 20 http_request_count_total{method="POST",router="/"} 40 http_request_count_total{method="POST",router="/"} 45 http_request_count_total{method="POST",router="/"} 60 상기와 같은 지표는..
-
빅데이터 아파치 드루이드 소개 및 아키텍처 Apache Druid is a high performance real-time analytics database. 아파치 드루이드 소개 아파치 드루이드는 기존의 데이터 처리 및 쿼리에 대한 관념을 180도 바꿔주는 OLAP 데이터베이스 입니다. OLAP란 Online Analytical Processing의 약자로써 사용자가 적재한 데이터를 다양한 방식(다차원)으로 적재하고 분석하도록 도와주는 시스템을 뜻합니다. 다차원 정보라는 것은 기존에 1차원 정보(row단위)를 몇개의 필..
-
Kafka 카프카 스트림즈 Exactly-once 설정하는 방법과 내부 동작 카프카 스트림즈는 기본적으로 at-least-once 프로세싱을 지원합니다. at-least-once 프로세싱이란 적어도 한번 프로세싱을 지원하는 것으로써 중복은 발생할 수 있고 유실은 절대 발생하지 않는 것입니다. 스트림즈 프로세싱에서라면 특정 레코드에 대해 처리를 하고 유실은 될 수 없고 중복 프로듀스는 될 수 있다는 것입니다. - at least once : 적어도 한번 처리 - at most once : 많아도 한번만 처리 - exactly once : 딱..
-
Kafka 카프카 스트림즈에서 SlidingWindow에 대한 고찰 카프카 스트림즈는 상태기반/비상태기반 데이터 처리에 효과적인 라이브러리입니다. 특히 상태 기반 처리에 큰 도움이 되는데 여러 상태 기반 처리 중 SlidingWindow에 대해 살펴보고자 합니다. SlidingWindow는 window종류 중 하나로서 일정 시간동안의 데이터들의 집합에 대해 연산을 하는 것을 뜻합니다. 마치 베란다의 슬라이딩 윈도우가 옆으로 지나가는 듯한 모습과 비슷합니다. 카프카 스트림즈에서는 aggregation연산..
-
빅데이터 prometheus 자바 클라이언트로 지표 수집하기 프로메테우스는 지표를 모니터링하기에 적합합니다. 지표를 모니터링하면 애플리케이션 동작에 대한 상태변화를 즉각적으로 알고 대처할 수 있습니다. 자바애플리케이션에서 프로메테우스로 지표를 보내는 방법은 크게 3가지 방법이 있습니다. - JMX 익스포터 - PUSH 게이트웨이 - 자바 클라이언트 여기서는 자바 클라이언트를 사용하는 방법을 설명합니다. https://github.com/prometheus/client_java prometheus/client_java P..
-
빅데이터 프로메테우스 promQL에서 without 또는 by 사용시 주의사항 프로메테우스 promQL을 사용할 경우 Aggregation Operators와 함께 사용하는 경우가 빈번하다. - sum (calculate sum over dimensions) - min (select minimum over dimensions) - max (select maximum over dimensions) - avg (calculate the average over dimensions) - stddev (calculate population standard deviation over dimensions) - stdvar (calculate population standard varianc..
-
Kafka 카프카 스트림즈로 schedule operation 수행하기(번역) 원문 : https://kafka-tutorials.confluent.io/kafka-streams-schedule-operations/kstreams.html 카프카 스트림즈는 토픽의 데이터를 읽어 상태기반, 비상태기반 처리를 하는 스트리밍 라이브러리입니다. 오늘은 컨플루언트에서 카프카 스트림즈가 스케쥴링 동작을 어떻게 수행하는지에 대한 코드 예시를 번역하였습니다. 1. 프로젝트 초기화 신규 디렉토리를 생성합니다. $ mkdir kafka-streams-schedule-operations && cd kaf..
-
빅데이터 [번역]NVIDIA에서 정의하는 MLOps 원문 : https://blogs.nvidia.com/blog/2020/09/03/what-is-mlops/ What is MLOps? Machine learning operations are best practices for businesses to run AI successfully. blogs.nvidia.com MLOps란 무엇인가? MLOps(Machine learning operations)는 AI를 통해 비즈니스 발전을 도와주는 소프트웨어 제품들과 클라우드 서비스입니다. MLOps는 익숙하지 않지 않은 단어이지만, 기업의 AI를 성공시키기 위한 두 단어로 이루어..
-
소프트웨어공학 [번역]마틴파울러의 테스트 피라미드 원문 : https://martinfowler.com/bliki/TestPyramid.html bliki: TestPyramid Write most of your tests at a low level (unit tests) with a few broad-stack tests, eg via UI. UI tests tend to be fragile and slow. martinfowler.com 테스트 피라미드는 자동화된 테스트를 어떻게 효율적으로 만들지 고민하기 위해 만들어진 형태입니다. 여기서 중요한 점은 고수준 테스트를 만들기 보다는 최대한 저수준의 유닛테스트를..
-
Kafka 카프카 스트림즈에서 stateful window 처리를 다루는 방법 그리고 커밋타이밍 카프카 스트림즈는 비상태기반(stateless), 상태기반(stateful) 처리를 지원하는 다양한 메서드를 제공합니다. 스트림즈DSL을 통해 구현할 수도 있고 또는 프로세서API를 사용해서 직접 구현하는 방식도 있습니다. 이 포스팅에서는 스트림즈DSL을 활용하여 상태기반 데이터 처리할 때 어떻게 input, output이 동작하는지 설명합니다. 카프카 스트림즈의 스트림즈DSL에서 window function은 4가지가 있습니다. - 텀블링 윈도우 -..
728x90