본문 바로가기

인프라,데이터

(49)
데이터 중심 애플리케이션 설계 2장 정리 관계형 데이터베이스 1960-1970년대에 비즈니스 데이터 처리를 하기 위한 것이 근원 트랜잭션 처리(영업, 은행 거래, 항공 예약, 창고 재고 보관) + 일괄 처리(고객 송장 작성, 급여 지불, 보고) 오늘날 웹에서 볼 수 있는 대부분의 서비스(온라인 게시물, 토론, 소셜 네트워크, 전자 상거래, 게임, SaaS)는 여전히 관계형 데이터베이스를 통해 제공 NoSQL Not Only SQL 대규모 데이터셋이나 매우 높은 쓰기 처리량 달성을 관계형 데이터베이스보다 쉽게 할 수 있는 뛰어난 확장성이 필요해짐 상용 데이터베이스 제품보다 무료 오픈소스 소프트웨어에 대한 선호도 확산 관계형 스키마의 제한에 대한 불만과 더욱 동적이고 표현력이 풍부한 데이터 모델에 대한 바람 문서 데이터베이스 그래프 데이터베이스 J..
ELK란? + ELK 8.2.0 버전에 추가된 사항 ELK(Elastic) Stack Elasticsearch 분산 검색 엔진 (검색 엔진 + NoSQL 데이터베이스) 모든 레코드를 JSON 도큐멘트 형태로 입력, 관리 텍스트, 숫자, 날짜, IP 주소, 지리 정보 등 다양한 데이터 타입에 대해 최적화되어 있음 인덱싱 시점에 분석을 거쳐 용어 단위로 분해해 역인덱스 사전 구축 숫자, 키워드 타입의 데이터들은 집계에 최적화된 컬럼 기반 자료구조로 저장됨 → 병렬이나 분산 처리 가능 검색어에 따른 유사도 스코어를 기반으로 데이터 정렬 → 복잡한 문자열 콘텐츠를 검색할 때 큰 효과 통신을 REST API를 이용하도록 만들어 사용자가 쉽게 접근할 수 있음 AWS, GCP, 애져 모두 엘라스틱서치 서비스를 제공하고 있음 단점 저장공간이 크게 압축되지 않고 시스템 ..
데이터 중심 애플리케이션 설계 1장 정리 어떻게 많은 데이터를 잘 보관할 것인가? 보관된 데이터는 어떻게 효율적으로 사용할 수 있는가? 성숙한 오픈소스와 훌륭한 개발자들이 작성한 코드가 모든 작업 부하에 잘 작동한다는 보장이 없기 때문에 시스템 설계와 솔루션 선택은 사람의 직관에 의존할 수밖에 없다. - 역자 서문 데이터 중심적 데이터 양, 데이터 복잡성, 데이터가 변하는 속도 등 데이터가 주요 과제인 애플리케이션 오늘날 많은 애플리케이션은 데이터 중심적이다. 계산 중심적(compute-intensive) CPU 사이클이 병목인 경우 샤딩 "조각내다." 라는 뜻의 데이터베이스 저장 기법. 네트워크를 분할하고, 트랜젝션을 영역별로 저장하고, 병렬 처리한다. ACID : 데이터베이스 트랜잭션이 안전하게 수행된다는 것을 보장하기 위한 성질을 가리키는..
Failed to create bus connection: No such file or directory 오류 해결 환경 Mac OS docker for mac 4.3.2 version Centos:7 이미지로 systemctl을 실행해야 되는 상황 보통은 centos7/systemd 이미지를 사용하거나, docker run --privileged --name httpd -v /sys/fs/cgroup:/sys/fs/cgroup:ro -p 80:80 -d httpd /sbin/init 와 같이 docker run 시 --privileged 옵션을 주고 /sbin/init 을 뒤에 붙이고, docker exec -ti httpd /bin/bash 와 같이 도커 컨테이너를 실행하면 systemctl이 실행이 되는데... 아무리 해도 Failed to create bus connection: No such file or d..
argocd 로그 모니터링 argocd 에서 애플리케이션 배포시 생기는 로그를 수집했어야 했는데, 파싱이나 설정 부분에서 좀 헤맸던 면이 있어 기록으로 남긴다..! Fluent Bit conf [INPUT] Name tail Tag syslog.* Path /var/log/containers/*.log storage.type filesystem Parser docker DB /var/log/sys_kube.db Refresh_Interval 10 Path_Key path /var/log/containers/~ 하위에 쌓이는 모든 로그를 syslog란 태그로 수집한다. [FILTER] Name rewrite_tag Match syslog.* Rule $kubernetes['namespace_name'] ^(argocd)$ argoc..
데이터 파이프라인 핵심 가이드 8-10 8. 파이프라인의 데이터 검증 아무리 잘 설계된 파이프라인이라도 반드시 문제가 발생하기 마련이다. 데이터 자체의 품질과 유효성을 보장하기 위해서는 데이터 검증에 투자해야 한다. 테스트되지 않은 데이터는 분석에 사용하기에 안전하지 않다고 가정하는 것이 좋다. 데이터 엔지니어라고 파이프라인에 흐르는 데이터의 내용은 무시하고, 분석가만 신뢰하면 안 된다. 파이프라인의 각 단계에서 데이터를 검증하면 현재 단계에서 문제의 근본 원인을 찾을 수 있다. 데이터 수집 중에 잘못된 데이터가 데이터 웨어하우스로 유입될 가능성이 높다. 잘못된 데이터는 소스 시스템의 작동 자체에는 영향을 미치지 않을 수 있다. 레코드의 연결이 끊어져도 소스 시스템이 정상적으로 작동할 수 있다. 데이터 수집 프로세스 자체가 데이터 품질 문제를..
데이터 파이프라인 핵심 가이드 7 DAG(Directed Acyclic Graph) 연결 방향이 존재하고 순회하지 않는 그래프. 한 작업이 완료된 이후에 다음 작업이 실행되며, 이전 작업으로 돌아가지 않는다. Airflow 상호 종속성이 있는 여러 작업을 포함하는 워크플로(특히 데이터 파이프라인)을 모니터링 파이썬으로 빌드되었지만 모든 언어 / 플랫폼에서 실행되는 작업을 실행 가능 데이터베이스를 사용하여 DAG의 실행 기록, 에어플로우 구성과 관련된 메타데이터를 저장 기본적으로 SQLite를 사용하지만, 상용에서는 MySQL 또는 Postgres DB를 사용하는 것이 좋음 sqlalchemy를 사용하여 DB에 손쉽게 연결 가능 SQL을 사용해 데이터 쿼리 가능 -> 파이프라인 성능을 분석하는 데 좋음 DAG는 파이썬 스크립트로 정의하며,..
Fluent Bit에 SQS Output 연결하기(feat. Golang) Fluent Bit에는 공식 SQS Output 플러그인이 없다. https://github.com/PayU/fluentBit-sqs-plugin GitHub - PayU/fluentBit-sqs-plugin: FluntBit custom output plugin which allows sending messages to AWS-SQS. FluntBit custom output plugin which allows sending messages to AWS-SQS. - GitHub - PayU/fluentBit-sqs-plugin: FluntBit custom output plugin which allows sending messages to AWS-SQS. github.com 하여 위의 플러그인을 이용한..