
[입력할 것]
- 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 파이프라인을 구성한 것임.
'자율 학습 > 에러 해결' 카테고리의 다른 글
| 멀쩡한 Gemini API 키가 안 될 때.. (+ Netlify) (1) | 2025.08.08 |
|---|---|
| [Windows, WSL2, PostgreSQL] npx prisma migration dev 실패 (4) | 2025.08.06 |
| [Windows] WSL 2에서는 localhost가 WSL 2 내부를 가리킴 (PostgreSQL 연결 실패 에러) (0) | 2025.08.06 |
| [MySQL] DB 연결 host is blocked because of many connection errors (0) | 2025.03.13 |
| [Python] "pip install jq" 실패 - which is required to install pyproject.toml-based projects (0) | 2024.05.09 |