자율 학습/에러 해결

[Google Cloud Skills Boost] Streaming Analytics into BigQuery: Challenge Lab - Dataflow job 실행 안 될 때.. (Task 4)

2025. 8. 8. 10:34

 

[입력할 것]

  • Job name: 복사해서 넣기
  • Region endpoint: us-central1 (lowa) 선택
  • Dataflow template: Custom Template 선택 > Template path:
    dataflow-templates-Region/latest/PubSub_to_BigQuery
    복사해서 넣기..
  • BigQuery output table: {데이터셋.테이블} 선택
  • Input Pub/Sub topic: 선택
  • Temporary location: 복사해서 넣고, 뒤에 /temp 붙여줘야 함.
  • Service account email: Compute Engine default service account → 이거 선택 안 해주면 dataflow job 실행할 때 temp 경로 못 만들고 account 무슨 에러 떠서 상태 fail 됨.
    • 이거 때문에 커맨드 창에서 직접 temp 경로 만들어줘서 job은 running 상태 만들었지만,
    • 이후 Task 5에서 발행한 Pub/Sub 메시지를 temporary location에 저장을 못 하는지 BigQuery로 적재되지 않았다.

↳ 임의로 temp 폴더 생성시키고 메시지 발행한 모습. 하지만 테이블에 적재되지 않았음.

 

[주요 개념]

  • Dataflow job은 생성과 동시에 실행됨.
  • 클라우드 콘솔에서 Pub/Sub 메시지는 문자열도 넣을 수 있고 JSON 형식으로도 넣을 수 있다.
    • 커맨드로 발행할 때에도 동일하게 하면 됨.
      gcloud pubsub topics publish <TOPIC_NAME> --message "문자열" 또는
      gcloud pubsub topics publish <TOPIC_NAME> --message '{"key":"value"}' 

 

 

[간단 프로세스 요약]

*Dataflow 파이프라인(Dataflow job)이 Pub/Sub에서 메시지를 지속적으로 읽고 있는 상황 (스트리밍 모드)

 

 사용자가 Pub/Sub Topic에 메시지 발행 (테이블 스키마 맞춰서)

 → Dataflow 파이프라인이 메시지를 읽어서 temporary location에 쌓아둠.

 → 최종적으로 BigQuery output table에 한 번에 적재시킴.

 

즉, Pub/Sub 메시지를 발행하면 자동으로 BigQuery 테이블에 적재되도록 Dataflow 파이프라인을 구성한 것임.