BigQuery Codelab에서 AI 에이전트로 데이터 준비하기

BigQuery Codelab에서 AI 에이전트로 데이터 준비하기

이 Codelab 정보

subject최종 업데이트: 4월 9, 2025
account_circle작성자: Tim Bezold

1. 소개

코딩 전문가가 아니어도 분석에 사용할 데이터를 더 빠르고 효율적으로 준비할 수 있다고 상상해 보세요. BigQuery 데이터 준비를 사용하면 이러한 작업이 가능합니다. 이 강력한 기능을 사용하면 데이터 처리, 변환, 정리를 간소화하여 조직의 모든 데이터 전문가가 데이터를 준비할 수 있습니다.

제품 데이터에 숨겨진 비밀을 밝힐 준비가 되셨나요?

  • Google Cloud 콘솔에 관한 기본적인 이해
  • SQL에 관한 기본 이해
  • 패션 및 뷰티 업계의 실제 사례를 사용하여 BigQuery 데이터 준비를 통해 원시 데이터를 정리하고 실행 가능한 비즈니스 인텔리전스로 변환하는 방법을 알아봅니다.
  • 정리된 데이터의 데이터 준비를 실행하고 예약하는 방법

필요한 항목

  • Google Cloud 계정 및 Google Cloud 프로젝트
  • 웹브라우저(예: Chrome)

2. 기본 설정 및 요구사항

자습형 환경 설정

  1. Google Cloud 콘솔에 로그인하여 새 프로젝트를 만들거나 기존 프로젝트를 재사용합니다. 아직 Gmail 또는 Google Workspace 계정이 없는 경우 계정을 만들어야 합니다.

fbef9caa1602edd0.png

a99b7ace416376c4.png

5e3ff691252acf41.png

  • 프로젝트 이름은 이 프로젝트 참가자의 표시 이름입니다. 이는 Google API에서 사용하지 않는 문자열이며 언제든지 업데이트할 수 있습니다.
  • 프로젝트 ID는 모든 Google Cloud 프로젝트에서 고유하며, 변경할 수 없습니다(설정된 후에는 변경할 수 없음). Cloud 콘솔은 고유한 문자열을 자동으로 생성합니다. 일반적으로는 신경 쓰지 않아도 됩니다. 대부분의 Codelab에서는 프로젝트 ID (일반적으로 PROJECT_ID로 식별됨)를 참조해야 합니다. 생성된 ID가 마음에 들지 않으면 다른 임의 ID를 생성할 수 있습니다. 또는 직접 시도해 보고 사용 가능한지 확인할 수도 있습니다. 이 단계 이후에는 변경할 수 없으며 프로젝트 기간 동안 유지됩니다.
  • 참고로 세 번째 값은 일부 API에서 사용하는 프로젝트 번호입니다. 이 세 가지 값에 대한 자세한 내용은 문서를 참고하세요.
  1. 다음으로 Cloud 리소스/API를 사용하려면 Cloud 콘솔에서 결제를 사용 설정해야 합니다. 이 Codelab 실행에는 많은 비용이 들지 않습니다. 이 튜토리얼이 끝난 후에 요금이 청구되지 않도록 리소스를 종료하려면 만든 리소스 또는 프로젝트를 삭제하면 됩니다. Google Cloud 신규 사용자는 미화 300달러 상당의 무료 체험판 프로그램에 참여할 수 있습니다.

3. 시작하기 전에

API 사용 설정

BigQuery에서 Gemini를 사용하려면 Google Cloud를 위한 Gemini API를 사용 설정해야 합니다. 일반적으로 serviceusage.services.enable IAM 권한이 있는 서비스 관리자나 프로젝트 소유자가 이 단계를 수행합니다.

  1. Google Cloud를 위한 Gemini API를 사용 설정하려면 Google Cloud Marketplace의 Google Cloud를 위한 Gemini 페이지로 이동합니다. Google Cloud를 위한 Gemini로 이동
  2. 프로젝트 선택기에서 프로젝트를 선택합니다.
  3. 사용 설정을 클릭합니다. 페이지가 업데이트되고 사용 설정됨 상태가 표시됩니다. 이제 선택한 Google Cloud 프로젝트에서 필요한 IAM 권한이 있는 모든 사용자가 BigQuery의 Gemini를 사용할 수 있습니다.

데이터 준비를 개발하기 위한 역할 및 권한 설정

  1. IAM 및 관리자에서 IAM을 선택합니다.

4477412d79f29e0b.png

  1. 사용자를 선택하고 연필 아이콘을 클릭하여 '관리자 수정'

5eb558e04ad12362.png

BigQuery 데이터 준비를 사용하려면 다음 역할과 권한이 필요합니다.

4. BigQuery Analytics Hub에서 'bq 데이터 준비 데모' 등록정보 찾기 및 구독하기

이 튜토리얼에서는 bq data preparation demo 데이터 세트를 사용합니다. BigQuery Analytics Hub의 연결된 데이터 세트로, 이 데이터 세트에서 데이터를 읽습니다.

데이터 준비는 소스에 다시 작성하지 않으며 작성할 대상 테이블을 정의하라는 메시지가 표시됩니다. 이 연습에서 사용할 테이블은 비용을 최소화하기 위해 1,000개의 행만 있지만 데이터 준비는 BigQuery에서 실행되며 함께 확장됩니다.

연결된 데이터 세트를 찾아 구독하려면 다음 단계를 따르세요.

  1. Analytics Hub에 액세스합니다. Google Cloud 콘솔에서 BigQuery로 이동합니다.
  2. BigQuery 탐색 메뉴의 '거버넌스'에서 '분석 허브'를 선택합니다.

6ddfac4dd863ca7b.png

  1. 등록정보 검색: Analytics Hub UI에서 등록정보 검색을 클릭합니다."
  2. 검색창에 bq data preparation demo를 입력하고 Enter 키를 누릅니다.

7e0cb82b80174cdc.png

  1. 등록정보 구독: 검색 결과에서 bq data preparation demo 등록정보를 선택합니다.
  2. 등록정보 세부정보 페이지에서 구독 버튼을 클릭합니다.
  3. 확인 대화상자를 검토하고 필요한 경우 프로젝트/데이터 세트를 업데이트합니다. 기본값은 올바른 값이어야 합니다.

2ef0ac1e3557f2f9.png

  1. BigQuery에서 데이터 세트에 액세스: 구독이 완료되면 등록정보 내 데이터 세트가 BigQuery 프로젝트에 연결됩니다.

BigQuery Studio로 돌아갑니다.

5. 데이터 탐색 및 데이터 준비 시작

  1. 데이터 세트 및 테이블 찾기: 탐색기 패널에서 프로젝트를 선택한 다음 bq data preparation demo 목록에 포함된 데이터 세트를 찾습니다. stg_product 테이블을 선택합니다.
  2. 데이터 준비 도구에서 열기: 테이블 이름 옆에 있는 세로 점 3개를 클릭하고 Open in Data Preparation를 선택합니다.

그러면 데이터 준비 인터페이스에서 테이블이 열리고 데이터 변환을 시작할 수 있습니다.

76ace3d4b5cfc2d0.png

아래 데이터 미리보기에서 볼 수 있듯이 해결해야 할 몇 가지 데이터 문제가 있습니다.

  • 가격 열에 금액과 통화가 모두 포함되어 있어 분석하기가 어렵습니다.
  • 제품 열에는 제품 이름과 카테고리가 혼합되어 있으며 파이프 기호 (|)로 구분됩니다.

f4d93aa59a56447a.png

Gemini는 즉시 데이터를 분석하고 여러 변환을 제안합니다. 이 예에서는 여러 추천이 표시됩니다. 다음 단계에서는 필요한 것을 적용합니다.

fd4d14e4fa3c31c1.png

6. 가격 열 처리

가격 열을 살펴보겠습니다. 보시다시피 통화와 금액이 모두 포함되어 있습니다. 목표는 이를 두 개의 서로 다른 열인 Currency 및 Amount로 구분하는 것입니다.

Gemini에서 가격 열에 관한 몇 가지 추천을 확인했습니다.

  1. 다음과 유사한 추천을 찾습니다.

설명: '이 표현식은 지정된 필드에서 선행하는 'USD'를 삭제합니다.'

REGEXP_REPLACE(Price,` `r'^USD\s',` `r'')
  1. 미리보기 선택

c9327cfbd32247d6.png

  1. '적용'을 선택합니다.

다음으로 Price 열의 데이터 유형을 STRING에서 NUMERIC으로 변환합니다.

  1. 다음과 유사한 추천을 찾습니다.

설명: 'Price 열을 문자열 유형에서 float64로 변환합니다.'

SAFE_CAST(Price AS float64)
  1. '적용'을 선택합니다.

이제 단계 목록에 적용된 세 단계가 표시됩니다.

d3359af47dce0c15.png

7. 제품 열 처리

제품 열에는 제품 이름과 카테고리가 모두 포함되며, 파이프 (|)로 구분됩니다.

자연어를 다시 사용할 수도 있지만 Gemini의 또 다른 강력한 기능을 살펴보겠습니다.

제품 이름 정리

  1. | 문자를 포함하여 제품 항목의 카테고리 부분을 선택하고 삭제합니다.

5171d598a8cb3a75.png

Gemini는 이 패턴을 지능적으로 인식하고 전체 열에 적용할 변환을 제안합니다.

  1. '수정'을 선택합니다.

b36cac918b4f30e9.png

Gemini의 추천은 정확합니다. '|' 문자 뒤의 모든 내용을 삭제하여 제품 이름을 효과적으로 분리합니다.

하지만 이번에는 원래 데이터를 덮어쓰지 않으려고 합니다.

  1. 타겟 열 드롭다운에서 '새 열 만들기'를 선택합니다.
  2. 이름을 ProductName으로 설정합니다.

bda19e0e5e536ccd.png

  1. 변경사항을 미리 보고 모든 것이 잘 표시되는지 확인합니다.
  2. 변환을 적용합니다.

제품 카테고리 추출

자연어를 사용하여 Gemini에 제품 열에서 파이프 (|) 뒤의 단어를 추출하도록 지시합니다. 이 추출된 값은 Product라는 기존 열에 덮어쓰여집니다.

  1. Add Step 아이콘을 클릭하여 새 변환 단계를 추가합니다.

77944047e698494c.png

  1. 드롭다운 메뉴에서 Transformation을 선택합니다.
  2. 자연어 프롬프트 필드에 '제품 열에서 파이프 (|) 뒤의 단어를 추출합니다.'를 입력한 다음 Enter 키를 누르고 SQL을 생성합니다.

82efc2447a3210bd.png

  1. 타겟 열은 '제품'으로 둡니다.
  2. 적용을 클릭합니다.

변환 결과는 다음과 같습니다.

d741c66d9e0e8e00.png

8. 데이터 보강을 위한 조인

다른 소스의 정보로 데이터를 보강하는 경우가 많습니다. 이 예에서는 제품 데이터를 서드 파티 테이블의 확장된 제품 속성 stg_extended_product와 조인합니다. 이 표에는 브랜드 및 출시일과 같은 세부정보가 포함됩니다.

  1. Add Step 아이콘을 클릭합니다.
  2. Join 선택
  3. stg_extended_product 테이블로 이동합니다.

dca14451c3fbc7f0.png

BigQuery의 Gemini는 키 이름이 동일하므로 productid 조인 키를 자동으로 선택하고 왼쪽과 오른쪽을 검증했습니다.

참고: 설명 입력란에 'Join by productid'라고 표시되어 있는지 확인합니다. 추가 조인 키가 포함된 경우 설명 필드를 'Join by productid'로 덮어쓰고 설명 필드에서 생성 버튼을 선택하여 다음 조건 L을 사용하여 조인 표현식을 다시 생성합니다.

productid

= R.

productid. 4d6dbfea28772f34.png

  1. 원하는 경우 '미리보기'를 선택하여 결과를 미리 봅니다.
  2. Apply 아이콘을 클릭합니다.

확장 속성 정리

조인에는 문제가 없지만 확장 속성 데이터를 정리해야 합니다. LaunchDate 열의 날짜 형식이 일관되지 않고 Brand 열에 누락된 값이 포함되어 있습니다.

먼저 LaunchDate 열을 처리해 보겠습니다.

f9b570d7c2d3a98d.png

변환을 만들기 전에 Gemini의 추천을 확인하세요.

  1. LaunchDate 열 이름을 클릭합니다. 아래 이미지와 유사한 추천이 생성됩니다.

62b6e6027a46ba75.png

  1. 다음 SQL이 포함된 추천이 표시되면 추천을 적용하고 다음 단계를 건너뜁니다.
COALESCE(SAFE.PARSE_DATE('%Y-%m-%d',
LaunchDate),SAFE.PARSE_DATE('%Y/%m/%d', LaunchDate))
  1. 위의 SQL과 일치하는 추천이 표시되지 않으면 Add Step 아이콘을 클릭합니다.
  2. Transformation을 선택합니다.
  3. SQL 필드에 다음을 입력합니다.
COALESCE(SAFE.PARSE_DATE('%Y-%m-%d',
LaunchDate),SAFE.PARSE_DATE('%Y/%m/%d', LaunchDate))
  1. Target ColumnsLaunchDate로 설정합니다.
  2. Apply 아이콘을 클릭합니다.

이제 LaunchDate 열에 일관된 날짜 형식이 적용됩니다.

ccf34aa05754a834.png

9. 연결 대상 테이블 추가

이제 데이터 세트가 정리되었으며 데이터 웨어하우스의 측정기준 테이블에 로드할 준비가 되었습니다.

  1. ADD STEP 아이콘을 클릭합니다.
  2. Destination을 선택합니다.
  3. 필수 매개변수를 입력합니다. 데이터 세트: bq_data_preparation_demo 테이블: DimProduct
  4. Save 아이콘을 클릭합니다.

79fdc3666a3a21b9.png

이제 '데이터' 및 '스키마' 탭을 사용해 보았습니다. 이 외에도 BigQuery Data Preparation은 파이프라인의 변환 단계 시퀀스를 시각적으로 표시하는 '그래프' 뷰를 제공합니다.

95e64d8152228f7b.png

10. 보너스 A: 제조업체 열 처리 및 오류 테이블 만들기

Manufacturer 열에 빈 값도 확인되었습니다. 이러한 레코드의 경우 데이터 품질 검사를 구현하고 추가 검토를 위해 오류 테이블로 이동합니다.

오류 테이블 만들기

  1. stg_product data preparation 제목 옆에 있는 More 버튼을 클릭합니다.
  2. Setting 섹션에서 Error Table를 선택합니다.
  3. Enable error table 체크박스를 선택하고 다음과 같이 설정을 구성합니다.
  • 데이터 세트: bq_data_preparation_demo을 선택합니다.
  • 표: err_dataprep를 입력합니다.
  • Define duration for keeping errors에서 30 days (default)을 선택합니다.
  1. Save 아이콘을 클릭합니다.

adb5722f05c1b205.png

제조업체 열에 유효성 검사 설정

  1. 'Manufacturer'(제조업체) 열을 선택합니다.
  2. Gemini에서 관련 변환을 식별했을 가능성이 큽니다. 제조업체 필드가 비어 있지 않은 행만 유지하는 추천을 찾습니다. 다음과 유사한 SQL이 포함됩니다.
Manufacturer IS NOT NULL

2.이 추천에서 '수정' 버튼을 클릭하여 검토합니다.

4749b551a03d8193.png

  1. '검증 실패 행이 오류 테이블로 이동' 옵션이 선택되어 있지 않으면 선택합니다.
  2. Apply 아이콘을 클릭합니다.

언제든지 '적용된 단계' 버튼을 클릭하여 적용한 변환을 검토, 수정 또는 삭제할 수 있습니다.

15df6caacbdd6a69.png

중복된 ProductID_1 열 정리

이제 결합된 테이블의 ProductID를 중복하는 ProductID_1 열을 삭제할 수 있습니다.

  1. Schema 탭으로 이동합니다.
  2. ProductID_1 열 옆에 있는 점 3개를 클릭합니다.
  3. Drop 아이콘을 클릭합니다.

이제 데이터 준비 작업을 실행하고 전체 파이프라인을 검증할 수 있습니다. 결과에 만족하면 작업이 자동으로 실행되도록 예약할 수 있습니다.

  1. 데이터 준비 보기에서 나가기 전에 준비한 내용을 저장합니다. stg_product data preparation 제목 옆에 Save 버튼이 표시됩니다. 버튼을 클릭하여 저장합니다.

11. 환경 정리

  • stg_product data preparation 삭제
  • bq data preparation demo 데이터 세트 삭제

12. 축하합니다

축하합니다. Codelab을 완료했습니다.

학습한 내용

  • 데이터 준비 설정
  • 테이블 열기 및 데이터 준비 탐색
  • 숫자 및 단위 설명자 데이터로 열 분할
  • 날짜 형식 표준화
  • 데이터 준비 실행