설명서 예

GitHub의 설명서 예 디렉토리(master-1.x 브랜치)에서 다양한 파이프라인 예를 볼 수 있습니다. 이러한 파이프라인은 SDK 클래스를 사용하여 일반적인 데이터 처리 설계 패턴을 구현하는 방법을 보여줍니다. 이 문서는 각 예를 간단히 설명하고 소스 코드에 대한 링크를 제공합니다.

샘플 시나리오를 사용하여 일반적인 엔드 투 엔드 파이프라인 패턴을 보여주는 전체 예 목록은 엔드 투 엔드 예를 참조하세요.

중요 키워드

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

  • 파이프라인 - 파이프라인은 데이터 처리 작업을 나타내기 위해 작성하는 코드입니다. Dataflow는 파이프라인 코드를 사용하여 작업을 빌드합니다.
  • PCollection - PCollection은 Dataflow SDK에서 제공하는 특별한 클래스로, 크기에 상관없이 유형이 지정된 데이터 세트를 나타냅니다.
  • 변환 - Dataflow 파이프라인에서 변환은 데이터를 변환하는 단계 또는 처리 작업을 나타냅니다.

BigQueryTornadoes

BigQueryTornadoes 파이프라인은 BigQuery에서 기상 데이터의 공개 샘플을 읽고 매월 토네이도 발생 횟수를 계산합니다.

파이프라인은 테이블에서 행을 가져와서 횟수 테이블을 생성하는 사용자 정의 변환을 적용합니다. 이 예의 사용자 정의 변환은 몇 가지 변환으로 구성되며, 그중 하나는 SDK 정의 횟수 변환입니다. Count를 사용하여 매월 총 토네이도 발생 수를 계산합니다. 그런 다음 최종 결과를 BigQuery에 씁니다.

CombinePerKeyExamples

파이프라인 데이터의 값을 결합해야 하는 경우가 종종 있습니다. Dataflow SDK는 파이프라인의 PCollection 객체 값을 병합하는 데 사용할 수 있는 다양한 결합 변환을 제공합니다. 예를 들어, Combine.perKey는 키를 기준으로 튜플 컬렉션을 그룹화한 후 해당 키를 공유하는 모든 값을 결합합니다. 사전 정의된 결합 함수 중 하나 또는 고유한 커스텀 결합 함수Combine.perKey를 제공하여 값을 결합할 수 있습니다.

CombinePerKeyExamplesGoogle BigQuery에서 셰익스피어 희곡 세트를 읽고 주어진 길이를 초과하는 데이터세트의 각 단어별로 해당 단어가 나타나는 희곡 이름 목록이 포함된 문자열을 생성합니다. 특히 키 그룹 컬렉션에서 값을 결합하는 방법을 보여줍니다. Combine.perKey를 사용하여 길이 요구 사항을 충족하는 각 단어가 나타나는 희곡 이름 목록이 포함된 문자열을 생성합니다. 이 예는 모든 입력 항목으로 쉼표로 구분된 문자열을 빌드하는 (사용자 정의) 결합 함수를 사용하여 이를 수행합니다. 즉, 키와 값 모두 문자열인 키-값 쌍의 컬렉션에 대해 함수는 동일한 키에서 그룹화된 모든 문자열 값을 하나의 문자열로 연결합니다.

CombinePerKeyExamples는 파이프라인 데이터의 값 결합뿐만 아니라 애그리게이터 사용법도 보여줍니다. AggregatorsDataflow 모니터링 UI에 표시할 특정 정보를 추적하는 데 사용됩니다. CombinePerKeyExamples 파이프라인은 Aggregator를 사용하여 주어진 길이보다 짧은 단어 수를 추적합니다. 따라서 최종 결과에 포함되지 않습니다.

MaxPerKeyExamples

MaxPerKeyExamples도 결합 변환과 CombineFn의 사용 방법, 특히 자바용 Dataflow SDK에 포함된 통계 결합 함수 사용 방법을 보여줍니다.

MaxPerKeyExamples 예는 BigQuery에서 날씨 데이터의 공개 샘플을 읽고 Max 함수를 사용하여 매월 최고 온도를 확인합니다.

DatastoreWordCount

DatastoreWordCount 예는 DatastoreIO를 사용하여 스키마 없는 NoSQL 데이터베이스인 Cloud Datastore에서 읽고 쓰는 방법을 보여줍니다.

DatastoreWordCount는 두 가지 예로 구성됩니다. 첫 번째 예인 writeDataToDatastore는 텍스트 파일에서 입력을 읽어서 DatastoreIO를 채우는 파이프라인을 만듭니다. 두 번째 예인 readDataFromDatastoreDatastoreIO.Read를 수행하여 셰익스피어의 희곡을 읽고, 희곡에서 각 단어가 나타나는 횟수를 계산한 후 그 결과를 텍스트 파일에 쓰는 파이프라인을 만듭니다.

DeDupExample

DeDupExample은 데이터 세트에서 중복 레코드를 삭제하는 방법을 보여줍니다. 이 예에서 파이프라인의 입력은 일반 텍스트 파일로 된 셰익스피어의 희곡 조합입니다.

이 예는 SDK가 제공하는 RemoveDuplicates 변환을 사용하여 중복 레코드(이 경우에는 텍스트 줄)를 삭제하는 방법을 보여줍니다.

FilterExamples

FilterExamples는 다양한 필터링 방법을 보여줍니다. 한 가지 방법은 관계형 데이터베이스에서의 프로젝션으로, 테이블에서 발견된 모든 열 집합의 원하는 하위 집합을 파생시킵니다. 또 다른 필터링 클래스는 일부 조건이 참인지(정적으로 정의된 값, 파이프라인 생성 시 정의된 매개변수 또는 파이프라인 자체에서 파생된 값) 여부에 따라 요소 컬렉션을 출력하는 경우입니다.

FilterExamples 파이프라인은 BigQuery에서 기상 데이터의 공개 샘플을 읽습니다. 그리고 데이터에서 프로젝션을 수행하고, 온도 판독값의 전역 평균을 찾고, 주어진 달의 판독값을 필터링한 후 평균 온도가 파생된 전역 평균보다 작은 데이터(해당 월에 대해)만 출력합니다.

종종 필터 조건이 파이프라인 자체에서 파생된 값을 기반으로 하는 경우가 유용합니다. 파생된 값을 부차 입력으로 사용할 수 있습니다. FilterExamples는 부차 입력에서 필터링하는 방법을 보여줍니다. 기상 데이터를 읽고, 각 요소에서 온도 값만 추출한 후 해당 컬렉션을 전역 평균 파생에 대한 입력으로 사용하는 복합 변환을 포함합니다. 그런 다음 해당 파생 결과를 사용하여 컬렉션을 필터링하고 온도가 전역 평균보다 낮은 요소만 출력합니다.

JoinExamples

JoinExamples는 Dataflow의 CoGroupByKey 변환을 사용하여 데이터세트 간에 관계형 조인을 수행하는 방법을 보여줍니다. CoGroupByKey는 공통 키를 공유하는 여러 PCollections의 값을 조인할 수 있습니다.

JoinExamples는 BigQuery 테이블 두 개의 샘플 데이터를 사용합니다. 하나는 국가 코드로 색인 생성된 현재 이벤트이고, 다른 하나는 국가 이름에 매핑된 국가 코드입니다. 이 예는 country code 키가 있는 두 테이블의 데이터를 조인하는 방법을 보여줍니다.

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

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

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