출시 노트: 자바용 Cloud Dataflow SDK 2.x

참고: Apache Beam 다운로드 페이지에는 Apache Beam SDK 출시 버전별 출시 노트가 포함되어 있습니다.

참고: Cloud Dataflow SDK 2.x 출시 버전에서는 1.x 시리즈 출시 버전과 비교해 많은 부분이 변경되었습니다. 1.x에서 2.x로 이전 가이드에서 변경사항을 참조하세요.

2016년 1월, Google은 Apache Beam 프로젝트의 일환으로 Apache Software Foundation에 Cloud Dataflow SDK를 기부한다고 발표했습니다. Cloud Dataflow SDK는 이제 Apache Beam을 기반으로 합니다.

자바 2.0.0용 Cloud Dataflow SDK는 최초의 안정적인 자바용 Cloud Dataflow SDK 2.x 버전으로서, 일부 Apache Beam 코드 기반에 기초합니다. 자바용 Cloud Dataflow SDK 버전 1.x에 대한 내용은 자바용 Cloud Dataflow SDK 1.x 출시 노트를 참조하세요.

SDK 버전 지원 상태 페이지에는 Cloud Dataflow SDK의 각 출시 버전에 대한 지원 상태 정보가 있습니다.

Cloud Dataflow SDK를 설치 및 사용하려면 Cloud Dataflow SDK 설치 가이드를 참조하세요.

자바 1.x용 Cloud Dataflow SDK에서 업그레이드하는 사용자에 대한 경고:
이 버전은 대폭 달라진 새 버전이므로 다음과 같은 주의 사항이 있습니다.
* 획기적 변화: 자바용 Cloud Dataflow SDK 2.x는 1.x 시리즈 버전과 비교해 여러 가지 면에서 획기적으로 달라졌습니다. 자세한 내용은 아래를 참조하세요.
* 업데이트 비호환성: 자바용 Cloud Dataflow SDK 2.x는 Cloud Dataflow 1.x와 업데이트 호환되지 않습니다. Cloud Dataflow 1.x SDK를 이용한 스트리밍 작업은 Cloud Dataflow 2.x SDK를 사용하도록 업데이트될 수 없습니다. Cloud Dataflow 2.x 파이프라인은 SDK 버전 2.0.0 이후 버전으로만 업데이트될 수 있습니다.

Cloud Dataflow SDK 배포 내용

Cloud Dataflow SDK 배포에는 Apache Beam 생태계의 하위 집합이 포함되어 있습니다. 이 하위 집합에는 파이프라인을 정의하고 이를 로컬과 다음과 같은 Cloud Dataflow 서비스에서 실행하는 데 필요한 구성요소가 포함되어 있습니다.

  • 핵심 SDK
  • DirectRunner 및 DataflowRunner
  • 다른 Google Cloud Platform 서비스를 위한 I/O 구성요소
  • Apache Kafka

Cloud Dataflow SDK 배포에 다음과 같은 다른 Beam 구성요소가 포함되지 않습니다.

  • 배포된 다른 처리 엔진용 실행기(예: Apache Spark 또는 Apache Flink)
  • 위에 명시되지 않은 비 Cloud Platform 서비스용 I/O 구성요소

포함되지 않은 구성요소가 필요한 경우에는 해당 Apache Beam 모듈을 직접 사용하여 Cloud Dataflow 서비스에서 파이프라인을 계속 실행할 수 있습니다.

출시 노트

이 섹션은 각 버전에서 Cloud Dataflow 고객에게 가장 관련 있는 변경 내용을 설명합니다.

Apache Beam 다운로드 페이지에는 Apache Beam SDK 출시 버전별 출시 노트가 포함되어 있습니다.

2018년 12월 17일

다음 SDK 버전은 JSON-RPC 및 글로벌 HTTP 배치 엔드포인트 지원 중단으로 인해 2019년 3월 25일에 사용 중단됩니다. 이 날짜가 지나면 새 Cloud Dataflow 작업을 제출하거나 사용 중단된 SDK를 사용하는 실행 중인 Cloud Dataflow 작업을 업데이트할 수 없습니다. 또한 다음 SDK 버전을 사용하는 기존 스트리밍 작업이 실패할 수 있습니다.

  • 자바용 Apache Beam SDK, 버전 2.0.0~2.4.0(포함)
  • Python용 Apache Beam SDK, 버전 2.0.0~2.4.0(포함)
  • 자바용 Cloud Dataflow SDK, 버전 2.0.0~2.4.0(포함)
  • Python용 Cloud Dataflow SDK, 버전 2.0.0~2.4.0(포함)

자세한 SDK 지원 상태는 SDK 버전 지원 상태 페이지를 참조하세요.

2.5.0(2018년 6월 27일)

향후 지원 중단 알림: 이 Cloud Dataflow SDK 2.5.0 버전은 Apache Beam SDK와 별개로 출시되는 마지막 자바용 Cloud Dataflow SDK입니다.

버전 2.5.0은 Apache Beam 2.5.0의 하위 집합을 토대로 합니다. 추가 변경 내용에 대해서는 Apache Beam 2.5.0 출시 공지를 참조하세요.

KafkaIO가 Cloud Dataflow SDK의 일부로 추가되었습니다.

일괄 모드에서 로드 작업에 다른 프로젝트를 사용하도록 BigQueryIO가 사용 설정되었습니다.

SpannerIO에서 일괄 API를 중지하는 기능이 추가되었습니다.

우선순위를 INTERACTIVE 또는 BATCH로 지정하는 메소드와 함께 BigQueryIO를 제공하는 옵션이 추가되었습니다.

동일한 번들에서 타이머가 여러 개 설정된 경우, DirectRunner가 멈추는 문제가 해결되었습니다.

일부 안정성, 성능, 문서 문제가 개선되었습니다.

2.4.0(2018년 3월 30일)

버전 2.4.0은 Apache Beam 2.4.0의 하위 집합에 기초합니다. 추가 변경 정보는 Apache Beam 2.4.0 출시 공지를 참조하세요.

변환을 범용 시퀀싱할 수 있도록 새 Wait.on() 변환이 추가되었습니다. 일괄 및 스트리밍 파이프라인 모두에서 Wait.on()을 사용할 수 있습니다.

TextIO.read().watchForNewFiles()와 같은 I/O 변환을 통해 새 파일을 볼 수 있는 확장성이 향상되었습니다. 파일을 최대 백만 개까지 읽기 테스트가 성공했습니다.

이제 BigQueryIO.write()열 기반 파티션 나누기를 지원하여 시간 분할 테이블로 이전 데이터를 보다 저렴하고 빠르게 로드할 수 있습니다. 열 기반 파티션 나누기는 파티션당 로드 작업 한 개 대신 총 로드 작업 한 개를 사용합니다.

Cloud Spanner의 BatchQuery API를 사용할 수 있도록 SpannerIO가 업데이트되었습니다. Cloud Spanner 문서에는 Cloud Dataflow 커넥터 사용에 대한 자세한 내용이 있습니다.

JCE(Java Cryptography Extension) 무제한 정책을 지원하도록 Cloud Dataflow 컨테이너가 업데이트되었습니다.

사용 중단된 메소드 WindowedValue.valueInEmptyWindows()가 삭제되었습니다.

ApproximateUnique에서 조기에 데이터가 삭제되는 문제가 해결되었습니다.

몇 가지 안정성, 성능, 문서 문제가 개선되었습니다.

2.3.0(2018년 2월 28일)

버전 2.3.0은 Apache Beam 2.3.0의 하위 집합에 기초합니다. 추가 변경 내용은 Apache Beam 2.3.0 출시 공지를 참조하세요.

자바 7이 더 이상 지원되지 않습니다.

BigtableIO템플릿 지원(ValueProvider 매개변수)이 추가되었습니다.

파일에 쓰기 위한 새로운 범용 흐름 API(FileIO.write()FileIO.writeDynamic())가 추가되었습니다. 이제 TextIOAvroIODynamicDestinations API가 지원 중단됩니다.

이제 MapElementsFlatMapElements는 부가 입력을 지원합니다.

파티션 데코레이터가 있는 표를 쓰는 경우의 BigQueryIO 문제가 해결되었습니다.

2.2.0(2017년 12월 8일)

버전 2.2.0은 Apache Beam 2.2.0의 하위 집합에 기초합니다. 추가 변경 내용은 Apache Beam 2.2.0 출시 공지를 참조하세요.

문제

알려진 문제: 일괄 모드에서 실행 시 게이지 측정항목이 보고되지 않습니다.

알려진 문제: 시험 버전이고 Cloud Dataflow에서 테스트되지 않았으므로, 이 버전에는 SQL 지원이 포함되지 않았습니다. SQL을 사용하지 않는 것이 좋습니다.

업데이트 및 개선

DataflowPipelineOptions에서 작업 라벨 설정 기능이 추가되었습니다.

BigQueryIO로 Avro GenericRecords 읽기 지원이 추가되었습니다.

TextIO에 다중 바이트 커스텀 구분 기호에 대한 지원이 추가되었습니다.

TextIO에 새 파일을 보기 위한 지원(TextIO.watchForNewFiles)이 추가되었습니다.

파일 이름(ReadAll)의 PCollection 읽기를 위한 지원이 TextIOAvroIO에 추가되었습니다.

BigtableIO.write()에서 유효성 검사 중지를 위한 지원이 추가되었습니다.

BigQueryIO.write()에서 setTimePartitioning 메소드를 사용하기 위한 지원이 추가되었습니다.

몇 가지 안정성, 성능, 문서 문제가 개선되었습니다.

2.1.0(2017년 9월 1일)

버전 2.1.0은 Apache Beam 2.1.0의 하위 집합에 기초합니다. 추가 변경 내용은 Apache Beam 2.1.0 출시 공지를 참조하세요.

문제

알려진 문제: 일괄 모드에서 실행 시 게이지 측정항목이 보고되지 않습니다.

업데이트 및 개선

잠재적으로 멈춘 코드 감지 기능이 추가되었습니다. 그 결과 Processing lulls 로그 항목이 생성됩니다.

스트리밍 모드에서 DataflowRunner에 대한 측정항목 지원이 추가되었습니다.

ON_TIME 창 방출을 제어하기 위해 OnTimeBehaviorWindowinStrategy에 추가되었습니다.

창 입력을 사용하는 창 파일 FileBasedSink에 대한 기본 파일 이름 정책이 추가되었습니다.

만료된 창의 처리 시간 타이머가 무시되는 문제가 해결되었습니다.

Datastore가 느리게 응답하는 경우, DatastoreIO가 진행되지 않는 문제가 해결되었습니다.

bzip2 파일이 부분적으로 판독되는 문제가 해결되었습니다. 연결된 bzip2 파일에 대한 지원이 추가되었습니다.

몇 가지 안정성, 성능, 문서 문제가 개선되었습니다.

2.0.0(2017년 5월 23일)

버전 2.0.0은 Apache Beam 2.0.0의 하위 집합에 기초합니다. 추가 변경 내용은 Apache Beam 2.0.0 출시 공지를 참조하세요.

문제

확인된 문제: 스트리밍 모드에서 실행 시 Cloud Dataflow UI에서 측정항목이 보고되지 않습니다.

확인된 문제: 일괄 모드에서 실행 시 게이지 측정항목이 보고되지 않습니다.

업데이트 및 개선

Stackdriver 오류 보고 인터페이스를 사용하기 위한 지원이 추가되었습니다.

데이터에 따라 서로 다른 스키마로 여러 표에 쓰기 위해 BigQueryIO에 새 API가 추가되었습니다. BigQueryIO.Write.to(SerializableFunction)BigQueryIO.Write.to(DynamicDestinations)를 참조하세요.

TextIOAvroIO에 윈도우 컬렉션과 제한되지 않은 컬렉션을 쓰기 위한 새 API가 추가되었습니다. 예에 대해서는 TextIO.Write.withWindowedWrites()TextIO.Write.withFilenamePolicy(FilenamePolicy)를 참조하세요.

TensorFlow TFRecord 파일을 읽고 쓰기 위해 TFRecordIO가 추가되었습니다.

기본 CoderRegistryCoderProvider를 자동으로 등록하는 기능이 추가되었습니다. CoderProviderRegistrar의 구체적인 구현을 통해 CoderProviderServiceLoader를 통해 등록됩니다.

Google API 요구 사항이 추가되었습니다. 이제 Cloud Resource Manager API도 사용해야 합니다.

부가 입력과 출력이 있는 ParDo에 대한 매개변수 순서가 변경되었습니다.

출력 유형을 지정하는 경우, MapElementsFlatMapElements 변환에 대한 매개변수 순서가 변경되었습니다.

PubsubIOKafkaIO에 대한 커스텀 유형을 읽고 쓰기 위한 패턴이 변경되었습니다.

TextIO, AvroIO, TFRecordIO, KinesisIO, BigQueryIO에서 읽기 및 쓰기 구문이 변경되었습니다.

Window 변환을 사용하여 WindowFn 자체 이외의 창 매개변수를 구성하기 위한 구문이 변경되었습니다.

XmlSourceXmlSinkXmlIO으로 통합되었습니다.

CountingInput 이름이 GenerateSequence로 변경되고 제한된 시퀀스와 제한되지 않은 시퀀스에 대한 구문이 통합되었습니다.

BoundedSource#splitIntoBundles 이름이 #split으로 변경되었습니다.

UnboundedSource#generateInitialSplits 이름이 #split으로 변경되었습니다.

@StartBundle에서 더 이상 출력이 가능하지 않습니다. 유형 Context의 매개변수를 수용하는 대신 이 메소드는 유형 StartBundleContext의 인수를 선택적으로 수용하여 PipelineOptions에 액세스할 수 있습니다.

이제 @FinishBundle에서 출력에는 명시적 타임스탬프와 창이 필요합니다. 유형 Context의 매개변수를 수용하는 대신 이 메소드는 유형 FinishBundleContext의 인수를 선택적으로 수용하여 PipelineOptions에 액세스하고 특정 창으로 출력을 내보낼 수 있습니다.

XmlIO가 더 이상 SDK 코어의 일부가 아닙니다. 새로운 xml-io 패키지를 사용하여 수동으로 추가해야 합니다.

맞춤 설정 측정항목/카운터를 만들기 위해 Aggregator API가 새 Metrics API로 교체되었습니다.


참고: 모든 2.0.0-베타 버전은 지원 중단됩니다.

2.0.0-beta3(2017년 3월 17일)

버전 2.0.0-beta3은 Apache Beam 0.6.0의 하위 집합에 기초합니다.

문자열에서만 작동하도록 TextIO가 변경되었습니다.

유형 매개변수를 명시적으로 지정하도록 KafkaIO가 변경되었습니다.

ToString의 팩토리 함수 이름이 변경되었습니다.

Count, Latest, Sample, SortValues 변환이 변경되었습니다.

Write.Bound 이름이 Write로 변경되었습니다.

Flatten 변환 클래스 이름이 변경되었습니다.

GroupByKey.create 메소드가 createcreateWithFewKeys 메소드로 분할되었습니다.

2.0.0-beta2(2017년 2월 2일)

버전 2.0.0-beta2는 Apache Beam 0.5.0의 하위 집합에 기초합니다.

Cloud Pub/Sub 메시지 속성에 대한 액세스 권한을 제공하도록 ReadWrite 변환을 허용하는 PubsubIO 기능이 추가되었습니다.

State API를 통해 상태 저장 파이프라인에 대한 지원이 추가되었습니다.

Timer API를 통해 타이머에 대한 지원이 추가되었습니다. 이 출시 버전에서는 이 기능에 대한 지원이 DirectRunner로 제한됩니다.

2.0.0-beta1(2017년 1월 7일)

버전 2.0.0-beta1은 Apache Beam 0.4.0의 하위 집합에 기초합니다.

압축 개선: CompressedSource는 ZIP 압축 파일 읽기를 지원합니다. TextIO.WriteAvroIO.Write는 압축 출력을 지원합니다.

AvroIO에 기능 추가: Write는 커스텀 사용자 메타데이터 추가를 지원합니다.

BigQueryIO에 기능 추가: Write는 대량(> 12 TiB) 벌크 가져오기를 여러 BigQuery 로드 작업으로 분할하므로, 매우 큰 데이터세트를 처리할 수 있습니다.

BigtableIO에 기능 추가: Write는 제한되지 않은 PCollection을 지원하며 DataflowRunner에서 스트리밍 모드로 사용될 수 있습니다.

자세한 내용은 Apache Beam 0.3.0-incubating, 0.4.0, 0.5.0 출시 노트를 참조하세요.

해당 버전의 다른 Apache Beam 모듈을 이 배포와 함께 사용할 수 있으며, 여기에는 Java Message Service(JMS), Apache Kafka, Java Database Connectivity(JDBC), MongoDB, Amazon Kinesis와 같은 추가 I/O 커넥터가 포함됩니다. 자세한 내용은 Apache Beam 사이트를 참조하세요.

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

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

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