1. 소개
코딩 전문가가 아니어도 데이터를 더 빠르고 효율적으로 분석할 수 있다고 상상해 보세요. BigQuery 데이터 준비를 사용하면 이 모든 것이 현실이 됩니다. 이 강력한 기능을 사용하면 데이터 수집, 변환, 정리 작업이 간소화되어 조직의 모든 데이터 실무자가 데이터 준비 작업을 수행할 수 있습니다.
제품 데이터에 숨겨진 비밀을 활용할 준비가 되셨나요?
기본 요건
- Google Cloud 콘솔에 관한 기본적인 이해
- SQL에 관한 기본 이해
학습할 내용
- BigQuery 데이터 준비를 통해 패션 및 미용 업계의 실제 사례를 사용하여 원시 데이터를 실행 가능한 비즈니스 인텔리전스로 정리하고 변환하는 방법을 알아봅니다.
- 정리된 데이터의 데이터 준비를 실행하고 예약하는 방법
필요한 항목
- Google Cloud 계정 및 Google Cloud 프로젝트
- 웹브라우저(예: Chrome)
2. 기본 설정 및 요구사항
자습형 환경 설정
- Google Cloud 콘솔에 로그인하여 새 프로젝트를 만들거나 기존 프로젝트를 재사용합니다. 아직 Gmail이나 Google Workspace 계정이 없는 경우 계정을 만들어야 합니다.



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

- 사용자를 선택하고 연필 아이콘을 클릭하여 '주 구성원 수정'을 선택합니다.

BigQuery 데이터 준비를 사용하려면 다음 역할과 권한이 필요합니다.
- BigQuery 데이터 편집자 (roles/bigquery.dataEditor)
- 서비스 사용량 소비자 (roles/serviceusage.serviceUsageConsumer)
4. BigQuery Analytics Hub에서 'bq data preparation demo' 목록 찾기 및 구독
이 튜토리얼에서는 bq data preparation demo 데이터 세트를 사용합니다. BigQuery Analytics Hub의 연결된 데이터 세트에서 데이터를 읽어옵니다.
데이터 준비는 소스에 다시 쓰지 않으며, 쓰기 대상 테이블을 정의하라는 메시지가 표시됩니다. 이 연습에서 사용할 테이블에는 비용을 최소화하기 위해 1,000개의 행만 있지만 데이터 준비는 BigQuery에서 실행되며 함께 확장됩니다.
다음 단계에 따라 연결된 데이터 세트를 찾아 구독하세요.
- Analytics Hub 액세스: Google Cloud 콘솔에서 BigQuery로 이동합니다.
- BigQuery 탐색 메뉴의 '거버넌스'에서 'Analytics Hub'를 선택합니다.

- 목록 검색: Analytics Hub UI에서 목록 검색을 클릭합니다.'
- 검색창에
bq data preparation demo을 입력하고 Enter 키를 누릅니다.

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

- BigQuery에서 데이터 세트에 액세스: 구독이 완료되면 등록정보 내 데이터 세트가 BigQuery 프로젝트에 연결됩니다.
BigQuery Studio로 돌아갑니다.
5. 데이터 탐색 및 데이터 준비 실행
- 데이터 세트 및 테이블 찾기: 탐색기 패널에서 프로젝트를 선택한 다음
bq data preparation demo목록에 포함된 데이터 세트를 찾습니다.stg_product테이블을 선택합니다. - 데이터 준비에서 열기: 테이블 이름 옆에 있는 세로 점 3개를 클릭하고
Open in Data Preparation를 선택합니다.
그러면 데이터 준비 인터페이스에서 테이블이 열리고 데이터 변환을 시작할 수 있습니다.

아래 데이터 미리보기에서 볼 수 있듯이 해결해야 할 몇 가지 데이터 문제가 있습니다.
- 가격 열에는 금액과 통화가 모두 포함되어 있어 분석이 어렵습니다.
- 제품 열에 제품 이름과 카테고리가 혼합되어 있습니다 (파이프 기호 |로 구분).

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

6. 가격 열 처리
가격 열을 살펴보겠습니다. 앞서 살펴본 것처럼 통화와 금액이 모두 포함되어 있습니다. 목표는 이를 두 개의 개별 열(통화 및 금액)로 분리하는 것입니다.
Gemini가 가격 열에 대한 몇 가지 추천을 확인했습니다.
- 다음과 비슷한 내용의 추천을 찾습니다.
설명: '이 표현식은 지정된 필드에서 선행 'USD '를 삭제합니다.'
REGEXP_REPLACE(Price,` `r'^USD\s',` `r'')
- 미리보기를 선택합니다.

- '적용'을 선택합니다.
다음으로 Price 열의 데이터 유형을 STRING에서 NUMERIC으로 변환합니다.
- 다음과 비슷한 내용의 추천을 찾습니다.
설명: '열 가격을 문자열 유형에서 float64로 변환'
SAFE_CAST(Price AS float64)
- '적용'을 선택합니다.
이제 단계 목록에 적용된 세 단계가 표시됩니다.

7. 제품 열 처리
제품 열에는 제품 이름과 카테고리가 모두 포함되어 있으며, 파이프 (|)로 구분됩니다.
자연어를 다시 사용할 수도 있지만 Gemini의 또 다른 강력한 기능을 살펴보겠습니다.
제품 이름 정리
|문자를 포함한 제품 항목의 카테고리 부분을 선택하고 삭제합니다.

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

Gemini의 추천은 정확합니다. '|' 문자 뒤에 있는 모든 항목을 삭제하여 제품 이름을 효과적으로 분리합니다.
하지만 이번에는 원본 데이터를 덮어쓰지 않으려고 합니다.
- 대상 열 드롭다운에서 '새 열 만들기'를 선택합니다.
- 이름을 ProductName으로 설정합니다.

- 변경사항을 미리 보면서 모든 항목이 올바르게 표시되는지 확인합니다.
- 변환을 적용합니다.
제품 카테고리 추출
자연어를 사용하여 Gemini에 제품 열에서 파이프 (|) 뒤에 있는 단어를 추출하도록 지시합니다. 추출된 값은 '제품'이라는 기존 열에 덮어쓰여집니다.
Add Step을 클릭하여 새 변환 단계를 추가합니다.

- 드롭다운 메뉴에서
Transformation을 선택합니다. - 자연어 프롬프트 필드에 '제품 열에서 파이프 (|) 뒤에 있는 단어를 추출해'를 입력한 다음 Enter 키를 눌러 SQL을 생성합니다.

- 타겟 열은 '제품'으로 그대로 둡니다.
- 적용을 클릭합니다.
변환을 통해 다음과 같은 결과가 표시됩니다.

8. 조인을 통해 데이터 보강
다른 소스의 정보를 사용하여 데이터를 보강해야 하는 경우가 많습니다. 이 예에서는 서드 파티 테이블의 확장 제품 속성(stg_extended_product)과 제품 데이터를 조인합니다. 이 표에는 브랜드, 출시일과 같은 세부정보가 포함되어 있습니다.
Add Step을 클릭합니다.Join선택stg_extended_product테이블로 이동합니다.

BigQuery의 Gemini는 키 이름이 동일하므로 productid 조인 키를 자동으로 선택하고 왼쪽과 오른쪽을 검증했습니다.
참고: 설명 필드에 'Join by productid'가 표시되어야 합니다. 추가 조인 키가 포함된 경우 설명 필드를 'productid로 조인'으로 덮어쓰고 설명 필드에서 생성 버튼을 선택하여 다음 조건 L.로 조인 표현식을 다시 생성합니다.
productid
= R.
productid. 
- 원하는 경우 미리보기를 선택하여 결과를 미리 봅니다.
Apply아이콘을 클릭합니다.
확장 속성 정리
조인은 성공했지만 확장 속성 데이터를 정리해야 합니다. LaunchDate 열의 날짜 형식이 일관되지 않고 Brand 열에 일부 결측값이 포함되어 있습니다.
먼저 LaunchDate 열을 살펴보겠습니다.

변환을 만들기 전에 Gemini의 추천을 확인하세요.
LaunchDate열 이름을 클릭합니다. 아래 이미지와 유사한 추천이 생성되어 표시됩니다.

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

9. 대상 테이블 추가
이제 데이터 세트가 정리되었으며 데이터 웨어하우스의 측정기준 테이블에 로드할 준비가 되었습니다.
ADD STEP아이콘을 클릭합니다.Destination을 선택합니다.- 필수 매개변수를 입력합니다. 데이터 세트:
bq_data_preparation_demo테이블:DimProduct Save아이콘을 클릭합니다.

이제 '데이터' 및 '스키마' 탭을 사용했습니다. 이 외에도 BigQuery 데이터 준비에는 파이프라인의 변환 단계 시퀀스를 시각적으로 표시하는 '그래프' 뷰가 제공됩니다.

10. 보너스 A: 제조업체 열 처리 및 오류 표 만들기
Manufacturer 열에 빈 값도 확인되었습니다. 이러한 레코드의 경우 데이터 품질 검사를 구현하고 추가 검토를 위해 오류 테이블로 이동하려고 합니다.
오류 테이블 만들기
stg_product data preparation제목 옆에 있는More버튼을 클릭합니다.Setting섹션에서Error Table를 선택합니다.Enable error table체크박스를 선택하고 다음과 같이 설정을 구성합니다.
- 데이터 세트:
bq_data_preparation_demo선택 - 표:
err_dataprep입력 Define duration for keeping errors에서30 days (default)을 선택합니다.
Save아이콘을 클릭합니다.

'제조업체' 열에 유효성 검사 설정
- '제조업체' 열을 선택합니다.
- Gemini가 관련 변환을 식별했을 가능성이 높습니다. '제조업체' 필드가 비어 있지 않은 행만 유지하는 추천을 찾습니다. SQL은 다음과 유사합니다.
Manufacturer IS NOT NULL
2.이 추천에서 '수정' 버튼을 클릭하여 검토합니다.

- '검사 실패 행이 오류 테이블로 이동' 옵션이 선택되어 있지 않으면 선택합니다.
Apply아이콘을 클릭합니다.
언제든지 '적용된 단계' 버튼을 클릭하여 적용한 변환을 검토, 수정 또는 삭제할 수 있습니다.

중복된 ProductID_1 열 정리
조인된 테이블의 ProductID를 중복하는 ProductID_1 열을 이제 삭제할 수 있습니다.
Schema탭으로 이동합니다.ProductID_1열 옆에 있는 점 3개를 클릭합니다.Drop아이콘을 클릭합니다.
이제 데이터 준비 작업을 실행하고 전체 파이프라인을 검증할 준비가 되었습니다. 결과가 만족스러우면 작업을 자동으로 실행하도록 예약할 수 있습니다.
- 데이터 준비 뷰에서 다른 곳으로 이동하기 전에 준비를 저장하세요.
stg_product data preparation제목 옆에Save버튼이 표시됩니다. 버튼을 클릭하여 저장합니다.
11. 환경 정리
stg_product data preparation삭제bq data preparation demo데이터 세트 삭제
12. 축하합니다
축하합니다. Codelab을 완료했습니다.
학습한 내용
- 데이터 준비 설정
- 표 열기 및 데이터 준비 탐색
- 숫자 및 단위 설명자 데이터가 포함된 열 분할
- 날짜 형식 표준화
- 데이터 준비 실행