2017-10-31 8 views
1

스파크 스트리밍 (v2.2)을 사용하여 데이터를 리디렉션으로 스트리밍 할 수 있는지 알고 싶습니다. spark-redshift 라이브러리 (https://github.com/databricks/spark-redshift)를 발견했습니다. 그러나 배치 모드에서만 작동합니다. 스트리밍 데이터로 수행하는 방법에 대한 다른 제안 사항이 있습니까? Redshift에 대한 COPY의 성능은 어떻게됩니까?누구나 스파크 구조화 된 스트리밍을 사용하여 Redshift로 스트리밍하려고합니다.

감사합니다. 데이터의 낮은 볼륨의

답변

1

(때때로 데이터의 몇 행)이 사용 OK입니다 :

insert into table ... 
update table ... 
delete from table ... 

명령은 적색 편이 데이터를 관리 할 수 ​​있습니다. 이것은 스파크 스트리밍이 작동하는 방법입니다.

큰 볼륨의 경우 항상 : 이어야합니다. 1) s3에 데이터를 쓰고 가급적 1GB에서 1GB 파일로 정리하여 gzipped하는 것이 좋습니다. 2) redshift copy 명령을 실행하여 해당 s3 데이터를 적색 변경 "스테이징"영역에로드하십시오. 3) redshift sql을 실행하여 스테이징 데이터를 대상 테이블에 병합하십시오.

이 복사 방법을 사용하면 개별 삽입보다 수백 배 효율적일 수 있습니다.

물론 이것은 배치 모드에서 실행해야한다는 것을 의미합니다.

redshift 데이터 대기 시간을 낮게 유지하려면 몇 분마다 배치 업데이트를 실행할 수 있습니다.