본문 바로가기

인프라,데이터

(49)
데이터 파이프라인 핵심 가이드 6 6. 데이터 변환하기 파이프라인의 목적 : 비즈니스 통찰력 또는 분석을 생성하는 것. -> 데이터가 데이터 모델로 추가 변환됨 데이터 모델 데이터 분석을 위해 이해되고 최적화된 형식으로 데이터를 정형화화고 정의 데이터 웨어하우스에서 하나 이상의 테이블로 표시됨 테이블에서 중복 레코드 제거 증분 데이터 수집에서 실수로 이전 수집 시간 창과 겹치거나, 이전 실행에서 이미 수집된 일부 레코드를 선택한 경우 원본 시스템에서 중복 레코드가 실수로 생성된 경우 나중에 채워진(backfilled) 데이터가 테이블에 로드된 후속 데이터와 겹치는 경우 -> SQL 쿼리로 실행하는 것이 좋음 1. 쿼리 시퀀스 사용 CREATE TABLE distinct_orders AS SELECT DISTINCT OrderId, Ord..
데이터 파이프라인 핵심 가이드 1-3 지속적인 데이터 분석의 성공을 위해서는 분석 방법만큼이나 잘 구성된 데이터 파이프라인 구성이 필수 데이터분석이 잘 이뤄지기 위해서는 분석에 필요한 형태로 잘 정리된 데이터가 필요하고, 원하는 분석 결과를 얻기 위해서는 적합한 기간의 정확한 데이터가 필요 1. 데이터 파이프라인 소개 모든 화려한 대시보드와 머신러닝 모델, 그리고 비즈니스를 변화시키는 통찰력 뒤에는 데이터가 있다. 데이터는 새로운 석유다. 데이터의 진정한 가치는 그것이 정제되어 소비자에게 전달된 후의 잠재력에 있다. 가치사슬의 각 단계를 통해 데이터를 전달하려면 효율적인 파이프라인이 필요하다. 데이터 파이프라인 다양한 소스에서 새로운 가치를 얻을 수 있는 대상으로 데이터를 옮기고 변환하는 일련의 과정이다. 분석, 리포팅, 머신러닝 능력의 기..
스포티파이 시니어 데엔이 말하는 주니어 개발자를 위한 커리어 로드맵 헤이조이스에서 강연을 듣고 정리한 글입니다. 다소 두서없을 수 있습니다. 회사들은 최소 경력을 채우는 걸 선호 그래야 이력서에 쓸 만한 프로젝트가 생긴다. 짬바를 채워야 해외에서 잘 견딜 수 있다. 이직준비 2년 하셨음 백엔드 → 데이터 엔지니어로 커리어 전환을 한 이유 스파크 급부상 - 코세라에서 강의 듣는 데 재밌었음 스칼라 공부도 열심히 함 스파크를 쓰는 사이드 프로젝트를 할 수 있었음 외국 기업들이 우리나라보다 훨씬 잘 하고 있는 영역 → 외국 회사로 가야겠다! 데이터엔지니어가 하는 일 앱에서 굉장히 많은 데이터가 수집됨 상상 초월의 세세한 데이터 취업준비 알고리즘 : 꾸준히 혼자서 하는게 쉽지 않다. 일하고 싶은 언어 → star 많이 받은 프로젝트 → 작성자 어떤 기업 → 오픈 포지션이 많이 ..
Fluent Bit의 버퍼링Buffering (번역) Fluent Bit의 공식 문서에서 버퍼링과 스토리지, 백프레셔에 관해 번역한 글입니다. 백프레셔 Fluent Bit의 목표는 중앙으로 로그를 모으고, 파싱하고, 필터링하고, 적재하는 것입니다. 이 과정에서 처리할 새로운 데이터를 받는데, 데이터를 빠르게 전송하지 못한다면 백프레셔backpressure를 마주하게 됩니다. 특정한 환경에서는 로그나 데이터가 목적지로 보낼 수 있는 여력보다 빠르게 유입됩니다. 흔한 케이스로는 큰 로그 파일을 읽어오고 네트워크를 통해 백엔드로 보내는 것이 있는데, 응답하기까지 시간이 걸리고, 이것은 서비스에서 큰 메모리 소모를 야기하는 백프레셔를 생성하게 됩니다. 버퍼링 Fluent Bit는 버퍼링으로 백프레셔와 일반적인 전송 실패 문제를 풀고자 합니다. 버퍼링은 데이터가 적..
Logstash multiple kinesis input Logstash로 Kinesis Data Streams를 연결하고 나서, 추가적으로 Data Streams 하나를 더 생성해서 연결하려고 하는데 계속 제대로 연결되지 않았다. 🤔 왜일까... 하고 찾아봤는데, Logstash Kinesis input plugin (Kinesis Data Streams만 지원한다. Kinesis Firehose Delivery streams는 지원되지 않으니 주의! 대신 Kinesis Firehose Delivery Streams 의 목적지를 S3으로 하면 Logstash S3 input을 사용해서 S3에서 데이터를 받아오고 바로 지울 수 있다.) 은 Dynamodb를 사용하는데, 이 Dynamodb는 기본적으로 'logstash'라는 이름으로 생성되고, 로그스태시 플러그..
Logstash 6.3.x 버전에서의 GC(Garbage Collector) Logstash로 kinesis input 플러그인을 설치하려는데 Unrecognized VM option 'UseParNewGC' Error: Could not create the Java Virtual Machine. Error: A fatal exception has occurred. Program will exit. 오류가 났다. 찾아보니 jdk 버전 문제인 것 같았다. Remove or comment line: -XX:+UseParNewGC Remove or comment line: -XX:+UseConcMarkSweepGC Add this line instead: -XX:+UseG1GC Apparently the previously used GC in Java 8 and older was de..
Using Lua filter to find if log matches a pattern, and remove last n characters. Original log: [1646213018.112301921, {"log"=>"testtest1-"} Changed log : [1646213018.112301921, {"log"=>"testtest1"} [FILTER] Name lua Match test.* script checkend.lua call check_end If you use lua filter, you can find "If a log/word matches a specific pattern", and do some works. ex) if the condition suits, remove last n characters. I wrote on those codes on fluentbit configmap, so there is tab..
Remove last n characters using Regex & Fluent Bit I took a quite a munutes to find "remove / delete last n characters / words by regex" but there was no explicit answer. However, I found a solution. [FILTER] Name parser Match test.* Key_Name path Parser removelastn Reserve_Data On Preserve_key On [PARSER] Name removelastn Format regex Regex (?.*?).{6}$ link (?.*?) means "log" might not exist, anyway it catch all characters or nothing("") .{6}$ ..