복붙노트

[HADOOP] HDFS에서 조회 데이터가있는 Kafka 스트림

HADOOP

HDFS에서 조회 데이터가있는 Kafka 스트림

Kafka Streams (v0.10.0.1)로 응용 프로그램을 작성 중이며 조회 데이터로 처리중인 레코드를 풍부하게 만들고 싶습니다. 이 데이터 (타임 스탬프 화 된 파일)는 HDFS 디렉토리에 매일 (2-3 회) 기록됩니다.

Kafka Streams 응용 프로그램에서 이것을로드하고 실제 KStream에 참여하려면 어떻게해야합니까? 새 파일이 도착하면 HDFS에서 데이터를 다시 읽는 것이 가장 좋은 방법은 무엇입니까?

아니면 Kafka Connect로 전환하는 것이 더 좋을까요? RDBMS 테이블 내용을 모든 Kafka Streams 애플리케이션 인스턴스에서 사용할 수있는 Kafka 주제에 쓰는 것이 좋을까요?

최신 정보: 카프카 커넥트가 제안했다. 조회 데이터가 RDBMS에서 매일 업데이트되기 때문에 Kafka Connect를 연결을 항상 열린 상태로 유지하는 대신 예약 된 일회용 작업으로 실행하려고 생각했습니다. 그렇습니다. 의미론과 연결을 항상 열어두고 오버 헤드가 중단되지 않도록하기 위해서입니다. 이 경우 예약 된 가져 오기를 사용하는 것이 안전 해 보입니다.

조회 데이터가 크지 않고 레코드가 삭제 / 추가 / 수정 될 수 있습니다. 나는 카프카 (Kafka) 주제에 항상 덤프를하고 이전 기록을자를 수있는 방법을 모른다. 로그 컴팩 션을 활성화하고 삭제 된 키에 null 값을 보내는 것은 소스 시스템에서 삭제 된 내용을 모르기 때문에 아마도 작동하지 않을 것입니다. 또한 AFAIK 압축이 발생하면 제어 할 수 없습니다.

해결법

  1. ==============================

    1.추천 방법은 실제로 조회 데이터를 Kafka로 가져 오는 것입니다 (예 : Kafka Connect를 통해).

    추천 방법은 실제로 조회 데이터를 Kafka로 가져 오는 것입니다 (예 : Kafka Connect를 통해).

    아마도 카프카 커넥트 작업을 계속하고 싶지 않은 질문을 업데이트 할 수 있습니까? 당신은 리소스 소비 (DB에 대한 부하)에 대해 걱정하고 있습니까? "일일 udpates"가 아닌 경우 처리의 의미에 대해 걱정 하시겠습니까?

    Kafka Connect는 안전하며 견고하고 내결함성이 있으며 성능면에서 DB 테이블을 Kafka에 공급하기위한 목적으로 JDBC 커넥터가 구축되었습니다 (많은 프로덕션 배포가 이미 있음). 따라서 "일괄 업데이트"패턴으로 대체하지 않으려면 "더 안전 해 보입니다"라고 제안합니다. 개인적으로, 매일 섭취를 유발하는 것은 지속적인 (및 실시간!) 섭취를 유지하는 것보다 운영상으로 덜 편리하다고 생각하며 실제 사용 사례에 대한 몇 가지 단점도 초래합니다 (다음 단락 참조).

    그러나 물론, 귀하의 마일리지가 다를 수 있습니다 - 그래서 만약 당신이 하루에 한 번 업데이 트에 설정되어, 그것을 위해 가십시오. 그러나 당신은 a) 풍부함이 발생하는 시점에서 최신 DB 데이터로 들어오는 레코드를 풍부하게하는 능력을 잃고, 반대로, 다음 일일 때까지 낡은 / 오래된 데이터로 들어오는 레코드를 실제로 풍성하게 할 수 있습니다 업데이트가 완료되었으므로 대부분 다운 스트림으로 전송 중이거나 다른 응용 프로그램에서 사용할 수 있도록 잘못된 데이터가 표시 될 수 있습니다. 예를 들어 고객이 자신의 배송 주소 (DB에 있음)를 업데이트했지만이 정보를 하루에 한 번만 스트림 처리 앱 (및 다른 많은 앱)에서 사용할 수 있도록 설정 한 경우 주문 처리 앱은 패키지를 잘못된 다음 일일 섭취가 완료 될 때까지 주소.

    Kafka Connect 용 JDBC 커넥터는 이미 다음과 같이 자동으로 처리합니다. 1. DB 삽입 / 업데이트 / 삭제가 Kafka 항목에 올바르게 반영되도록합니다. 2. Kafka의 로그 압축을 통해 대상 항목이 범위를 벗어나지 않도록합니다. . 아마도 당신은 무료로 얻을 수있는 기능을 배우기 위해 문서의 JDBC 커넥터를 읽을 수 있습니다. http://docs.confluent.io/current/connect/connect-jdbc/docs/?

  2. from https://stackoverflow.com/questions/39295017/kafka-streams-with-lookup-data-on-hdfs by cc-by-sa and MIT license