Build a no-code ML workflow with Snowflake, Amazon SageMaker Canvas and Amazon Quick – Part 2: Data preparation and model building with Amazon SageMaker Canvas
Quick Summary
Snowflake의 사기 거래 데이터를 Amazon SageMaker Canvas에 직접 연결해 시각적으로 준비·보강·검증한 뒤, 민감 열을 제거하고 XGBoost 기반 사기 탐지 모델 생성 단계로 내보내는 노코드 머신러닝 절차를 설명한다.
🖼️ 인포그래픽

🖼️ 4컷 인포그래픽

💡 한 줄 요약
Snowflake의 사기 거래 데이터를 Amazon SageMaker Canvas에 직접 연결해 시각적으로 준비·보강·검증한 뒤, 민감 열을 제거하고 XGBoost 기반 사기 탐지 모델 생성 단계로 내보내는 노코드 머신러닝 절차를 설명한다.
📌 핵심 요약
- 1부에서 구축한 Snowflake 환경과 계정 자격 증명 및 연결 정보가 이번 절차의 필수 선행 조건이다.
- Amazon SageMaker 도메인과 사용자 프로필을 빠른 설정으로 만든 뒤 Canvas를 열고, Data Wrangler에서 Snowflake 연결을 추가한다.
- 카드·거래 범주별 평균 금액과 모집단 표준편차를 이용한 이상치 기준 및 사기 이력을 계산하고, 별도 쿼리로 시간·요일·연령대·가맹점 수준 특성을 보강한다.
- 두 Snowflake 데이터 원본을 왼쪽 외부 조인한 후 거래 금액의 카드별·가맹점별 이상 여부를 나타내는 열을 만들고, 카드 번호와 가맹점명 등 민감하거나 불필요한 열을 제거한다.
- 데이터 품질 및 인사이트 보고서로 누수·불균형·중복·이상 표본·특성 중요도 등을 점검한 다음 최종 변환 결과를 모델 생성 화면으로 내보내며, 제공된 원문은 빌드 화면이 열리는 지점에서 끝난다.
🧩 주요 포인트
- Snowflake 직접 연결 → 수동 내보내기 없이 최신 데이터에 접근하면서 데이터 이동 부담과 관리 단계를 줄인다.
- 카드·범주 및 가맹점 기준의 통계적 임계값 생성 → 단순 거래 금액을 평소 행동에서 벗어난 정도를 나타내는 탐지 신호로 바꾼다.
- 모델 생성 전 품질 보고서 실행 → 목표 누수, 클래스 불균형, 중복 행과 낮은 예측력을 조기에 확인하도록 검증 단계를 배치한다.
🧠 상세 정리
1. 워크플로의 목적과 선행 조건
이 글은 1부에서 구성한 Snowflake 데이터베이스 환경을 바탕으로, Amazon SageMaker Canvas에서 데이터 준비와 모델 생성을 수행하는 두 번째 단계의 절차를 다룬다. 목표는 Snowflake의 사기 거래 데이터에 직접 연결하고, Data Wrangler의 시각적 변환 기능으로 데이터를 가공한 뒤 XGBoost 알고리즘을 사용하는 사기 탐지 모델 생성 단계로 이어가는 것이다. Canvas는 비즈니스 분석가와 도메인 전문가가 코드 없이 데이터 준비, 모델 학습, 예측 생성을 수행하도록 설계된 시각적 머신러닝 서비스로 소개된다. 조직 차원에서는 머신러닝 접근성을 넓히면서도 보안과 거버넌스를 유지하는 것이 이 통합 환경의 핵심 취지다. 절차를 시작하려면 1부를 먼저 완료해야 하며, 그 과정에서 마련한 Snowflake 계정 자격 증명과 연결 정보를 그대로 사용해야 한다.
2. SageMaker 도메인과 Canvas 작업 공간 구성
먼저 관리 콘솔에서 Amazon SageMaker Canvas를 찾아 진입한 뒤, 왼쪽의 환경 구성 영역에서 도메인을 생성한다. 도메인은 사용자 프로필, 스토리지 구성, 보안 설정을 포함하는 SageMaker 환경의 기본 조직 단위이며, 팀 협업과 데이터 거버넌스를 위한 격리된 리소스와 접근 통제를 제공한다. 원문은 도메인 생성 시 단일 사용자용 빠른 설정을 선택해 도메인과 사용자 프로필을 자동으로 함께 만들도록 안내한다. 생성이 끝나면 왼쪽 메뉴에서 Canvas를 선택하고 해당 도메인과 사용자 프로필을 지정한 다음 작업 공간을 연다. Canvas 작업 공간을 준비하는 데에는 약 3~5분이 걸릴 수 있으며, 준비가 끝난 뒤 Data Wrangler를 이용한 실제 데이터 작업으로 이동한다.
3. Snowflake 연결과 카드별 기준 데이터 생성
Canvas의 Data Wrangler에서 가져오기 및 준비 기능을 선택하고, 구조화된 데이터 처리를 위해 표 형식 데이터셋을 지정한다. 데이터 원본으로 Snowflake를 선택해 새 연결을 추가하며, 연결 이름과 함께 Snowflake 조직 값과 계정 식별자를 하이픈으로 결합한 계정 ID, 사용자 이름, 비밀번호를 입력한다. 직접 연결 방식은 데이터를 수동으로 내보내는 과정을 피하고 Snowflake 인스턴스의 최신 데이터에 Canvas 안에서 접근하도록 한다. 첫 번째 SQL은 2020년 12월 1일 이전 거래를 카드 번호와 거래 범주별로 묶고, 평균 거래 금액에 모집단 표준편차의 세 배를 더해 카드 수준 이상치 기준을 계산한다. 같은 집계에서 사기 거래 합계가 1보다 크면 사기 이력 값을 1로 만들며, SQL을 실행해 결과를 미리 본 다음 Canvas 작업 공간으로 가져온다.
4. 거래·인구통계·가맹점 특성 보강
첫 번째 데이터 원본을 가져온 뒤 데이터 흐름 화면에서 표 형식 데이터를 하나 더 추가하고, 앞서 만든 Snowflake 연결을 다시 사용한다. 두 번째 SQL은 개별 거래를 중심으로 가맹점, 카드 번호, 주, 성별, 거래 범주, 사기 여부와 거래 금액을 불러온다. 거래 시각에서는 시간대를 H 접두사가 붙은 값으로, 요일을 D 접두사가 붙은 값으로 만들며, 생년월일과 거래일의 차이를 이용해 연령을 5년 단위 범주로 변환한다. 또한 2020년 12월 1일 이전의 가맹점별 거래를 집계해 평균 금액에 모집단 표준편차의 세 배를 더한 가맹점 이상치 기준을 구하고, 사기 합계가 1보다 큰지에 따라 가맹점 사기 이력을 만든다. 이 집계 결과는 가맹점 열을 기준으로 거래 데이터에 왼쪽 조인되며, 실행 결과를 확인한 뒤 두 번째 데이터 원본으로 가져온다.
5. 두 데이터 원본의 결합
데이터 흐름에는 Snowflake에서 가져온 두 데이터 원본이 표시되며, 첫 번째 원본의 추가 메뉴에서 데이터 결합과 조인을 차례로 선택한다. 오른쪽 패널에서 두 번째 원본을 결합 대상으로 지정하고, 조인 유형은 왼쪽 외부 조인으로 설정한다. 원문이 안내하는 조인 키는 양쪽 데이터의 Category 열이며, 이를 통해 카드·범주 수준으로 계산한 기준 데이터와 거래·가맹점 수준으로 보강한 데이터를 하나의 흐름으로 묶는다. 조인 설정 후에는 미리보기 기능으로 결합 결과를 확인하고, 문제가 없으면 추가를 선택해 데이터 흐름에 반영한다. 이 단계의 결과는 이후 사용자 지정 수식으로 이상치 플래그를 만들고 불필요한 열을 제거하는 최종 변환의 입력이 된다.
6. 이상치 플래그 생성과 민감 열 제거
결합 노드에 변환을 추가한 뒤 사용자 지정 수식을 선택하면 Spark SQL 표현식으로 새 열을 만들 수 있다. 거래 금액 AMT가 카드별 이상치 기준 AMT_OUTLIER보다 크면 1, 그렇지 않으면 0을 반환하는 수식을 적용해 CC_FLAG 열을 생성한다. 같은 방식으로 거래 금액이 가맹점별 기준 MERCHANT_AMT_OUTLIER보다 큰지를 나타내는 MERCHANT_AMT_FLAG 열도 추가한다. 이어서 열 관리의 열 삭제 변환을 사용해 CC_NUM, AMT_OUTLIER, MERCHANT, MERCHANT_AMT_OUTLIER를 데이터셋에서 제거한다. 원문은 카드 번호와 가맹점명, 카드나 가맹점에 연결된 이상치 금액처럼 민감하거나 식별 가능성이 있는 정보를 모델에서 배제하기 위한 조치라고 설명하며, 최종 데이터에는 원시 식별자 대신 계산된 이상 여부 신호가 남는다.
7. 데이터 품질과 빠른 모델 분석
데이터 준비가 끝나면 분석 탭에서 데이터 품질 및 인사이트 보고서를 생성해 데이터의 상태와 잠재적 문제를 점검한다. 목표 열은 예측 대상인 IS_FRAUD로 지정하고 문제 유형은 분류로 선택하며, 데이터 크기는 표본 데이터셋 설정을 유지한다. 보고서에는 데이터의 빠른 요약, 특성 요약, 중복 행, 이상 표본을 비롯한 여러 진단 결과가 포함되고, 목표 누수나 클래스 불균형과 같은 일반적인 문제를 조기에 찾는 데 사용된다. 빠른 모델 영역에서는 학습 데이터와 검증 데이터의 정확도 지표 및 혼동 행렬을 확인할 수 있으며, 데이터 엔지니어링 변경이 모델 품질에 어떤 차이를 만드는지 관찰하는 기준으로 활용된다. 특성 요약에서는 특성 중요도를 볼 수 있고, 원문은 예측력이 낮은 특성이 있다면 삭제를 고려할 수 있다고 설명한다.
8. 최종 데이터의 모델 생성 단계 내보내기
품질 분석까지 마치면 두 데이터 원본의 결합, 새 특성 생성, 불필요한 열 제거와 잠재 정확도 검토가 완료된 상태가 된다. 모델 생성을 시작하려면 데이터 흐름 탭으로 돌아가 최종 변환 노드 옆의 추가 메뉴에서 모델 생성을 선택한다. 이어서 설명 가능한 모델 이름을 입력하고 내보내기 및 모델 생성을 실행하며, Canvas가 전체 데이터셋을 실시간으로 처리하므로 내보내기에 몇 분이 걸릴 수 있다. 글의 도입부는 이 워크플로가 XGBoost 알고리즘으로 사기 탐지 모델을 구축한다고 명시하지만, 제공된 source_body는 내보내기 후 빌드 화면이 열린다는 문장 중간에서 끝난다. 따라서 실제 빌드 옵션, 학습 완료 결과, 최종 성능 수치나 예측 실행 과정은 제공된 원문 범위만으로 확인할 수 없다.
🧾 핵심 주장 / 시사점
- 데이터 연결부터 변환·분석·모델 생성까지 하나의 시각적 환경에 배치해, 코드를 직접 작성하지 않는 업무 전문가도 머신러닝 준비 과정에 참여하도록 설계했다.
- 카드·거래 범주 수준과 가맹점 수준의 기준을 각각 계산함으로써 동일한 거래 금액을 카드 소유자의 평소 행동과 가맹점의 일반적 거래 패턴이라는 두 관점에서 표현한다.
- 민감한 식별 열을 모델 생성 전에 제거하고 품질 보고서를 내보내기 전에 실행하므로, 데이터 거버넌스와 모델 품질 검토가 별도 사후 작업이 아니라 준비 흐름 안에 포함된다.
✅ 액션 아이템
- Snowflake 연결 정보와 계정 자격 증명을 먼저 점검하고, Amazon SageMaker Canvas의 Data Wrangler에서 최신 사기 거래 데이터를 직접 연결하는 범위를 정한다.
- 카드·거래 범주별 평균 금액과 모집단 표준편차로 만든 이상치 기준에 카드별·가맹점별 이상 여부 열을 반영하고, 사기 이력 특성을 보강한다.
- 왼쪽 외부 조인 뒤 카드 번호와 가맹점명 등 민감하거나 불필요한 열을 제거하고, 데이터 품질 및 인사이트 보고서에서 누수·불균형·중복을 점검한다.
❓ 열린 질문
- Snowflake의 두 데이터 원본을 왼쪽 외부 조인할 때 카드별·가맹점별 이상 여부 열이 사기 탐지 신호를 충분히 설명하는 기준은 무엇인가?
- 데이터 품질 및 인사이트 보고서에서 목표 누수·클래스 불균형·중복 행이 발견되면 최종 변환 결과를 모델 생성 화면으로 내보내도 가능한가?
- Amazon SageMaker Canvas에서 시간·요일·연령대·가맹점 수준 특성을 보강한 뒤 XGBoost 기반 사기 탐지 모델의 예측력을 판단할 기준은 무엇인가?