Doping untuk analitik: mengapa Anda harus memperhatikan Apache Zeppelin

Cepat atau lambat, semua orang datang ke analytics untuk data. Dalam game multi-pemain besar (dan juga pemain tunggal) tanpa ini, tidak ada tempat untuk pergi. Berapa banyak pengguna yang memilih mode baru; di mana titik-titik lemah monetisasi; tempat menonton desainer game untuk meningkatkan keterlibatan pemain; dan satu juta hal lagi - semuanya dihitung. Dan semua ini mempengaruhi keputusan yang kemudian dibuat pengembang.

Tetapi mereka menerapkan analitik dengan cara yang berbeda: seseorang membeli solusi pihak ketiga (sederhana, tetapi tidak fleksibel), seseorang menulis untuk dirinya sendiri (panjang dan mahal), sementara seseorang hanya mempertimbangkan beberapa metrik dasar oleh programmer dan tidak repot.

Karena itu, saya akan berbicara tentang alat yang akan berguna bagi semua orang. Mereka yang baru mulai membangun analitik akan dapat menciptakan sistem "dari lutut" dari awal, dan perusahaan dengan solusi siap pakai akan dapat "meningkatkan" pendekatan mereka.

Ini tentang Apache Zeppelin . Ini adalah shell interaktif multifungsi yang memungkinkan Anda untuk menanyakan berbagai sumber data, memproses dan memvisualisasikan hasil.

Analog yang cukup dekat adalah Jupyter Notebook, tetapi Zeppelin agak lebih cocok untuk bekerja dengan database. Ia menggunakan konsep "interpreter" - plugin yang menyediakan backend untuk bahasa dan / atau database.

Zeppelin, seperti Jupyter, untuk pengguna terlihat seperti satu set file notebook, yang terdiri dari paragraf di mana permintaan ditulis dan dieksekusi. Menggunakan visualisator bawaan, laptop dengan serangkaian pertanyaan dapat dengan mudah diubah menjadi dasbor data lengkap.



Kami tidak akan secara sengaja menangani masalah pemasangan dan konfigurasi - ini ada dalam dokumentasi di situs dan di jaringan Anda dapat menemukan beberapa tutorial untuk database yang berbeda. Tujuan artikel ini adalah untuk berbicara tentang sisi pengguna dari masalah ini, aplikasi menarik dari alat ini (termasuk bukan yang paling jelas) dan manfaat yang dapat diambil para analis darinya, terlepas dari solusi mana yang sudah mereka gunakan.

Sebagai contoh, saya akan memberi tahu Anda mengapa kami menggunakannya di Pixonic (seperti saat perusahaan sudah memiliki sistem analisis produktifnya sendiri).

Jadi, mari kita mulai.

Omnivore Zeppelin


Menggabungkan berbagai sumber data - dalam satu dasbor
- salah satu keunggulan utamanya. Sebagai bagian dari perakitan standar, satu set penerjemah yang mengesankan disertakan (untuk NoSQL dan basis data relasional).

Dalam praktiknya, ini memberikan yang berikut:

  1. Sebagian besar perusahaan dengan database dan sistem analisis yang ada dapat menggunakannya "di luar kotak" (sejauh ini berlaku untuk produk open source, heh). Penggemar dengan basis data yang lebih eksotis dapat menulis sendiri juru bahasa, karena ada artikel di situs web produk.
  2. Perusahaan kecil, jika diinginkan, dapat membangun sistem analitik mereka secara eksklusif dari basis data dan Zeppelin sebagai antarmuka.
  3. Seperti yang ditunjukkan oleh pengalaman berkomunikasi dengan rekan kerja, bagi banyak orang, data dapat dikumpulkan dari sumber yang berbeda, disimpan dalam basis data yang berbeda (le-e-gashi!), Seseorang dapat menggunakan layanan analitik pihak ketiga tambahan. Oleh karena itu, para analis kadang-kadang memiliki tugas "menjalin pertemanan" di antara mereka. Zeppelin memungkinkan Anda untuk menggunakan juru bahasa Anda sendiri untuk setiap paragraf di dalam satu buku catatan, yang akan memungkinkan Anda untuk menampilkan hasil pertanyaan ke sumber yang berbeda di satu tempat.



Zeppelin + Python / R


Zeppelin tidak hanya antarmuka web untuk berbagai database, tetapi juga dapat bertindak sebagai shell interaktif untuk mengeksekusi skrip dalam bahasa pemrograman. Ini termasuk interpreter untuk R dan Python, jadi itu mungkin menjadi alternatif untuk RStudio dan Jupyter yang biasa. Ya, ia menyediakan lebih sedikit fitur daripada IDE khusus (misalnya, tidak ada substitusi otomatis), tetapi ini dikompensasi oleh kelebihannya, yang akan kita bahas di bawah ini.

Dalam hubungannya dengan Python yang sama, kekuatan Zeppelin meningkat berkali-kali: di sini Anda bisa mendapatkan data melalui API dari layanan pihak ketiga (hi ke paragraf sebelumnya), dan kemampuan untuk memproses data selain permintaan basis data reguler, serta mengotomatiskan proses ini. Zeppelin mendukung pembaruan dasbor dengan mahkota tanpa gerakan yang tidak perlu (sekali lagi, pandangan cepat pada keputusan rekan kerja menunjukkan bahwa tugas yang tampaknya sepele ini kadang-kadang harus diselesaikan dengan cara yang sangat licik). Nah, untuk yang manis: ia memiliki sistem kontrol versi bawaan - primitif, tetapi cukup untuk sebagian besar tugas analitik.

Kami di perusahaan secara aktif menggunakan Python bersama dengan AppMetr (sistem analisis internal) untuk pemrosesan data yang kompleks. Karenanya, ide untuk mencoba Zeppelin muncul secara khusus dalam kaitannya dengan skrip kami - kami melihat ini sebagai potensi untuk menyederhanakan sejumlah rutinitas terkait, misalnya, untuk memvisualisasikan hasil.

Visualisasikan semua yang ada di dunia - dengan satu klik


Zeppelin dapat menampilkan data yang ditampilkan dalam paragraf dalam bentuk beberapa visualisator dasar yang bekerja sesuai dengan prinsip diagram ringkasan: pada antarmuka, bidang dipilih di mana sumbu akan dibangun dan bagaimana nilai yang ditampilkan akan dikumpulkan. Diagram yang dihasilkan dapat diklik dan membuatnya mudah untuk melihat data di bagian yang berbeda.

Fungsionalitas yang tampaknya sederhana ini mencakup hingga 95% tugas analis dalam memvisualisasikan hasil. Anda dapat menghentikan ekspor unduhan tanpa akhir ke Excel hanya untuk grafik, dan bahkan lupa kata-kata menakutkan seperti matplotlib, bokeh dan ggplot2 - hasil skrip juga berubah menjadi grafik dengan beberapa klik.

Namun, untuk visualisasi yang lebih kompleks, nama-nama perpustakaan grafis dapat diingat kembali - Zeppelin memiliki integrasi terintegrasi dengan perpustakaan grafis paling populer untuk Python dan R:



Kolaborasi dan konfigurasi antarmuka


Zeppelin dapat bekerja secara lokal dan digunakan hanya sebagai alat analisis, tetapi jika Anda menggunakannya di server, Anda dapat mengubahnya menjadi layanan analitik perusahaan dengan otorisasi melalui LDAP dan pengaturan akses jika diinginkan. Bergantung pada kebutuhan untuk analitik, ini dapat bertindak sebagai seperangkat dasbor untuk metrik proyek, serta repositori umum skrip dan unduhan, atau, misalnya, ruang bagi analis untuk bekerja bersama. Bonus yang bagus: tidak perlu menukar file apa pun atau memulai dok baru di Confluence - Anda bisa langsung membuang tautan ke dasbor.

Dalam aspek ini, fleksibilitas dalam menyesuaikan antarmuka dan kemampuan untuk menghasilkan formulir sederhana untuk memasukkan nilai memainkan peran penting. Tentu saja, analis merasa nyaman saat melihat pertanyaan SQL dan kode R, tetapi ini dapat membuat pengguna yang tidak siap menjadi pingsan. Oleh karena itu, di dasbor Zeppelin, Anda dapat menyembunyikan kode (yang, misalnya, merupakan masalah bagi Jupyter), membuat bidang untuk memasukkan tanggal dan parameter perubahan lainnya, dan memberi pelanggan formulir yang rapi dan mudah dipahami.

Di perusahaan kami, banyak proses terkait dengan analitik, oleh karena itu, departemen yang berbeda secara berkala memerlukan pembongkaran khusus, misalnya, menghitung ulang tabel neraca sesuai dengan data terbaru. Naskah telah ditulis untuk hal-hal seperti itu sejak lama, tetapi orang lain harus menjalankannya. Pernahkah Anda mencoba mengajar 20 desainer game untuk menggunakan Jupyter? Sebagai hasilnya, kami menyelesaikan masalah ini dengan elegan dengan memindahkan skrip ke Zeppelin, di mana, misalnya, DJ dapat memperoleh data yang mereka butuhkan hanya dengan mengklik satu tombol. Atau tidak satu:



Apa yang sangat penting pada saat ini adalah bahwa semua persiapan dan konfigurasi antarmuka dilakukan secara eksklusif oleh para analis sendiri, tanpa melibatkan programmer (atau, Tuhan melarang, parit UX).

Manfaat Proses Paralel


Zeppelin bekerja dalam beberapa proses, yang diikuti oleh bonus menarik - memungkinkan Anda menjalankan instance Python terpisah untuk setiap laptop dan untuk setiap pengguna. Dengan demikian, tanpa pengaturan yang rumit, Anda dapat menjalankan beberapa skrip pemrosesan yang besar secara paralel - hanya dengan melakukan ini di laptop yang berbeda, dan terus bekerja tanpa menunggu penyelesaian. Ini juga berfungsi dalam kasus salinan lokal, dan ketika menggunakan pada server, dimungkinkan untuk mengambil bagian dari perhitungan dari komputer lokal secara umum, dan melakukannya di server.



Menanam paragraf di situs



Jika Anda menggunakan Zeppelin ke server, Anda bisa mendapatkan tautan ke salah satu paragraf Anda (dengan hasil kueri atau grafik) dan menerbitkannya sebagai iframe di situs (ini dilakukan dengan sangat sederhana, situs memiliki tutorial). Dalam praktiknya, analis jarang perlu mempublikasikan beberapa hasil pada sumber daya eksternal, tetapi bisa sangat nyaman untuk menambahkan visualisator ke layanan internal (dalam Confluence yang sama). Jadi, Anda dapat membuat laporan yang berisi formulir interaktif dan visualisator langsung dalam teks.

Laporan yang menggambarkan sendiri


Dukungan penurunan harga memungkinkan Anda untuk menambahkan paragraf dengan teks yang diformat ke dasbor, di samping grafik dan tabel. Sebagai hasilnya, Anda dapat membuat laporan visual dengan deskripsi, di mana pengguna dapat segera melihat data tentang beberapa masalah, melihat semuanya pada grafik dan membaca interpretasi hasil dari analis. Tidak seperti Jupyter, yang juga memiliki dukungan penurunan harga, Zeppelin membuat formulir interaktif dan memvisualisasikan hasil jauh lebih cepat, dan hasilnya lebih akurat dan dapat diakses oleh pengguna akhir, yang penting.

Dengan demikian, ini adalah alternatif yang cepat dan jelas untuk penelitian analis biasa. Sebagai aturan, pekerjaan analis disusun sebagai berikut: analis diberikan tugas untuk mempelajari beberapa aspek permainan. Mereka menyiapkan data, menguji hipotesis, memvisualisasikan hasil pendukung, katakanlah, dengan diagram dan menulis laporan (misalnya, dalam pertemuan). Ini adalah proses yang benar, tetapi agak melelahkan. Dalam kasus kami, Anda dapat, tanpa membuang waktu, membuat sketsa laptop dengan pembongkaran dan skrip yang sangat ini, langsung menggambarkan hasilnya dengan grafik, dan menggambarkan kesimpulan Anda dalam paragraf berikut:



Tentu saja, Zeppelin memiliki sesuatu untuk dimarahi, itu masih tidak selalu bekerja secara stabil (itu masih merupakan sumber terbuka), antarmuka web memakan banyak RAM, seseorang mungkin tidak memiliki fungsi IDE yang lengkap. Tetapi sudah ada sejumlah kasus pengguna yang menarik di mana itu bisa berguna - karena itu pasti layak mendapat perhatian analis ( dan, tentu saja, semakin besar komunitas, semakin baik keadaannya di masa depan ).

Untuk perusahaan kecil, ini bisa menjadi alat utama, karena memungkinkan Anda untuk menambahkan sistem analisis lengkap ke dalam basis data. Untuk perusahaan yang lebih besar dengan perangkat analitik yang ada - tambahan yang bermanfaat yang tidak akan menggantikan sistem utama, tetapi akan memberikan beberapa manfaat yang bermanfaat.

Source: https://habr.com/ru/post/id414921/


All Articles