Immersion In Data

Snowflake 23

[Snowflake] Snowflake World Tour Seoul 2025 참관 후기

9월 9일에 진행되었던 Snowflake World Tour Seoul 2025에 참석한 후기를 작성합니다. 듣고 싶은 여러 세션들이 있었지만, 동시에 진행되어 몇 가지 선택해서 듣고온 5가지 세션들에 대해서 듣고온 내용 공유합니다. 1. 데이터 파이프라인Snowflake SE분들이 발표해주신 세션의 핵심은 'Zero Ops'였습니다. 데이터 엔지니어가 서버 튜닝, 인프라 관리 같은 운영 부담에서 벗어나, 진짜 비즈니스 가치를 만드는 로직 개발에만 집중해야 한다는 뜻입니다. SQL 사용자: Dynamic Tables 라는 기능을 통해 최종적으로 원하는 모양의 데이터를 SQL로 선언만 하면, 중간 데이터 흐름과 업데이트 관리는 Snowflake가 전부 알아서 처리합니다.Python 사용자: Snowpar..

Snowflake 2025.11.04

[Snowflake] MSSQL에서 Snowflake까지, CDC 파이프라인 구축

MSSQL의 데이터를 Snowflake로 실시간 동기화를 구축할 수 있는 방법을 공유합니다.MSSQL의 변경 데이터를 실시간으로 Snowflake에 반영할 수 있는가?기존 파이프라인보다 더 빠른 성능을 보여줄 수 있는가?데이터를 다른 계정(Snowflake)과 간편하게 공유할 수 있는가?결론부터 말씀드리면, "전부 가능했습니다." 이 글에서는 저희가 구축한 아키텍처부터 성능 테스트 결과, 그리고 Snowflake의 데이터 공유까지 전 과정을 공유합니다. 1. 아키텍처: AWS DMS와 Snowflake의 조합저희는 "MSSQL → S3 → Snowflake"로 이어지는 실시간 CDC(Change Data Capture) 파이프라인을 구축했습니다. 전체 흐름은 4단계로 자동화됩니다.1단계: 변경 데이터 ..

Snowflake 2025.11.04

[Snowflake] Container 기반 Notebook에 패키지 임포트시 오류 해결

Snowflake의 컨테이너 런타임(SPCS) 기반 노트북은 AI/ML 워크로드를 위해 강력한 CPU/GPU 리소스에 접근할 수 있게 해주는 훌륭한 기능입니다. 하지만 표준 노트북 환경과 달리, 이 컨테이너 환경에서 Python 패키지를 설치하는 것은 몇 가지 독특한 제약 사항과 절차를 따릅니다. 컨테이너 노트북에서 패키지를 설치할 때 겪을 수 있는 오류와 그 해결 과정을 공유합니다. ML 모델링을 위해 numpy와 snowflake-ml-python을 설치중 오류 발생ML 모델을 만들기 위해 컨테이너 런타임 노트북을 생성 후 ML에 필요한 numpy, pandas, scikit_learn, snowflake-ml-python 등의 .whl 파일을 Snowflake Stage에 업로드한 뒤, 'Stag..

Snowflake 2025.11.04

[Snowflake] Snowflake Features & Architecture

1. What is Snowflake? Data Platform Data Warehouse 구조화 & 관계형 데이터 ANSI 표준 SQL 지원 ACID를 준수한 트랜잭션 데이터는 데이터베이스, 스키마, 테이블에 저장 Data Lake 확장 가능한 스토리지 및 컴퓨팅 스키마를 미리 정의할 필요 없음 반구조 데이터 형식의 기본 처리 Data Engineering COPY INTO, Snowpipe 컴퓨팅 클러스터 분리 Task, Stream 모든 데이터는 암호화되어 있음 Data Science 중앙 집중식 스토리지로 데이터 관리의 장애물을 제거 Snowflake의 데이터 과학 파트너 도구 사용 가능(Amazon SageMaker, DataRobot, Dataiku) Data Sharing 데이터 공유 보안 ..

[Snowflake] Visualization - Power BI & Tableau

1. Power BI Power BI 홈페이지 접속 https://powerbi.microsoft.com/ko-kr/ 데이터 시각화 | Microsoft Power BI 데이터를 즉각적인 영향력으로 전환 단일 정보 소스를 생성하고, 더 강력한 인사이트를 발견하고, 이를 통해 영향력을 줄 수 있는 엔드 투 엔드 BI 플랫폼을 사용하면 적은 비용으로 더 많은 작 powerbi.microsoft.com Power BI Desktop 선택 다운로드 또는 언어 옵션 보기 선택 설치 파일 다운로드 Power BI 설치 Power BI - Snowflake 연결 2. Tableau Tableau 홈페이지 접속 https://www.tableau.com/products/desktop/download Thanks for..

[Snowflake] Access Management

1. Key concepts Snowflake의 객체에 액세스하고 작업을 수행할 수 있는 사람을 정의함 액세스 제어의 두 가지 측면이 결합됨 DAC(임의 접근 제어) : 각 개체에는 해당 개체에 대한 액세스 권한을 부여할 수 있는 소유자가 있음 RBAC(역할 기반 액세스 제어) : 액세스 권한은 역할에 할당되고, 역할은 사용자에게 할당됨 Securable object Snowflake roles Key concepts USER : 사람 또는 시스템 ROLE : 권한이 부여되는 엔터티(역할 계층) PRIVILEGE : 개체에 대한 액세스 레벨 (SELECT, DROP, CREATE 등) SECURABLE OBJCET : 권한을 부여할 수 있는 개체(데이터베이스, 테이블, 웨어하우스 등) 2. Roles o..

[Snowflake] Dynamic Data Masking

1. Understanding data masking 일부 사용자에게 일부 데이터를 보이지 않도록 설정하는 보안기능 2. Creating a masking policy 데이터베이스 변경 USE DEMO_DB; role 변경 USE ROLE ACCOUNTADMIN; 테이블 생성 create or replace table customers( id number, full_name varchar, email varchar, phone varchar, spent number, create_date DATE DEFAULT CURRENT_DATE); 데이터 삽입 insert into customers (id, full_name, email,phone,spent) values (1,'Lewiss MacDwyer','l..

[Snowflake] Materialized Views

1. Understand materialized 자주 쿼리되고, 처리해야할 시간이 긴 view를 가진 경우(사용자는 안좋은 경험을 갖게됨, 더 많은 컴퓨팅 리소스가 소비됨) materialized view를 만들기 위해 SELECT문을 사용 결과는 별도의 테이블에 저장되며, 기본 테이블에 따라 자동으로 업데이트됨 2. Using materialized views 일반 select문과 view와 materialized view를 비교하는데 공정한 환경을 만들기 위해 글로벌 캐싱 제거 ALTER SESSION SET USE_CACHED_RESULT=FALSE; -- disable global caching ALTER warehouse compute_wh suspend; ALTER warehouse compu..

[Snowflake] Streams

1. Understanding streams 소스 테이블에 변경 사항을 캡쳐하여 2. INSERT operation 일시 데이터베이스 생성 CREATE OR REPLACE TRANSIENT DATABASE STREAMS_DB; 소스 테이블 생성 create or replace table sales_raw_staging( id varchar, product varchar, price varchar, amount varchar, store_id varchar); 소스 테이블에 데이터 삽입 insert into sales_raw_staging values (1,'Banana',1.99,1,1), (2,'Lemon',0.99,1,1), (3,'Apple',1.79,1,2), (4,'Orange Juice',1...

[Snowflake] Scheduling Tasks

1. Understanding tasks task를 사용하여 SQL문을 스케줄링할 수 있음 독립실행형 task와 task 트리 2. Creating tasks 일시 데이터베이스 생성 CREATE OR REPLACE TRANSIENT DATABASE TASK_DB; 테이블 생성 CREATE OR REPLACE TABLE CUSTOMERS ( CUSTOMER_ID INT AUTOINCREMENT START = 1 INCREMENT =1, FIRST_NAME VARCHAR(40) DEFAULT 'JENNIFER' , CREATE_DATE DATE); task 생성 (분 단위로만 설정 가능) CREATE OR REPLACE TASK CUSTOMER_INSERT WAREHOUSE = COMPUTE_WH SCHED..