2020.04.14

우리 회사 데이터 레이크는 얼마나 개방적인가?

Ashish Thusoo | InfoWorld
데이터 레이크는 변환된, 신뢰할 수 있는 데이터 집합과 함께 원시 형식의 데이터를 저장하고, 데이터 탐색과 인터랙티브 분석, 머신러닝과 같은 다양한 분석 작업을 위해 이 데이터에 대한 프로그램식 액세스와 SQL 기반 액세스를 모두 제공하는 시스템 또는 리포지토리다. 데이터 레이크에 저장되는 데이터에는 관계형 데이터베이스의 구조적 데이터(열과 행), 반구조적 데이터(CSV, 로그, XML, JSON), 비구조적 데이터(이메일, 문서, PDF), 바이너리 데이터(이미지, 오디오, 비디오)가 포함된다.
 
데이터 레이크의 과제는 사유 형식이나 시스템에 종속되지 않는 것이다. 종속은 다른 용도를 위해 데이터를 시스템 안팎으로 이동하거나 다른 툴을 사용해 데이터를 처리하는 역량을 제약하고, 데이터 레이크를 단일 클라우드 환경에 묶을 수도 있다. 따라서 기업은 데이터를 개방 형식으로 저장하고 개방형 표준 기반 인터페이스를 통해 액세스할 수 있는 개방형 데이터 레이크를 구축하도록 노력해야 한다. 데이터 저장, 데이터 관리, 데이터 처리, 운영, 데이터 액세스, 거버넌스, 보안을 포함한 시스템의 모든 측면에서 개방형 원칙을 고수해야 한다.
 
ⓒGettyImageBank

개방 형식은 개방형 표준을 기반으로 해서 특정 벤더의 사유 확장 없이 공개 커뮤니티 중심의 프로세스를 통해 개발되고 공유되는 형식이다. 예를 들어 개방형 데이터 형식은 ORC나 파케이(Parquet)과 같이 사양이 커뮤니티에 게시되어 어느 조직에서나 해당 형식으로 된 데이터를 읽는 툴과 애플리케이션을 만들 수 있는, 플랫폼 독립적이고 기계가 읽을 수 있는 데이터 형식이다.
 
일반적인 데이터 레이크에는 다음과 같은 기능이 있다.

-    데이터 흡수와 저장
-    지속적 데이터 엔지니어링을 위한 데이터 처리 및 지원
-    데이터 액세스와 소비
-    디스커버리 가능성(discoverability), 보안, 규정 준수를 포함한 데이터 거버넌스
-    인프라 및 운영

다음 절에서는 각 기능의 개방성 요건에 대해 설명한다.
 

데이터 흡수와 저장

개방형 데이터 레이크는 애플리케이션, 데이터베이스, 데이터 웨어하우스, 실시간 스트림과 같은 소스로부터 데이터를 흡수한다. 데이터를 포맷해서 ORC, 파케이와 같이 플랫폼 독립적이고 기계가 읽을 수 있으며 액세스와 분석에 최적화되고 정보 재사용을 저해하는 제약 없이 소비자에게 제공 가능한 개방형 데이터 형식으로 저장한다.
 
개방형 데이터 레이크는 풀(pull) 기반과 푸시(push) 기반 데이터 흡수를 모두 지원한다. 풀 기반 흡수는 배치 데이터 파이프라인을 통해 지원하며, 푸시 기반 흡수는 스트림 처리를 통해 지원한다. 두 가지 유형의 데이터 흡수에서 개방형 데이터 레이크는 데이터 변환을 위해 SQL, 아파치 스파크와 같은 개방형 표준을 지원한다. 배치 데이터 파이프라인에서는 호수의 데이터 집합에 대한 행 수준 삽입과 업데이트(UPSERT)를 지원한다. 스냅샷 격리(더 일반적으로는 ACID 구문)가 포함된 UPSERT 기능은 데이터 파티션이나 전체 데이터 집합을 다시 쓰는 경우에 비해 작업을 대폭 간소화해준다.
 
개방형 데이터 레이크의 흡수 기능은 데이터 무손실을 보장하며 정확히 한 번 또는 최소 한 번 이상 쓰고 스키마 변동성을 처리하며 가장 최적화된 데이터 형식으로 적절한 파티션에 쓰고 필요할 때 데이터를 다시 흡수하는 기능을 제공한다.
 

데이터 처리와 지속적 데이터 엔지니어링 지원

개방형 데이터 레이크는 다양한 데이터 소스의 원시 데이터를 표준화된 개방 형식으로 저장한다. 그러나 데이터 탐색, 인터랙티브 분석, 머신러닝과 같은 사용 사례에서는 원시 데이터를 처리해서 사용 사례에 맞는 신뢰할 수 있는 데이터 집합을 생성해야 한다. 데이터 탐색과 머신러닝 사용 사례의 경우 사용자가 각자의 분석 요구에 맞게 지속적으로 데이터 집합을 정제한다. 따라서 모든 데이터 레이크 구현은 사용자가 데이터 엔지니어링과 인터랙티브 분석 및 머신러닝과 같은 사용 사례 사이에서 반복 개발을 할 수 있도록 해야 한다. 데이터 파이프라인을 제작, 모니터링, 디버깅하는 인터랙티브한 기능이 포함된 지속적 데이터 엔지니어링이라고 생각하면 된다. 개방형 데이터 레이크에서 이러한 파이프라인은 SQL, 파이썬, 아파치 스파크, 아파치 하이브와 같은 오픈 소스 툴과 표준 인터페이스를 사용해서 제작된다.
 

데이터 액세스와 소비

데이터 레이크에서 가장 가시적인 결과는 데이터 레이크를 통해 실현되는 사용 사례의 유형이다. 데이터 탐색, 인터랙티브 분석, 머신러닝 등 어떤 사용 사례에서든 데이터 액세스가 핵심이다. 데이터 액세스는 SQL 또는 파이썬이나 R, 스칼라와 같은 프로그래밍 언어를 통해 가능하다. 인터랙티브 분석의 표준은 SQL이지만 머신러닝, 딥 러닝과 같은 더 고차원적 애플리케이션에는 프로그래밍 언어가 사용된다.
 
개방형 데이터 레이크는 사유 확장 없는 표준 기반의 SQL 구현을 통해 데이터 액세스를 지원한다. 따라서 외부 툴에서 ODBC, JDBC와 같은 표준을 통해 데이터에 액세스할 수 있다. 또한 개방형 데이터 레이크는 R, 파이썬, 스칼라와 같은 표준 프로그래밍 언어와 텐서플로우(TensorFlow), 케라스(Keras), 파이토치(PyTorch), 아파치 스파크 MLlib, MXNet, 사이킷-런(Scikit-learn)과 같은 수치 계산 및 머신러닝을 위한 표준 라이브러리를 통한 프로그램식 액세스도 지원한다.
 

데이터 거버넌스 – 디스커버리 가능성, 보안, 규정 준수

데이터 흡수와 데이터 액세스가 잘 구현되면 데이터를 평등한 방식으로 폭넓은 사용자에게 제공할 수 있게 된다. 여러 팀이 데이터에 액세스하기 시작하면 데이터 설계자는 거버넌스와 보안, 규정 준수를 위한 관리 감독을 실시해야 한다.
 

데이터 디스커버리

데이터 자체는 찾고 이해하기 어려우며 항상 신뢰성이 보장되는 것도 아니다. 사용자는 자신의 사용 사례에서 데이터를 신뢰하려면 먼저 데이터 집합을 발굴(discover)하고 프로파일링해서 무결성을 확인해야 한다. 데이터 카탈로그는 다양한 메커니즘을 통해 메타데이터의 질을 높이고 이를 사용해서 데이터 집합을 문서화하고 디스커버리를 보조하기 위한 검색을 지원한다.
 
첫 번째 단계는 필요한 데이터 집합을 발굴하는 것이므로 탐색을 위해 최종 사용자에게 메타데이터를 노출하고 데이터의 위치와 포함된 내용을 파악하고 특정 질문에 답하는 데 유용한지 여부를 확인하는 것이 필수적이다. 디스커버리에는 포맷, 표준화, 라벨, 데이터 형태 등을 밝히기 위한 데이터 집합의 인터랙티브 프리뷰를 지원하는 데이터 프로파일링 기능이 포함된다. 
 
개방형 데이터 레이크에는 개방형 메타데이터 리포지토리가 있어야 한다. 예를 들어 아파치 하이브 메타데이터 리포지토리는 메타데이터에 대한 벤더 종속을 방지하는 개방형 리포지토리다.
 

보안

데이터에 대한 액세스 용이성이 증대된 만큼 데이터 레이크는 강력한 액세스 제어와 보안 기능을 지원해야 한다. 개방성을 위해서는 비독점적 보안 및 액세스 제어 API를 통해 이를 달성해야 한다. 예를 들어 아파치 레인저(Ranger), 아파치 센트리(Sentry)와 같은 오픈 소스 프레임워크와의 심층적인 통합은 테이블 수준, 행 수준, 열 수준의 세분화된 보안을 용이하게 해준다. 관리자는 액티브 디렉터리와 같은 기업 디렉터리에 이미 정의된 사용자 역할을 기준으로 권한을 부여할 수 있다. 개방형 데이터 레이크는 오픈소스 프레임워크에 기반을 둔 액세스 제어를 구현함으로써 독점 보안 구현에 따르는 벤더 종속을 피할 수 있다.
 

규정 준수

GDPR, CCPA와 같은 새롭거나 확대된 데이터 프라이버시 규정은 “삭제 권리”와 “잊힐 권리”에 대한 새로운 요구사항을 만들었다. 이러한 규정은 자신의 데이터에 대한 소비자의 권리를 다루며, 미준수 시 상당한 금전적 벌금을 부과하므로(전세계 총매출의 최대 4%) 간과해서는 안 된다. 따라서 데이터 관리 프로세스의 중단 없이 특정 데이터 하위 집합을 삭제할 수 있는 기능이 필수적이다. 개방형 데이터 레이크는 개방 형식과 개방형 메타데이터 리포지토리를 통해 이 기능을 지원한다. 이러한 방식으로 규정 준수 요건을 충족하는 벤더 중립적인 솔루션을 실현한다.
 

인프라와 운영

데이터 레이크가 클라우드에 구축되든 온프레미스에 구축되든, 각 클라우드 제공업체마다 데이터 레이크와 여기 필요한 리소스를 프로비저닝, 구성, 모니터링, 관리하기 위한 저마다의 구현이 있다. 개방형 데이터 레이크는 클라우드 중립적이며 공용 클라우드와 사설 클라우드를 포함한 모든 클라우드 네이티브 환경에 걸쳐 이식 가능하다. 관리자는 경제성, 보안, 거버넌스, 민첩성 관점에서 공용 클라우드와 사설 클라우드의 이점을 모두 활용할 수 있다.
 

열려 있는 혁신의 문

데이터의 볼륨, 속도, 다양성이 증가하고 여기에 새로운 유형의 분석과 머신러닝까지 가세하면서 데이터 레이크는 전통적인 데이터 웨어하우스의 필수적인 보완재가 되고 있다. 데이터 웨어하우스는 주로 사유 형식, 사유 SQL 확장, 사유 메타데이터 리포지토리 환경에 존재하며 프로그램식 데이터 액세스 기능이 없다. 데이터 레이크는 혁신의 제약과 더 높은 비용으로 이어지는 이 사유 경로를 따를 필요가 없다. 잘 설계된 개방형 데이터 레이크는 데이터 탐색, 인터랙티브 분석, 머신러닝을 포함한 광범위한 데이터 처리 요구사항을 지원하는 견고하고 미래에 대비한 데이터 관리 시스템을 제공한다. editor@itworld.co.kr 


2020.04.14

우리 회사 데이터 레이크는 얼마나 개방적인가?

Ashish Thusoo | InfoWorld
데이터 레이크는 변환된, 신뢰할 수 있는 데이터 집합과 함께 원시 형식의 데이터를 저장하고, 데이터 탐색과 인터랙티브 분석, 머신러닝과 같은 다양한 분석 작업을 위해 이 데이터에 대한 프로그램식 액세스와 SQL 기반 액세스를 모두 제공하는 시스템 또는 리포지토리다. 데이터 레이크에 저장되는 데이터에는 관계형 데이터베이스의 구조적 데이터(열과 행), 반구조적 데이터(CSV, 로그, XML, JSON), 비구조적 데이터(이메일, 문서, PDF), 바이너리 데이터(이미지, 오디오, 비디오)가 포함된다.
 
데이터 레이크의 과제는 사유 형식이나 시스템에 종속되지 않는 것이다. 종속은 다른 용도를 위해 데이터를 시스템 안팎으로 이동하거나 다른 툴을 사용해 데이터를 처리하는 역량을 제약하고, 데이터 레이크를 단일 클라우드 환경에 묶을 수도 있다. 따라서 기업은 데이터를 개방 형식으로 저장하고 개방형 표준 기반 인터페이스를 통해 액세스할 수 있는 개방형 데이터 레이크를 구축하도록 노력해야 한다. 데이터 저장, 데이터 관리, 데이터 처리, 운영, 데이터 액세스, 거버넌스, 보안을 포함한 시스템의 모든 측면에서 개방형 원칙을 고수해야 한다.
 
ⓒGettyImageBank

개방 형식은 개방형 표준을 기반으로 해서 특정 벤더의 사유 확장 없이 공개 커뮤니티 중심의 프로세스를 통해 개발되고 공유되는 형식이다. 예를 들어 개방형 데이터 형식은 ORC나 파케이(Parquet)과 같이 사양이 커뮤니티에 게시되어 어느 조직에서나 해당 형식으로 된 데이터를 읽는 툴과 애플리케이션을 만들 수 있는, 플랫폼 독립적이고 기계가 읽을 수 있는 데이터 형식이다.
 
일반적인 데이터 레이크에는 다음과 같은 기능이 있다.

-    데이터 흡수와 저장
-    지속적 데이터 엔지니어링을 위한 데이터 처리 및 지원
-    데이터 액세스와 소비
-    디스커버리 가능성(discoverability), 보안, 규정 준수를 포함한 데이터 거버넌스
-    인프라 및 운영

다음 절에서는 각 기능의 개방성 요건에 대해 설명한다.
 

데이터 흡수와 저장

개방형 데이터 레이크는 애플리케이션, 데이터베이스, 데이터 웨어하우스, 실시간 스트림과 같은 소스로부터 데이터를 흡수한다. 데이터를 포맷해서 ORC, 파케이와 같이 플랫폼 독립적이고 기계가 읽을 수 있으며 액세스와 분석에 최적화되고 정보 재사용을 저해하는 제약 없이 소비자에게 제공 가능한 개방형 데이터 형식으로 저장한다.
 
개방형 데이터 레이크는 풀(pull) 기반과 푸시(push) 기반 데이터 흡수를 모두 지원한다. 풀 기반 흡수는 배치 데이터 파이프라인을 통해 지원하며, 푸시 기반 흡수는 스트림 처리를 통해 지원한다. 두 가지 유형의 데이터 흡수에서 개방형 데이터 레이크는 데이터 변환을 위해 SQL, 아파치 스파크와 같은 개방형 표준을 지원한다. 배치 데이터 파이프라인에서는 호수의 데이터 집합에 대한 행 수준 삽입과 업데이트(UPSERT)를 지원한다. 스냅샷 격리(더 일반적으로는 ACID 구문)가 포함된 UPSERT 기능은 데이터 파티션이나 전체 데이터 집합을 다시 쓰는 경우에 비해 작업을 대폭 간소화해준다.
 
개방형 데이터 레이크의 흡수 기능은 데이터 무손실을 보장하며 정확히 한 번 또는 최소 한 번 이상 쓰고 스키마 변동성을 처리하며 가장 최적화된 데이터 형식으로 적절한 파티션에 쓰고 필요할 때 데이터를 다시 흡수하는 기능을 제공한다.
 

데이터 처리와 지속적 데이터 엔지니어링 지원

개방형 데이터 레이크는 다양한 데이터 소스의 원시 데이터를 표준화된 개방 형식으로 저장한다. 그러나 데이터 탐색, 인터랙티브 분석, 머신러닝과 같은 사용 사례에서는 원시 데이터를 처리해서 사용 사례에 맞는 신뢰할 수 있는 데이터 집합을 생성해야 한다. 데이터 탐색과 머신러닝 사용 사례의 경우 사용자가 각자의 분석 요구에 맞게 지속적으로 데이터 집합을 정제한다. 따라서 모든 데이터 레이크 구현은 사용자가 데이터 엔지니어링과 인터랙티브 분석 및 머신러닝과 같은 사용 사례 사이에서 반복 개발을 할 수 있도록 해야 한다. 데이터 파이프라인을 제작, 모니터링, 디버깅하는 인터랙티브한 기능이 포함된 지속적 데이터 엔지니어링이라고 생각하면 된다. 개방형 데이터 레이크에서 이러한 파이프라인은 SQL, 파이썬, 아파치 스파크, 아파치 하이브와 같은 오픈 소스 툴과 표준 인터페이스를 사용해서 제작된다.
 

데이터 액세스와 소비

데이터 레이크에서 가장 가시적인 결과는 데이터 레이크를 통해 실현되는 사용 사례의 유형이다. 데이터 탐색, 인터랙티브 분석, 머신러닝 등 어떤 사용 사례에서든 데이터 액세스가 핵심이다. 데이터 액세스는 SQL 또는 파이썬이나 R, 스칼라와 같은 프로그래밍 언어를 통해 가능하다. 인터랙티브 분석의 표준은 SQL이지만 머신러닝, 딥 러닝과 같은 더 고차원적 애플리케이션에는 프로그래밍 언어가 사용된다.
 
개방형 데이터 레이크는 사유 확장 없는 표준 기반의 SQL 구현을 통해 데이터 액세스를 지원한다. 따라서 외부 툴에서 ODBC, JDBC와 같은 표준을 통해 데이터에 액세스할 수 있다. 또한 개방형 데이터 레이크는 R, 파이썬, 스칼라와 같은 표준 프로그래밍 언어와 텐서플로우(TensorFlow), 케라스(Keras), 파이토치(PyTorch), 아파치 스파크 MLlib, MXNet, 사이킷-런(Scikit-learn)과 같은 수치 계산 및 머신러닝을 위한 표준 라이브러리를 통한 프로그램식 액세스도 지원한다.
 

데이터 거버넌스 – 디스커버리 가능성, 보안, 규정 준수

데이터 흡수와 데이터 액세스가 잘 구현되면 데이터를 평등한 방식으로 폭넓은 사용자에게 제공할 수 있게 된다. 여러 팀이 데이터에 액세스하기 시작하면 데이터 설계자는 거버넌스와 보안, 규정 준수를 위한 관리 감독을 실시해야 한다.
 

데이터 디스커버리

데이터 자체는 찾고 이해하기 어려우며 항상 신뢰성이 보장되는 것도 아니다. 사용자는 자신의 사용 사례에서 데이터를 신뢰하려면 먼저 데이터 집합을 발굴(discover)하고 프로파일링해서 무결성을 확인해야 한다. 데이터 카탈로그는 다양한 메커니즘을 통해 메타데이터의 질을 높이고 이를 사용해서 데이터 집합을 문서화하고 디스커버리를 보조하기 위한 검색을 지원한다.
 
첫 번째 단계는 필요한 데이터 집합을 발굴하는 것이므로 탐색을 위해 최종 사용자에게 메타데이터를 노출하고 데이터의 위치와 포함된 내용을 파악하고 특정 질문에 답하는 데 유용한지 여부를 확인하는 것이 필수적이다. 디스커버리에는 포맷, 표준화, 라벨, 데이터 형태 등을 밝히기 위한 데이터 집합의 인터랙티브 프리뷰를 지원하는 데이터 프로파일링 기능이 포함된다. 
 
개방형 데이터 레이크에는 개방형 메타데이터 리포지토리가 있어야 한다. 예를 들어 아파치 하이브 메타데이터 리포지토리는 메타데이터에 대한 벤더 종속을 방지하는 개방형 리포지토리다.
 

보안

데이터에 대한 액세스 용이성이 증대된 만큼 데이터 레이크는 강력한 액세스 제어와 보안 기능을 지원해야 한다. 개방성을 위해서는 비독점적 보안 및 액세스 제어 API를 통해 이를 달성해야 한다. 예를 들어 아파치 레인저(Ranger), 아파치 센트리(Sentry)와 같은 오픈 소스 프레임워크와의 심층적인 통합은 테이블 수준, 행 수준, 열 수준의 세분화된 보안을 용이하게 해준다. 관리자는 액티브 디렉터리와 같은 기업 디렉터리에 이미 정의된 사용자 역할을 기준으로 권한을 부여할 수 있다. 개방형 데이터 레이크는 오픈소스 프레임워크에 기반을 둔 액세스 제어를 구현함으로써 독점 보안 구현에 따르는 벤더 종속을 피할 수 있다.
 

규정 준수

GDPR, CCPA와 같은 새롭거나 확대된 데이터 프라이버시 규정은 “삭제 권리”와 “잊힐 권리”에 대한 새로운 요구사항을 만들었다. 이러한 규정은 자신의 데이터에 대한 소비자의 권리를 다루며, 미준수 시 상당한 금전적 벌금을 부과하므로(전세계 총매출의 최대 4%) 간과해서는 안 된다. 따라서 데이터 관리 프로세스의 중단 없이 특정 데이터 하위 집합을 삭제할 수 있는 기능이 필수적이다. 개방형 데이터 레이크는 개방 형식과 개방형 메타데이터 리포지토리를 통해 이 기능을 지원한다. 이러한 방식으로 규정 준수 요건을 충족하는 벤더 중립적인 솔루션을 실현한다.
 

인프라와 운영

데이터 레이크가 클라우드에 구축되든 온프레미스에 구축되든, 각 클라우드 제공업체마다 데이터 레이크와 여기 필요한 리소스를 프로비저닝, 구성, 모니터링, 관리하기 위한 저마다의 구현이 있다. 개방형 데이터 레이크는 클라우드 중립적이며 공용 클라우드와 사설 클라우드를 포함한 모든 클라우드 네이티브 환경에 걸쳐 이식 가능하다. 관리자는 경제성, 보안, 거버넌스, 민첩성 관점에서 공용 클라우드와 사설 클라우드의 이점을 모두 활용할 수 있다.
 

열려 있는 혁신의 문

데이터의 볼륨, 속도, 다양성이 증가하고 여기에 새로운 유형의 분석과 머신러닝까지 가세하면서 데이터 레이크는 전통적인 데이터 웨어하우스의 필수적인 보완재가 되고 있다. 데이터 웨어하우스는 주로 사유 형식, 사유 SQL 확장, 사유 메타데이터 리포지토리 환경에 존재하며 프로그램식 데이터 액세스 기능이 없다. 데이터 레이크는 혁신의 제약과 더 높은 비용으로 이어지는 이 사유 경로를 따를 필요가 없다. 잘 설계된 개방형 데이터 레이크는 데이터 탐색, 인터랙티브 분석, 머신러닝을 포함한 광범위한 데이터 처리 요구사항을 지원하는 견고하고 미래에 대비한 데이터 관리 시스템을 제공한다. editor@itworld.co.kr 


X