在spring-batch中,是否支持Elasticsearch ItemReader,使用掃描和滾動功能?我確實看到this擴展名,但它基於普通的彈簧數據搜索查詢。因爲批量作業大多需要處理大量的數據,所以基於掃描和滾動功能會很高興。謝謝。Elasticsearch掃描和滾動的spring-batch ItemReader
0
A
回答
0
儘管ElasticSearch沒有「原生」ItemReader
實現,但Spring Batch的確提供了一個包含Spring Data PagingAndSortingRepository
的RepositoryItemReader
。有了這個,您可以使用Spring Data ElasticSearch項目提供的ElasticSearch存儲庫定義。
您可以在這裏閱讀更多關於RepositoryItemReader
的Spring批處理文檔:http://docs.spring.io/spring-batch/trunk/apidocs/org/springframework/batch/item/data/RepositoryItemReader.html。
你可以閱讀更多有關Spring數據ElasticSearch項目位置:http://docs.spring.io/spring-data/elasticsearch/docs/current/reference/html/
0
import java.util.Iterator;
import org.springframework.batch.item.data.AbstractPaginatedDataItemReader;
import org.springframework.data.elasticsearch.core.ElasticsearchOperations;
import org.springframework.data.elasticsearch.core.query.SearchQuery;
public class ElasticsearchItemReader<T> extends AbstractPaginatedDataItemReader<T> {
private ElasticsearchOperations elasticsearchOperations;
private final SearchQuery searchQuery;
private String scrollId;
private int scrollTimeinMillis = 60000;
private Class<T> type;
public ElasticsearchItemReader(
final ElasticsearchOperations elasticsearchOperations,
final SearchQuery searchQuery,
final Class<T> type
) {
this.elasticsearchOperations = elasticsearchOperations;
this.searchQuery = searchQuery;
this.type = type;
}
@Override
protected void doOpen() throws Exception {
scrollId = elasticsearchOperations.scan(searchQuery, scrollTimeinMillis, false);
}
@Override
protected Iterator<T> doPageRead() {
return elasticsearchOperations.scroll(scrollId, scrollTimeinMillis, type).iterator();
}
}
相關問題
- 1. 掃描和滾動查詢在ElasticSearch
- 2. 如何使用elasticsearch-js和elasticsearch進行掃描和滾動5.0
- 3. Elasticsearch批量寫入速度很慢,使用掃描和滾動
- 4. 訪問SpringBatch的ItemReader/Processor/Writer中StepExecution/JobExecution的最佳方法
- 5. 主動掃描和被動掃描有什麼區別?
- 6. 一次掃描(掃描)和兩次掃描(掃描)之間的區別
- 7. Elasticsearch滾動掃描查詢不返回所有文檔,缺少第一組
- 8. elasticsearch掃描所有對象字段
- 9. 掃描和滾動不會從泊塢與位於外部
- 10. 用iPhone上的Cocoa拖動和掃描
- 11. Elasticsearch滾動
- 12. 掃描儀和nullPointerException
- 13. mapreduce,hbase和掃描
- 14. AP掃描和OnClickListener
- 15. fileReader和掃描儀
- 16. 掃描儀和StringTokenizer
- 17. 掃描儀和arrayList
- 18. 掃描,掃描儀類
- 19. 掃描條形碼和顯示自動
- 20. SimpleAsyncTaskExecutor與SpringBatch中的SyncTaskExecutor
- 21. 掃描儀不掃描我的輸入
- 22. 掃描儀內的掃描儀錯誤
- 23. 掃描20次的Wifi掃描儀
- 24. greenplum中的表掃描和seq掃描有什麼區別
- 25. 什麼是PNO的區別掃描和WLAN預設掃描?
- 26. 範圍掃描vs唯一掃描vs跳過掃描
- 27. Multipage WIA掃描(docfeeder)掃描1頁並阻止掃描器
- 28. Android,wifi主動掃描
- 29. 避免自動提交表格掃描通條碼掃描器
- 30. Android條碼掃描器 - 自動選擇掃描器
也許是有幫助的使用Cunk處理:HTTP://docs.spring.io/spring-batch/trunk/reference /html/configureStep.html#chunkOrientedProcessing –
Spring的任何人都有一些建議嗎? – heyu