Snowflake란 ?
Snowflake는 클라우드 기반의 데이터 웨어하우스 서비스로, 데이터를 저장, 처리, 분석하는 현대적인 방법을 제공.
전통적인 데이터 웨어하우스와 달리, Snowflake는 클라우드 인프라 위에 구축되어 있어, 사용자는 하드웨어 관리나 소프트웨어 업데이트에 신경 쓸 필요 없이 데이터에 집중할 수 있다. 또한, Snowflake의 가장 큰 특징 중 하나는 '스토리지(storage)'와 '컴퓨트(compute)' 리소스의 분리입니다. 이는 데이터를 저장하는 공간과 데이터를 처리하는 데 필요한 컴퓨팅 파워를 독립적으로 확장하거나 축소할 수 있음을 의미한다.
이러한 유연성 덕분에 사용자는 필요에 따라 비용을 효율적으로 관리하면서 데이터를 더 빠르고 쉽게 분석할 수 있다. 간단히 말해, Snowflake는 기업이 데이터를 보다 효율적으로 관리하고 활용할 수 있도록 지원하는 혁신적인 클라우드 데이터 웨어하우스 솔루션.
Snowflake는 글로버 클라우드 ( AWS, GCP, Azure ) 위에서 모두 동작 가능한 멀티 클라우드 솔루션이며, 데이터 판매를 통한 매출을 가능하게 해주는 Data Sharing / Marketplace 를 제공한다. 그리고 ETL 등 다양한 데이터 통합기능을 제공한다.
현재 Snowflake는 데이터 클라우드 라고 말할 수 있을 정도로 발전한 솔루션이라고 할 수 있다.
Snowflake의 특징
- 클라우드기반
- Snowflake는 완전히 클라우드 상에서 작동한다. 이는 사용자가 어디서든 인터넷만 있다면 데이터에 접근하고 작업할 수 있음을 의미하며 사용자는 하드웨어 관리나 소프트웨어 업데이트 걱정을 하지 않아도 된다.
- 자체 스토리지 이외에도 클라우드 스토리지를 외부 테이블로 사용 가능하다.
- 스토리지 컴퓨팅 인프라가 별도로 설정되는 가변 비용 모델.
- 앞서 말했듯이 멀티 클라우드를 지원하며, 다른 지역에 있는 데이터를 공유하는 Cross-Region-Replication 기능을 지원한다.
- 스토리지와 컴퓨팅의 분리
- Snowflake의 가장 큰 특징 중 하나는 데이터 저장 공간과 데이터 처리 능력을 분리한다는 것이다.
- 이는 사용자가 필요에 따라 저장 공간과 컴퓨팅 능력을 독립적으로 확장하거나 축소할 수 있게 해, 매우 유연한 비용 관리와 높은 처리 성능을 가능하게 한다.
- 자동 확장성
- 사용자의 요구에 따라 자동으로 리소스를 확장하고 축소할 수 있다. 이는 갑작스러운 데이터 분석 요구가 있을 때도 빠른 분석이 가능하게 한다.
- 다양한 데이터 지원
- Snowflake는 구조화된 데이터뿐만 아니라 반구조화된 데이터(예: JSON, XML 파일)도 지원. 이는 다양한 형태의 데이터를 저장하고 분석할 수 있게 해줍니다
- S3, GC 클라우드 스토리지, Azure Blog Storage 도 지원하며 매우 폭 넓은 데이터를 지원한다.
- 보안
- Snowflake는 업계 표준에 맞는 강력한 보안 기능을 제공한다. 데이터는 암호화되어 저장되며, 접근 관리와 보안 설정은 사용자가 쉽게 관리할 수 있다.
- 다양한 데이터 처리
- SQL 기반으로 빅데이터 저장, 처리, 분석이 가능하다. 또한 비구조화된 데이터 처리와 머신러닝 기능도 제공한다.
- 배치데이터 처리가 중심이지만, 실시간 데이터 처리도 지원한다.
- Time Travel 이라는 과거 데이터 쿼리 기능으로 트렌드 분석을 쉽게 할 수 있다.
- Data Marketplace 와 Data Sharing
- Data Marketplace 란 사용자가 다양한 데이터 제공자로부터 데이터를 쉽게 찾고 접근할 수 있는 플랫폼이다. 이 시장에서는 금융, 헬스케어, 공공 데이터 등 다양한 산업 분야의 준비된 데이터 세트를 제공하고. 사용자는 이 데이터를 자신의 Snowflake 환경으로 직접 가져와 분석할 수 있어, 데이터를 획득하는 과정을 훨씬 간편하게 수행 가능하다.
- Data Sharing 란 사용자가 자신의 데이터를 다른 Snowflake 사용자와 안전하게 공유할 수 있도록 한다. 이는 복잡한 데이터 복사나 이동 과정 없이 즉 네트워크를 타지 않고, 실시간으로 데이터를 공유할 수 있게 해준다. ( 권한을 열어줘 데이터를 가져갈 수 있게끔 한다거나.. ) 데이터 제공자는 공유할 데이터의 범위를 정확히 제어할 수 있으며, 데이터 수신자는 공유받은 데이터를 자신의 Snowflake 환경에서 바로 사용할 수 있다. 이로 인해 기업 간 협업과 데이터 기반 의사결정이 훨씬 빠르고 효율적으로 이루어질 수 있다.
Snowflake 의 구성도
Snowflake의 계정 구성 방식은 계층적 구조로 되어 있으며, 이 구조는 크게 Organizations, Accounts, 그리고 Databases로 나뉜다. 이 계층 구조는 데이터의 관리와 보안을 효율적으로 하기 위해 설계되었다.
- Organizations
- Snowflake에서 가장 상위 계층인 'Organization' 이다. 한 고객이 모든 Snowflake 자원들을 통합하는 최상위 통합 컨테이너이다.
- Organization은 여러 개의 Snowflake 계정을 포함할 수 있는 컨테이너 역할을 한다.
- 대규모 기업이나 여러 프로젝트를 관리하는 경우, 각각의 프로젝트나 부서별로 별도의 계정을 생성하고 이를 하나의 Organization 아래에서 관리할 수 있다. 이를 통해 리소스 관리, 청구, 보안 정책 설정 등을 효율적으로 수행할 수 있다.
- Accounts
- Organization 아래에 위치하는 계층은 'Account' 이다.
- Account는 Snowflake의 서비스를 이용하기 위해 생성하는 개별 계정으로, 사용자가 실제로 데이터를 저장하고 분석 작업을 수행하는 공간.
- 각 Account는 독립적인 데이터 저장소, 컴퓨팅 리소스, 사용자 관리 시스템을 가진다. 이 계층에서는 데이터 웨어하우스, 컴퓨팅 리소스(가상 웨어하우스), 보안 설정 등을 관리한다.
- 하나의 Account 는 하나 혹은 그 이상의 Database로 구성될 수 있다.
- Databases
- Account 내부에서 더 세분화된 계층은 'Database'이다.
- 하나의 Database는 하나의 Account에 속한 데이터를 다루는 논리적인 컨테이너 이다.
- 하나의 Database는 PB 단위까지 스케일 가능하고, 독립적인 컴퓨팅 시스템을 갖는다. 여기서 컴퓨팅 리소스를 Warehouse 라고 부른다, Warehouse와 Databases 는 1:1 관계는 아니다. 예를들면 하나의 Acoount 밑에 5개의 Database가 있다면 그 밑에 1개의 warehouse 가 있을 수 있는 구조를 가진다.
- Database는 관련 데이터를 구조화하여 저장하는 컨테이너로. 각 Database 안에는 여러 '스키마(Schema)'가 있을 수 있으며, 스키마 내에는 '테이블(Table)', '뷰(View)', '스토어드 프로시저(Stored Procedure)' 등이 위치한다.
- 사용자는 데이터를 효율적으로 관리하고 분석하기 위해 필요에 따라 여러 Database를 생성하고 관리할 수 있다.
'DevCourse > 데이터 웨어하우스 관리 & BI 대시보드' 카테고리의 다른 글
Snowflake 학습환경세팅 (0) | 2024.05.11 |
---|---|
ETL 과 Airflow (0) | 2024.05.06 |