완성형 예

GitHub의 Complete Examples 디렉토리(master-1.x 브랜치)에서 다양한 파이프라인 예를 사용할 수 있습니다. 이러한 파이프라인은 샘플 시나리오를 사용하여 일반적인 엔드 투 엔드 파이프라인 패턴을 보여줍니다. 각 샘플 시나리오는 트래픽 패턴 데이터, Twitter 해시 태그, Wikipedia 편집 데이터 분석과 같은 사실적인 데이터 처리 분야를 바탕으로 합니다. 이 문서는 각 예제를 간단히 설명하고 소스 코드에 대한 링크를 제공합니다.

새로운 사용자는 WordCount 예제 둘러보기부터 시작하는 것이 좋습니다. 이 예제는 제공된 입력 텍스트 파일로 실행되고 각 단어가 입력에서 몇 번 나타나는지 계산합니다. WordCount는 아주 간단한 예제를 통해 핵심 Dataflow 개념을 설명합니다. 하지만 아래의 파이프라인은 보다 현실적입니다.

중요 키워드

이 문서에서는 다음 용어가 사용됩니다.

  • 파이프라인 - 파이프라인은 데이터 처리 작업을 나타내기 위해 작성하는 코드입니다. Dataflow는 파이프라인 코드를 사용하여 작업을 빌드합니다.
  • PCollection - PCollection은 유형이 있는 데이터 세트를 나타내는 Dataflow SDK가 제공하는 특수 클래스입니다.
  • 변환 - Dataflow 파이프라인에서 변환은 데이터를 변환하는 단계 또는 처리 작업을 나타냅니다.
  • 제한된 PCollection과 제한되지 않은 PCollection - PCollection 크기는 제한되거나 제한되지 않을 수 있습니다. PCollection은 고정 데이터 세트를 나타내는 경우에는 제한되고, 지속적으로 업데이트되는 데이터 세트를 나타내는 경우에는 제한되지 않습니다.
  • 일괄 모드 - 파이프라인이 '일괄 모드에서 실행'되면 입력이 제한됩니다.
  • 스트리밍 모드 - 파이프라인이 '스트리밍 모드에서 실행'되면 입력이 제한되지 않습니다.
  • 윈도우 - 윈도우는 Dataflow SDK에서 개별 요소의 타임스탬프에 따라 PCollection을 세분화하는 데 사용되는 개념입니다.

자동 완성

자바

AutoComplete 파이프라인은 입력에서 단어의 각 접두사에 가장 많이 사용된 해시 태그를 계산합니다. AutoComplete 파이프라인의 결과를 자동 완성에 사용할 수 있습니다. AutoComplete은 단어를 입력으로 수신하고 입력에서 각 단어의 각 접두사에 가장 많이 추천되는 단어를 계산합니다.

AutoComplete은 제한된 데이터(일괄 모드에서)나 제한되지 않은 데이터(스트리밍 모드에서)에 실행될 수 있습니다. 제한된 데이터를 사용하는 경우, 입력은 텍스트 파일의 단어 목록입니다. 스트리밍 모드에서는 Google Cloud Pub/Sub 주제에서 단어가 지속적으로 유입됩니다.

AutoComplete 파이프라인은 일련의 변환을 입력 문자열에 적용하여 앞에 해시 태그가 있는 단어를 추출하고 해당 단어의 접두사를 확인하며 각 접두사에 대해 가장 많이 추천된 단어를 계산합니다. 이 파이프라인의 출력은 가장 많이 추천된 데이터입니다.

스트리밍 단어 추출

자바

StreamingWordExtract 파이프라인은 스트리밍 데이터로 작업하는 방법을 보여주는 작은 예제 파이프라인입니다. 이 파이프라인은 Cloud Pub/Sub에서 스트리밍되는 텍스트 줄을 읽고 각 줄을 개별 단어로 토큰화한 후 단어를 대문자로 바꿉니다. 그런 다음 대문자 단어를 BigQuery 테이블 행으로 형식 지정하고 BigQuery 테이블에 스트리밍 쓰기를 수행합니다.

TfIdf

자바

단어 빈도 - 역문서 빈도를 나타내는 TfIdf는 단어가 문서 하나 또는 문서 집합에 대한 중요도를 계산합니다.

Tf-idf 파이프라인은 디렉토리 또는 Google Cloud Storage에서 문서 집합을 읽고 각 단어의 tf-idf 순위 구성요소를 계산하는 일련의 변환을 적용합니다. tf-idf 계산의 구성요소 중 하나는 idf 부분(역문서 빈도)으로, 단어가 나타나는 문서 수를 총 문서 수로 나눈 것입니다. 총 문서 수는 변경되지 않는 값이므로 부차 입력으로 파이프라인에 주입됩니다. 부차 입력은 파이프라인이 입력 PCollection에서 요소를 처리할 때마다 액세스할 수 있는 추가적인 입력입니다.

Tf-idf는 각 단어가 나타나는 문서에 대한 모든 단어의 순위와 매핑한 결과를 출력합니다.

최상위 Wikipedia 세션

자바

TopWikipediaSessionsGoogle Cloud Storage에서 읽는 Wikipedia 편집 데이터를 처리하는 배치 파이프라인입니다. 단일 세션에서 Wikipedia 편집 시퀀스가 가장 큰 사용자를 찾습니다. 세션은 편집 문자열로 정의되며, 이러한 각 문자열은 다음 세션과 1시간 미만으로 구분됩니다.

예를 들어, 사용자 A가 Wikipedia를 30분마다 5번 편집한다고 가정합니다. 하루가 지난 후 사용자 A는 Wikipedia를 다시 편집합니다. 가장 긴 세션은 5개 편집(6개가 아닌)으로 구성됩니다. 사용자 B는 Wikipedia를 2시간마다 20번 편집합니다. 가장 긴 세션은 편집 한 개로 구성됩니다. 따라서 사용자 A가 단일 세션에서 가장 큰 편집 시퀀스를 갖은 사용자입니다.

이 예에서는 창 작업을 사용하여 시간 기준 데이터 집계를 수행합니다. 1시간 기간을 사용하여 세션을 정의하고, 각 사용자 세션에서 편집 횟수를 계산합니다.

이 파이프라인은 출력을 서식 있는 문자열로 Google Cloud Storage의 텍스트 파일에 씁니다.

최대 차선 통행량

자바

TrafficMaxLaneFlow 파이프라인은 트래픽 센서의 데이터를 분석합니다. 이 파이프라인은 일괄 모드와 스트리밍 모드 모두에서 실행될 수 있습니다. 일괄 모드에서 이 파이프라인은 입력 파일에서 트래픽 센서 데이터를 읽습니다. 스트리밍 모드에서는 데이터가 Cloud Pub/Sub 주제에서 지속적으로 유입됩니다.

TrafficMaxLaneFlow는 윈도우, 특히 슬라이딩 시간 창을 사용하여 들어오는 데이터 스트림을 분석합니다. 슬라이딩 시간 창은 데이터 스트림의 시간 간격을 사용하여 창이 겹치는 데이터 번들을 정의합니다.

TrafficMaxLaneFlow는 커스텀 Combine 변환을 사용하여 차선 정보를 추출하고 각 윈도우의 지정된 스테이션에 대해 발견된 최대 차선 통행량을 계산합니다. 단순한 Max 결합이 아니라 흐름 값과 함께 일부 추가 정보를 보존해야 하므로, 커스텀 결합 변환이 필요합니다.

이 파이프라인은 보조 정보와 함께 최대값 형식을 지정하고 BigQuery 테이블에 씁니다.

트래픽 경로

자바

TrafficRoutes는 트래픽 센서의 데이터를 분석하고, 사전 정의된 '경로'의 일부 작은 조합의 평균 속도를 계산하며, 해당 경로에서 '감속'을 찾습니다.

TrafficRoutes 파이프라인은 제한된 데이터(일괄 모드에서)나 제한되지 않은 데이터(스트리밍 모드에서)에 실행됩니다. 일괄 모드에서 파이프라인은 텍스트 파일에서 트래픽 센서 데이터를 읽습니다. 스트리밍 모드에서 파이프라인은 Cloud Pub/Sub 주제의 데이터를 읽습니다.

파이프라인은 윈도우, 특히 슬라이딩 시간 창을 사용하여 데이터 스트림을 분석합니다. 슬라이딩 시간 창은 데이터 스트림의 시간 간격을 사용하여 창이 겹치는 데이터 번들을 정의합니다. TrafficRoutes의 기본 창 기간은 3분이고, 기본 창 간격은 1분입니다. 따라서 각 창에는 이전 창 시작 1분 후에 시작되는 3분 데이터 샘플이 포함됩니다. 파이프라인은 각 창에 대해 사전 정의된 '경로' 조합의 평균 속도를 계산하고 '감속'을 찾습니다. 슬라이딩 창의 속도 대부분이 이전 창의 읽기보다 느린 경우 '감속'이 발생한 것입니다.

그런 다음 파이프라인은 결과 형식을 지정하고 BigQuery에 씁니다.

PI 추정

자바

자바용 Dataflow SDK에서는 이 예 파이프라인을 사용할 수 없습니다.

이 페이지가 도움이 되었나요? 평가를 부탁드립니다.

다음에 대한 의견 보내기...

도움이 필요하시나요? 지원 페이지를 방문하세요.