0

jdbc 강을 사용하여 탄성 검색에 데이터를 입력하려고하지만이 강에서 모든 데이터가 표시되지 않습니다. MySQL 테이블에는 450000 개의 레코드가 있지만 ES에는 약 230000 개의 레코드 만 있습니다.ElasticSearch jdbc river

여기 내 ES 강 설정입니다 :

curl -XPUT 'localhost:9200/_river/my_jdbc_river/_meta' -d '{ 
    "type" : "jdbc", 
    "jdbc" : { 
     "url" : "jdbc:mysql://localhost:3306/test", 
     "user" : "test", 
     "password" : "test", 
     "sql" : "select * from test" }, 
     "index":{ 
     "index" : "test", 
     "bulk_size":600, 
     "max_bulk_requests":10, 
     "bulk_timeout":"5s", 
     "autocommit":"true" 
     } 
}' 

나는 탄성 검색 문서에 보았다 그러나 나는 해결책을 찾을 수 없습니다. river-jdbc-1.1.0.2 버전을 사용하고 있습니다.

+0

1. 어떤 종류의 elasticsearch를 사용하고 있습니까? 2. elasticsearch JVM 구성은 무엇입니까? 3. 데이터와 tmp 데이터 사이에 클러스터 공간이 충분한 지 확인 했습니까? – eliasah

답변

0

색인을 생성해야하는 것처럼 450000으로 업데이트했습니다. 스크립트에 다음과 같은 매개 변수가 있습니다.

"bulk_size":600, 
    "max_bulk_requests":10, 
    "bulk_timeout":"5s" 

벌크 크기 및 max_bulk_request를 줄이십시오. 450000 개의 문서에 신축성있는 검색을 색인하기 때문에이 매개 변수로 누락 된 데이터가 있습니다.

우리가 기록을 놓치더라도 위의 매개 변수를 언급하지 않는다고 가정 해보십시오. 강을 사용하여 데이터를 가져 와서 강을 요청하여 데이터를 색인하는 최적의 매개 변수는 다음과 같습니다.

"bulk_size":160, 
    "max_bulk_requests":5, 

이전에이 문제가있었습니다. 나는 강 script.if 위에서 위 params를 사용하여 해결했습니다 위의 매개 변수를 적용하면 확실하게 작동합니다. 한 번 시도하십시오.

도움이 되길 바랍니다.

관련 문제