데이터 엔지니어링 에이전트를 사용하여 데이터 파이프라인 빌드 및 수정

BigQuery 및 Dataform의 데이터 엔지니어링 에이전트를 사용하면 BigQuery에서 데이터를 로드하고 처리하는 데이터 파이프라인을 빌드, 수정, 관리할 수 있습니다. 자연어 프롬프트를 사용하여 다양한 데이터 소스에서 데이터 파이프라인을 생성하거나 데이터 엔지니어링 요구사항에 맞게 기존 데이터 파이프라인을 조정할 수 있습니다.

에이전트는 Dataform 저장소 내에서 직접 데이터 파이프라인 코드를 생성하고 구성하며 Dataform 작업공간에서 작동하므로 Dataform 파이프라인을 에이전트에서 자동으로 사용할 수 있습니다. A2A 프로토콜을 사용하는 Data Engineering Agent API를 사용하여 에이전트와 상호작용할 수도 있습니다. 사용할 수 있는 프롬프트의 예시는 샘플 프롬프트를 참조하세요.

데이터 엔지니어링 에이전트는 Google Cloud를 위한 Gemini를 기반으로 하며, Dataform에서 일괄 AI 보강, 시맨틱 검색, 머신러닝 파이프라인을 빌드하기 위한 BigQuery AI 및 ML 함수를 지원합니다. 자세한 내용은 BigQuery AI 및 ML 지원을 참조하세요.

제한사항

데이터 엔지니어링 에이전트에는 다음과 같은 제한사항이 있습니다.

  • 데이터 엔지니어링 에이전트는 다음 파일 형식에 대한 자연어 명령어를 지원하지 않습니다.
    • Notebooks
    • 데이터 준비
  • 데이터 엔지니어링 에이전트는 파이프라인을 실행할 수 없습니다. 파이프라인을 검토하고 실행하거나 예약해야 합니다.
  • 데이터 엔지니어링 에이전트는 요청 사항 또는 직접 프롬프트를 통해 제공된 웹 링크나 URL을 검색할 수 없습니다.
  • 에이전트 안내 파일에서 파일을 가져올 때 @ 가져오기 문법은 ./, / 또는 문자로 시작하는 경로만 지원합니다.
  • 데이터 미리보기 기능은 hasOutput 플래그가 true로 설정된 테이블, 선언 또는 쿼리에만 지원됩니다.
  • 데이터 엔지니어링 에이전트에는 AI 기술의 일반적인 제한사항이 적용됩니다.
  • Lakehouse 런타임 카탈로그 (이전의 BigLake Metastore)에서 관리하는 Apache Iceberg 외부 테이블을 통해 파이프라인을 만들 때는 모든 Lakehouse 런타임 카탈로그 제한사항이 적용됩니다. 특히 에이전트는 Iceberg 테이블에서 쓰기 변형 (예: INSERT, UPDATE, DELETE, MERGE) 또는 DDL 문 (예: CREATE TABLE 또는 DROP TABLE)을 생성할 수 없습니다. 자세한 내용은 Apache Iceberg REST 카탈로그 엔드포인트 개념을 참조하세요.

시작하기 전에

데이터 엔지니어링 에이전트를 사용하기 전에 이 섹션의 단계를 수행합니다.

BigQuery의 Gemini 사용 설정

Google Cloud 프로젝트에 BigQuery의 Gemini가 사용 설정되어 있는지 확인합니다. 자세한 내용은 BigQuery의 Gemini 설정을 참조하세요.

필요한 API 사용 설정

콘솔

Conversational Analytics API로 사용하는 Google Cloud프로젝트의 Google Cloud 콘솔에서 다음 API를 사용 설정합니다(아직 사용 설정되지 않은 경우).

Gemini 데이터 분석 API 사용 설정

Gemini for Google Cloud API 사용 설정

BigQuery API 사용 설정

gcloud

Gemini Data Analytics API, Gemini for Google CloudAPI, BigQuery API가 아직 사용 설정되지 않은 경우 이를 사용 설정하려면 Google Cloud CLI를 사용하고 다음 gcloud services enable 명령어를 실행합니다.

gcloud services enable geminidataanalytics.googleapis.com --project=PROJECT_ID
gcloud services enable cloudaicompanion.googleapis.com --project=PROJECT_ID
gcloud services enable bigquery.googleapis.com --project=PROJECT_ID

PROJECT_ID를 Google Cloud 프로젝트 ID로 바꿉니다.

필요한 역할

데이터 엔지니어링 에이전트를 사용하는 데 필요한 권한을 얻으려면 관리자에게 프로젝트에 대한 다음 IAM 역할을 부여해 달라고 요청하세요.

역할 부여에 대한 자세한 내용은 프로젝트, 폴더, 조직에 대한 액세스 관리를 참조하세요.

이 사전 정의된 역할에는 데이터 엔지니어링 에이전트를 사용하는 데 필요한 geminidataanalytics.locations.useDataEngineeringAgent 권한이 포함되어 있습니다.

커스텀 역할이나 다른 사전 정의된 역할을 사용하여 이 권한을 가져올 수도 있습니다.

Apache Iceberg 테이블을 쿼리하는 데 필요한 역할에 대한 자세한 내용은 Lakehouse Apache Iceberg 지원에 필요한 역할을 참조하세요.

Knowledge Catalog 통합 기본 요건

데이터 엔지니어링 에이전트를 Knowledge Catalog와 통합하는 데 필요한 권한을 얻으려면 관리자에게 프로젝트에 대한 Dataplex 카탈로그 편집자 (roles/dataplex.catalogEditor) IAM 역할을 부여해 달라고 요청하세요. 역할 부여에 대한 자세한 내용은 프로젝트, 폴더, 조직에 대한 액세스 관리를 참조하세요.

이 사전 정의된 역할에는 데이터 엔지니어링 에이전트를 Knowledge Catalog와 통합하는 데 필요한 geminidataanalytics.locations.useDataEngineeringAgent 권한이 포함되어 있습니다.

커스텀 역할이나 다른 사전 정의된 역할을 사용하여 이 권한을 가져올 수도 있습니다.

커스텀 서비스 계정을 사용하여 파이프라인을 실행하는 경우 프로젝트 또는 @bigquery 항목 그룹에 대한 Dataplex 카탈로그 편집자(roles/dataplex.catalogEditor) 역할을 부여해야 합니다. 또한 Dataplex API를 사용 설정해야 합니다.

Cloud Key Management Service 키로 데이터 암호화

BigQuery의 기본 고객 관리 Cloud Key Management Service 키를 사용하여 데이터 세트 또는 프로젝트 수준에서 데이터를 암호화할 수 있습니다. 자세한 내용은 데이터 세트 기본 키 설정 및 프로젝트 기본 키 설정을 참조하세요.

기본 Dataform Cloud Key Management Service 키를 설정하여 프로젝트 수준에서 파이프라인 코드를 암호화할 수 있습니다.

VPC 서비스 제어 경계 구성

VPC 서비스 제어를 사용하는 경우 Dataform, BigQuery, Conversational Analytics API를 보호하도록 경계를 구성해야 합니다. 자세한 내용은 Dataform, BigQuery, Conversational Analytics API를 참조하세요.

데이터 엔지니어링 에이전트로 데이터 파이프라인 생성

BigQuery에서 데이터 엔지니어링 에이전트를 사용하려면 다음 옵션 중 하나를 선택합니다.

BigQuery 파이프라인

다음 단계를 수행하여 BigQuery 파이프라인 인터페이스에서 데이터 엔지니어링 에이전트를 사용할 수 있습니다.

  1. BigQuery 페이지로 이동합니다.

    BigQuery로 이동

  2. 쿼리 편집기에서 arrow_drop_down 새로 만들기 > 파이프라인을 클릭합니다.

  3. 파이프라인 인터페이스에서 에이전트에게 질문하기를 클릭합니다.

  4. 에이전트에 질문하기 필드에 자연어 프롬프트를 입력하여 데이터 파이프라인을 생성합니다. 예를 들면 다음과 같습니다.

      Create dimension tables for a taxi trips star schema from
      new_york_taxi_trips.tlc_green_trips_2022. Generate surrogate keys and all
      the descriptive attributes.
    

    프롬프트를 입력한 후 보내기를 클릭합니다.

  5. 데이터 엔지니어링 에이전트가 프롬프트를 기반으로 데이터 파이프라인을 생성합니다.

데이터 엔지니어링 에이전트는 데이터 파이프라인의 초안을 생성합니다. 파이프라인 노드를 클릭하여 생성된 SQLX 쿼리를 검토할 수 있습니다. 에이전트가 추천한 데이터 파이프라인을 적용하려면 적용을 클릭합니다.

데이터 엔지니어링 에이전트가 제안한 변경사항을 나타내는 '적용' 버튼이 강조 표시된 데이터 파이프라인

Dataform

다음 단계를 따라 Dataform에서 데이터 엔지니어링 에이전트를 사용할 수 있습니다.

  1. Dataform으로 이동합니다.

    Dataform으로 이동

  2. 저장소를 선택합니다.

  3. 개발 작업공간을 선택하거나 만듭니다.

  4. 작업공간에서 에이전트에게 물어보기를 클릭합니다.

  5. 표시되는 에이전트에 질문하기 프롬프트에 자연어 프롬프트를 입력하여 데이터 파이프라인을 생성합니다. 예를 들면 다음과 같습니다.

      Create dimension tables for a taxi trips star schema from
      new_york_taxi_trips.tlc_green_trips_2022. Generate surrogate keys and all
      the descriptive attributes.
    

    프롬프트를 입력한 후 보내기를 클릭합니다.

프롬프트가 전송되면 데이터 엔지니어링 에이전트가 데이터 파이프라인을 생성하고 프롬프트를 기반으로 Dataform SQLX 파일을 수정합니다. 에이전트는 이러한 변경사항을 작업공간 파일에 직접 적용합니다.

데이터 파이프라인 수정

데이터 파이프라인을 수정하려면 에이전트에게 질문하기를 클릭한 후 데이터 파이프라인 변경을 제안하는 프롬프트를 입력합니다.

'에이전트에게 질문하기' 버튼이 강조 표시된 데이터 파이프라인 인터페이스

데이터 엔지니어링 에이전트가 제안한 변경사항을 검토한 후 적용을 클릭하여 변경사항을 적용합니다.

파이프라인 노드를 선택한 후 열기를 클릭하여 SQLX 쿼리를 수동으로 수정할 수도 있습니다.

데이터 파이프라인 검토

데이터 엔지니어링 에이전트가 생성한 데이터 파이프라인에서 파이프라인 노드를 클릭하여 검토할 수 있습니다.

  • 구성 탭에는 노드와 연결된 생성된 SQLX 쿼리가 표시됩니다.
  • 데이터 미리보기 탭에는 파일의 입력 및 출력 테이블이 표시됩니다. 작업 실행을 클릭하여 종속 항목이 있거나 없는 작업을 실행하면 이 노드를 통해 데이터 변환을 미리 볼 수 있습니다.

데이터 파이프라인 오류 문제 해결

데이터 파이프라인을 생성할 때 오류가 발생하면 데이터 엔지니어링 에이전트를 실행하기 위한 모든 기본 요건을 완료하세요.

파이프라인의 오류는 실행 탭에서 실패한 실행으로 표시됩니다. 데이터 엔지니어링 에이전트를 사용하여 근본 원인 분석을 실행하고 문제 해결 추천을 받으려면 다음을 수행합니다.

  1. 실행 탭에서 실패한 실행의 상태를 클릭한 후 조사를 클릭합니다.

    실패한 실행이 강조 표시된 데이터 파이프라인 인터페이스와 실행 탭의 조사 버튼

    에이전트에게 질문하기 패널이 열리고 에이전트에게 실패한 실행의 근본 원인 분석을 수행하라는 요청이 표시됩니다.

  2. 상담사의 문제 해결 보고서를 검토합니다.

문제 해결 보고서에는 파이프라인 생성 프로세스의 오류에 대한 자세한 정보가 포함되어 있습니다. 보고서를 기반으로 이러한 파이프라인 오류를 수정하도록 에이전트에 프롬프트를 표시할 수 있습니다.

에이전트 요청 사항 만들기

에이전트 요청 사항은 에이전트가 사전 정의된 커스텀 규칙 집합을 따르도록 영구 요청 사항을 저장할 수 있는 데이터 엔지니어링 에이전트의 자연어 요청 사항입니다. 조직 전체에서 에이전트의 결과가 일관되게 하려면 에이전트 안내를 사용하세요(예: 명명 규칙 또는 스타일 가이드 적용).

데이터 엔지니어링 에이전트의 에이전트 안내 파일로 GEMINI.MD 컨텍스트 파일을 만들 수 있습니다. 로컬 작업공간에서 사용할 에이전트 안내 파일을 만들거나 외부 저장소에서 여러 데이터 파이프라인에 동일한 안내 파일을 사용할 수 있습니다.

에이전트 요청 사항을 만들려면 다음을 수행합니다.

  1. 에이전트에 질문하기에서 파이프라인 안내를 클릭합니다.
  2. 파이프라인 안내 창에서 안내 파일 만들기를 클릭합니다.
  3. 표시되는 GEMINI.MD 파일에 자연어로 요청 사항을 입력합니다.

    다음 예시에서는 여러 규칙이 있는 에이전트 요청 사항 파일을 보여줍니다.

      1. All event-specific tables MUST be prefixed with `cs_event_`.
      2. The primary key for any player activity table is a composite key of `player_id` and `event_timestamp_micros`.
      3. Filter out any player actions where `mana_spent` is greater than `max_mana_pool`. This is considered a data anomaly.
    
  4. 저장을 클릭합니다.

에이전트 안내 파일을 가장 잘 구조화하는 방법에 대한 자세한 내용은 에이전트 안내 파일 권장사항을 참조하세요.

외부 저장소에서 에이전트 요청 사항 로드

여러 데이터 파이프라인에서 에이전트 안내 세트를 재사용하려면 외부 저장소를 연결합니다.

  1. 에이전트에 질문하기에서 파이프라인 안내를 클릭합니다.
  2. 외부 저장소에서 외부 저장소의 안내 사용을 선택합니다.
  3. 제공된 필드에서 데이터 파이프라인에 사용할 에이전트 안내가 포함된 저장소를 지정합니다.
  4. 저장을 클릭합니다.

BigQuery AI 및 ML 지원

데이터 엔지니어링 에이전트는 생성된 Dataform SQLX 파이프라인과 사용자가 만드는 에이전트 안내 파일 (GEMINI.MD)에서 다음을 포함한 많은 BigQuery AI, ML, 객체 함수 및 문을 지원합니다.

생성형 AI 함수 또는 원격 모델이 포함된 Dataform 파이프라인을 실행하려면 파이프라인을 실행하는 서비스 계정 또는 사용자에게 생성형 AI 쿼리를 실행하는 데 필요한 권한이 있어야 합니다. 데이터 엔지니어링 에이전트가 자율 임베딩 생성으로 CREATE MODEL 또는 CREATE TABLE와 같은 DDL 문을 생성하면 다운스트림 파이프라인 노드가 ${ref("RESOURCE_NAME")}를 사용하여 참조할 수 있도록 hasOutput: true를 사용하여 Dataform operations 작업 (type: "operations")으로 구성합니다. 에이전트는 자율 임베딩 생성이 사용 설정된 테이블에서만 AI.SEARCH 함수를 사용합니다.

ObjectRef 함수를 사용할 때는 사용자에게 기본 Cloud Storage 버킷에 대한 위임된 액세스 권한도 있어야 합니다. 자세한 내용은 위임된 액세스를 참조하세요.

BigQuery의 AI 및 ML 함수에 대한 자세한 내용은 BigQuery의 AI 소개를 참조하세요.

사용 사례

데이터 파이프라인에서 지원되는 AI 및 ML 함수를 활성화하려면 다음과 같은 방법으로 사용합니다.

  • 데이터 엔지니어링 에이전트에게 파이프라인을 빌드하거나 수정하라는 프롬프트를 표시합니다. 예를 들어 원시 텍스트를 보강하거나, 비정형 문서에서 정형 필드를 추출하거나, 새 레코드를 채점하는 예약된 ELT 파이프라인을 빌드하는 데이터 엔지니어인 경우 에이전트가 적절한 Dataform SQLX 파일과 종속 항목 그래프를 생성합니다.

  • 에이전트 안내 파일(GEMINI.MD)에서 영구 파이프라인 규칙을 정의합니다. 예를 들어 조직의 파이프라인 전반에서 모델 엔드포인트, 연결 ID 또는 기본 이상치 기준점을 표준화합니다.

다음 표에서는 일괄 데이터 파이프라인에 AI 또는 ML 함수 사용을 활성화하는 프롬프트의 예를 보여줍니다.

사용 사례 사용 예시 공개 데이터 세트
일괄 텍스트 요약 (AI.GENERATE) "'스포츠' 기사를 위해 bigquery-public-data.bbc_news.fulltext에서 스테이징 테이블을 만들고 본문 열을 1~2문장으로 요약하는 열을 추가해 줘." bigquery-public-data.bbc_news.fulltext
구조화된 스키마 추출 (AI.GENERATE_TABLE) "bigquery-public-data.bbc_news.fulltext의 비즈니스 기사 본문 열에서 정형 스키마 (company_name STRING, key_topic STRING, is_earnings_related BOOL)를 추출하는 파이프라인 테이블을 빌드해 줘." bigquery-public-data.bbc_news.fulltext
멀티모달 객체 보강 (OBJ.GET_ACCESS_URL) "Cloud Storage 제품 이미지 버킷에 외부 객체 테이블을 만들고 OBJ.GET_ACCESS_URL를 사용하여 각 이미지의 image_description 및 항목 배열을 생성하는 다운스트림 테이블을 빌드해 줘." Cloud Storage 객체 테이블 (예: gs://cloud-samples-data/bigquery/tutorials/cymbal-pets/images/*.png)
시맨틱 데이터 필터링 (AI.IF) "bigquery-public-data.bbc_news.fulltext의 기술 기사를 정리한 표를 만들고 인공지능의 혁신을 다루는 행만 남기도록 필터링해 줘." bigquery-public-data.bbc_news.fulltext
일괄 감정 점수 (AI.SCORE) "bigquery-public-data.bbc_news.fulltext에서 엔터테인먼트 카테고리에 대한 보강된 테이블을 만들고, 긍정적인 감정의 정도를 평가하는 숫자 sentiment_score 열을 포함해 줘." bigquery-public-data.bbc_news.fulltext
자동 분류 (AI.CLASSIFY) "bigquery-public-data.imdb.reviews의 영화 리뷰를 사용하여 각 리뷰를 서사 원형 (예: '캐릭터 연구', '액션 스펙터클', '심리 스릴러') 및 시청 분위기 (예: '어둡고 거친', '희망적인', '긴장감 넘치는')에 대한 편집 분류 계층으로 자동 분류해 줘. 영화 메타데이터와 함께 결과를 선별된 테이블에 작성합니다." bigquery-public-data.imdb.reviews
그룹화된 시맨틱 롤업 (AI.AGG) "bigquery-public-data.imdb.reviews의 각 영화에 대해 수백 개의 리뷰에서 모든 시청자 의견을 집계하여 비평가들의 공통된 평가, 주요 호평, 반복되는 시청자 불만 사항을 강조하는 통합 핵심 요약을 작성해 줘. 결과를 movie_id 및 제목별로 그룹화하고 총 리뷰 수, 평균 평점과 같은 측정항목을 함께 표시하여 스튜디오 임원과 마케팅팀을 위한 통합된 영화 수준 인텔리전스 테이블을 생성해 줘." bigquery-public-data.imdb.reviews
일괄 임베딩 생성 (AI.GENERATE_EMBEDDING) "bigquery-public-data.imdb.reviews의 리뷰 열에 대한 벡터 임베딩을 생성하고 이를 특성 테이블로 구체화하는 파이프라인 노드를 만듭니다." bigquery-public-data.imdb.reviews
자율 임베딩 및 시맨틱 검색 (AI.EMBED, AI.SEARCH) 리뷰 열에 자율 임베딩 생성이 사용 설정된 영화 리뷰 테이블을 만들고 '긴장감을 조성하는 심리 스릴러'와 일치하는 상위 10개 리뷰를 찾는 다운스트림 보고 데이터 표를 만들어 줘. bigquery-public-data.imdb.reviews
예약된 수요 예측 (AI.FORECAST) "bigquery-public-data.san_francisco_bikeshare.bikeshare_trips부터 향후 30일 동안의 일일 자전거 공유 이동 횟수를 예측하는 일일 보고 데이터 표를 만들어 줘." bigquery-public-data.san_francisco_bikeshare.bikeshare_trips
파이프라인 이상 감지 (AI.DETECT_ANOMALIES) "bigquery-public-data.san_francisco_bikeshare.bikeshare_trips에서 2017년을 이전 기준선으로 사용하여 2018년의 일일 이동량 이상치를 감지하는 모니터링 테이블을 빌드해 줘." bigquery-public-data.san_francisco_bikeshare.bikeshare_trips
자동화된 주요 동인 보고 (AI.KEY_DRIVERS) "bigquery-public-data.austin_bikeshare.bikeshare_trips를 사용하여 2017년과 2018년 사이의 이동량 변화를 일으킨 주요 요인을 식별하는 보고 데이터 표를 만들어 줘." bigquery-public-data.austin_bikeshare.bikeshare_trips
변동 지점 감지 (ML.DETECT_CHANGE_POINTS) "bigquery-public-data.san_francisco_bikeshare.bikeshare_trips의 일일 이동량에서 구조적 변화 지점을 감지하는 테이블을 만들어 줘." bigquery-public-data.san_francisco_bikeshare.bikeshare_trips
전처리, 평가, 일괄 채점을 사용한 모델 학습 (CREATE MODEL, TRANSFORM, ML.EVALUATE, ML.PREDICT) 'bigquery-public-data.ml_datasets.census_adult_income에서 TRANSFORM 절을 사용하여 로지스틱 회귀 모델을 학습시켜 income_bracket을 예측하고, 평가 테이블에서 모델을 평가하고, 일괄 예측을 점수 테이블에 출력하는 Dataform 파이프라인을 만듭니다.' bigquery-public-data.ml_datasets.census_adult_income
고객 세그먼트 (KMEANS를 사용한 CREATE MODEL) "bigquery-public-data.ml_datasets.penguins의 펭귄 신체 측정값에 대해 k-평균 클러스터링 모델을 학습시키고 세분화된 출력 테이블에 클러스터 ID를 할당하는 파이프라인을 만들어 줘." bigquery-public-data.ml_datasets.penguins
자동 데이터 드리프트 검증 (ML.VALIDATE_DATA_DRIFT) "bigquery-public-data.san_francisco_bikeshare.bikeshare_trips의 2017년 기준 이동 테이블과 2018년 서빙 이동 테이블 간의 특성 드리프트를 검증하는 파이프라인에 모니터링 테이블을 추가해 줘." bigquery-public-data.san_francisco_bikeshare.bikeshare_trips

샘플 프롬프트

다음 섹션에서는 데이터 엔지니어링 에이전트를 사용하여 데이터 파이프라인을 개발하는 데 사용할 수 있는 샘플 프롬프트를 제공합니다.

기존 데이터를 새 테이블로 집계

이 프롬프트를 사용하면 데이터 엔지니어링 에이전트가 스키마와 샘플을 사용하여 키별 데이터 그룹화를 추론합니다. 에이전트는 일반적으로 테이블 및 열 설명이 포함된 새 테이블 구성을 설정합니다.

  Create a daily sales report from the
  bigquery-public-data.thelook_ecommerce.order_items table into a
  reporting.daily_sales_aggregation table.

새 파생 열을 만들고 새 테이블에 데이터 품질 검사 추가

이 프롬프트는 테이블과 열을 추가하고 동시에 테이블에 품질 검사를 지정하는 방법을 보여줍니다.

  Create a new table named staging.products from
  bigquery-public-data.thelook_ecommerce.products and add a calculated column
  named gross_profit, which is the retail_price minus the cost.


  Also, add the following assertions: ID must not be null and must be unique.
  The retail_price must be greater than or equal to the cost. The department
  column can only contain 'Men' or 'Women'.

모델 정의의 일부로 UDF 만들기

데이터 엔지니어링 에이전트는 사용자 정의 함수 (UDF)를 만들기 위해 DDL을 설정할 수도 있습니다. 에이전트가 실제로 UDF를 만들지는 않지만 데이터 파이프라인을 실행하여 UDF를 만들 수 있습니다. 이러한 UDF는 데이터 파이프라인의 모델 정의에 사용될 수 있습니다.

  Create a user-defined function (UDF) named get_age_group that takes an integer
  age as input and returns a string representing the age group ('Gen Z',
  'Millennial', 'Gen X', 'Baby Boomer').


  Use this UDF on the age column from the
  bigquery-public-data.thelook_ecommerce.users table to create a new view called
  reporting.user_age_demographics that includes user_id, age, and the calculated
  age_group.

파이프라인에서 비정형 데이터 보강 및 일괄 ML 예측 실행

이 프롬프트는 연결된 Dataform 파이프라인 노드에서 행동 특성 추출, BigQuery ML 분류 모델링, 생성형 AI 개인 맞춤설정을 결합하는 방법을 보여줍니다.

  Create a multi-step Dataform pipeline using
  bigquery-public-data.thelook_ecommerce.users and bigquery-public-data.thelook_ecommerce.orders:

  1. Create a staging table on a sample of customers to engineer retention
     features (tenure, lifetime spend, recency) and label churn based on
     inactivity over the past 90 days.
  2. Train a BigQuery ML logistic regression model on those behavioral features
     to predict churn risk.
  3. Create a final table that scores customer churn probabilities and drafts
     personalized, 3-sentence win-back emails with purchase-tailored discounts
     for the 20 customers at highest risk of churning.

권장사항

데이터 엔지니어링 에이전트 및 Dataform을 사용할 때 결과를 개선하려면 다음을 수행하는 것이 좋습니다.

일반적인 요청에는 에이전트 요청 사항을 사용합니다. 특정 기법을 일반적으로 적용하거나 에이전트에 동일한 수정을 자주 수행하는 경우 에이전트 안내를 일반적인 안내와 요청을 저장하는 중앙 집중식 위치로 사용하세요.

에이전트 계획을 활용합니다. 에이전트 계획은 복잡한 파이프라인 작업을 세분화하는 데 도움이 될 수 있습니다. 에이전트 계획은 에이전트 가정과 의도도 표시할 수 있으므로 에이전트에 올바른 컨텍스트가 제공되는지 확인하기 위해 이러한 계획을 검토하는 것이 좋습니다.

계획을 검토한 후 데이터 엔지니어링 에이전트에 피드백과 변경사항을 프롬프트로 입력하여 계획을 수정할 수 있습니다. 예를 들면 다음과 같습니다.

In the plan, ensure that all of the intermediate tables are views.

경우에 따라 명시적인 승인이 필요하지 않은 계획을 생성하도록 에이전트에 요청하는 것이 유용할 수 있습니다. 에이전트가 계획을 세우도록 하면 데이터 엔지니어링 에이전트가 작업을 세분화하게 되므로 더 나은 결과가 도출되는 경우가 많습니다. 에이전트가 계획을 생성하고 자동으로 실행하도록 강제할 수 있습니다. 예를 들면 다음과 같습니다.

Create a plan for a pipeline that finds the
top N pick up and drop off locations in NYC. You have my explicit pre-approval
to go ahead and execute this plan.

명확하게 작성합니다. 요청을 명확하게 서술하고 모호하게 표현하지 마세요. 가능하면 다음 예시와 같이 프롬프트를 작성할 때 소스 및 대상 데이터 소스를 제공합니다.

  Extract data from the sales.customers table in the us_west_1 region, and load
  it into the reporting.dim_customers table in BigQuery. Match the schema of the
  destination table.

직접적이고 범위가 지정된 요청을 제공합니다. 한 번에 하나씩만 질문하고 프롬프트는 간결하게 유지하세요. 질문이 두 개 이상인 프롬프트의 경우 다음 예시와 같이 질문의 각 부분을 항목화하여 명확성을 높입니다.

  1. Create a new table named staging.events_cleaned. Use raw.events as the
     source. This new table should filter out any records where the user_agent
     matches the pattern '%bot%'. All original columns should be included.

  2. Next, create a table named analytics.user_sessions. Use
     staging.events_cleaned as the source. This table should calculate the
     duration for each session by grouping by session_id and finding the
     difference between the MAX(event_timestamp) and MIN(event_timestamp).

명확한 지침을 제공하고 주요 용어를 강조합니다. 다음 예시와 같이 프롬프트에서 핵심 용어나 개념을 강조하고 특정 요구사항을 중요하다고 표시할 수 있습니다.

  When creating the staging.customers table, it is *VERY IMPORTANT* that you
  transform the email column from the source table bronze.raw_customers.
  Coalesce any NULL values in the email column to an empty string ''.

작업 순서를 지정합니다. 순서가 지정된 작업의 경우 다음 예시와 같이 나열된 항목이 집중적으로 수행할 수 있는 작은 단계로 나뉘는 목록으로 프롬프트를 구성합니다.

  Create a pipeline with the following steps:
  1. Extract data from the ecomm.orders table.
  2. Join the extracted data with the marts.customers table on customer_id.
  3. Load the final result into the reporting.customer_orders table.

수정하고 반복하세요. 다양한 문구와 접근 방식을 시도하여 가장 좋은 결과를 얻는 방법을 알아보세요. 에이전트가 잘못된 SQL 또는 기타 실수를 생성하는 경우 예시나 공개 문서를 사용하여 에이전트를 안내합니다.

  The previous query was incorrect because it removed the timestamp. Please
  correct the SQL. Use the TIMESTAMP_TRUNC function to truncate the
  event_timestamp to the nearest hour, instead of casting it as a DATE. For
  example: TIMESTAMP_TRUNC(event_timestamp, HOUR).