데이터 엔지니어는 데이터 과학자일을 편하게 만든다. 왜냐하면 데이터 과학자는 다음과 같은 일을 하기 때문이다.
한걸음 더 들어가면 데이터 엔지니어 Skill Set을 다음과 같이 표현할 수 있다.
데이터 과학자 | 데이터 엔지니어 |
---|---|
데이터에서 패턴을 찾고 인사이트 도출 | 확장가능한 데이터 아키텍처 구축 |
설명가능한 통계 모형 혹은 기계학습을 통한 예측모형 | 데이터 수집과정을 간소화 |
대쉬보드 등을 통해 비즈니스 프로세스를 모니터링 | 클라우드 기술에 능통 |
상기 작업을 수행하는데 데이터 엔지니어가 사용하는 데이터 공학 도구를 다음과 같이 세가지로 분류할 수 있다.
클라우드 서비스 제공업체는 전세계적으로 3개 업체가 손꼽힌다.
결국 클라우드 서비스 제공업체는 다음 세가지 서비스를 제공한다. 즉, 정형/비정형 데이터를 데이터 호수(Data Lake)에 담을 수 있는 저장소(Storage), 그리로 이를 처리할 수 있는 계산기능(Computation), 마지막으로 이렇게 처리된 데이터를 정형데이터 형태로 잘 저장할 수 있는 데이터베이스(DBMS)가 필요하다.
클라우드 서비스 제공업체 | 핵심 서비스 | 서비스 명칭 |
---|---|---|
아마존 (AWS) | 저장소 | S3 |
마이크로소프트 (Azure) | 저장소 | Blob Storage |
구글 (GCP) | 저장소 | Google Cloud Storage |
아마존 (AWS) | 처리(Computation) | EC2 |
마이크로소프트 (Azure) | 처리(Computation) | Virtual Machine |
구글 (GCP) | 처리(Computation) | Compute Engine |
아마존 (AWS) | 데이터베이스 | RDS |
마이크로소프트 (Azure) | 데이터베이스 | SQL Database |
구글 (GCP) | 데이터베이스 | Cloud SQl |
리눅스 운영체제에 배쉬쉘을 사용하여 데이터 처리를 자동화할 경우 데이터 가져오는 단계부터 마지막 예측하여 활용하는 단계까지 모듈화시킬 수 있으며 이를 자동화한다. 이를 위해서 각 단계를 .R
, .py
스크립트로 분리시키고 이를 배쉬쉘에서 불러 자동화시켜 처리한다.
빅데이터의 경우 컴퓨터를 클러스터로 묶어 하둡/스파크에서 처리하는 것이 일반적이며 한번 처리하는 것이 아니고 매일 혹은 매주, 특정 시간을 반복적으로 사용하는 경우 아파치 에어플로어(Apache Airflow)를 많이 사용한다. 따라서, 빅데이터 처리를 위해서 스파크 하둡 클러스터로 돌려야 하고, 데이터 처리 자동화를 위해서 cron
대신에 airbnb에서 개발한 아파치 에어플로어를 도입하여 자동화 시킨다.
데이터는 다양한 형태로 저장되어 있다. 산재된 데이터는 분석을 통해 바로 직관적인 무언가를 얻기는 불가능하고, 더 큰 문제는 여러가지 이유로 인해 데이터가 깔끔하게 정제되지 않았다는 점이다.
따라서, 서로 다른 데이터 원천으로부터 가져와서 이를 분석이 용이한 형태로 가공을 하고, 특히 결측값이나 기타 오염되고 더렵혀진 데이터를 깔끔하게 정제하여 분석이 용이한 관계형 데이터베이스에 저장한다. 즉, SQL 쿼리문을 던질 수 있어야 한다.