Dataflow 개요

Dataflow는 스트림 및 일괄 처리 데이터 처리 파이프라인을 실행하기 위한 완전 관리형 서비스입니다. 이 서비스는 컴퓨팅 리소스를 자동으로 프로비저닝 및 관리하며 데이터를 일관적, 안정적으로 1회만 처리합니다. Dataflow는 스트림 분석, 실시간 AI, 센서 및 로그 데이터 처리, 데이터 변환과 관련된 기타 워크플로 등 다양한 데이터 처리 사용 사례를 지원합니다.

파이프라인 만들기 또는 템플릿 사용

Dataflow용 데이터 파이프라인을 만들려면 일괄 및 스트리밍 데이터 처리 파이프라인을 모두 정의할 수 있는 오픈소스 통합 모델인 Apache Beam을 사용합니다. Apache Beam 프로그래밍 모델을 사용하면 대규모 병렬 데이터 처리 방식이 간단해집니다. Apache Beam SDK 중 하나를 사용하여 파이프라인을 정의하는 프로그램을 빌드합니다. 그런 다음 Dataflow에서 파이프라인을 실행합니다.

Apache Beam 모델은 유용한 추상화를 제공하므로 개별 작업자 조정, 데이터 세트 샤딩과 같은 분산 처리의 세밀한 부분에 신경쓸 필요가 없습니다. Dataflow가 이러한 세밀한 부분을 완벽하게 관리합니다. 따라서 병렬 처리를 물리적으로 조정하기보다는 데이터 처리 작업을 논리적으로 구성하는 데 집중하면 됩니다. 작업이 어떻게 실행되는 지가 아니라 작업에서 무엇을 수행해야 하는지에 집중할 수 있습니다.

자체 파이프라인을 작성하지 않으려면 Google이 제공하는 Dataflow 템플릿 중 하나를 사용할 수 있습니다. 이러한 템플릿은 Pub/Sub에서 스트리밍 데이터를 읽고 Cloud Storage에 쓰거나 Apache Kafka에서 스트리밍 데이터를 읽고 BigQuery에 쓰는 등 일반적인 데이터 변환을 정의합니다. 커스텀 Dataflow 템플릿을 직접 만들어 팀이나 조직에서 파이프라인을 공유할 수도 있습니다.

Dataflow 템플릿을 사용하면 Dataflow 파이프라인을 배포용으로 패키징할 수 있습니다. 올바른 권한이 있는 누구나 템플릿을 사용하여 파이프라인을 배포할 수 있습니다. 템플릿은 파이프라인 설계를 배포와 구분합니다. 예를 들어 개발자는 템플릿을 만들 수 있으며 데이터 과학자는 나중에 템플릿을 배포하고 런타임에 매개변수를 사용하여 작업을 맞춤설정할 수 있습니다.

Dataflow 기능

Dataflow는 안전하고 안정적이며 비용 효율적인 데이터 파이프라인을 대규모로 실행하는 데 도움이 되는 다양한 기능을 제공합니다. 이 섹션에서는 Dataflow로 수행할 수 있는 몇 가지 작업을 설명합니다.

수평 자동 확장으로 수평 확장

수평 자동 확장을 사용 설정하면 작업을 실행하는 데 필요한 작업자 인스턴스 수를 Dataflow가 자동으로 적절하게 선택합니다. Dataflow는 작업 특성을 고려하여 런타임 중에 더 많은 작업자 또는 더 적은 작업자를 동적으로 다시 할당할 수도 있습니다.

수직 자동 확장으로 수직 확장

Dataflow는 수직 자동 확장을 통해 작업자가 사용할 수 있는 메모리를 작업 요구사항에 맞게 동적으로 확장 또는 축소할 수 있습니다. 이 기능은 메모리 부족 오류에 대해 작업 복원력을 높이고 파이프라인 효율성을 극대화하도록 디자인되었습니다. Dataflow는 파이프라인을 모니터링하고, 작업자에 사용 가능한 메모리가 부족하거나 초과되는 상황을 감지한 후 이를 메모리가 많거나 적은 새 작업자로 대체합니다.

서버리스 파이프라인 실행

Dataflow Prime을 사용하여 서버리스 파이프라인을 실행할 수 있습니다. Dataflow Prime은 Dataflow를 기반으로 하는 서버리스 데이터 처리 플랫폼입니다. Dataflow Prime은 컴퓨팅과 상태가 구분된 아키텍처를 사용하며 효율성과 생산성을 높이도록 설계된 기능을 포함합니다. Dataflow Prime을 사용하는 파이프라인은 자동화되고 최적화된 리소스 관리, 줄어든 운영 비용, 향상된 진단 성능 이점을 얻을 수 있습니다.

파이프라인 단계별로 리소스 최적화

Dataflow 프라임 적합 맞춤은 각 파이프라인 단계에 최적화된 단계별 리소스 풀을 만들어 리소스 낭비를 줄입니다.

작업 모니터링

모니터링 인터페이스를 사용하여 Dataflow 작업을 확인하고 상호작용합니다. 모니터링 인터페이스는 Dataflow 작업 목록, 각 파이프라인의 그래픽 표현, 각 작업의 상태에 대한 세부정보, 파이프라인을 실행하는 Google Cloud 서비스에 대한 정보 링크, 작업 중에 발생하는 오류 또는 경고와 추가 진단 및 측정항목을 보여줍니다.

작업 성능 시각화

작업 최적화 도구의 Dataflow 콘솔에 있는 실행 세부정보 탭에서 Dataflow 작업의 성능 측정항목을 확인하고 병렬 처리 병목 현상을 비롯한 비효율적인 코드를 찾아 작업의 성능을 최적화할 수 있습니다. 또한 파이프라인의 각 단계와 연관된 단계 목록을 확인할 수 있습니다.

스토리지에서 스트리밍 리소스 분리

Streaming Engine은 스트리밍 파이프라인의 컴퓨팅을 상태 스토리지에서 분리합니다. 따라서 파이프라인 실행의 일부가 작업자 VM에서 Dataflow로 이동하여 자동 확장 및 데이터 지연 시간이 크게 개선됩니다.

효율적인 데이터 셔플

Dataflow Shuffle은 일괄 파이프라인에서 데이터를 그룹화하고 조인하는 데 사용되는 셔플 작업을 작업자 VM에서 Dataflow로 이동합니다. 일괄 파이프라인은 미세 조정 없이도 수백 테라바이트로 원활하게 확장됩니다.

일괄 처리 비용 절감

유연한 리소스 예약(FlexRS)은 고급 예약 기술, Dataflow Shuffle 서비스, 선점형 VM 인스턴스와 일반 VM의 조합을 사용하여 일괄 처리 비용을 줄입니다.

노트북에서 파이프라인 실행

Vertex AI 노트북을 사용하여 파이프라인을 처음부터 반복적으로 빌드하고 Dataflow에서 작업을 실행합니다. REPL(read-eval-print-loop) 워크플로에서 파이프라인 그래프를 검사하여 Apache Beam 파이프라인을 단계별로 작성할 수 있습니다. 노트북을 사용하면 최신 데이터 과학 및 머신러닝 프레임워크를 사용하여 직관적인 환경에서 파이프라인을 작성할 수 있습니다.

맞춤 권장사항 제안

머신러닝을 통해 제공되는 권장사항을 기반으로 파이프라인을 최적화합니다. 권장사항을 따르면 작업 성능을 개선하고 비용을 절감하며 오류를 해결할 수 있습니다.

고객 관리 암호화 키로 파이프라인 보호

고객 관리 암호화 키(CMEK)를 사용하면 Cloud KMS를 통해 제어할 수 있는 키로 저장 데이터를 암호화할 수 있습니다. CMEK로 보호되는 일괄 또는 스트리밍 파이프라인을 만들고 소스 및 싱크에서 CMEK로 보호되는 데이터에 액세스할 수 있습니다.

네트워크 및 서브네트워크 지정

Dataflow와 VPC 서비스 제어의 통합은 데이터 무단 반출 위험을 완화하는 기능을 개선하여 데이터 처리 환경의 보안을 강화합니다. Dataflow 작업을 실행할 때 네트워크 또는 서브네트워크를 지정하거나 두 옵션을 모두 지정할 수 있습니다.

비공개 IP 구성

공개 IP를 사용 중지하면 데이터 처리 인프라의 보안을 강화할 수 있습니다. Dataflow 작업자에 공개 IP 주소를 사용하지 않으면 Google Cloud 프로젝트 할당량에서 사용되는 공개 IP 주소의 수가 줄어듭니다.

시작하기

Dataflow를 시작하려면 빠른 시작 중 하나를 사용해 보세요.