2017-01-02 1 views
1

스플 라이스 머신에 데이터를로드하기 위해 Spark에서 스트리밍 작업을 작성하고 있습니다. VTI를 사용하여 커뮤니티 자습서를 따라 Splice에 데이터를 삽입했지만 모든 예제에서는 INSERT를 수행합니다. 반대로, 나는 기록의 UPSERT를 수행해야합니다. 이것을 달성 할 수있는 방법이 있습니까?스플 라이스 머신으로 업 그레 이브

감사합니다.

답변

2

예 insertMode 힌트를 사용하도록 VTI 문을 변경하여 업서 트를 수행 할 수 있습니다. 그렇지 않으면 그것은의 일부입니다 모든 것을 생각하고, 당신의 자바 코드에 당신이 힌트 후 새 라인 문자 (\ n)를 추가해야한다는

INSERT INTO IOT.SENSOR_MESSAGES --splice-properties insertMode=UPSERT select s.* from new com.splicemachine.tutorials.sparkstreaming.kafka.SensorMessageVTI(?) s ( id varchar(20), enter code here location varchar(50), temperature decimal(12,5), humidity decimal(12,5), recordedtime timestamp );

참고 : 귀하의 문은 다음과 같을 것 힌트. 2.0.x 버전을 사용중인 경우 스플 라이스 시스템의 다음 릴리스에서 수정 된 VTI에 대한 힌트를 사용하는 데 문제가있었습니다. 수정 버전을 해당 버전으로 다시 가져올 수 있습니다. VTI를 사용할 때 유용하게 사용할 수

다른 두 가지 힌트는 다음과 같습니다

  • statusDirectory : 많은 SYSCS_UTIL.IMPORT_DATA 문처럼 HDFS에 나쁜 디렉토리에 가져 오기/upsert 메시지를두고 수행
  • badRecordsAllowed : 프로세스가 실패하기 전에 허용되는 불량 레코드 수를 나타냅니다.
+0

답장을 보내 주셔서 감사합니다. 단 한 점이 없습니다. 2.0.1.28 버전이 있으므로 버그의 영향을 받습니까? 그렇다면 영향을받지 않는 CDH 5.8.X에 대한 최신 릴리스가 있는지 알고 있습니까? 또한 힌트에 대한 참조/설명서가 있습니까? 고맙습니다! – mgaido

+1

예.이 결함의 영향을받습니다. 릴리스에 대한 픽스를 체크인하려고하므로 다음 빌드 2.0에서 사용할 수 있어야합니다. 이 힌트는 문서에 나와 있지 않습니다. VTI 문서 페이지에 해당 힌트가 업데이트되도록 요청을 추가하겠습니다. – Erin