1. 소개
Google Cloud Dataflow
최종 업데이트: 2020년 5월 26일
Dataflow란 무엇인가요?
Dataflow는 다양한 데이터 처리 패턴을 실행하는 관리형 서비스입니다. 이 사이트의 문서에서는 서비스 기능 사용에 대한 지침을 포함하여 Dataflow를 사용하여 일괄 및 스트리밍 데이터 처리 파이프라인을 배포하는 방법을 설명합니다.
Apache Beam SDK는 일괄 및 스트리밍 파이프라인을 모두 개발할 수 있는 오픈소스 프로그래밍 모델입니다. Apache Beam 프로그램을 사용하여 파이프라인을 만든 다음 Dataflow 서비스에서 파이프라인을 실행합니다. Apache Beam 문서는 Apache Beam 프로그래밍 모델, SDK, 기타 실행기에 대한 심층적인 개념 정보와 참조 자료를 제공합니다.
신속한 스트리밍 데이터 분석
Dataflow를 사용하면 데이터 지연 시간을 줄이면서 스트리밍 데이터 파이프라인을 빠르고 간편하게 개발할 수 있습니다.
운영 및 관리 간소화
Dataflow는 서버리스 방식으로 데이터 엔지니어링 워크로드에서 운영 오버헤드를 제거하므로 팀이 서버 클러스터를 관리하는 대신 프로그래밍에 집중할 수 있습니다.
총소유비용 절감
Dataflow는 리소스 자동 확장과 비용 최적화된 일괄 처리 기능을 결합해 무제한에 가까운 용량을 제공하므로 시즌성 워크로드와 급증하는 워크로드를 과다 지출 없이 관리할 수 있습니다.
주요 특징
자동화된 리소스 관리 및 동적 작업 재분배
Dataflow는 처리 리소스의 프로비저닝 및 관리를 자동화하여 지연 시간을 최소화하고 사용률을 극대화하므로 인스턴스를 직접 가동하거나 예약할 필요가 없습니다. 작업 파티션 나누기도 자동화 및 최적화되어 지연 작업이 동적으로 재조정됩니다. '핫키'를 뒤쫓을 필요가 없음 전처리할 수 있습니다
수평 자동 확장
처리량 최적화를 위해 작업자 리소스가 수평식으로 자동 확장되어 전반적인 가격 대비 성능이 개선됩니다.
일괄 처리를 위한 유연한 리소스 예약 가격 책정
심야 근무와 같이 작업 예약 시간을 유연하게 처리해야 하는 경우 유연한 리소스 예약 (FlexRS)으로 일괄 처리 비용을 낮춰줍니다. 이러한 유연한 작업은 6시간 내에 실행을 위해 검색되도록 보장되어 큐에 배치됩니다.
이 과정에서 실행할 항목
이 Codelab에서는 Dataflow SQL UI를 통해 SQL 문을 제출하여 Dataflow SQL을 사용합니다. 그런 다음 Dataflow 모니터링 UI를 사용하여 실행 중인 파이프라인을 살펴봅니다.
학습할 내용
- Dataflow SQL UI에서 SQL 문을 Dataflow 작업으로 제출하는 방법
- Dataflow 파이프라인으로 이동하는 방법
- SQL 문으로 생성된 Dataflow 그래프를 살펴봅니다.
- 그래프에서 제공하는 모니터링 정보를 살펴보세요.
필요한 항목
- 결제가 사용 설정된 Google Cloud Platform 프로젝트
- Google Cloud Dataflow 및 Google Cloud PubSub가 사용 설정되었습니다.
2. 설정
Dataflow API 및 Cloud Pub/Sub API가 사용 설정되어 있는지 확인합니다. 이는 API의 & 서비스 페이지
3. Dataflow SQL UI 액세스
Dataflow SQL UI는 Dataflow SQL 작업을 만들기 위한 BigQuery 웹 UI 설정입니다. BigQuery 웹 UI에서 Dataflow SQL UI에 액세스할 수 있습니다.
- BigQuery 웹 UI로 이동합니다.
- Cloud Dataflow 엔진으로 전환합니다.
- 더보기 드롭다운 메뉴를 클릭하고 쿼리 설정을 선택합니다.
- 쿼리 설정 메뉴에서 Dataflow 엔진을 선택합니다.
- Dataflow 및 Data Catalog API가 사용 설정되어 있지 않으면 표시되는 프롬프트에서 API 사용 설정을 클릭합니다.
- 저장을 클릭합니다. <ph type="x-smartling-placeholder"></ph>
Dataflow 모니터링 인터페이스에서 Dataflow SQL UI에 액세스할 수도 있습니다.
- Dataflow 모니터링 인터페이스로 이동합니다.
- SQL에서 작업 만들기를 클릭합니다.
4. SQL 쿼리를 사용하여 Dataflow 작업 실행
Dataflow SQL 쿼리 작성
Dataflow SQL 쿼리는 Dataflow SQL 쿼리 구문을 사용합니다. Dataflow SQL 쿼리 구문은 BigQuery 표준 SQL과 유사합니다. Dataflow SQL 스트리밍 확장 프로그램을 사용하여 Pub/Sub와 같은 Dataflow 소스를 지속적으로 업데이트하여 데이터를 집계할 수 있습니다. 예를 들어 다음 쿼리는 1분마다 택시 탑승의 Pub/Sub 스트림에서 승객을 계산합니다.
SELECT
TUMBLE_START('INTERVAL 1 MINUTE') as period_start,
SUM(passenger_count) AS pickup_count
FROM pubsub.topic.`pubsub-public-data`.`taxirides-realtime`
WHERE
ride_status = "pickup"
GROUP BY
TUMBLE(event_timestamp, 'INTERVAL 1 MINUTE')
Dataflow SQL 쿼리 실행
Dataflow SQL 쿼리를 실행하면 Dataflow가 쿼리를 Apache Beam 파이프라인으로 변환하고 파이프라인을 실행합니다.
Cloud 콘솔 또는 gcloud 명령줄 도구를 사용하여 Dataflow SQL 쿼리를 실행할 수 있습니다.
Dataflow SQL 쿼리를 실행하려면 Dataflow SQL UI를 사용합니다.
- Dataflow SQL UI로 이동합니다.
- 위의 Dataflow SQL 쿼리를 쿼리 편집기에 입력합니다.
- 'Cloud Dataflow 작업 만들기'를 클릭하여 작업 옵션 패널을 엽니다.
- (선택사항) 선택적 매개변수 표시를 클릭하고 목록을 찾아봅니다.
- 패널의 대상 섹션에서 출력 유형으로 BigQuery를 선택합니다.
- 데이터 세트 ID를 선택하고 'passengers_per_min'이라는 테이블 이름을 만듭니다.
- '만들기'를 클릭합니다.
데이터 쿼리 및 Dataflow SQL 쿼리 결과 작성에 대한 자세한 내용은 Dataflow SQL 사용을 참조하세요.
5. Dataflow Monitoring UI에서 작업 살펴보기
Dataflow 관리형 서비스를 사용하여 파이프라인을 실행하면 Dataflow의 웹 기반 모니터링 사용자 인터페이스를 사용하여 해당 작업 및 기타 모든 작업을 볼 수 있습니다. 모니터링 인터페이스를 사용하면 Dataflow 작업을 확인하고 상호작용할 수 있습니다.
Google Cloud 콘솔을 사용하여 Dataflow 모니터링 인터페이스에 액세스할 수 있습니다. 모니터링 인터페이스에 표시되는 내용은 다음과 같습니다.
- 현재 실행 중이고 이전에 지난 30일 이내에 실행된 모든 Dataflow 작업 목록입니다.
- 각 파이프라인의 그래픽 표현
- 작업 상태, 실행, SDK 버전에 대한 세부정보
- 파이프라인을 실행하는 Google Cloud 서비스(예: Compute Engine 및 Cloud Storage)에 대한 정보로 연결되는 링크입니다.
- 작업 중 발생하는 모든 오류 또는 경고
Dataflow 모니터링 인터페이스에서 작업 모니터링 차트를 볼 수 있습니다. 이러한 차트에는 파이프라인 작업 기간 동안의 측정항목이 표시되며 다음 정보가 포함됩니다.
- 파이프라인 지연을 일으킬 수 있는 단계를 식별하는 데 도움이 되는 단계-수준 공개 상태
- 비정상적인 동작을 나타낼 수 있는 통계 정보
- 소스 및 싱크의 병목 현상을 식별하는 데 도움이 되는 I/O 측정항목
Dataflow 모니터링 인터페이스 액세스
Dataflow 모니터링 인터페이스에 액세스하려면 다음 단계를 따릅니다.
- Cloud 콘솔로 이동합니다.
- Google Cloud 프로젝트를 선택합니다.
- 왼쪽 상단에서 메뉴를 클릭합니다.
- 빅데이터 섹션으로 이동하여 Dataflow를 클릭합니다.
Dataflow 작업 목록이 상태와 함께 표시됩니다.
실행 중, 실패, 성공 상태인 작업이 있는 Cloud 콘솔의 Dataflow 작업 목록
작업 상태는 다음과 같습니다.
- —: 모니터링 UI가 아직 Dataflow 서비스로부터 상태를 받지 못했습니다.
- 실행 중: 작업이 현재 실행 중입니다.
- 시작되지 않음: 작업이 생성되었지만 시작하기 전에 시스템에서 준비 시간이 필요합니다.
- 대기 중: FlexRS 작업이 대기 중입니다.
- 취소 중...: 작업이 취소 중입니다.
- 취소됨: 사용자가 취소한 작업입니다.
- 드레이닝 중...: 작업이 드레이닝 중입니다.
- 드레이닝됨: 사용자가 작업을 드레이닝했습니다.
- 업데이트 중...: 작업이 업데이트 중입니다.
- 업데이트됨: 사용자가 작업을 업데이트했습니다.
- 성공: 작업이 성공적으로 완료되었습니다.
- 실패: 작업을 완료하지 못했습니다.
'dfsql'로 작업 찾기 직책의 일부로 지정하고 해당 이름을 클릭합니다.
다음을 포함하는 작업 세부정보 페이지
- 작업 그래프: 파이프라인의 시각적 표현
- 작업 측정항목: 작업 실행에 대한 측정항목
- 작업 정보 패널: 파이프라인에 대한 설명 정보
- 작업 로그: Dataflow 서비스가 생성한 작업 수준 로그
- 작업자 로그: 작업자 수준에서 Dataflow 서비스가 생성한 로그
- 작업 오류 보고: 선택한 타임라인에서 오류가 발생한 위치와 로깅된 모든 오류의 수를 보여주는 차트
- 시간 선택기: 측정항목의 기간을 조정할 수 있는 도구
작업 세부정보 페이지에서 작업 그래프 및 작업 측정항목 탭을 사용하여 작업 뷰를 전환할 수 있습니다.
- 작업 측정항목 탭을 클릭하고 차트를 살펴보세요.
6. Dataflow SQL 작업 중지
Dataflow SQL 작업을 중지하려면 Cancel 명령어를 사용합니다. 드레이닝을 통한 Dataflow SQL 작업 중지는 지원되지 않습니다.