5일 전

개발자라면 알아야 할 데이터 통합 플랫폼의 정의와 유형

Isaac Sacolick | InfoWorld
많은 데이터를 다루는 일은 소프트웨어를 개발하는 일과 비슷하다. 모두 최종 사용자의 요구를 이해해야 하고, 솔루션 구현 방법에 대한 지식, 반복해서 결과물을 개선하는 애자일 기법에 대한 인식이 필요하다. 또 소프트웨어 개발과 데이터 작업 모두 비즈니스 요구를 충족할 수 있는 민첩한 인프라, 기술 플랫폼, 코딩 프랙티스, 데브옵스 방법론 등이 요구된다.
 
ⓒ Getty Images Bank

데이터 사이언티스트와 데이터옵스 엔지니어, 데이터 엔지니어가 사용하는 기술과 프랙티스 중에는 소프트웨어 개발자가 사용하는 것과 유사한 것이 많지만, 한편으로는 차이도 크다.  필자는 뉴욕에서 열린 ‘2019 스트라타 데이터 컨퍼런스'에 참석해 소프트웨어 개발자와 데이터 엔지니어, 2가지 시각으로 방법론과 플랫폼, 솔루션을 살펴보는 기회를 가졌다.

소비를 위한 준비가 된 데이터 수집
적당한 양의 데이터를 가지고 일하는 애플리케이션 개발자는 스크립트와 데이터베이스에 저장된 절차, 기타 코딩 방법을 통해 사전에 데이터 통합, 형식 적용, 스토리지 관련 작업을 처리하는 경우가 많다. 필요한 인프라를 갖추고, 마이크로서비스로 데이터를 지원하고, API로 데이터를 공유하고, 최종 사용자 애플리케이션이 데이터를 사용할 수 있도록 준비하는 매우 직관적인 방법이다. 그러나 풀스택 개발자는 애플리케이션 전달이 주된 비즈니스 목표이고, 여기에 초점을 맞추기 때문에 데이터 수집과 처리, 저장과 관련된 엔지니어링 측면이 최소화되는 경우가 많다.

반면 데이터 사이언티스트, 데이터옵스 엔지니어는 다른 관점으로 ‘데이터 로딩’에 접근한다. 무엇보다 ‘가비지 인 가비지 아웃(쓰레기가 들어오면 쓰레기가 나가는)’ 원칙을 너무 잘 이해하고 있으며, 로딩한 데이터를 적절히 정리하고 처리하지 않으면 분석과 데이터 시각화, 다른 데이터 산물이 훼손되고, 어쩌면 사용하지 못하게 될 수도 있다는 점을 알고 있다. 또 데이터를 최적으로 저장하지 않으면, 분석 작업의 효율성이 하락하고, 쿼리 성능에 영향을 줄 수 있다. 너무 많은 연결을 통해 관계형 데이터베이스에 쿼리를 하거나, 파티션 되지 않은 광범위한 시계열 데이터를 처리하는 경우, 생산성과 성능이 문제가 될 수도 있다.

데이터 팀은 최고의 데이터 수집 방법을 고려하면서, 데이터 소스, 데이터 종류, 볼륨과 성능, 신뢰도, 보안에 도움을 주는 요구사항들을 평가한다. 또 데이터를 소비할 수 있도록 준비하기 전, 필요한 데이터 정리 및 보강의 종류를 고려한다. 요약하면, 데이터 로딩이 지금 당장의 요구사항을 충족하고, 더 나아가 변화하는 데이터 형식을 지원하고, 데이터 볼륨이 커질 때 이를 지원할 수 있는 확장성을 갖추도록 만드는 데 큰 노력을 투자한다.

‘원 사이즈 핏 올’이 아닌 데이터 통합 플랫폼
소프트웨어 개발 플랫폼처럼 데이터 수집 플랫폼의 종류도 다양하다. 소프트웨어 개발자는 다음과 같은 기본적인 데이터 수집 유형에 친숙해질 필요가 있다.

- ETL(Extraction, Transformation, Loading) 플랫폼은 꽤 오래전 등장했으며, 전통적으로 여러 엔터프라이즈 시스템 간 배치 프로세스 데이터 이동에 사용된다. 인포매티카와 탈렌드(Talend), IBM, 오라클, 마이크로소프트 모두 ETL 기술을 공급하고 있다.
- IoT와 다른 애플리케이션 목적에서 실시간이나 근 실시간으로 데이터 수집을 처리하는 경우, 카프카와 스파크 같은 플랫폼이나, 반티크(Vantiq) 같은 이벤트 기반 아키텍처가 더 낫다.
- 데이터를 다루는 비즈니스 애널리스트가 많은 기업은 스프레드시트, 기타 작은 데이터 소스 로딩에 데이터 준비 기술을 사용할 수도 있다. 태블로와 알테릭스(Alteryx), 트리팩타(Trifacta)의 툴은 모두 비즈니스 사용자가 코딩을 거의 하지 않고 사용할 수 있는 셀프서비스형 데이터 수집 및 처리 기능을 제공한다.
- 사전에 데이터를 정화하거나, 마스터 데이터 레코드를 구현할 필요성이 있는 경우, 홀로클린(HoloClean) 같은 오픈소스 플랫폼과 렐티오(Rltio), 타므르(Tamr), 아타카마(Ataccama) 같은 데이터 품질 및 마스터링 플랫폼을 사용할 수 있다. ETL과 데이터 준비, 기타 데이터 통합 플랫폼도 데이터 품질 관련 기능을 지원한다.
- 여러 클라우드 및 데이터센터에 많은 데이터 소스가 분산된 기업이나 대기업은 클라우데라데이터 플랫폼, SAP 데이터 인텔리전스, 인포웍스 데이터 오케스트레이션 및 오케스트레이션 시스템을 고려할 수 있다. 이런 플랫폼은 여러 다양한 데이터베이스와 빅데이터 플랫폼을 지원한다. 그리고 여러 데이터 소스를 가상화하고, 데이터 통합 프로세스를 능률화하고, 필요한 데이터 리니지데이터 거버넌스를 구현하는 데 도움을 준다.

이 가운데 많은 플랫폼이 데이터 파이프라인을 개발, 관리, 연장할 수 있는 비주얼 프로그래밍 기능을 제공한다. 예를 들어, 카프카가 수집한 IoT 센서로 파이프라인을 시작, 다른 데이터 소스의 데이터와 통합해 데이터 레이크로 내보내고, 이후 애널리틱스 플랫폼으로 보낼 수 있다.

모든 사람이 모든 데이터를 찾을 수 있는 장소
데이터 소스와 파이프라인, 관리 플랫폼의 수가 증가하면서, IT가 데이터 소비자를 위해 이들이 필요로 하는 것을 찾고, 관리하는 일이 갈수록 어려워지고 있다. 데이터 소스를 검색하고 찾을 장소를 아는 것은 출발에 불과하다. 데이터 소비자는 이에 대한 설명, 설명 메타데이터, 상태, 사용 권한, 가용한 데이터 소스의 주제 전문가에 대해 알아야 한다.

데이터 카탈로그는 많은 데이터 플랫폼이 비즈니스 애널리스트, 데이터 사이언티스트, 데이터 엔지니어, 소프트웨어 개발자가 데이터 소스를 찾고, 이에 대한 정보를 기록하도록 도움을 주는 중앙화된 리소스로 제공한다. 분석용 데이터를 공유 및 강화하고, 애플리케이션에서 사용할 수 있도록 도움을 주는 유용한 엔터프라이즈 툴이다.

데이터를 적절히 활용하는 것은 모든 사람의 책임
이런 도구와 기능은 소프트웨어 개발자에게 새로운 기회, 그리고 새로운 책임을 제시한다. 새로운 데이터 소스를 가져와 애플리케이션에서 사용하기 위한 주된 방법으로 데이터 통합 툴을 사용하면서 책임이 시작된다. 스크립트를 만들어 코드에 데이터 정화 및 비즈니스 규칙을 인코딩하는 단순한 방법은 데이터 통합 플랫폼이 제공하는 기능과 비교했을 때 큰 단점이 있다. 여전히 코딩해야 하는 경우가 많다. 데이터 통합 플랫폼에 데이터 소스에 특정적인 구성, 규칙, 익스텐션이 필요하기 때문이다.

그러나 데이터 통합 플랫폼은 이런 코드를 효과적으로 관리하고, 예외를 처리하는 데 도움을 주고, 기타 ‘DIY(Do It Yourself)’ 방식에 도전하는 다른 기능들을 제공한다. 또 데이터 카탈로그는 개발자에게 소프트웨어 애플리케이션에서 더 많은 데이터 소스와 애널리틱스, 또는 머신러닝 모델을 사용할 기회를 제공한다. 실제 많은 기업이 ‘데이터 지향’, 직원과 고객, 파트너가 승인 아래 적절하게 데이터 및 분석을 사용하게 하는 것을 주된 목표 중 하나로 추구한다.

소프트웨어 개발팀이 애플리케이션에 가용한 데이터, 애널리틱스, 머신러닝 모델을 임베딩하는 것보다 더 나은 방법은 무엇일까? 데이터 사이언티스트에게 물어보라. 주된 목표 중 하나는 애플리케이션에 머신러닝 모델을 통합하는 것이다. 데이터 사이언티스트와 소프트웨어 개발자가 협력해 비즈니스 가치를 견인하려면 최종 사용자를 위해 애널리틱스를 임베딩 해야 한다. 그러면 모두 혜택을 누릴 수 있다. ciokr@idg.co.kr


5일 전

개발자라면 알아야 할 데이터 통합 플랫폼의 정의와 유형

Isaac Sacolick | InfoWorld
많은 데이터를 다루는 일은 소프트웨어를 개발하는 일과 비슷하다. 모두 최종 사용자의 요구를 이해해야 하고, 솔루션 구현 방법에 대한 지식, 반복해서 결과물을 개선하는 애자일 기법에 대한 인식이 필요하다. 또 소프트웨어 개발과 데이터 작업 모두 비즈니스 요구를 충족할 수 있는 민첩한 인프라, 기술 플랫폼, 코딩 프랙티스, 데브옵스 방법론 등이 요구된다.
 
ⓒ Getty Images Bank

데이터 사이언티스트와 데이터옵스 엔지니어, 데이터 엔지니어가 사용하는 기술과 프랙티스 중에는 소프트웨어 개발자가 사용하는 것과 유사한 것이 많지만, 한편으로는 차이도 크다.  필자는 뉴욕에서 열린 ‘2019 스트라타 데이터 컨퍼런스'에 참석해 소프트웨어 개발자와 데이터 엔지니어, 2가지 시각으로 방법론과 플랫폼, 솔루션을 살펴보는 기회를 가졌다.

소비를 위한 준비가 된 데이터 수집
적당한 양의 데이터를 가지고 일하는 애플리케이션 개발자는 스크립트와 데이터베이스에 저장된 절차, 기타 코딩 방법을 통해 사전에 데이터 통합, 형식 적용, 스토리지 관련 작업을 처리하는 경우가 많다. 필요한 인프라를 갖추고, 마이크로서비스로 데이터를 지원하고, API로 데이터를 공유하고, 최종 사용자 애플리케이션이 데이터를 사용할 수 있도록 준비하는 매우 직관적인 방법이다. 그러나 풀스택 개발자는 애플리케이션 전달이 주된 비즈니스 목표이고, 여기에 초점을 맞추기 때문에 데이터 수집과 처리, 저장과 관련된 엔지니어링 측면이 최소화되는 경우가 많다.

반면 데이터 사이언티스트, 데이터옵스 엔지니어는 다른 관점으로 ‘데이터 로딩’에 접근한다. 무엇보다 ‘가비지 인 가비지 아웃(쓰레기가 들어오면 쓰레기가 나가는)’ 원칙을 너무 잘 이해하고 있으며, 로딩한 데이터를 적절히 정리하고 처리하지 않으면 분석과 데이터 시각화, 다른 데이터 산물이 훼손되고, 어쩌면 사용하지 못하게 될 수도 있다는 점을 알고 있다. 또 데이터를 최적으로 저장하지 않으면, 분석 작업의 효율성이 하락하고, 쿼리 성능에 영향을 줄 수 있다. 너무 많은 연결을 통해 관계형 데이터베이스에 쿼리를 하거나, 파티션 되지 않은 광범위한 시계열 데이터를 처리하는 경우, 생산성과 성능이 문제가 될 수도 있다.

데이터 팀은 최고의 데이터 수집 방법을 고려하면서, 데이터 소스, 데이터 종류, 볼륨과 성능, 신뢰도, 보안에 도움을 주는 요구사항들을 평가한다. 또 데이터를 소비할 수 있도록 준비하기 전, 필요한 데이터 정리 및 보강의 종류를 고려한다. 요약하면, 데이터 로딩이 지금 당장의 요구사항을 충족하고, 더 나아가 변화하는 데이터 형식을 지원하고, 데이터 볼륨이 커질 때 이를 지원할 수 있는 확장성을 갖추도록 만드는 데 큰 노력을 투자한다.

‘원 사이즈 핏 올’이 아닌 데이터 통합 플랫폼
소프트웨어 개발 플랫폼처럼 데이터 수집 플랫폼의 종류도 다양하다. 소프트웨어 개발자는 다음과 같은 기본적인 데이터 수집 유형에 친숙해질 필요가 있다.

- ETL(Extraction, Transformation, Loading) 플랫폼은 꽤 오래전 등장했으며, 전통적으로 여러 엔터프라이즈 시스템 간 배치 프로세스 데이터 이동에 사용된다. 인포매티카와 탈렌드(Talend), IBM, 오라클, 마이크로소프트 모두 ETL 기술을 공급하고 있다.
- IoT와 다른 애플리케이션 목적에서 실시간이나 근 실시간으로 데이터 수집을 처리하는 경우, 카프카와 스파크 같은 플랫폼이나, 반티크(Vantiq) 같은 이벤트 기반 아키텍처가 더 낫다.
- 데이터를 다루는 비즈니스 애널리스트가 많은 기업은 스프레드시트, 기타 작은 데이터 소스 로딩에 데이터 준비 기술을 사용할 수도 있다. 태블로와 알테릭스(Alteryx), 트리팩타(Trifacta)의 툴은 모두 비즈니스 사용자가 코딩을 거의 하지 않고 사용할 수 있는 셀프서비스형 데이터 수집 및 처리 기능을 제공한다.
- 사전에 데이터를 정화하거나, 마스터 데이터 레코드를 구현할 필요성이 있는 경우, 홀로클린(HoloClean) 같은 오픈소스 플랫폼과 렐티오(Rltio), 타므르(Tamr), 아타카마(Ataccama) 같은 데이터 품질 및 마스터링 플랫폼을 사용할 수 있다. ETL과 데이터 준비, 기타 데이터 통합 플랫폼도 데이터 품질 관련 기능을 지원한다.
- 여러 클라우드 및 데이터센터에 많은 데이터 소스가 분산된 기업이나 대기업은 클라우데라데이터 플랫폼, SAP 데이터 인텔리전스, 인포웍스 데이터 오케스트레이션 및 오케스트레이션 시스템을 고려할 수 있다. 이런 플랫폼은 여러 다양한 데이터베이스와 빅데이터 플랫폼을 지원한다. 그리고 여러 데이터 소스를 가상화하고, 데이터 통합 프로세스를 능률화하고, 필요한 데이터 리니지데이터 거버넌스를 구현하는 데 도움을 준다.

이 가운데 많은 플랫폼이 데이터 파이프라인을 개발, 관리, 연장할 수 있는 비주얼 프로그래밍 기능을 제공한다. 예를 들어, 카프카가 수집한 IoT 센서로 파이프라인을 시작, 다른 데이터 소스의 데이터와 통합해 데이터 레이크로 내보내고, 이후 애널리틱스 플랫폼으로 보낼 수 있다.

모든 사람이 모든 데이터를 찾을 수 있는 장소
데이터 소스와 파이프라인, 관리 플랫폼의 수가 증가하면서, IT가 데이터 소비자를 위해 이들이 필요로 하는 것을 찾고, 관리하는 일이 갈수록 어려워지고 있다. 데이터 소스를 검색하고 찾을 장소를 아는 것은 출발에 불과하다. 데이터 소비자는 이에 대한 설명, 설명 메타데이터, 상태, 사용 권한, 가용한 데이터 소스의 주제 전문가에 대해 알아야 한다.

데이터 카탈로그는 많은 데이터 플랫폼이 비즈니스 애널리스트, 데이터 사이언티스트, 데이터 엔지니어, 소프트웨어 개발자가 데이터 소스를 찾고, 이에 대한 정보를 기록하도록 도움을 주는 중앙화된 리소스로 제공한다. 분석용 데이터를 공유 및 강화하고, 애플리케이션에서 사용할 수 있도록 도움을 주는 유용한 엔터프라이즈 툴이다.

데이터를 적절히 활용하는 것은 모든 사람의 책임
이런 도구와 기능은 소프트웨어 개발자에게 새로운 기회, 그리고 새로운 책임을 제시한다. 새로운 데이터 소스를 가져와 애플리케이션에서 사용하기 위한 주된 방법으로 데이터 통합 툴을 사용하면서 책임이 시작된다. 스크립트를 만들어 코드에 데이터 정화 및 비즈니스 규칙을 인코딩하는 단순한 방법은 데이터 통합 플랫폼이 제공하는 기능과 비교했을 때 큰 단점이 있다. 여전히 코딩해야 하는 경우가 많다. 데이터 통합 플랫폼에 데이터 소스에 특정적인 구성, 규칙, 익스텐션이 필요하기 때문이다.

그러나 데이터 통합 플랫폼은 이런 코드를 효과적으로 관리하고, 예외를 처리하는 데 도움을 주고, 기타 ‘DIY(Do It Yourself)’ 방식에 도전하는 다른 기능들을 제공한다. 또 데이터 카탈로그는 개발자에게 소프트웨어 애플리케이션에서 더 많은 데이터 소스와 애널리틱스, 또는 머신러닝 모델을 사용할 기회를 제공한다. 실제 많은 기업이 ‘데이터 지향’, 직원과 고객, 파트너가 승인 아래 적절하게 데이터 및 분석을 사용하게 하는 것을 주된 목표 중 하나로 추구한다.

소프트웨어 개발팀이 애플리케이션에 가용한 데이터, 애널리틱스, 머신러닝 모델을 임베딩하는 것보다 더 나은 방법은 무엇일까? 데이터 사이언티스트에게 물어보라. 주된 목표 중 하나는 애플리케이션에 머신러닝 모델을 통합하는 것이다. 데이터 사이언티스트와 소프트웨어 개발자가 협력해 비즈니스 가치를 견인하려면 최종 사용자를 위해 애널리틱스를 임베딩 해야 한다. 그러면 모두 혜택을 누릴 수 있다. ciokr@idg.co.kr


X