2017-02-08 2 views
0

내 흐름 파이프 라인 기능을 삽입 실패 :클라우드 데이터 흐름 스트리밍 지속적도록

Read from Pubsub 
Transform data into rows 
Write the rows to bigquery 

에서 행사 데이터를 삽입하는 데 실패하는 전달됩니다. 그건 괜찮아, 나는이 실패의 이유를 안다. 그러나 데이터 흐름은이 데이터를 계속해서 반복해서 삽입하려고 시도합니다. 부적절한 정보로 작업자 로그를 압축하므로 재시도 횟수를 제한하고 싶습니다. 따라서 동일한 오류가 반복적으로 나타날 때 문제가되는 문제를 해결하는 것을 매우 어렵게 만듭니다. 로컬 파이프 라인을 실행하는 경우

내가 얻을 :

no evaluator registered for Read(PubsubSource) 

내가 사랑 로컬 파이프 라인을 테스트 할 수 있도록. 그러나 데이터 흐름이 PubSub에서이 옵션을 지원하는 것 같지 않습니다.

오류를 해결하려면 Google Cloud에서 파이프 라인을 취소하고 새 작업을 실행하는 것 외에 다른 선택의 여지가 없습니다. 어떤 시간을 & 돈. 오류를 제한 할 수있는 방법이 있습니까? 로컬로 파이프 라인을 테스트 할 수 있습니까? 파이프 라인을 디버깅하는 더 좋은 방법이 있습니까?

Dataflow UI

작업 ID : 2017-02-08_09_18_15-3168619427405502955

+0

현재 예외 처리 외에 오류를 제한 할 수있는 방법이 없습니다. 아래의 메모를 참조하십시오. https://cloud.google.com/dataflow/pipelines/troubleshooting-your-pipeline#detecting-an-exception-in-worker-code 계속해서 코드를 다시 실행하려고 시도합니다. 로컬 실행의 데이터에 대해 CSV 파일에서 일반적으로 읽는 예제를 보면 로컬에서 Pub/Sub로 테스트하는 방법이 없다고 생각합니다. –

+1

가끔씩 예외가 발생할 때 Dataflow가 Pubsub 메시지를 확인하도록 할 수 있습니까? Pubsub 메시지가 성공적으로 처리되지 않으면 Cloud Dataflow가 메시지를 승인하지 않습니다. –

+0

아마도 예상 한 것과 처리하고 싶은 예외의 종류에 달려 있습니다. 예를 들어,이 블로그 게시물을 볼 수 있습니다 https://cloud.google.com/blog/big-data/2016/01/handling-invalid-inputs-in-dataflow 제 경우에는 수신 및 구문 분석 중입니다. Pub/Sub에서 JSON 메시지를받습니다. 변환에 실패하면 나중에 분석 할 수 있도록 페이로드를 캐치하고 기록합니다. –

답변

2

는 파블로의 제안이 InProcessPipelineRunner를 사용 @에 무제한의 데이터 세트에 로컬로 파이프 라인을 실행합니다.

 dataflowOptions.setRunner(InProcessPipelineRunner.class); 

로컬에서 프로그램을 실행하면 예외가있는 오류를 처리하고 작업 흐름을 신속하게 최적화 할 수있었습니다.

관련 문제