Data Agent Kit 및 Antigravity IDE를 사용한 분석

1. 소개

월요일 아침, CFO가 방금 핑을 보냈습니다. 이번 달 평균 주문 금액은 7% 감소했지만 총수익은 변동이 없습니다. 뭔가 맞지 않고 이사회는 금요일까지 답을 원해.

Cymbal Pets는 미국에서 가장 큰 온라인 반려동물용품 소매업체 중 하나입니다. 필요한 데이터가 BigQuery의 트랜잭션 데이터, Cloud SQL의 고객 및 제품 기록, Cloud Storage의 마케팅 파일 등 세 가지 Google Cloud 서비스에 분산되어 있습니다. 일반적으로 이와 같은 교차 서비스 조사를 수행하려면 콘솔 간에 전환하고, 연결 상용구를 작성하고, 결과를 수동으로 연결해야 합니다.

이 Codelab에서는 Antigravity IDE에서 Google Cloud 데이터 에이전트 키트 (DAK)를 사용하여 자연어로 이상치를 조사합니다. 찾고 있는 내용을 설명하면 AI 에이전트가 BigQuery, Cloud SQL, Cloud Storage 전반에서 연결, SQL, 교차 서비스 조인을 처리합니다. 문제를 해결한 후에는 에이전트에게 발견한 내용을 운영화하는 dbt 파이프라인을 구축하고, 실제 데이터 모델링 버그를 디버그하고, 예측 기반 추천을 CFO에게 전달해 달라고 요청합니다.

실습할 내용

  • Knowledge Catalog를 사용하여 BigQuery, Cloud SQL, Cloud Storage 전반에서 데이터 애셋을 검색합니다.
  • MCP 도구를 사용하여 단일 대화에서 여러 서비스를 쿼리하여 이상치 조사
  • 스테이징 모델과 자동화된 테스트를 사용하여 교차 서비스 데이터를 스테이징하고 조인하는 dbt 파이프라인 빌드
  • 에이전트가 팬아웃 버그를 자체 진단하고 리팩터링할 때 데이터 모델링 문제 디버그
  • BigQuery의 AI.FORECAST를 사용하여 미래 추세를 예측하고 데이터 기반 추천 제공

필요한 항목

  • 웹브라우저(예: Chrome)
  • 결제가 사용 설정된 Google Cloud 프로젝트
  • SQL 및 Google Cloud 콘솔에 대한 기본 지식

이 Codelab은 중급 데이터 실무자 (분석 엔지니어, 데이터 분석가, 데이터 과학자)를 대상으로 합니다.

이 Codelab에서 만든 리소스의 비용은 5달러 미만이어야 합니다.

2. 시작하기 전에

이 섹션에서는 주문 데이터가 포함된 BigQuery 데이터 세트, 고객 및 제품 데이터가 포함된 Cloud SQL Postgres 인스턴스, 프로모션 캠페인 레코드가 포함된 Cloud Storage 버킷 등 전체 실습 환경을 프로비저닝하는 설정 스크립트를 실행합니다. 스크립트를 완료하는 데 약 8~10분이 걸리며 Cloud SQL 프로비저닝이 병목 현상입니다.

Cloud Shell 시작

Google Cloud Shell을 사용하여 설정 스크립트를 실행합니다.

  1. Google Cloud 콘솔 상단에서 Cloud Shell 활성화를 클릭합니다.

Cloud Shell 열기

  1. 연결되면 프로젝트 ID를 설정하고 환경을 확인합니다.
gcloud config set project <<YOUR_PROJECT_ID>>
export PROJECT_ID=$(gcloud config get-value project)

다음과 비슷한 메시지가 표시됩니다.

Your active configuration is: [cloudshell-####]
Updated property [core/project]

저장소 클론

코드랩 저장소를 Cloud Shell 환경에 클론합니다.

cd ~/
git clone --filter=blob:none --no-checkout https://github.com/GoogleCloudPlatform/devrel-demos.git
cd ~/devrel-demos
git sparse-checkout init --cone
git sparse-checkout set codelabs/agentic-data-labs
git checkout main
cd codelabs/agentic-data-labs/

설정 스크립트 실행

설정 스크립트는 몇 분 안에 전체 실습 환경을 준비합니다. API 사용 설정, BigQuery 데이터 로드 및 보강, 프로모션 애셋을 GCS에 업로드하는 작업을 처리한 다음, 사용자가 Codelab을 시작하는 동안 백그라운드에서 Cloud SQL Postgres를 프로비저닝하고 구성하는 백그라운드 작업자를 자동으로 생성합니다.

스크립트는 Cloud SQL 비밀번호를 안전하게 자동 생성하고 .env 파일에 자동으로 저장합니다.

cd ~/devrel-demos/codelabs/agentic-data-labs/scripts
chmod +x setup.sh setup_sql.sh
./setup.sh

완료되면 포그라운드 환경의 요약이 표시됩니다.

╔══════════════════════════════════════════════════════╗
║   Base Setup complete!                               ║
╚══════════════════════════════════════════════════════╝

Your core BigQuery and GCS assets are ready.
Cloud SQL is currently provisioning in the background and will be fully ready by Step 4.

  BigQuery:   YOUR_PROJECT_ID.cymbal_pets
              ├── orders
              └── order_items

  GCS:        gs://YOUR_PROJECT_ID-cymbal-pets-raw
              └── promo_events.json

실습의 다음 단계를 진행하는 동안 데이터베이스가 백그라운드에서 프로비저닝되고 시딩됩니다. 다음 명령어를 사용하여 별도의 터미널 패널에서 언제든지 진행 상황을 모니터링할 수 있습니다.

tail -f /tmp/cloudsql_setup.log

데이터 아키텍처를 살펴보세요. 트랜잭션 데이터 (주문 및 주문 항목)는 BigQuery에 상주하고 운영 데이터 (고객, 반려동물 프로필, 제품)는 Cloud SQL에 상주합니다. 이 분할은 실제 조직에서 데이터가 서비스 전반에 분산되는 방식을 반영하며, 서비스 간 조사를 흥미롭게 만드는 요소입니다.

섹션 요약: 설정 스크립트를 실행하여 실습 환경을 부트스트랩하고 백그라운드 데이터베이스 프로비저닝을 시작했습니다.

3. IDE 및 데이터 에이전트 키트 설정

Antigravity IDE 열기

Cloud SQL이 완료될 때까지 기다릴 필요는 없습니다. Antigravity IDE를 열고 Google Cloud 프로젝트에 연결합니다.

  1. 아직 설치하지 않았다면 Google Antigravity 다운로드 페이지에서 Antigravity IDE를 다운로드하여 설치합니다.
  2. Antigravity IDE 데스크톱 애플리케이션을 실행합니다.
  3. 로컬 머신에 빈 새 폴더 (예: agentic-data-labs)를 만들고 폴더 열기를 선택하여 IDE에서 엽니다. 이 폴더는 Codelab의 로컬 작업공간 역할을 합니다.

Antigravity IDE 프로젝트 폴더 구성

데이터 에이전트 키트 확장 프로그램 설치

Google Cloud 데이터 에이전트 키트 확장 프로그램은 편집기 내에서 직접 Google Cloud 데이터 서비스와 긴밀하게 통합되므로 컨텍스트를 전환하지 않고도 BigQuery, Cloud SQL, Cloud Storage 등과 상호작용할 수 있습니다.

  1. Antigravity IDE에서 화면 맨 왼쪽에 있는 작업 표시줄의 확장 프로그램 아이콘 (사각형 4개 모양)을 클릭합니다.
  2. 확장 프로그램 창 상단의 검색창에 Google Cloud Data Agent Kit를 입력합니다.
  3. googlecloudtools에서 게시한 Google Cloud Data Agent Kit이라는 확장 프로그램을 찾습니다.
  4. Install 버튼을 클릭합니다.
  5. '게시자 'googlecloudtools' 및 확장 프로그램을 신뢰하시겠습니까?'라는 메시지가 표시될 수 있습니다. 게시자 신뢰 및 설치를 클릭하여 계속합니다.

데이터 에이전트 키트 확장 프로그램 설치

설치가 완료되면 Antigravity IDE의 맨 왼쪽에 있는 활동 표시줄에 새 Google Cloud Data Agent Kit 아이콘이 표시됩니다.

확장 프로그램 인증 및 구성

설치 후 확장 프로그램을 Google Cloud 프로젝트에 연결합니다.

  1. 'Google Cloud 데이터 에이전트 키트 시작하기'라는 제목의 온보딩 페이지가 자동으로 열립니다. Cloud 계정에 로그인하지 않은 경우 액세스를 허용하라는 메시지에 따라 액세스를 허용합니다.
  2. 구성 요약 섹션에서 프로젝트 필드를 찾습니다. 드롭다운을 클릭하고 Google Cloud 프로젝트를 선택합니다. 리전을 us-central1으로 설정합니다. 그런 다음 MCP 서버 구성을 선택합니다.

Data Agent Kit 확장 프로그램의 초기 구성

  1. MCP 구성 창에서 BigQueryCloud SQL을 사용 설정합니다. 그런 다음 시작하기를 클릭합니다.

MCP 서버 구성

구성 옵션 살펴보기

설정이 완료되면 'Google Cloud Data Agent Kit 시작하기' 페이지로 이동합니다.

  1. '설정 및 구성'에서 시작하기를 클릭합니다.
  2. 그러면 데이터 에이전트 구성 패널이 열립니다. 탭을 살펴봅니다.
    • 프로젝트 및 리전: 선택한 프로젝트 ID를 확인하고 필수 API (Cloud Storage API, BigQuery API, Catalog API, Cloud SQL Admin API)가 사용 설정되어 있는지 확인합니다.
    • BigQuery: BigQuery 쿼리의 기본 위치를 구성합니다. us-central1 리전을 사용합니다.
    • MCP 서버 구성: AI 에이전트가 데이터와 안전하게 상호작용할 수 있도록 지원하는 사용 설정된 MCP 서버 (BigQuery, Notebooks, Cloud SQL 등)를 확인합니다.
    • 기술: 에이전트에게 복잡한 데이터 작업을 위한 전문 기능을 제공하는 사전 빌드된 기술을 살펴봅니다.

데이터 에이전트 설정 패널

섹션 요약: Antigravity IDE를 열고 Google Cloud 프로젝트에 연결하고 데이터 에이전트 키트 원격 MCP 서버를 구성하고 BigQuery에 대해 쿼리를 실행하여 연결을 확인했습니다.

4. 데이터 확인하기

장면을 설정할 시간입니다. 상황은 다음과 같습니다. CFO는 지난달 평균 주문 금액이 7% 감소했지만 총수익은 변동이 없다고 말합니다. 상담사에게 조사를 요청하기 전에 먼저 사용 중인 데이터를 파악해야 합니다.

이 섹션에서는 데이터 에이전트 키트 패널을 수동으로 탐색하여 대략적인 내용을 파악합니다. 데이터를 쿼리하기 전에 데이터를 이해하는 것은 모든 조사에서 중요한 첫 번째 단계입니다.

BigQuery 테이블 살펴보기

  1. 데이터 에이전트 키트 패널의 카탈로그에서 프로젝트BigQuerycymbal_pets를 펼칩니다.
  2. orders 테이블을 클릭합니다. 테이블 세부정보가 표시된 새 탭이 열립니다.
  3. 표 뷰어의 왼쪽에 있는 탭을 살펴봅니다.
    • 데이터: 실제 행을 미리 봅니다. 데이터 세트를 스크롤하여 열을 검사합니다.
    • 스키마: 열 이름과 유형을 검토합니다. 나중에 중요해질 order_typepromo_code과 같은 필드를 확인하세요.
    • 기타 탭 (세부정보, 통계, 데이터 프로필 등): 편집기를 벗어나지 않고도 Google Cloud 콘솔에서 일반적으로 확인할 수 있는 메타데이터, 데이터 계보, 품질 세부정보에 액세스할 수 있습니다.

BigQuery 주문 테이블

  1. 이제 order_items 테이블을 클릭하고 스키마를 검토합니다. quantityprice 필드를 확인합니다.

Cloud SQL 테이블 살펴보기

설정 스크립트는 Cloud SQL의 PostgreSQL 데이터베이스에 고객, 반려동물, 제품 데이터도 배치했습니다.

  1. 데이터 에이전트 키트 패널의 카탈로그 섹션에서 유니버설 검색을 클릭합니다.
  2. 검색창에 pet_profiles을 입력하고 Enter 키를 누릅니다.
  3. 검색 결과에서 pet_profiles의 PostgreSQL 테이블 결과를 클릭합니다 (프로젝트의 Cloud SQL 인스턴스 아래). 사이드바 아코디언이 자동으로 확장되어 데이터베이스 트리에서 표가 있는 위치를 정확하게 보여줍니다. 이제 트리에서 바로 위에 있는 customers 테이블을 클릭하여 세부정보를 열고 스키마세부정보 탭을 살펴봅니다.

Cloud SQL 스키마

Cloud Storage 파일 탐색

마지막으로 마케팅 및 프로모션 캠페인 기록은 Cloud Storage에 원시 JSON 파일로 저장됩니다.

  1. 왼쪽의 데이터 에이전트 키트 패널에서 CLOUD STORAGE 섹션을 펼칩니다. 프로젝트의 원시 버킷 (YOUR_PROJECT_ID-cymbal-pets-raw)을 찾습니다.
  2. 버킷 내의 promo_events.json 파일을 클릭합니다. 새 편집기 탭이 열려 IDE 내에서 마케팅 캠페인의 원시 JSON Lines 콘텐츠를 직접 볼 수 있습니다.

Cloud Storage promo_events.json 미리보기

재고 파악

이제 데이터 환경에 대해 다음과 같은 내용을 알게 되었습니다.

서비스

테이블

무엇이 있나요?

BigQuery

orders, order_items

주문 약 190만 건, 광고 항목 약 430만 건, 기간 2023~2025년

Cloud SQL

customers, pet_profiles, products

고객 수: 약 92,000명, 반려동물 프로필 수: 약 7,600개, 제품 수: 206개

Cloud Storage

promo_events.json

프로모션 캠페인 기록

데이터가 세 가지 서비스에 분산되어 있습니다. 기존 워크플로에서는 연결을 설정하고, 통합 코드를 작성하고, 결과를 수동으로 결합해야 합니다. 다음 단계에서는 단일 대화를 통해 AI 에이전트가 이 모든 작업을 처리하도록 합니다.

섹션 요약: 데이터 에이전트 키트 패널을 사용하여 BigQuery, Cloud SQL, Cloud Storage 전반의 데이터 아키텍처를 수동으로 탐색했습니다. 이제 데이터가 저장된 위치와 사용 가능한 필드를 알았으므로 조사를 시작할 수 있습니다.

5. 숫자 확인

이제 조사가 시작됩니다. 채팅 창을 사용하여 AI 에이전트에게 BigQuery에서 평균 주문 금액 (AOV) 데이터를 가져오라고 요청합니다. AOV는 주문당 지출된 평균 금액을 나타내는 비즈니스 측정항목입니다. 상담사는 MCP 도구를 사용하여 고객을 대신해 쿼리하며, 고객은 상담사가 실행하는 모든 SQL 쿼리를 볼 수 있습니다.

평균 주문 금액 추세 가져오기

  1. IDE 오른쪽의 채팅 창에 다음 프롬프트를 입력하고 Enter 키를 누릅니다.
    Calculate our monthly average order value from August 2024 through January 2025
    using the orders and order_items tables in BigQuery.
    
  2. 데이터 액세스 권한 승인 AI 에이전트가 데이터베이스에서 쿼리를 실행하는 것에 대해 주의하는 것은 바람직합니다. 데이터 에이전트 키트는 데이터에 액세스하기 전에 명시적 권한을 요청하기 위해 일시중지하여 사용자가 제어할 수 있도록 합니다. 메시지가 표시되면 다음을 선택할 수 있습니다.
    • 이번에만 허용: 단일 사용을 승인합니다 (위험성이 높은 쿼리 감사에 적합).
    • 항상 허용: 세션에서 이 특정 도구의 지속적인 사용을 승인합니다.
    • 아니요: 작업을 완전히 차단합니다.
    원활한 실습 환경을 위해 예, 항상 허용을 선택하세요.참고: 권한은 도구별로 부여됩니다. 상담사가 list_table_ids 또는 execute_sql_readonly과 같은 새로운 도구를 사용하면 곧 몇 가지 프롬프트가 더 표시될 수 있습니다. 이러한 프롬프트도 '항상 허용'해도 됩니다.

MCP 도구 권한 메시지

  1. 에이전트가 작동하는 것을 확인합니다. 채팅 창은 상담사가 수행하는 모든 작업에 대한 투명성 로그로도 사용됩니다. 블랙박스 대신 에이전트가 추론과 행동을 실시간으로 보여줍니다.
  2. 에이전트가 완료되면 프롬프트 아래에 있는 X분 동안 작업함 드롭다운을 클릭하여 전체 작업 로그를 펼칩니다. 여기에서 대답을 얻은 방법을 정확하게 검사할 수 있습니다.
    • 탐색됨: 이러한 항목을 펼쳐 에이전트가 파일을 읽거나, 폴더를 탐색하거나, MCP 도구 (예: datacloud_bigquery_remote / list_table_idsexecute_sql_readonly)를 호출하는 것을 확인할 수 있습니다. 도구에 전달된 정확한 JSON 인수와 실행된 SQL을 볼 수 있습니다.
    • 실행됨: 이러한 항목을 펼쳐 에이전트가 실행한 터미널 명령어(예: gcloud config list)를 확인합니다.

MCP 도구 호출을 보여주는 에이전트 투명성 로그

  1. 결과를 검토합니다. 상담사는 월별 AOV 값 표를 반환해야 합니다. 직접 수치를 확인해 보세요. 이전 달에는 약 110달러였는데 1월에는 약 103달러로 떨어졌습니다. CFO가 지적한 이상치입니다.

채널별 드릴다운

전체 AOV가 감소했는데 어디에서 감소한 것일까요? 지금부터 알아보겠습니다.

  1. 채팅 창에 다음을 입력합니다.
    January looks lower than the prior months. 
    Break down January's AOV by order_type to see what's going on?
    
  2. 에이전트가 이번에는 order_type로 그룹화하여 다른 BigQuery 쿼리를 실행합니다. 결과를 주의 깊게 검토하세요.온라인오프라인 AOV가 약 110달러로 안정적으로 유지됩니다. 하지만 AOV가 훨씬 낮은 (약 75달러) 새 채널 B2B-Wholesale이 있습니다. 이 새로운 채널로 인해 혼합 평균이 낮아지고 있습니다.
  3. 상담사가 B2B 고객을 조사하도록 선제적으로 제안할 수 있습니다. 그렇지 않아도 괜찮습니다. 다음 단계에서 이 작업을 수행합니다.

섹션 요약: 중립적인 데이터 풀에서 1월 AOV 하락을 직접 확인한 다음 order_type별로 드릴하여 B2B-Wholesale이 혼합 평균을 낮추는 새로운 채널임을 확인했습니다. 이제 이러한 B2B 고객이 누구인지 알아야 합니다.

6. 서비스 경계 교차

BigQuery에서 B2B-Wholesale이 이상 채널로 식별되었지만 고객 데이터는 Cloud SQL에 있습니다. 데이터 에이전트 키트를 사용하면 동일한 대화를 계속 진행할 수 있으며 서비스 경계를 처리합니다.

B2B 고객 조사

  1. 채팅 창에 다음을 입력합니다.
    Who are these B2B customers? Their profiles should be in our Cloud SQL database. 
    Check for:
    - Who they are
    - When they signed up
    - Whether they're new or existing customers
    
  2. 채팅 창을 주의 깊게 살펴보세요. 이번에는 다른 MCP 도구가 표시됩니다. 이제 에이전트가 BigQuery 대신 Cloud SQL을 쿼리합니다.에이전트가 cymbal-pets-ops Cloud SQL Postgres 인스턴스에 연결하고 customers 테이블에 대해 쿼리를 실행합니다. 세부정보 표시를 클릭하여 SQL을 확인합니다.
  3. 결과를 검토합니다. 상담사는 다음과 같은 몇 가지 주요 사항을 언급해야 합니다.
    • 모든 B2B 고객에게는 customer_type = 'Business'
    • 모두 지난 30일 이내 (2025년 1월)에 가입했습니다.
    • last_name 값은 'Pet Supply Co', 'Animal Care LLC', 'Happy Paws Inc'와 같은 비즈니스 이름입니다.
    • 이러한 사용자는 약 100명으로, 이번 달 이전에는 존재하지 않았습니다.

프로모션 코드 연결

  1. 에이전트는 BigQuery의 많은 B2B 주문에 promo_code 값이 BIGORDER25로 지정되어 있음을 자체적으로 확인할 수 있습니다. 이 관찰을 자발적으로 제공하면 좋습니다. 조사가 자연스럽게 진행되고 있습니다. 상담사가 프로모션 코드를 언급하지 않으면 다음과 같이 안내합니다.
    I noticed a promo_code field on the orders table in BigQuery. 
    Check what promo codes appear on the B2B-Wholesale orders?
    
  2. 상담사가 BigQuery를 다시 쿼리하여 B2B-Wholesale 주문의 약 92% 에 promo_code = 'BIGORDER25'가 있음을 확인합니다. 거의 모든 B2B 활동은 단일 프로모션 캠페인과 연결되어 있습니다.이제 상담사는 이 프로모션 코드가 어디에서 왔는지 궁금해해야 합니다. 환경에 다른 프로모션 데이터가 있는지 묻는 메시지가 표시될 수 있습니다. (Cloud Storage에는 있습니다.)

섹션 요약: 에이전트가 Cloud SQL에 쿼리하여 B2B 고객이 모두 2025년 1월에 가입한 신규 비즈니스임을 확인했습니다. 주문의 약 92% 에 promo_code = 'BIGORDER25'가 포함된다는 BigQuery 발견 사항과 결합하면 이제 프로모션 캠페인으로 이어지는 흔적이 보입니다. 이제 소스를 찾아야 합니다.

7. 누락된 조각 찾기

두 가지 서비스가 중단되었고 한 가지가 남았습니다. 무엇이 문제인지 (B2B 주문으로 인해 AOV가 낮아짐)와 누구가 문제인지 (지난 30일 동안의 신규 비즈니스 고객)를 알 수 있습니다. 이제 이유를 찾아야 하며, 답은 Cloud Storage에 있습니다.

GCS 버킷 확인

  1. 채팅 창에 다음을 입력합니다.
    Good catch on the promo code. 
    We might have promotional campaign data in our GCS bucket. 
    Can you check what's there?
    
  2. 에이전트에는 Cloud Storage용으로 사전 구성된 MCP 도구가 없으므로 터미널 도구를 사용하여 gcloud storage 명령어를 실행하도록 자동으로 전환됩니다. gcloud storage ls과 같은 명령어를 실행할 권한을 요청합니다. 이러한 명령어를 허용한 다음 채팅 창에서 실행됨 로그를 펼쳐 promo_events.json 파일을 읽고 파싱하는 데 사용된 정확한 CLI 명령어를 확인합니다.
  3. 상담사는 파일에서 다음과 같은 세 가지 프로모션 캠페인을 식별해야 합니다.

    캠페인

    프로모션 코드

    할인

    대상

    날짜

    여름 반려동물 관리 할인

    PETSUMMER15

    15% 할인

    전체

    2024년 6월

    B2B 도매 푸시

    BIGORDER25

    25% 할인

    B2B

    2025년 1월

    포인트 멤버십 회원 연말연시 보너스

    LOYAL10

    10% 할인

    포인트 멤버십 회원

    2024년 12월

    BIGORDER25 프로모션 코드는 B2B 도매 푸시라는 캠페인에 매핑됩니다. B2B 고객에게 최소 주문 수량 50개에 대해 25% 할인이 제공됩니다. 이것이 결정적인 증거입니다.

종합해 보기

  1. 에이전트에게 찾은 모든 내용을 요약해 달라고 요청합니다.
    Put it all together. 
    What happened to our average order value?
    
  2. 에이전트는 세 가지 데이터 소스를 모두 연결하는 명확하고 구조화된 종합을 제공합니다. 다음과 같은 내용을 설명해야 합니다.
    1. 평균 주문 금액이 실제로 감소했지만 기존 비즈니스가 감소한 것은 아닙니다. 온라인 및 오프라인 AOV는 약 110달러로 안정적인 수준을 유지하고 있습니다.
    2. 2025년 1월에 새로운 B2B-Wholesale 채널이 등장했으며, AOV가 훨씬 낮은 (~75~100달러) 주문이 약 25,000건 발생했습니다.
    3. B2B 고객은 지난 30일 이내에 가입한 신규 비즈니스 계정 100개입니다 (Cloud SQL).
    4. 활동은 최소 50개 단위의 대량 주문에 25% 할인을 제공하는 프로모션 캠페인 ('B2B 도매 푸시')에 의해 발생합니다 (Cloud Storage).
    5. B2B 주문량이 많아 가격 인하를 상쇄하므로 수익이 변동되지 않습니다. 하지만 25% 도매 할인이 적용되면 단위 마진이 크게 압축 (약 65% 감소)되어 배송 및 운영 오버헤드가 고려될 때 전반적인 수익성이 심각하게 위협받습니다.
    이때 조사에 대한 실마리가 풀립니다. CFO의 질문에 대한 답은 명확합니다. 마케팅 기반 B2B 프로그램으로 인해 1월에 대량의 저가 주문이 쏟아져 AOV가 하락했습니다. 기존 비즈니스가 정상 상태입니다.

섹션 요약: Cloud Storage에서 결정적인 증거를 발견했습니다. 대량 주문 시 25% 할인을 제공하는 B2B 프로모션 캠페인이었습니다. 에이전트는 세 서비스 모두에서 발견된 내용을 종합하여 명확한 설명을 제공했습니다. 조사 단계가 완료되었습니다. 다음으로 이러한 결과를 운영화합니다.

8. 파이프라인 빌드

사건을 해결했습니다. 이제 CFO는 이 분석이 자동으로 업데이트되기를 원합니다. 이 섹션에서는 에이전트에게 BigQuery 데이터를 스테이징하고 지속적인 AOV 분석을 위한 팩트 테이블을 생성하는 dbt 프로젝트를 빌드해 달라고 요청합니다.

이때 에이전트가 조사자에서 엔지니어로 전환됩니다. 단일 프롬프트에서 전체 dbt 프로젝트를 스캐폴드하고 전체 파이프라인을 실행하는 것을 확인할 수 있습니다.

dbt 프로젝트 스캐폴드

  1. 채팅 창에 다음 프롬프트를 입력합니다. 이는 단계별이 아닌 의도적으로 목표 지향적입니다. 에이전트에게 어떻게 빌드할지 알려주는 것이 아니라 무엇을 원하는지 알려줍니다.
    I want to productionize our AOV analysis so it updates automatically. Build a dbt project that:
    1. Creates staging models for the BigQuery tables (orders and order_items) and a mart called fct_order_analysis that calculates AOV by channel and month
    2. Add a uniqueness test on order_id and run dbt build
    
  2. 자가 수정 관찰: 'N초 동안 작동' 로그를 펼치면 에이전트가 dbt를 확인하고, 누락된 것을 발견하면 Python 가상 환경 (.venv)을 만드는 명령어를 자동으로 실행하는 것을 확인할 수 있습니다. 환경 설정을 대신 처리해 주는 것입니다.

가상 환경을 설정하는 에이전트

  1. 구현 계획 검토: 상담사가 공식 구현 계획을 생성합니다. 제안된 파일과 아키텍처를 검토하고 필요한 경우 댓글을 추가한 다음 진행을 클릭하여 에이전트가 계획을 실행하도록 할 수 있습니다.

상담사 구현 계획

  1. 에이전트가 계획을 실행하면서 필요한 .sql 파일과 YAML 구성을 작성하는 동안 채팅 창을 확인합니다. 완료되고 프로젝트가 성공적으로 컴파일되면 변경사항 요약이 표시됩니다. 모두 수락을 클릭하여 이러한 파일을 작업공간에 추가합니다.

에이전트 코드 변경사항 수락

  1. 왼쪽의 탐색기에서 새로 생성된 dbt 프로젝트를 살펴봅니다. 다음과 비슷한 구조가 표시됩니다.
    dbt/
    ├── models/
    │   ├── marts/
    │   │   └── fct_order_analysis.sql
    │   └── staging/
    │       ├── schema.yml
    │       ├── sources.yml
    │       ├── stg_order_items.sql
    │       └── stg_orders.sql
    ├── dbt_project.yml
    └── profiles.yml
    

파일 탐색기의 dbt 프로젝트 구조

  1. .sql 모델 파일을 클릭하여 에이전트가 생성한 SQL을 검토합니다. 다음 사항을 처리하는 방식에 유의하세요.
    • 스테이징 모델: 소스 참조가 포함된 정리되고 이름이 변경된 열
    • 마트 모델: 채널별 조인 로직 및 AOV 계산
  1. 채팅 창에서 모든 모델이 구체화되고 모든 테스트가 통과되었음을 에이전트가 확인했는지 확인합니다. 마트의 AOV 결과는 조사 중에 확인한 내용을 확인해야 합니다.
    - Online: ~$110
    - Offline: ~$110
    - B2B-Wholesale: ~$75 to $77
    

섹션 요약: 에이전트는 단일 목표 지향 프롬프트에서 dbt 프로젝트를 빌드했습니다. 스테이징 및 마트 모델을 스캐폴딩하고, dbt build를 성공적으로 실행하고, AOV 이상치를 확인했습니다. 다음으로 에이전트가 복잡성을 어떻게 처리하는지 확인하기 위해 예상치 못한 질문을 던집니다.

9. 테스트가 실패하면 에이전트가 디버깅합니다.

파이프라인은 작동하지만 BigQuery 데이터만 사용합니다. 제품팀은 식단 요구사항에 따라 제품을 추천할 수 있도록 Cloud SQL의 고객 및 반려동물 프로필 데이터로 분석을 보강하려고 합니다. 즉, 에이전트가 Cloud SQL 경계를 브리징하고 미묘한 데이터 모델링 버그(클래식 차원 모델링 '팬아웃' 조인)를 처리해야 합니다.

사용 중인 모델과 모델의 추론 기능에 따라 에이전트는 버그를 사전에 방지 (옵션 A)하거나 테스트 실패 후 자체 복구 (옵션 B)하는 두 가지 방법 중 하나로 이 요청을 처리합니다. 에이전트가 어떤 경로를 택하는지 확인해 보세요.

요청 트리거

  1. 채팅 창에 다음을 입력합니다.
    Enrich fct_order_analysis with customer data and pet profile data from our Cloud SQL database. 
    Include customer type and each customer's pets and dietary needs so we can recommend products. 
    Keep the uniqueness test on order_id and run dbt build.
    
  2. 에이전트가 작동하는 것을 확인합니다. Cloud SQL 테이블을 검색하고, 페더레이션 쿼리 또는 구체화된 복사본을 통해 데이터를 BigQuery로 브리징하는 방법을 파악하고, 새 스테이징 모델을 만들고, fct_order_analysis.sql를 수정합니다.

옵션 A: 선제적 에이전트 (버그 방지)

고급 추론 모델을 사용하는 경우 에이전트가 코드를 작성하기 전에 세분성 전환을 감지할 수 있습니다. 고객이 여러 반려동물을 소유할 수 있으므로 직접 조인하면 주문이 중복되고 order_id에서 요청한 고유성 테스트가 즉시 실패한다는 것을 알게 됩니다.

  1. 사전 집계 관찰: 상담사는 채팅 창 설명 또는 둘러보기 아티팩트에서 '클래식 팬아웃'을 방지하기 위해 반려동물 데이터를 결합하기 전에 사전 집계했다고 언급할 수 있습니다. 일반적으로 집계 함수 (예: ARRAY_AGG() 또는 STRING_AGG())를 사용하여 고객당 여러 반려동물을 축소합니다.
  2. 결과 확인: 에이전트가 사실 테이블의 세부사항을 사전 예방적으로 보호했기 때문에 dbt build이 첫 번째 시도에서 성공적으로 실행되고 통과됩니다. 생성된 둘러보기 아티팩트를 확인하면 이를 확인할 수 있습니다. 둘러보기 아티팩트에는 쿼리 결과와 함께 테스트 성공 출력이 표시되는 경우가 많습니다.

사전 집계 및 성공적인 테스트를 보여주는 둘러보기

에이전트가 이 작업을 수행했다면 축하드립니다. 사전 대응형 AI 엔지니어링을 확인했습니다. fct_order_analysis.sql에서 생성된 SQL을 잠시 검토하여 집계가 어떻게 구조화되었는지 확인한 다음 다음 섹션인 답변 제공으로 건너뜁니다.

옵션 B: 자가 복구 에이전트 (디버깅 및 진단)

모델이 먼저 단순한 직접 왼쪽 조인을 작성하면 SQL 쿼리 자체는 성공적으로 실행되지만 자동화된 dbt test 스위트에서 그레인 이동을 포착합니다.

  1. 테스트 실패 관찰: 채팅 창 실행 진행 상황 로그에 실패가 보고됩니다.
    Completed with 1 error
    
    Failure in test unique_fct_order_analysis_order_id
    Got 287 results, configured to fail if != 0
    
    order_id의 고유성 테스트에서 중복 항목이 발견되었습니다. 이는 반려동물을 여러 마리 키우는 고객이 주문을 여러 개로 나누었기 때문입니다.
  2. 에이전트가 진단 및 자체 복구하도록 허용: 테스트가 실패했으므로 에이전트에게 디버그를 요청합니다. 채팅 창에 다음을 입력합니다.
    The uniqueness test failed. Can you figure out why and fix it?
    
  3. 진단 보기: 에이전트가 데이터를 쿼리하고, pet_profiles에서 일대다 관계를 발견하고, 이를 직접 조인하면 세부사항이 주문당 행 하나에서 주문당 반려동물당 행 하나로 변경된다고 설명하고, 반려동물 프로필을 사전 집계하도록 모델을 다시 작성합니다.
    -- Pre-aggregating pets per customer to resolve fan-out
    LEFT JOIN (
      SELECT
        customer_id,
        COUNT(*) AS num_pets,
        STRING_AGG(DISTINCT pet_type, ', ') AS pet_types,
        STRING_AGG(DISTINCT dietary_needs, ', ') AS dietary_needs
      FROM pet_profiles
      GROUP BY customer_id
    ) pet_agg ON c.customer_id = pet_agg.customer_id
    
  4. 수정사항 확인: 에이전트가 dbt build를 다시 실행하고 이번에는 모든 모델이 구체화되고 모든 테스트가 성공적으로 통과됩니다.

섹션 요약: 에이전트가 버그를 사전 예방했든 테스트 실패 후 자체 복구에 성공했든 Cloud SQL 경계를 연결하고, 고객 및 반려동물 프로필 데이터를 통합하고, 완벽한 팩트 테이블 세부사항을 유지하는 것을 확인했습니다. 이제 파이프라인이 강력하고 완전하며 완전히 테스트되었습니다.

10. 답변 제공

오늘은 목요일입니다. 걱정하는 CFO와 세 개의 클라우드 서비스에 흩어져 있는 데이터로 한 주를 시작했습니다. 이제 근본 원인과 프로덕션 파이프라인이 있습니다. 정량적 예측에 기반한 미래 지향적 추천과 함께 답변을 제공하는 시간입니다.

핵심 요약 작성

  1. 채팅 창에 다음을 입력합니다.
    Write an executive summary covering:
    - Main findings and the quantitative margin impact
    - Project AOV for the subsequent quarter if the B2B program continues at its current trajectory
    - A data-driven recommendation
    
  2. 에이전트의 작업을 지켜봅니다.
  3. 에이전트의 핵심 요약을 검토합니다. 일반적이고 잘 구성된 대답은 다음을 다루어야 합니다.
    • 핵심 사항: 1월 AOV는 새로운 B2B-Wholesale 채널로 인해 감소했습니다. 온라인 및 오프라인은 약 110달러로 안정적인 수준을 유지하고 있습니다.
    • 근본 원인: 'B2B 도매 푸시' (대량 주문 25% 할인)로 신규 계정 100개가 유입되어 주문이 약 25,000건 발생했습니다.
    • 마진 영향: 도매 주문으로 인해 평균 단위 이익이 약 65% 감소했습니다(약 7.5달러에서 약 2.6달러로).
    • 수익: 높은 B2B 거래량이 낮은 가격을 상쇄하여 전반적인 수익은 변동이 없습니다.

AI.FORECAST로 AOV 예측

  1. 또한 에이전트는 미래 예측을 생성해야 합니다. 에이전트가 BigQuery에 대해 AI.FORECAST 쿼리를 실행하는 MCP 도구 호출을 찾습니다. 여기서는 기본 제공 TimesFM 파운데이션 모델을 사용하여 이전 추세를 기반으로 AOV를 90일 후로 예측합니다. 쿼리는 캠페인 지속 (구조적으로 감소된 AOV)과 캠페인 종료 (~$110로 복구)라는 두 가지 시나리오에서 AOV를 90일 후로 예측해야 합니다.
  1. 에이전트의 전략적 추천을 검토합니다. 강력한 추천 세트에는 다음이 포함될 수 있습니다.
    • 할인 재구성: 단위 수준 마진을 보호하기 위해 마진 하한을 구현하거나 대량 할인을 제한합니다.
    • 더 엄격한 최소 주문 수량 시행: 소매 구매자가 도매 가격을 악용하지 못하도록 방지합니다.
    • 별도 보고: 소매 실적을 마스킹하지 않도록 소매 및 B2B 부문을 독립적으로 추적합니다.

전체 스토리

월요일에 평균 주문 금액이 7% 하락한 데 대한 모의훈련으로 시작된 문제가 CFO에게는 명확한 해결책이 있습니다.

  • 소매 건강: 핵심 소매 채널은 기준선에서 건전하고 안정적인 상태를 유지하고 있습니다.
  • 도매 유입: AOV 하락은 새로운 B2B 도매 채널과 BIGORDER25 캠페인으로 인한 것입니다.
  • 마진 영향: 25% 의 대량 할인으로 인해 단위 마진이 크게 감소하여 수익은 일정하지만 수익성이 위협받고 있습니다.
  • 전략적 예측: AI.FORECAST 예측에 따르면 도매 등급을 재구성하면 혼합 AOV가 복원됩니다.

데이터 기반 추천을 제공하여 도매 마진 하한을 설정하고 소매/B2B 보고서를 분리합니다.

섹션 요약: 에이전트에게 마진 분석이 포함된 요약본을 작성하고, AI.FORECAST 예측을 생성하고, 데이터 기반 추천을 제공해 달라고 요청했습니다. 조사가 완료되었습니다.

11. 삭제

Google Cloud 계정에 지속적으로 비용이 청구되지 않도록 하려면 해체 스크립트를 실행하여 이 Codelab에서 생성한 리소스를 삭제하세요.

  1. Antigravity IDE 하단의 터미널 패널 (또는 Cloud Shell)에서 codelab 디렉터리로 이동하여 다음을 실행합니다.
cd ~/devrel-demos/codelabs/agentic-data-labs/scripts
chmod +x teardown.sh
./teardown.sh
  1. 스크립트에서 삭제할 모든 리소스를 표시하고 계속하기 전에 확인을 요청합니다.
    • Cloud SQL 인스턴스 (cymbal-pets-ops): 가장 비용이 많이 드는 리소스입니다.
    • BigQuery 데이터 세트 (cymbal_pets): 모든 테이블과 모델
    • Cloud Storage 버킷 (gs://YOUR_PROJECT_ID-cymbal-pets-raw)
    • BigQuery 연결 (cymbal-pets-cloudsql)
  2. y를 입력하여 확인합니다. 분해하는 데 2~3분 정도 걸립니다.
[INFO]  Deleting Cloud SQL instance cymbal-pets-ops...
[ OK ]  Cloud SQL instance deleted.
[INFO]  Deleting BigQuery dataset cymbal_pets...
[ OK ]  BigQuery dataset deleted.
[INFO]  Deleting GCS bucket gs://YOUR_PROJECT_ID-cymbal-pets-raw...
[ OK ]  GCS bucket deleted.

12. 축하합니다.

심벌즈 펫 조사를 완료했습니다. 전체 Google Cloud 데이터 자산에서 작동하는 AI 에이전트를 사용하여 모호한 CFO 질문에서 완전히 운영되고 예측을 기반으로 하는 추천으로 전환했습니다.

학습한 내용

  1. 🔍 서비스 전반에서 탐색됨: 데이터 에이전트 키트Knowledge Catalog를 사용하여 BigQuery, Cloud SQL, Cloud Storage에서 애셋을 검색하고 미리 보았습니다.
  2. 🕵️‍♂️ AI로 조사: MCP 도구를 사용하여 단일 채팅 창 대화에서 여러 서비스에 쿼리하여 AOV 이상을 대량 B2B 프로모션 캠페인으로 추적했습니다.
  3. 🔧 프로덕션 파이프라인 빌드: 거래 및 고객 데이터를 정리, 조인, 테스트하기 위해 완전한 dbt 프로젝트를 스캐폴딩했습니다.
  4. 🐛 팬아웃 버그 디버깅: 에이전트가 세부사항 문제를 자동으로 진단하고 dbt SQL 모델을 리팩터링하여 고객 반려동물 프로필을 사전 집계하는 것을 확인했습니다.
  5. 📈 예측 및 추천: BigQuery의 내장 AI.FORECAST를 사용하여 AOV 추세를 모델링하고 CFO에게 데이터 기반 추천을 제공했습니다.

주요 개념

개념

학습 내용

MCP 도구

AI 에이전트가 BigQuery, Cloud SQL, Spanner, 기타 데이터베이스와 같은 서비스를 대신 쿼리할 수 있는 안전하고 감사 가능한 연결로, 모든 호출이 채팅 창에 표시됩니다.

상담사 기술

프롬프트를 입력하지 않아도 상담사에게 도메인별 권장사항을 알려주는 사전 빌드된 명령어 세트 (예: dbt-bigquery 또는 discovering-gcp-data-assets)

교차 서비스 조사

에이전트가 단일 대화에서 여러 Google Cloud 서비스를 쿼리합니다. 연결 설정도 콘솔 간 컨텍스트 전환도 필요하지 않습니다.

목표 지향적 프롬프팅

어떻게가 아닌 무엇을 원하는지 ('채널별 AOV를 계산하는 dbt 프로젝트를 빌드해') 에이전트에게 알려주고 구현 접근 방식을 선택하도록 허용

Data Agent Kit

MCP 도구, 에이전트 기술, 데이터 검색을 모두 결합하여 원하는 IDE 내에서 전체 Google Cloud 데이터에 액세스할 수 있도록 지원하는 확장 프로그램

다음 단계