Pencarian Elastik

Jenis Medan Tukar Reindex Elasticsearch

Jenis Medan Tukar Reindex Elasticsearch

Bekerja dengan pangkalan data sangat menyeronokkan tetapi kadang-kadang boleh mencabar, terutama ketika berurusan dengan data yang sudah ada.

Sebagai contoh, jika anda ingin mengubah jenis bidang tertentu, ia mungkin memerlukan anda untuk menghentikan perkhidmatan, yang boleh membawa kesan buruk, terutama dalam perkhidmatan yang memproses sejumlah besar data.

Nasib baik, kita dapat menggunakan ciri-ciri hebat Elasticsearch seperti Reindexing, nod penyerapan, saluran paip, dan pemproses untuk membuat tugas seperti itu sangat mudah.

Tutorial ini akan menunjukkan kepada anda cara mengubah jenis medan dalam indeks tertentu ke indeks lain, menggunakan nod Elasticsearch Ingest. Menggunakan pendekatan ini akan menghilangkan waktu henti yang mempengaruhi perkhidmatan sementara masih berjaya melakukan tugas perubahan jenis lapangan.

Pengenalan Nod Pengambilan

Nod penyerapan Elasticsearch membolehkan anda memproses dokumen sebelum pengindeksan.

Node Elasticsearch adalah contoh khusus Elasticsearch; nod bersambung (lebih daripada satu) membuat kluster tunggal.

Anda dapat melihat node yang tersedia di kluster berjalan dengan permintaan:

DAPATKAN / _node /

Perintah cURL untuk ini adalah:

curl -XGET "http: // localhost: 9200 / _nodes /"

Melaksanakan perintah ini akan memberi anda maklumat besar mengenai nod, seperti yang ditunjukkan di bawah (output terpotong):


"_node":
"jumlah": 3,
"berjaya": 3,
"gagal": 0
,
"nama_kelompok": "22e0bee6ef91461d82d9b0f1b4b13b4a",
"nod":
"gSlMjTKyTemoOX-EO7Em4w":
"name": "instance-0000000003",
"transport_address": "172.28.86.133: 19925 ",
"tuan rumah": "172.28.86.133 ",
"ip": "172.28.86.133 ",
"versi": "7.10.2 ",
"build_flavor": "lalai",
"build_type": "buruh pelabuhan",
"build_hash": "747e1cc71def077253878a59143c1f785afa92b9",
"total_indexing_buffer": 214748364,
"peranan": [
"data",
"data_cold",
"data_content",
"data_hot",
"data_hangat",
"pengambilan",
"tuan",
"remote_cluster_client",
"Ubah"
],
"atribut":
"logical_availability_zone": "zon-0",
"server_name": "contoh-0000000003.22e0bee6ef91461d82d9b0f1b4b13b4a ",
"ketersediaan_zon": "us-west-1c",
"xpack.dipasang ":" true ",
"instance_configuration": "aws.data.highio.i3 ",
"ubah.simpul ":" benar ",
"wilayah": "kita-barat-1"
,
"tetapan":
"s3":
"pelanggan":
"elastik-dalaman-22e0be":
"endpoint": "s3-us-barat-1.amazonaws.com "


,
--------------------------------output dipotong---------------------

Secara lalai, semua node Elasticsearch membolehkan penyerapan dan mampu mengendalikan operasi penyerapan. Walau bagaimanapun, untuk operasi penyerapan yang berat, anda boleh membuat satu nod yang dikhaskan untuk pengambilan sahaja.

Untuk menangani proses pra_, sebelum mengindeks dokumen, kita perlu menentukan saluran paip yang menyatakan siri praprosesor.

Praprosesor adalah set arahan yang dililit pada saluran paip dan dilaksanakan satu demi satu.

Berikut ini adalah sintaks umum bagaimana menentukan saluran paip:


"description": "Tukarkan saya",
"pemproses": [
"tukar":
"bidang": "id",
"type": "integer"
]

Properti keterangan menyatakan apa yang harus dicapai oleh saluran paip. Parameter seterusnya adalah preprocessor, diteruskan sebagai senarai mengikut urutan pelaksanaannya.

Buat Talian Paip

Untuk membuat saluran paip yang akan kami gunakan untuk mengubah jenis, gunakan permintaan PUT dengan titik akhir API _ingest sebagai:

PUT _ingest / saluran paip / tukar_paip

"Deskripsi": "menukar medan dayOfWeek medan menjadi panjang dari bilangan bulat",
"pemproses": [

"tukar":
"bidang": "dayOfWeek",
"type": "panjang"


]

Untuk cURL, gunakan arahan:

curl -XPUT "http: // localhost: 9200 / _ingest / pipeline / convert_pipeline" -H 'Content-Type: application / json' -d '"description": "menukar medan dayOfWeek menjadi panjang dari bilangan bulat", " pemproses ": [" convert ": " field ":" dayOfWeek "," type ":" long "] '

Reindex dan Tukar Jenis

Sebaik sahaja kita mempunyai saluran pipa di node penyerapan, yang perlu kita lakukan adalah memanggil API pengindeksan dan meneruskan saluran pipa sebagai argumen di tujuan badan permintaan sebagai:

POST _reindex

"Sumber":
"index": "kibana_sample_data_flights"
,
"dest":
"index": "kibana_sample_type_diff",
"saluran paip": "convert_pipeline"

Untuk CURL:

curl -XPOST "http: // localhost: 9200 / _reindex" -H 'Content-Type: application / json' -d '"source": "index": "kibana_sample_data_flights", "dest": "indeks ":" kibana_sample_type_diff "," pipeline ":" convert_pipeline " '

 Sahkan Penukaran

Untuk mengesahkan bahawa saluran paip telah diterapkan dengan betul, gunakan permintaan GET untuk mengambil bidang tertentu sebagai:

DAPATKAN / kibana_sample_data_flights / _mapping / field / dayOfWeek
DAPATKAN / kibana_sample_type_diff / _mapping / field / dayOfWeek

Ini harus mengembalikan data sebagai:

-----------------------INDEKS ASAL---------------------------

"kibana_sample_data_flights":
"pemetaan":
"hari dalam seminggu" :
"nama_ penuh": "dayOfWeek",
"pemetaan":
"hari dalam seminggu" :
"type": "integer"






-------------------------DATA YANG DITETAPKAN-------------------------------

"kibana_sample_type_diff":
"pemetaan":
"hari dalam seminggu" :
"nama_ penuh": "dayOfWeek",
"pemetaan":
"hari dalam seminggu" :
"type": "panjang"





Kesimpulannya

Dalam panduan ini, kami telah melihat bagaimana untuk bekerja dengan Elasticsearch Ingest node untuk memproses dokumen sebelum mengindeks, sehingga mengubah medan dari satu jenis ke jenis lain.

Pertimbangkan dokumentasi untuk mengetahui lebih lanjut.

https: // www.elastik.co / guide / en / elasticsearch / rujukan / master / pengambilan.html

5 Kad Tangkap Permainan Teratas
Kita semua telah melihat dan menyukai streaming permainan permainan di YouTube. PewDiePie, Jakesepticye, dan Markiplier hanyalah beberapa pemain terat...
Cara Membangunkan Permainan di Linux
Satu dekad yang lalu, tidak banyak pengguna Linux akan meramalkan bahawa sistem operasi kegemaran mereka suatu hari nanti akan menjadi platform permai...
Port Sumber Terbuka Mesin Permainan Komersial
Rekreasi enjin permainan sumber terbuka dan bebas platform boleh digunakan untuk bermain lama dan juga beberapa tajuk permainan yang baru-baru ini. Ar...