본문 바로가기

전체 글49

Google BigQuery vs Snowflake 종합 비교 클라우드 데이터 웨어하우스란?최근 기업들은 데이터를 한 곳에 모아 분석하고, 실시간 처리·머신러닝까지 한 번에 진행하기 위해 클라우드 데이터 웨어하우스를 적극 도입하고 있습니다.대표적인 솔루션이 바로 Snowflake와 Google BigQuery입니다.Snowflake 개요특징: 스토리지와 컴퓨팅을 완전히 분리한 구조, 멀티클러스터 아키텍처, 클라우드 벤더에 종속되지 않는 클라우드 아그노스틱 설계주요 기능가상 웨어하우스(Virtual Warehouse): 독립적인 MPP 클러스터로, 워크로드에 맞춰 자유롭게 확장/축소 가능Time Travel: 특정 시점의 데이터를 조회·복구 가능Secure Data Sharing: 다른 계정과 실시간 데이터 공유 지원장점: 다양한 클라우드 연동, 유연한 스케일링, 복.. 2025. 9. 16.
NDV, 카디널리티, 선택도란 무엇일까? 우리가 데이터베이스에서 데이터를 다룰 때, 자주 듣는 말 중에 NDV, 카디널리티(Cardinality), 선택도(Selectivity)라는 용어가 있어요. 처음 들으면 좀 낯설지만, 쉽게 풀어보면 생각보다 단순한 개념들입니다.이 글에서 이 세 가지 개념을 아주 쉬운 예시로 풀어보겠습니다.1. NDV (Number of Distinct Values) – 서로 다른 값은 몇 개일까?먼저, NDV는 "서로 다른 값의 개수"를 말해요.예를 들어, 다음과 같은 학생 리스트가 있다고 해볼게요:학생 이름좋아하는 과일지훈사과민지바나나준호사과수아포도유나사과 여기서 '좋아하는 과일' 컬럼을 보면 총 5명이 있지만, 실제로는 사과, 바나나, 포도 — 이렇게 서로 다른 과일은 3개예요.이럴 때 NDV는 3이에요.💡 NDV.. 2025. 7. 23.
[snowflake] Snowflake 내에서 SLACK 알림 발송 Notification Integration 생성알림을 보내기 위한 사전 작업입니다.CREATE OR REPLACE NOTIFICATION INTEGRATION noti_slack_webhook_int TYPE=WEBHOOK ENABLED=TRUE WEBHOOK_URL='https://hooks.slack.com/services/T00000000/B0000000000/000000000000000000000000' WEBHOOK_BODY_TEMPLATE='{"text": "SNOWFLAKE_WEBHOOK_MESSAGE"}' WEBHOOK_HEADERS=('Content-Type'='application/json');Slack 알림 테스트프로시저 호출하여 테스트 문구를 발송합니다-- 슬랙 알림 테스.. 2025. 7. 16.
[PostgreSQL] 인덱스를 활용한 효율적인 페이징 처리 페이징처리에 대한 중요성웹이나 백오피스 시스템에서 대량의 데이터를 다룰 때, 사용자에게 데이터를 한번에 모두 보여주기보다는 일정 수량 단위로 나눠서(page 단위로) 제공하는 방식, 즉 페이징(Pagination)이 거의 필수적으로 사용됩니다.하지만 많은 개발자들이 단순 OFFSET 기반 페이징을 사용하고 있고, 이로 인해 다음과 같은 문제가 발생할 수 있습니다:페이지가 뒤로 갈수록 성능이 급격히 저하됨필요 없는 데이터까지 스캔하거나 정렬하면서 리소스 낭비 발생사용자 경험(UX) 측면에서도 응답 지연이 발생OFFSET 방식의 문제점예를 들어 아래와 같은 쿼리가 있다고 가정해봅시다.SELECT * FROM ordersORDER BY created_at DESCOFFSET 10000 LIMIT 20;OFFS.. 2025. 6. 3.
[PostgreSQL] group by 결과를 받아볼 수 있는 함수 SQL로 데이터 분석을 하다보면, 은근히 Group by 집계 쿼리문과 Having 후 필터링 조건문을 사용할 일이 많단 말이죠. 독자분들이 저와 같은 귀차니즘이라면 한 번 사용해보세요.  특히 pk가 논리적 erd로만 표현되어 있고, 물리적으로 생성되지 않아, 중복 데이터 유무를 조회해야 할 때 유용하게 사용 중입니다. ※ 지원 가능한 버전(Supported Versions): Current (17) / 16 / 15 / 14 / 13     1. Create Function함수를 생성합니다.물론 group by문으로 조회할 테이블과 같은 데이터베이스에 생성해야 합니다.group by 컬럼이 1개 이상이므로 jsonb 타입으로 집계처리 합니다.create or replace function public.. 2025. 1. 23.
[snowflake] 현재 날짜 및 시간을 반환하는 함수 개요Snowflake에서 현재 시간을 나타내는 다양한 함수들이 있으며, 각각의 함수는 약간의 차이가 있습니다. 아래는 주요 함수들과 그 차이에 대해 설명한 내용입니다. 1. GETDATE() 설명:GETDATE() 함수는  세션 타임존을 기준으로 현재 날짜와 시간을 반환합니다.즉, ALTER SESSION SET TIMEZONE 명령어로 세션 타임존을 변경하면 그 변경된 타임존을 반영하여 시간이 출력됩니다반환 형식: TIMESTAMP_LTZ (로컬 타임존을 기준으로 한 타임스탬프)특징: Snowflake에서는 기본적으로 타임스탬프가 로컬 타임존을 기준으로 반환됩니다.SELECT GETDATE();  2. SYSDATE() 설명:SYSDATE() 함수도 현재 날짜와 시간을 반환하지만, 시스템의 시간대에 맞.. 2025. 1. 10.
반응형