[PostgreSQL/TimescaleDB] 데이터 적재 시 발생하는 statement_timeout 및 row is too big 오류 해결 방법
·
개발 (Development)/PostgreSQL
최근 TimescaleDB에 실시간 센서 데이터를 적재하는 과정에서 몇 가지 오류를 경험하였습니다. 로그를 분석하고 해결 방법을 찾아가는 과정을 정리해봅니다.1. 문제 상황Kafka에서 수집한 수천 개의 센서 데이터를 TimescaleDB에 적재하는 컨테이너 로그에서 다음과 같은 오류가 반복적으로 발생했습니다.1.1 statement_timeout 오류ERROR: canceling statement due to statement timeout이는 PostgreSQL의 statement_timeout 값(쿼리 실행 최대 시간)을 초과하면 발생하는 에러입니다. 대량 데이터를 한 번에 Insert하거나, 인덱스 부재, 네트워크 지연, 병렬 쓰기 병목 등으로 실행 시간이 길어질 경우 나타납니다.1.2 row i..
[Kafka/Docker] Kafka 컨테이너에서 특정 Key의 메시지 500개 추출 및 저장하는 방법
·
개발 (Development)/Kafka
Kafka를 사용할 때 특정 key를 가진 메시지만 추출해 확인하거나 저장해야 하는 상황이 종종 발생합니다. 특히 Docker 컨테이너 환경에서 Kafka가 실행 중일 경우, 터미널 명령어만으로 이 작업을 효율적으로 처리할 수 있습니다. 이 글에서는 Kafka 컨테이너에 접속해 특정 key를 가진 메시지를 최대 500개까지 추출하고 파일로 저장하는 과정을 정리합니다.1. Kafka 컨테이너 접속Kafka가 Docker 컨테이너로 실행 중이라면 다음 명령어로 컨테이너에 접속합니다.docker exec -it kafka-container-name bashkafka-container-name은 실제 사용 중인 Kafka 컨테이너 이름으로 바꿔야 합니다.2. kafka-console-consumer로 메시지 추..
[General] 시스템 운영자 매뉴얼, 이렇게 작성해보세요
·
개발 (Development)/General
회사에서 시스템 운영자 매뉴얼을 작성해야 하는 경우가 종종 있습니다. 특히 인프라나 서비스가 On-Premise와 Cloud 환경에 걸쳐 있을 경우, 운영에 필요한 정보가 여기저기 흩어지기 쉽기 때문에 한눈에 정리된 매뉴얼이 필수적입니다.이번 글에서는 운영자 매뉴얼을 어떤 구조로 작성하면 좋을지, 그리고 어떤 내용을 담아야 실무에 도움이 되는지 예시를 통해 소개해보겠습니다.운영자 매뉴얼 기본 구성운영자 매뉴얼은 아래와 같은 항목으로 구성하는 것이 좋습니다.개요 – 시스템의 목적, 구성도, 기술 스택 요약On-Premise 운영 – Portainer, TimescaleDB, Kafka 등 로컬 구성요소AWS 운영 – k3s, ArgoCD, 로그 확인 등 클라우드 관련 내용공통 운영 – 백업, 복구, 권한 ..
[Kafka] Producing messages inside a docker container(bitnami/kafka)
·
개발 (Development)/Kafka
Bitnami Kafka 컨테이너에서 메시지를 프로듀스하는 방법Kafka를 학습하거나 테스트할 때, Bitnami Kafka 컨테이너에 직접 접속하여 메시지를 프로듀스(produce)하는 방법은 매우 유용합니다. 아래는 이를 수행하는 단계별 가이드입니다.1. Kafka 컨테이너에 접속Bitnami Kafka 컨테이너에 접속하려면 다음 명령어를 사용합니다:docker exec -it /bin/bash컨테이너 이름을 모를 경우, 다음 명령어로 실행 중인 Kafka 컨테이너를 확인하세요:docker ps예시:docker exec -it kafka-container /bin/bash2. Kafka CLI 도구 사용Kafka 컨테이너 내부에는 CLI 도구가 포함되어 있습니다. 이를 활용하여 메시지를 프로듀스할 ..
[Kafka] Linux 운영체제에서 Kafka 특정 Topic 메시지 확인
·
개발 (Development)/Kafka
카프카 토픽의 메시지를 확인하려면 kafka-console-consumer 명령어를 사용할 수 있습니다. 이 명령어를 사용하여 특정 토픽의 메시지를 구독하고 표시할 수 있습니다. 다음은 kafka-console-consumer를 사용하여 test 토픽의 메시지를 확인하는 명령어입니다.kafka-console-consumer.sh --bootstrap-server --topic test 여기서 는 카프카 클러스터의 부트스트랩 서버 목록입니다. 위 명령어를 실행하면 해당 토픽에서 생성된 메시지를 실시간으로 표시할 수 있습니다. 만약 모든 메시지를 한 번에 표시하고 싶다면 --from-beginning 옵션을 추가할 수 있습니다.kafka-console-consumer.sh --bootstrap-server..