Migrasi data Elasticsearch di java

Nasri Adzlani
2 min readDec 15, 2020

--

Elasticsearch adalah salah satu database yang masuk ke dunia NoSQL dengan fokus di search engine database. Elasticsearch ditenagai oleh Apache Lucene yang juga merupakan search engine database yang memiliki query low level. Elasticsearch memiliki query yang lebih mudah untuk digunakan karena berbasis RESTful.

Dependency yang digunakan yaitu json-simple dan elasticsearch rest high level client, untuk dependency elastic sesuaikan dengan elastic yang digunakan, contoh yang saya gunakan yaitu 7.10

Intellij IDEA Ultimate Edition

IntelliJ IDEA memiliki editor yang mendukung code completion, sebuah fitur yang dapat membantu kita untuk menuliskan kode dengan cepat. IntelliJ IDEA menganalisa konteks dari kode yang ditulis sehingga dapat memberikan saran penyelesaian pengetikan kode dengan tepat. Selain itu, IntelliJ IDEA mendukung refactoring yang saling terintegrasi yang memudahkan kita untuk meminimalisir kesalahan yang terjadi ketika adanya perubahan dalam proyek yang sedang dikembangkan.

Apache Maven

Apache Maven adalah Java Build Tools yang menggunakan konsep Project Object Model (POM). POM tersebut berisi informasi dan konfigurasi yang digunakan Maven untuk membuat project. Pada dasarnya POM adalah sebuath XML File yang terdapat di dalam project Maven dan di dalam File inilah konfigurasi dari project kita berada.

Lets Coding……

RestClientBuilder builder1 = RestClient.builder(new HttpHost(“localhost”, 9200));

localhost diganti dengan host elastic kamu, dan 9200 sesuai port elastic yang digunakan

Jika elasticsearach kamu menggunakan security (username/password) maka gunakan credential

final CredentialsProvider credentialsProvider1 = new BasicCredentialsProvider(); credentialsProvider1.setCredentials(AuthScope.ANY, new UsernamePasswordCredentials(“username”, “password”)); SSLContext sslContext = SSLContexts.custom().loadTrustMaterial(null, (chain, authType) -> true).build(); RestClientBuilder postBuilder = RestClient.builder(new HttpHost(“localhost”, 9200, “https”)).setHttpClientConfigCallback( httpAsyncClientBuilder -> httpAsyncClientBuilder.setDefaultCredentialsProvider(credentialsProvider1).setSSLHostnameVerifier((hostname, session) -> true).setSSLContext(sslContext) ); RestHighLevelClient postclient = new RestHighLevelClient(postBuilder);

Untuk mengatasi request yang terlalu banyak ke elastic maka digunakan scroll untuk mengambil data, dan bulk untuk upload data

Untuk full source code bisa cek disini

Follow instagram,

Email nasriadzlani@live.com

--

--

No responses yet