Snowflake 검토 : 클라우드에서 개선 된 데이터웨어 하우스

엔터프라이즈 데이터웨어 하우스 (EDW)라고도하는 데이터웨어 하우스는 분석을 위해 설계된 고도의 병렬 SQL 또는 NoSQL 데이터베이스입니다. 여러 소스에서 데이터를 가져오고 페타 바이트 데이터에서 복잡한 보고서를 빠르게 생성 할 수 있습니다.

데이터웨어 하우스와 데이터 마트의 차이점은 일반적으로 데이터 마트가 단일 주제와 단일 부서로 제한된다는 것입니다. 데이터웨어 하우스와 데이터 레이크의 차이점은 데이터 레이크는 데이터를 자연 형식 (종종 blob 또는 파일)으로 저장하는 반면 데이터웨어 하우스는 데이터를 데이터베이스로 저장한다는 것입니다.

간단히 눈송이

Snowflake는 처음부터 클라우드를 위해 구축 된 완전 관계형 ANSI SQL 데이터웨어 하우스입니다. 아키텍처는 컴퓨팅을 스토리지와 분리하므로 쿼리가 실행되는 동안에도 지연이나 중단없이 즉시 확장 및 축소 할 수 있습니다. 필요할 때 정확히 필요한 성능을 얻을 수 있으며 사용한 컴퓨팅에 대해서만 비용을 지불하면됩니다. Snowflake는 현재 Amazon Web Services 및 Microsoft Azure에서 실행됩니다.

     Snowflake는 벡터화 된 실행이 포함 된 완전한 컬럼 형 데이터베이스이므로 가장 까다로운 분석 워크로드도 처리 할 수 ​​있습니다. Snowflake의 적응 형 최적화는 관리 할 인덱스, 배포 키 또는 조정 매개 변수없이 쿼리가 가능한 최고의 성능을 자동으로 얻을 수 있도록합니다.

     Snowflake는 고유 한 다중 클러스터 공유 데이터 아키텍처로 무제한 동시성을 지원할 수 있습니다. 이를 통해 여러 컴퓨팅 클러스터가 성능 저하없이 동일한 데이터에서 동시에 작동 할 수 있습니다. Snowflake는 다중 클러스터 가상웨어 하우스 기능으로 다양한 동시성 요구를 처리하도록 자동으로 확장 할 수 있으며, 최대로드 기간 동안 투명하게 컴퓨팅 리소스를 추가하고 부하가 줄어들면 축소 할 수 있습니다.

눈송이 경쟁자

클라우드에서 Snowflake의 경쟁 업체로는 Amazon Redshift, Google BigQuery 및 Microsoft Azure SQL Data Warehouse가 있습니다. Teradata, Oracle Exadata, MarkLogic 및 SAP BW / 4HANA와 같은 다른 주요 경쟁 업체는 클라우드, 온 프레미스 및 어플라이언스에 설치할 수 있습니다.

Amazon Redshift

Amazon Redshift는 데이터웨어 하우스 및 Amazon S3 데이터 레이크에서 모든 데이터를 분석 할 수있는 빠르고 확장 가능한 데이터웨어 하우스입니다. SQL을 사용하여 Redshift를 쿼리합니다. Redshift 데이터웨어 하우스는 동시 쿼리로드로 용량을 자동으로 배포하고 제거 할 수있는 클러스터입니다. 그러나 모든 클러스터 노드는 동일한 가용성 영역에서 프로비저닝됩니다.

Microsoft Azure SQL 데이터웨어 하우스

Microsoft Azure SQL 데이터웨어 하우스는 Microsoft SQL 엔진과 MPP (대량 병렬 처리)를 사용하여 페타 바이트 규모의 데이터에서 복잡한 쿼리를 빠르게 실행하는 클라우드 기반 데이터웨어 하우스입니다. 간단한 PolyBase T-SQL 쿼리를 사용하여 빅 데이터를 SQL Data Warehouse로 가져온 다음 MPP의 기능을 사용하여 고성능 분석을 실행하여 Azure SQL Data Warehouse를 빅 데이터 솔루션의 핵심 구성 요소로 사용할 수 있습니다.

Azure SQL Data Warehouse는 전 세계 40 개 Azure 지역에서 사용할 수 있지만 지정된웨어 하우스 서버는 단일 지역에만 존재합니다. 필요에 따라 데이터웨어 하우스 성능을 확장 할 수 있지만 실행중인 쿼리는 모두 취소되고 롤백됩니다.

Google BigQuery

Google BigQuery는 GIS 쿼리, 인 메모리 BI 엔진 및 머신 러닝이 내장 된 서버리스, 확장 성이 뛰어나고 비용 효율적인 클라우드 데이터웨어 하우스입니다. BigQuery는 기가 바이트에서 페타 바이트의 데이터에 대해 빠른 SQL 쿼리를 실행하며 공개적으로 참여하는 것이 간단합니다. 또는 귀하의 데이터와 함께 상업적 데이터 세트.

생성시에만 BigQuery 데이터 세트의 지리적 위치를 설정할 수 있습니다. 쿼리에서 참조되는 모든 테이블은 동일한 위치의 데이터 세트에 저장되어야합니다. 이는 외부 데이터 세트 및 스토리지 버킷에도 적용됩니다. 외부 Google Cloud Bigtable 데이터의 위치에 대한 추가 제한이 있습니다. 기본적으로 쿼리는 데이터와 동일한 지역에서 실행됩니다.

위치는 북부 버지니아와 같은 특정 장소이거나 EU 또는 미국과 같은 넓은 지역 일 수 있습니다. BigQuery 데이터 세트를 한 지역에서 다른 지역으로 이동하려면 데이터 세트와 동일한 위치에있는 Google Cloud Storage 버킷으로 내보내고 버킷을 새 위치에 복사 한 다음 새 위치의 BigQuery에로드해야합니다.

눈송이 아키텍처

Snowflake는 컴퓨팅 요구 사항에 대해 가상 컴퓨팅 인스턴스를 사용하고 데이터의 영구 저장을 위해 스토리지 서비스를 사용합니다. Snowflake는 프라이빗 클라우드 인프라 (온 프레미스 또는 호스팅)에서 실행할 수 없습니다.

수행 할 설치 및 구성이 없습니다. 모든 유지 관리 및 조정은 Snowflake에서 처리합니다.

Snowflake는 데이터웨어 하우스의 모든 컴퓨팅 노드에서 액세스 할 수있는 영구 데이터에 중앙 데이터 저장소를 사용합니다. 동시에 Snowflake는 클러스터의 각 노드가 전체 데이터 세트의 일부를 로컬에 저장하는 MPP (대량 병렬 처리) 컴퓨팅 클러스터를 사용하여 쿼리를 처리합니다.

데이터가 Snowflake에로드되면 Snowflake는 해당 데이터를 내부 압축 된 열 형식으로 재구성합니다. 내부 데이터 개체는 SQL 쿼리를 통해서만 액세스 할 수 있습니다. 웹 UI, CLI (SnowSQL), Tableau와 같은 응용 프로그램의 ODBC 및 JDBC 드라이버, 프로그래밍 언어 용 기본 커넥터, BI 및 ETL 도구 용 타사 커넥터를 통해 Snowflake에 연결할 수 있습니다.

눈송이

눈송이 기능

보안 및 데이터 보호. Snowflake에서 제공하는 보안 기능은 에디션에 따라 다릅니다. Standard Edition조차도 모든 데이터의 자동 암호화를 제공하고 다단계 인증 및 Single Sign-On을 지원합니다. Enterprise 추가는 암호화 된 데이터의주기적인 재 입력을 추가하고 Enterprise for Sensitive Data 에디션은 HIPAA 및 PCI DSS에 대한 지원을 추가합니다. EU GDPR 규정을 준수하는 데 도움이되는 데이터 저장 위치를 ​​선택할 수 있습니다.

표준 및 확장 SQL 지원. Snowflake는 SQL : 1999에 정의 된 대부분의 DDL 및 DML과 트랜잭션, 일부 고급 SQL 기능 및 SQL : 2003 분석 확장의 일부 (윈도우 기능 및 그룹화 집합)를 지원합니다. 또한 측면 및 구체화 된 뷰, 집계 함수, 저장 프로 시저 및 사용자 정의 함수를 지원합니다.

도구 및 인터페이스. 특히 Snowflake를 사용하면 GUI 또는 명령 줄에서 가상웨어 하우스를 제어 할 수 있습니다. 여기에는 창고 생성, 크기 조정 (다운 타임 없음), 일시 중단 및 삭제가 포함됩니다. 쿼리가 실행되는 동안웨어 하우스의 크기를 조정하는 것은 특히 시간이 너무 많이 걸리는 쿼리의 속도를 높여야하는 경우 매우 편리합니다. 내가 아는 한 다른 EDW 소프트웨어에서는 구현되지 않았습니다.

연결 Snowflake에는 Python, Spark, Node.js, Go, .Net, JDBC, ODBC 및 GitHub에서 유지 관리되는 오픈 소스 dplyr 패키지 확장 인 dplyr-snowflakedb 용 커넥터 및 / 또는 드라이버가 있습니다.

데이터 가져 오기 및 내보내기. Snowflake는 다양한 데이터 및 파일 형식을로드 할 수 있습니다. 여기에는 압축 파일이 포함됩니다. 구분 된 데이터 파일; JSON, Avro, ORC, Parquet 및 XML 형식 Amazon S3 데이터 소스; 및 로컬 파일. 테이블에 대한 대량로드 및 언로드는 물론 파일에서 연속적인 대량로드를 수행 할 수 있습니다.

데이터 공유. Snowflake는 다른 Snowflake 계정과 안전하게 데이터를 공유 할 수 있도록 지원합니다. 이는 무 복사 테이블 클론을 사용하여 간소화됩니다.

눈송이

Snowflake 튜토리얼

Snowflake는 꽤 많은 튜토리얼과 비디오를 제공합니다. 일부는 시작하는 데 도움이되고 일부는 특정 주제를 탐색하며 일부는 기능을 보여줍니다.

Snowflake 무료 평가판에 대한 실습 랩 가이드에 설명 된 실습 개요를 살펴 보는 것이 좋습니다.) 1 시간도 걸리지 않았고 비용도 5 크레딧도 채되지 않았습니다. 이로 인해 무료 평가판에 또 다른 195 크레딧이 남았으며 실제 데이터를 가져오고 쿼리를 테스트하기에 충분할 것입니다.

이 자습서에서는 웹 UI 내에서 명령과 SQL을 편리하게 실행하는 방법 인 Snowflake 워크 시트를 많이 사용합니다. 특히 데이터 로딩을 다룹니다. 쿼리, 결과 캐싱 및 복제; 반 구조화 된 데이터; 데이터베이스 개체 복원을위한 시간 여행.

전반적으로 Snowflake가 매우 인상적입니다. 투박 할 것이라고 예상했지만 전혀 그렇지 않습니다. 실제로 많은 데이터웨어 하우스 작업이 예상보다 훨씬 빠르게 진행되며, 크롤링하는 것처럼 보이는 경우 발생하는 상황을 중단하지 않고 데이터웨어 하우스에 개입하고 업 사이징 할 수 있습니다.

대부분의 확장을 자동화 할 수 있습니다. 데이터웨어 하우스를 만들 때 (위의 스크린 샷 참조) 여러 클러스터를 허용하는 옵션, 확장 정책을 설정하는 옵션, 자동 일시 중지 옵션 및 자동 재개 옵션이 있습니다. 기본 자동 일시 중지 기간은 10 분이며,이 기간보다 오래 유휴 상태 일 때웨어 하우스가 리소스를 소비하지 않도록합니다. 자동 재개는 거의 즉각적이며웨어 하우스에 대한 쿼리가있을 때마다 발생합니다.

Snowflake는 $ 400 크레딧으로 30 일 무료 평가판을 제공하고 아무것도 설치할 필요가 없으므로 Snowflake가 현금 지출없이 귀하의 목적에 적합한 지 여부를 결정할 수 있어야합니다. 나는 그것을 돌려주는 것이 좋습니다.

비용 : 크레딧 2 달러 + TB / 월 스토리지 23 달러, 표준 요금제, 선불 스토리지. 1 크레딧은 1 노드 * 시간과 같으며 초 단위로 청구됩니다. 더 높은 수준의 계획은 더 비쌉니다.

플랫폼 : Amazon Web Services, Microsoft Azure