
Hai, habrozhiteli! Kami telah menerbitkan sebuah buku tentang Elastic Stack, yang ditujukan bagi para spesialis yang bekerja dengan volume data yang besar dan ingin mengekstraknya secara andal dari sumber mana pun dalam format apa pun, serta mencari, menganalisis, dan memvisualisasikan data secara real time. Buku ini cocok untuk Anda jika Anda membutuhkan pemahaman mendasar tentang karya Elastic Stack di bidang komputasi terdistribusi dan pemrosesan data waktu-nyata.
Di bawah ini akan disediakan struktur buku tentang bagian tentang agregasi.
Struktur buku
Bab 1 “Pengantar Tumpukan Elastis” memperkenalkan komponen utama Tumpukan Elastis, menjelaskan peran mereka dalam struktur keseluruhan, menjelaskan tujuan setiap komponen. Bab ini juga membahas kebutuhan untuk pencarian dan analisis yang terdistribusi dan dapat diukur yang dicapai dengan Elasticsearch. Pada akhirnya, ada panduan untuk mengunduh dan menginstal Elasticsearch dan Kibana sehingga Anda dapat memulai dengan alat-alat ini.
Bab 2, "Memulai dengan Elasticsearch," memperkenalkan Anda pada prinsip-prinsip utama dari mesin pencari Elasticsearch, yang merupakan dasar dari Elastic Stack. Anda akan terbiasa dengan konsep-konsep seperti indeks, tipe, node, dan cluster. Anda juga akan belajar cara menggunakan REST API untuk melakukan operasi dasar.
Bab 3, "Pencarian itu Penting," berfokus pada metode pencarian yang disediakan oleh Elasticsearch. Anda akan belajar tentang dasar-dasar analisis teks, tokenizer, analisis, dan fitur pencarian yang relevan. Bab ini juga memberikan contoh praktis dari pencarian yang relevan.
Bab 4, "Menganalisis Data dengan Elasticsearch," berbicara tentang berbagai jenis agregasi. Ini termasuk contoh-contoh yang akan membantu Anda lebih memahami prinsip-prinsip analisis data. Anda akan belajar cara menggunakan berbagai jenis agregasi - dari yang sederhana hingga yang rumit, untuk menavigasi kumpulan data yang sangat besar. Setelah membaca bab ini, Anda akan tahu kapan dan opsi agregasi mana yang lebih baik untuk digunakan.
Bab 5, Analisis Log, memberikan informasi tentang perlunya menggunakan Logstash, arsitekturnya, instalasi, dan konfigurasinya. Elastic 5 menyediakan alat Ingest Node yang dapat menggantikan konfigurasi Logstash. Dengan membaca bab ini, Anda akan belajar cara membuat wadah menggunakan Elastic Ingest Node.
Bab 6, “Merancang Kontainer dengan Logstash,” memberi Anda pemahaman dasar tentang Logstash, yang memungkinkan Anda mengidentifikasi data secara dinamis dari berbagai sumber dan menormalkannya menggunakan filter yang Anda pilih. Anda akan belajar bagaimana memiliki berbagai filter menempatkan Logstash setara dengan kerangka kerja pemrosesan streaming real-time dan near-time lainnya tanpa menulis kode. Anda juga akan diperkenalkan ke platform Beats dan komponen FileBeat yang digunakan untuk mengangkut file log (file log) dari mesin jarak jauh.
Bab 7, "Visualisasi Data dalam Kibana," menunjukkan bagaimana Anda dapat menggunakan Kibana untuk memvisualisasikan dan secara mengesankan mempresentasikan data Anda. Contoh kumpulan data sederhana menjelaskan pembuatan visualisasi dalam beberapa klik.
Bab 8, Elastic X-Pack, berbicara tentang ekstensi Elasticsearch. Pada saat ini, Anda sudah akan belajar Elasticsearch dan komponen kuncinya untuk membuat wadah data dan dapat menghubungkan ekstensi untuk memecahkan masalah tertentu. Dalam bab ini Anda akan membaca cara menginstal dan mengkonfigurasi komponen X-Pack di Elastic Stack, mempelajari dasar-dasar keamanan dan pemantauan, dan mempelajari cara menambahkan berbagai notifikasi.
Bab 9, "Menempatkan Tumpukan Elatic Ke Dalam Pekerjaan," memberikan rekomendasi untuk menempatkan kompleks Tumpukan Elastis ke dalam operasi komersial. Anda akan menerima rekomendasi tentang cara menerapkan aplikasi Anda dan mengubah pengaturan standar sesuai dengan persyaratan operasi. Anda juga akan belajar cara menggunakan layanan cloud Cloud Elastis.
Bab 10 "Membuat aplikasi untuk menganalisis data dari sensor" menjelaskan pembuatan aplikasi untuk menganalisis dan memproses data dari berbagai sumber. Anda akan belajar cara memodelkan data di Elasticsearch, membuat wadah data, dan memvisualisasikannya di Kibana. Anda juga akan belajar cara menggunakan komponen X-Pack secara efektif untuk memastikan keamanan dan pemantauan wadah Anda, menerima pemberitahuan dari berbagai peristiwa.
Bab 11, Pemantauan Infrastruktur Server, menunjukkan kemungkinan penggunaan Elastic Stack untuk mengonfigurasi pemantauan waktu-nyata untuk server dan aplikasi yang dibuat seluruhnya di Elastic Stack. Anda akan berkenalan dengan komponen lain dari platform Beats - Metricbeat, yang digunakan untuk memonitor server / aplikasi.
Agregasi jumlah, nilai rata-rata, maksimum dan minimum
Menemukan jumlah bidang, nilai minimum atau maksimum, atau rata-rata adalah operasi yang cukup umum. Dalam SQL, kueri untuk menghitung jumlah adalah sebagai berikut:
SELECT sum(downloadTotal) FROM usageReport;
Dengan demikian, jumlah bidang unduhan Total akan dihitung untuk semua entri dalam tabel. Untuk melakukan ini, buka semua catatan dalam tabel atau semua catatan dalam konteks yang dipilih dan tambahkan nilai bidang yang dipilih.
Di Elasticsearch, Anda dapat menulis kueri yang sama menggunakan agregasi jumlah.
Jumlah agregasi
Berikut ini cara menulis agregat sederhana dari jumlah tersebut:
GET bigginsight/_search { "aggregations": { 1 "download_sum": { 2 "sum": { 3 "field": "downloadTotal" 4 } } }, "size": 0 5 }
- Agg atau agregasi di tingkat atas harus berfungsi sebagai pembungkus untuk agregasi.
- Beri nama pada agregasi. Dalam hal ini, kami mengumpulkan jumlah dalam bidang unduhanTotal dan memilih nama yang sesuai unduhan_jumlah. Anda dapat memanggilnya apa saja yang Anda suka. Bidang ini berguna ketika kita perlu menemukan agregasi khusus ini dalam hasil respons.
- Kami melakukan agregasi jumlah, oleh karena itu, elemen jumlah diterapkan.
- Kami ingin menggabungkan istilah dengan bidang unduhan Total.
- Tentukan ukuran = 0 untuk mencegah hasil mentah masuk ke respons. Kami hanya membutuhkan hasil agregasi, bukan hasil pencarian. Karena kami tidak menentukan elemen kueri tingkat tinggi, kueri akan berfungsi dengan semua dokumen. Kami tidak memerlukan dokumen yang tidak diproses (atau hasil pencarian) dalam tanggapan.
Jawabannya harus seperti ini:
{ "took": 92, ... "hits": { "total": 242836, 1 "max_score": 0, "hits": [] }, "aggregations": { 2 "download_sum": { 3 "value": 2197438700 4 } } }
Kami akan memahami parameter utama dari jawabannya.
- Elemen hits.total menunjukkan jumlah dokumen yang cocok dengan konteks permintaan. Jika tidak ada permintaan atau filter tambahan yang ditentukan, semua dokumen dalam tipe atau indeks akan dimasukkan.
- Dengan analogi dengan permintaan, jawaban ini ditempatkan di dalam agregasi untuk presentasi dalam formulir ini.
- Respons dari agregasi yang kami minta disebut download_sum, oleh karena itu, kami mendapatkan jawaban kami dari agregasi jumlah di dalam elemen dengan nama yang sama.
- Nilai aktual ditampilkan setelah menerapkan jumlah agregasi.
Agregasi nilai rata-rata, maksimum, minimum sangat mirip. Kami akan mempertimbangkannya sebentar.
Agregasi rata-rata
Agregasi rata-rata menemukan nilai rata-rata untuk semua dokumen dalam konteks permintaan:
GET bigginsight/_search { "aggregations": { "download_average": { 1 "avg": { 2 "field": "downloadTotal" } } }, "size": 0 }
Perbedaan nyata dari agregasi jumlah adalah sebagai berikut.
- Kami memilih nama lain, download_average, sehingga jelas bahwa agregasi ini dirancang untuk menghitung nilai rata-rata.
- Jenis agregasi yang akan dilakukan adalah rata-rata bukannya jumlah, seperti pada contoh sebelumnya.
Struktur respons identik dengan jawaban dari subbagian sebelumnya, tetapi dalam bidang nilai kita akan melihat nilai rata-rata bidang yang diminta.
Agregasi nilai minimum dan maksimum serupa.
Agregasi minimum
Temukan nilai minimum bidang unduhan Total di seluruh indeks / jenis:
GET bigginsight/_search { "aggregations": { "download_min": { "min": { "field": "downloadTotal" } } }, "size": 0 }
Agregasi nilai maksimum
Temukan nilai maksimum bidang unduhan Total di seluruh indeks / jenis:
GET bigginsight/_search { "aggregations": { "download_max": { "max": { "field": "downloadTotal" } } }, "size": 0 }
Ini adalah agregasi yang sangat sederhana. Sekarang mari kita lihat agregasi statistik yang lebih rumit dan statistik canggih.
Agregasi statistik dan statistik lanjutan
Agregasi ini menghitung beberapa nilai statistik umum dalam satu permintaan dan tanpa melakukan permintaan tambahan. Karena kenyataan bahwa statistik dihitung dalam sekali jalan, dan tidak diminta beberapa kali, sumber daya Elasticsearch disimpan. Kode klien juga menjadi lebih mudah jika Anda tertarik pada beberapa jenis data tersebut. Lihatlah contoh agregasi statistik.
Agregasi Statistik
Agregasi statistik menghitung jumlah, rata-rata, maksimum, nilai minimum dan jumlah total dokumen dalam satu kali jalan:
GET bigginsight/_search { "aggregations": { "download_stats": { "stats": { "field": "downloadTotal" } } }, "size": 0 }
Meminta statistik pada struktur mirip dengan agregasi metrik lain yang telah Anda ketahui; tidak ada yang istimewa terjadi di sini.
Jawabannya harus seperti ini:
{ "took": 4, ..., "hits": { "total": 242836, "max_score": 0, "hits": [] }, "aggregations": { "download_stats": { "count": 242835, "min": 0, "max": 241213, "avg": 9049.102065188297, "sum": 2197438700 } } }
Seperti yang Anda lihat, jawaban dengan elemen download_stats berisi total, minimum, maksimum, rata-rata dan total. Kesimpulan ini sangat nyaman, karena mengurangi jumlah permintaan dan menyederhanakan kode klien.
Lihatlah kumpulan statistik lanjutan.
Agregasi Statistik Lanjut
Agregasi statistik yang diperluas menghasilkan statistik yang sedikit lebih banyak di samping opsi sebelumnya:
GET bigginsight/_search { "aggregations": { "download_estats": { "extended_stats": { "field": "downloadTotal" } } }, "size": 0 }
Jawabannya akan terlihat seperti ini:
{ "took": 15, "timed_out": false, ..., "hits": { "total": 242836, "max_score": 0, "hits": [] }, "aggregations": { "download_estats": { "count": 242835, "min": 0, "max": 241213, "avg": 9049.102065188297, "sum": 2197438700, "sum_of_squares": 133545882701698, "variance": 468058704.9782911, "std_deviation": 21634.664429528162, "std_deviation_bounds": { "upper": 52318.43092424462, "lower": -34220.22679386803 } } } }
Dalam jawaban Anda juga mendapatkan jumlah kuadrat, perbedaan, standar deviasi dan batas-batasnya.
Agregasi daya
Menghitung elemen unik dapat dilakukan dengan menggunakan agregasi daya. Ini mirip dengan mencari hasil kueri, seperti yang ditunjukkan di bawah ini:
select count(*) from (select distinct username from usageReport) u;
Menentukan kekuatan atau jumlah nilai unik untuk bidang tertentu adalah tugas yang cukup umum. Misalnya, jika Anda memiliki aliran klik (click-stream) dari berbagai pengunjung ke situs Anda, Anda mungkin ingin mengetahui berapa banyak pengunjung unik di situs pada hari, minggu atau bulan yang dipilih.
Mari kita cari tahu cara menemukan jumlah pengunjung unik menggunakan data lalu lintas jaringan yang tersedia:
GET bigginsight/_search { "aggregations": { "unique_visitors": { "cardinality": { "field": "username" } } }, "size": 0 }
Respons agregasi daya terlihat sama seperti pada agregasi metrik lainnya:
{ "took": 110, ..., "hits": { "total": 242836, "max_score": 0, "hits": [] }, "aggregations": { "unique_visitors": { "value": 79 } } }
Sekarang kami telah menemukan jenis agregasi yang paling sederhana, kami dapat mempertimbangkan beberapa agregasi segmental.
Tentang Penulis
Pranav Shukla adalah pendiri dan kepala Valens DataLabs, seorang insinyur, suami dan ayah dari dua anak. Arsitek data besar dan pemrogram profesional menggunakan bahasa pemrograman berbasis JVM. Pranav telah mengembangkan aplikasi perusahaan untuk perusahaan Fortune 500 dan perusahaan rintisan selama lebih dari 14 tahun, spesialisasi utamanya adalah menciptakan aplikasi yang dapat diukur dan digerakkan oleh data berdasarkan JVM, Java / Scala, ekosistem Hadoop, Apache Spark, dan database NoSQL. Secara aktif berkembang di bidang yang terkait dengan organisasi big data, analitik, dan pembelajaran mesin.
Pranav mendirikan Valens DataLabs untuk membantu perusahaan lain menggunakan data untuk meningkatkan daya saing mereka. Valens DataLabs berspesialisasi dalam menciptakan generasi baru aplikasi cloud untuk bekerja dengan big data dan teknologi web. Pekerjaan perusahaan didasarkan pada penggunaan praktik-praktik yang fleksibel, prinsip-prinsip lean manufacturing, pengembangan berdasarkan pada tes dan perilaku, integrasi berkelanjutan dan penyebaran berkelanjutan dari sistem perangkat lunak berkelanjutan.
Sharat Kumar M. N. menerima gelar master dalam ilmu komputer dari University of Texas, Dallas, USA. Dia telah bekerja di industri TI selama lebih dari sepuluh tahun, saat ini memegang posisi pengembang solusi Oracle untuk Elasticsearch, adalah pendukung Elastic Stack. Seorang pembicara yang rajin, ia telah berbicara di beberapa konferensi sains dan teknologi, termasuk Oracle Code Event. Sharat - Elastic Certified Instructor (Elastic Certified Instructor) - salah satu dari sedikit pakar teknis di dunia yang Elastic Inc. memberikan hak resmi untuk melakukan pelatihan "dari pencipta Elastis." Dia juga seorang penggemar mesin pembelajaran dan ilmu data.
Tentang Editor Sains
Marcelo Ochoa bekerja di laboratorium Fakultas Ilmu Pengetahuan Persis di Universitas Nasional Buenos Aires (Universidad Nacional del Centro de la Provincia de Buenos Aires), Argentina. Dia adalah CTO dari Scotas (www.scotas.com), yang berspesialisasi dalam solusi pseudo-real-time menggunakan teknologi Apache Solr dan Oracle. Marcelo mengelola untuk bekerja di universitas dan terlibat dalam proyek-proyek yang berkaitan dengan Oracle dan teknologi data besar. Sebelumnya, ia bekerja dengan database, web, dan teknologi Java. Di dunia XML, Marcelo dikenal sebagai pengembang DB Generator untuk proyek Apache Cocoon. Dia mengambil bagian dalam menciptakan proyek sumber terbuka seperti DBPrism, DBPrism CMS, dan Restlet.org, di mana dia bekerja pada Oracle XDB Restlet Adapter, yang merupakan alternatif untuk menulis layanan web REST asli di dalam database JVM.
Sejak 2006, ia telah berpartisipasi dalam program Oracle ACE, dan baru-baru ini bergabung dengan proyek Docker Mentor.
»Informasi lebih lanjut tentang buku ini dapat ditemukan di
situs web penerbit»
Isi»
KutipanKupon diskon 25% untuk
penjaja -
ElasticsearchSetelah pembayaran versi kertas buku, versi elektronik buku dikirim melalui email.