데이터 엔지니어의 역할과 필요 역량
주요 역할
- 분석에 적합한 데이터를 데이터 소비자에게 제공하는 것을 책임짐
- 데이터는 정확하고 신뢰할 수 있으며, 규정을 준수하고, 필요 시 접근 가능해야 함
주요 작업
- 다양한 소스로부터 데이터 추출, 조직 및 통합
- 데이터를 변환하고 정제하여 분석 및 보고를 준비
- 데이터 소스부터 목적 시스템까지 데이터를 이동시키는 데이터 파이프라인 설계 및 관리
- 데이터 수집, 처리 및 저장을 위한 인프라 설정 및 관리
기술적 역량
- 운영 체제(UNIX, Linux, Windows) 및 관련 관리 도구와 명령어에 대한 지식
- 가상 머신, 네트워킹(LAN, VAN), 로드 밸런싱, 애플리케이션 성능 모니터링 등의 인프라 구성 요소에 대한 지식
- Amazon, Google, IBM, Microsoft와 같은 클라우드 서비스의 이해
- 데이터베이스 및 데이터 웨어하우스 작업 경험
- RDBMS : IBM DB2, MySQL, Oracle Database, PostgreSQL
- NoSQL : Redis, MongoDB, Cassandra, Neo4J
- 데이터 웨어하우스 : Oracle Exadata, IBM Db2 Warehouse on Cloud, Amazon RedShift
- 데이터 파이프라인 솔루션: Apache Beam, AirFlow, DataFlow
- ETL 도구 : IBM Infosphere Information Server, AWS Glue, Improvado
- 데이터 쿼리 및 처리 언어:
- 쿼리 언어 : SQL, NoSQL 쿼리 언어
- 프로그래밍 언어 : Python, R, Java
- 셸 및 스크립트 언어 : Unix/Linux Shell, PowerShell
- 빅데이터 처리 도구 : Hadoop, Hive, Spark
- 자동화 기술 역량
기능적 역량
- 비즈니스 요구 사항을 기술 사양으로 변환하는 능력
- 소프트웨어 개발 라이프사이클(아이디어 생성, 아키텍처, 설계, 프로토타이핑, 테스트, 배포, 모니터링) 전반에 대한 이해
- 데이터의 비즈니스 적용 가능성에 대한 이해
- 데이터 품질, 프라이버시, 보안, 규정 준수 등 데이터 관리의 리스크 이해
이 모든 기술을 마스터할 필요는 없지만, 여러 분야에서 전문성을 갖추고 전반적인 이해를 바탕으로 의사결정을 내려야 한다.
또한 경험과 지속적인 학습을 통해 역량을 키워나가야 한다.
데이터 엔지니어링 사례 연구
Personality
- 다국적 헤어 케어 제품 회사에서의 데이터 엔지니어링
Circumstances
- 현재 새로운 샴푸를 출시 준비 중이며, SNS에서의 제품 언급이 판매와 브랜드 인식에 미치는 영향을 고려해 고객의 감정을 즉시 파악하려고 함
Business Requirments
- 비즈니스 팀은 제품 출시 첫날부터 소셜 미디어 및 온라인 커뮤니티의 고객 감정을 모니터링하려고 함
- 이를 위해 데이터 과학자 팀이 감정 분석 알고리즘을 사용하여 대시보드 프로토타입을 만들었음
- 데이터 엔지니어의 역할 : 이 프로토타입을 현실화하는 작업
Main Tast
- 데이터 수집
- SNS와 온라인 소스에서 데이터를 수집하기 위해 API 사용하기
- 트위터, 기타 게시물, 댓글, 기사, 밈 등 다양한 형식의 데이터를 임시 저장소로 가져오기
- 데이터 스크래핑
- 전자상거래 포털과 제품 리뷰 블로그에서 데이터를 수집하여 임시 저장소에 저장하기
- 데이터 변환 및 로딩
- 수집된 데이터를 검사하여 데이터베이스에 로드하기 전 필요한 변환 작업을 평가하기
- 파이썬으로 데이터를 정제하고 데이터베이스에 저장 가능한 형식으로 변환하기
- 데이터 파이프라인 구축
- 데이터를 실시간으로 추출, 변환, 로드하는 데이터 파이프라인 구축 계획
- 실시간으로 대시보드에서 고객 감정과 브랜드 인식을 확인할 수 있도록 함