Develop/Data Engineering 5

Apache NiFi 고급 활용 가이드: 증분 수집부터 다중 전송까지

Apache NiFi는 시각적 데이터 흐름 자동화 도구로서, 단순한 수집과 전송을 넘어 다양한 고급 기능을 통해 유연하고 확장 가능한 데이터 파이프라인을 구성할 수 있다. 본 문서에서는 실무 현장에서 자주 활용되는 네 가지 고급 기능을 중심으로, 구체적인 Processor 구성과 설정 방법을 정리하였다.증분 수집 (Incremental Ingestion)데이터 전처리 (Data Transformation)다중 전송 대상 구성 (Multi-Sink Routing)정기 실행 (Scheduled Execution)1. 증분 수집 (Incremental Ingestion)1.1 기능 설명증분 수집이란, 이미 수집된 데이터를 제외하고 새롭게 생성되거나 갱신된 데이터만을 추출하는 방식이다.이는 중복 수집을 방지하고..

Apache NiFi로 DB to DB 데이터 연동 자동화하기

이번에 회사에서 디지털 전환(DX)을 추진 중인 외부 업체의 DataMart 구축 프로젝트를 수주하였으며, 필자도 원래 하던 프로젝트가 마무리 됨과 동시에 해당 프로젝트에 투입되었다.해당 프로젝트에서는 초 단위로 실시간 적재되는 데이터를 소스 DB(PostgreSQL)로부터 수집하여 타겟 DB(PostgreSQL)의 데이터마트로 자동 이전하는 요구사항이 있었고, 이를 효과적으로 수행하기 위한 도구로 Apache NiFi가 선정되었다.본 문서에서는 Apache NiFi를 이용하여 소스 DB로부터 데이터를 수집하고, 타겟 DB로 전송하는 데이터 흐름을 자동화하는 절차를 단계별로 기술한다.1. Apache NiFi 개요Apache NiFi는 데이터의 수집, 처리, 라우팅, 전달 등의 작업을 GUI 기반의 시각..

웹 크롤링에 대해 알아보자

파이썬으로 가장 먼저 도전해 보기 쉬운 프로젝트이자 한 번쯤은 해보고 싶었던 웹 크롤러를 만드는 프로젝트를 진행하기에 앞서 도대체 웹 크롤링이 뭐고 어떻게 작동하는지 왜 사용하는지 어떤 점을 고려해야 하는지 알아보고자 한다. 웹 크롤링이 뭐야?웹 크롤링(Web Crawling)은 자동화된 프로그램을 이용하여 월드 와이드 웹의 웹 페이지를 체계적으로 탐색하고 정보를 수집하는 과정을 의미한다.Crawling의 Crawl은 기어다니는 것을 의미하는데 크롤링 프로그램 즉 크롤러를 스파이더라고도 하는 것을 보면 거미가 거미줄을 기어 다니며 먹이를 수집하듯 웹을 크롤러가 기어 다니며 정보를 모으는 것에 빗대 Crawling이라고 표현하게 된 것 같다.크롤링의 주요 목적1. 웹 페이지의 콘텐츠 수집2. 웹 사이트의 ..

HDFS 개요

1. HDFS(Hadoop Distributed FileSystem)HDFS는 Hadoop Distributed FileSystem이 의미하는 것처럼 하둡 네트워크에 연결된 기기에 데이터를 저장하는 분산형 파일시스템으로 실시간 처리보다는 배치처리를 목적으로 설계되어 작업량이 적거나 빠른 데이터 응답이 필요한 작업에서는 적합하지 않음2. HDFS의 구조1) Block based file system(1) Block based file system?HDFS는 블록 구조의 파일 시스템이다. HDFS에 저장되는 모든 파일은 일정 크기의 블록으로 나눠져 여러 서버에 분산 저장된다.블록 크기는 기본 128MB로 되어있고, 설정으로 변경이 가능하다. 블록 단위로 분산해서 저장하기 때문에 로컬디스크보다 큰 규모로 데이..

Hadoop 개요

하둡(Hadoop)이란?하나의 성능 좋은 컴퓨터를 이용하여 데이터를 처리하는 대신 낮은 성능의 컴퓨터 여러 대를 클러스터화 해 큰 크기의 데이터를 클러스터에서 병렬로 동시에 처리하여 처리속도를 높이는 것을 목적으로 한 분산처리 오픈소스 프레임워크Hadoop의 필요성온라인 서비스와 온라인 데이터 처리 기술이 발전하면서 데이터의 양과 종류가 다양해졌다.정형 데이터의 경우 기존에 있던 RDBMS에 저장하면 되지만 웹 로그 등의 비정형 데이터를 RDBMS에 저장하기에는 데이터의 크기도 너무 크고 RDBMS의 복잡하고 상세한 기능이 필요하지도 않았다.또한 RDBMS는 대용량, 고스펙의 장비에 운영하는데, 자주 사용하지 않는 데이터를 무작정 RDBMS를 늘려서 보관하는 것은 비용적인 면에서도 너무 낭비가 심하다. ..