Amazon Redshift - Materialized View, Data Sharing, Lambda UDF

2026. 7. 3. 11:57·Data Engineering/AWS

들어가며

Amazon Redshift는 단순히 대용량 데이터를 저장하고 분석하는 데이터 웨어하우스를 넘어, 반복적인 조회 성능 향상, 클러스터 간 데이터 공유, 외부 서비스 연동과 같은 다양한 기능을 제공합니다.

 

이번 글에서는 Materialized View, Data Sharing, Lambda UDF를 중심으로 각각의 개념과 활용 방법을 알아보겠습니다.


1. Materialized View란?

https://docs.aws.amazon.com/redshift/latest/dg/materialized-view-overview.html

Materialized View는 SQL 실행 결과를 실제로 저장하는 View입니다.

 

일반 View는 조회할 때마다 SQL을 다시 실행하지만, Materialized View는 미리 계산된 결과를 저장하기 때문에 훨씬 빠르게 조회할 수 있습니다.


2. View는 실제 테이블일까?

처음 View를 접하면 새로운 테이블이 생성되는 것으로 생각하기 쉽습니다. 하지만 View는 데이터를 저장하는 테이블이 아니라 SQL 문장을 저장하는 가상의 테이블(Virtual Table) 입니다.

예를 들어 다음과 같이 View를 생성했다고 가정해보겠습니다.

CREATE VIEW sales_view AS
SELECT customer_name,
       SUM(price) AS total_price
FROM orders
GROUP BY customer_name;

이때 실제로 저장되는 것은 조회 결과가 아니라 위 SQL 문장 자체입니다.

SELECT * FROM sales_view;

를 실행하면 내부적으로는 저장된 SQL을 다시 실행하여 원본 테이블에서 데이터를 조회한 후 결과를 반환합니다.

따라서 원본 테이블의 데이터가 변경되면 View를 다시 생성하지 않아도 항상 최신 결과를 조회할 수 있습니다.

3. View와 Materialized View의 차이

예를 들어 다음과 같은 JOIN이 있다고 가정해보겠습니다.

SELECT customer_name,
       SUM(price)
FROM orders
JOIN customers
ON orders.customer_id = customers.customer_id
GROUP BY customer_name;

3-1) 일반 View

사용자 조회

↓

JOIN 수행

↓

GROUP BY 수행

↓

결과 반환
 

매번 SQL을 다시 수행합니다.

3-2) Materialized View

JOIN 수행

↓

결과 저장

↓

사용자 조회

↓

저장된 결과 반환
 

이미 계산된 결과를 읽기 때문에 조회 속도가 훨씬 빠릅니다.


4. 언제 사용할까?

Materialized View는 반복적으로 실행되는 복잡한 SQL에서 효과적입니다.

예를 들어

  • BI Dashboard
  • QuickSight
  • 일별 매출 조회
  • 월별 통계

처럼 동일한 SQL이 반복 실행되는 경우 많이 사용합니다.

4-1) 장점과 단점

장점 단점
조회 속도가 매우 빠름 저장 공간 사용
복잡한 JOIN 재사용 가능 데이터 변경 시 Refresh 필요
반복 조회 성능 향상 최신 데이터가 아닐 수 있음

5. Materialized View 갱신

Materialized View는 데이터를 저장하기 때문에 원본 테이블이 변경되어도 자동으로 변경되지 않습니다.

Orders

↓

새로운 주문 추가

가 발생하면 Materialized View는 기존결과를 그대로 가지고 있습니다.

5-1) 최신 데이터로 갱신

REFRESH MATERIALIZED VIEW sales_mv;

를 실행합니다. 또는 생성 시

AUTO REFRESH

옵션을 설정하면 자동으로 갱신할 수도 있습니다.

5-1-1) 예시

CREATE MATERIALIZED VIEW sales_mv
AUTO REFRESH YES
AS
SELECT
    customer_name,
    SUM(price) AS total_price
FROM orders
GROUP BY customer_name;

6. Redshift Data Sharing이란?

https://aws.amazon.com/ko/blogs/big-data/announcing-amazon-redshift-data-sharing-preview/

Data Sharing은 데이터를 복사하지 않고 다른 Redshift Cluster 또는 Redshift Serverless에서 동일한 데이터를 조회할 수 있도록 공유하는 기능입니다.

 

기존에는 다른 클러스터에서 동일한 데이터를 사용하려면 COPY나 UNLOAD를 통해 데이터를 복사해야 했습니다. 하지만 Data Sharing을 사용하면 원본 데이터는 한 곳에만 저장되고, 다른 클러스터는 해당 데이터를 실시간으로 조회할 수 있습니다.

 

또한 Consumer는 데이터를 읽기(Read)만 가능하며, 원본 데이터를 수정하거나 삭제할 수 없습니다. 따라서 데이터의 일관성을 유지하면서 여러 팀이나 서비스가 동일한 데이터를 안전하게 사용할 수 있습니다.

 


7. 언제 사용할까?

Data Sharing은 다음과 같은 환경에서 많이 활용됩니다.

  • 개발 서버와 운영 서버 데이터 공유
  • 분석팀과 BI팀 데이터 공유
  • 부서 간 데이터 공유
  • 다른 AWS 계정과 데이터 공유

7-1) 장단점

장점 설명
데이터 복사 불필요 저장 공간 절약
실시간 데이터 조회 최신 데이터 유지
읽기 전용 원본 데이터 보호
권한 관리 가능 필요한 데이터만 공유

8. Lambda UDF란?

UDF(User Defined Function)는 사용자가 직접 정의하여 만드는 함수입니다.

Amazon Redshift에서는 AWS Lambda와 연동하는 Lambda UDF(User Defined Function) 를 제공하여, SQL만으로 처리하기 어려운 작업을 Lambda 함수에서 실행한 후 결과를 다시 SQL로 반환할 수 있습니다.

 

즉, SQL을 실행하는 도중 필요한 작업을 Lambda에 요청하고, Lambda가 처리한 결과를 다시 Redshift가 받아 사용하는 방식입니다.

 

기존 SQL 함수는 문자열 처리나 날짜 계산과 같은 데이터베이스 내부 기능만 사용할 수 있었습니다. 하지만 Lambda UDF를 사용하면 외부 API 호출, AI 모델 활용, 복잡한 데이터 처리 등 데이터베이스 밖에서 수행해야 하는 작업까지 SQL 안에서 사용할 수 있습니다.


9. Lambda UDF 동작 과정

위 이미지는 Redshift에서 SQL을 실행하면 Lambda가 필요한 작업을 대신 수행한 후 결과를 다시 반환하는 과정을 나타냅니다.

먼저 사용자가 Redshift에서 다음과 같은 SQL을 실행합니다.

SELECT translate_text('Hello');

이 SQL은 일반 함수처럼 보이지만, 실제로는 Redshift가 Lambda UDF를 호출합니다.

 

호출된 Lambda 함수는 번역 API나 AI 모델과 같은 외부 서비스를 실행하여 필요한 작업을 수행합니다. 예를 들어 번역 API를 호출하면 Hello를 안녕하세요로 변환한 결과를 반환합니다.

 

이후 Lambda는 처리 결과를 Redshift로 전달하고, Redshift는 이를 SQL 함수의 반환값처럼 사용자에게 보여줍니다.

즉, 사용자는 단순히 SQL만 실행하지만 내부적으로는 Redshift → Lambda → 외부 서비스 → Lambda → Redshift 순서로 작업이 진행됩니다.

 

이러한 구조를 통해 SQL만으로는 수행하기 어려운 외부 API 호출, AI 모델 활용, 복잡한 데이터 처리 등을 데이터베이스 안에서 자연스럽게 사용할 수 있습니다.


 

10. 마치며

이번 글를 정리하며 Redshift는 단순히 데이터를 저장하고 분석하는 데이터 웨어하우스를 넘어, 반복적인 조회를 최적화하고 다양한 환경과 연계할 수 있는 기능을 제공한다는 점을 이해할 수 있었습니다.

 

Materialized View는 복잡한 SQL 결과를 저장하여 반복 조회 성능을 높이고, Data Sharing은 데이터를 복사하지 않고 여러 클러스터에서 동일한 데이터를 안전하게 사용할 수 있도록 지원합니다. 또한 Lambda UDF를 활용하면 SQL만으로 처리하기 어려운 AI 모델 호출이나 외부 API 연동과 같은 기능도 손쉽게 확장할 수 있습니다.

 

이러한 기능들을 적절히 활용하면 Redshift의 분석 성능을 높일 뿐만 아니라 데이터 활용 범위를 더욱 넓힐 수 있습니다.

'Data Engineering > AWS' 카테고리의 다른 글

AWS DMS(Database Migration Service)란  (0) 2026.07.06
Amazon Redshift Data API란  (0) 2026.07.03
Amazon Redshift Serverless란  (0) 2026.07.02
Amazon Redshift - WLM, VACUUM, SQA  (0) 2026.07.02
Amazon Redshift - Distribution Style 이해  (0) 2026.07.02
'Data Engineering/AWS' 카테고리의 다른 글
  • AWS DMS(Database Migration Service)란
  • Amazon Redshift Data API란
  • Amazon Redshift Serverless란
  • Amazon Redshift - WLM, VACUUM, SQA
jjaehyeok
jjaehyeok
jjaehyeok 님의 블로그 입니다.
  • jjaehyeok
    jjaehyeok 님의 블로그
    jjaehyeok
  • 전체
    오늘
    어제
    • 분류 전체보기 (108)
      • Navisafe (15)
        • Infrastructure (13)
        • Data Pipeline (0)
        • Trouble shooting (2)
      • Data Engineering (56)
        • Airflow (11)
        • Kafka (3)
        • Spark (0)
        • ELK (2)
        • Kubernetes (7)
        • AWS (33)
        • Flink (0)
      • CodingTest (31)
        • 문제 풀이(Lv1~Lv2) (21)
        • 문제 풀이(Lv3) (10)
        • SQL (0)
      • 알고리즘 정리 (3)
        • 자료구조 (스택, 큐, 해시) (3)
        • 정렬 & 그리디 (0)
        • DFS & BFS (0)
        • 이분탐색 (0)
        • DP (0)
      • 자격증 (1)
        • CKAD (1)
        • DEA-C01 (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    Airflow
    RDS
    Glue
    AWS
    eks
    Redshift
    elk
    documentdb
    trouble shooting
    batch
    DynamoDB
    CKAD
    ECR
    datasync
    Kafka
    S3
    datatransfer
    DEA-C01
    k8s
    EC2
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.6
jjaehyeok
Amazon Redshift - Materialized View, Data Sharing, Lambda UDF
상단으로

티스토리툴바