
Data Sharing, Marketplace를 제공한다. 
SQL 기반으로 빅데이터 저장, 처리, 분석이 가능하며 비구조화된 데이터 처리도 가능하다.CVS, JSON, Avro, Parquet 등과 같은 다양한 데이터 포맷을 지원한다.Time Travel 기능이 있다.Worksheet라는 웹 에디터를 제공하며 이 안에서 SQL 및 Python API를 통한 관리, 제어가 가능하고, ODBC와 JDBC도 지원한다.snowflake를 많이 사용한다.snowflake는 사용하기 쉽고 고객 지원 서비스가 잘 되어 있다.snowflake 계정 구성도가 Organization -> 1 + Account -> 1 + Databases 일반적으로 이렇지만 유연성이 있기 때문에 큰 기업이라면 Organization부터 중소 기업이라면 Account부터 데이터베이스를 구성할 수 있다.
Organization
snowflake 자원들을 통합하는 최상위 레벨의 컨테이너Account들로 구성되며 Account들의 접근 권한, 사용 트래킹, 비용들을 관리하는 데 사용Account
Account는 자체 사용자, 데이터, 접근 권한을 독립적으로 가짐Account는 하나 혹은 그 이상의 Database로 구성Databases
Database는 한 Account에 속한 데이터를 다루는 논리적인 컨테이너Database가 PB 단위까지 스케일 가능하며 독립적인 컴퓨팅 리소스를 가지게 되는데 이 컴퓨팅 리소스를 웨어하우스(Warehouse)라고 부르며 웨어하우스(Warehouse)와 Database는 일대일 관계는 아님 
Data Sharing은 데이터 셋을 사내 혹은 파트너에게 스토리지 레벨에서 공유하는 방식을 말한다.Data Sharing의 기능을 사용하여 내가 가지고 있는 데이터를 무료 혹은 유료로 다른 사람에게 거래하는 것이 Data Marketplace이다. ✔ 지원해 주는 데이터 타입이 Redshift와 비교했을 때 더 강력하다.
✔ Array를 지원한다는 것은 Nested Structure를 처리할 수 있다는 것을 의미한다.
❄️ [Snowflake] 1. Snowflake 시작 - 실습 포스팅
❄️ [Snowflake] 2. Snowflake 초기 환경 설정 및 벌크 업데이트 - 실습 포스팅
그룹(Group)은 오래된 기술 중 하나이다. Snowflake는 그룹(Group)을 지원하지 않는다. 하지만 AWS는 이전에 시작했다 보니 호환성 레거시 이슈 때문에 사용자 그룹(Group)을 없앨 수는 없어 그대로 두되 역할(Role)을 추가해 주었다.그룹(Group)과 역할(Role)은 매우 흡사하나 역할(Role)은 계승이 가능하다.Redshift에서는 그룹(Group)을 통해 실습해 주었는데 이번 Snowflake에서는 역할(Role)을 통해 권한 설정 실습을 해 주었다.❄️ [Snowflake] 3. Snowflake 사용자 권한 설정
Data Governance라고 함.Object Tagging, Data Classification, Tag based Masking Policies, Access History, Object Dependencies이 있는데 Snowflake의 Enterprise에서 쓸 수 있는 기능이다.Object(Database, Schema, Table, View 등)에 태그를 붙일 수 있는 기능을 말한다.CREATE TAG를 통해 생성 가능하며 해당 TAG는 모든 구조에 따라 계승이 가능하다.TAGGING하려는 목적이 크다.Object Tagging이 개인 정보 관리를 위해 사용하기는 하지만 매뉴얼하게 관리하기가 쉽지 않아 이 문제를 해결하기 위해 Data Classification을 사용한다.시스템 태그(System Tag)로 적용한다. 이때 두 개의 카테고리가 존재한다.PRIVACY_CATEGORY: 상위 레벨 (IDENTIFIER 개인 정보 개인 식별자, QUASI_IDENTIFIER 유일하게 개인을 식별할 수 있는 ID는 아니지만 이런 식별자가 여러 개가 모이면 개인을 지칭할 수 있어지는 개인 준식별자, SENSITIVE 개인 정보는 아니나 민감한 정보)SEMANTIC_CATEGORY: 하위 레벨로 좀 더 상세한 정보Tag에 액세스 권한을 지정해 주고, 이런 개인 정보 같은 Tag가 붙은 Object에 누가 접근할 수 있는지에 대한 권한을 부여해 주는 것을 말한다.Access History를 통해 추적된 활동에 대해 알림을 보내 주기도 한다.Data Governance와 시스템 무결성 유지를 목적으로 한다.Object Dependencies는 이로 인해 발생하는 영향을 자동으로 식별해 준다.snowflake는 데이터 웨어하우스 내에서 이 기능을 제공한다.
Marketplace를 선택해 주면 Marketplace가 나온다.Snowflake를 사용하는 회사들이 많다 보니 해당 회사들이 외부 데이터 소스를 쉽게 연동할 수 있는 plugin과 같은 기능을 제공한다.Stripe Data Pipeline의 경우 구매 기록을 Stripe에 남길 때 해당 파이프라인을 데이터 엔지니어가 작성하게 되는데 패턴이 워낙 많고 작성하는 데 걸리는 시간이 있다 보니 다음과 같이 Marketplace에서 해당 Stripe Data Pipeline을 클릭해 주어 configuration set up을 해 주면 그 회사의 파이프라인, 트랜잭션들이 스키마 밑에 테이블들로 복제되어 사용할 수 있게 된다. 
Data-> Private Sharing을 통해 내가 공유한 데이터와 공유받은 데이터들을 볼 수 있다.Account와 공유하고 싶을 때는 우측 상단에 있는 Share 버튼을 눌러 공유할 수 있다.
Activity -> Query/Copy/Task History를 선택해 확인할 수 있다.Query History란 SELECT, DELETE, UPDATE 등과 같은 SQL 쿼리문에 대한 로그 기록이 남는 것이고, 다음과 같이 STATUS라고 해당 SQL 쿼리문이 성공했는지, 실패했는지에 대한 로그도 남게 된다.Copy History란 COPY 명령어를 통해 벌크 업데이트를 했을 때의 기록이 남는다.TasK History는 특정한 SQL을 내가 주기적으로 실행해 주는 것을 TASK라고 하고 이것에 대한 History 기록을 보여 주는 것이다.Access History와 Query History의 차이는 Query History는 단순하게 쿼리문에 대한 기록만 남지만 Access History는 더 상세하게 어떤 테이블에 어떤 컬럼이 접근돼 있었고, 그 컬럼의 특성까지 자세하게 기록한 것이다.snowflake 관련이라 학습한 내용에 기재되어 있다.