T + Conf 2019: Tarantool di Aeroflot, atau MDM on the fly



Hari ini kami menerbitkan transkrip laporan Nikolai Shevtsov dan Rustam Kildiev dengan T + Conf 2019 " Tarantool in Aeroflot, atau MDM (Manajemen Data Master) dengan cepat ." Dari laporan Anda akan belajar:

  • Mengapa MDM dibutuhkan?
  • Mengapa saya perlu waktu nyata?
  • Ilmu Data lebih dari sekedar Notebook Jupyter.
  • Pro dari Tarantool.
  • Mengapa Lua pandai menjual.

Teknologi informasi secara aktif membantu perusahaan kami dalam menarik pelanggan. Hari ini, kami secara aktif memperkenalkan sejumlah proyek Big Data. Ini adalah proyek pemasaran yang membantu kami dalam segmentasi data dan membawa informasi kepada pelanggan, penelitian sosial, bekerja dengan keluhan dan banding, dan banyak lagi. Juga, beberapa proyek sedang dilaksanakan yang membantu meningkatkan profitabilitas dan profitabilitas bisnis. Sebagai contoh, salah satu proyek adalah analisis bagasi yang tersedia di kapal untuk menjual surplus tepat waktu, atau untuk memprediksi kegagalan komponen individu dan suku cadang pesawat untuk perawatan yang tepat waktu.

Ada dalam platform penanganan panggilan yang kami gunakan secara aktif Tarantool, dan sedikit lagi tentang hal itu.

Nilai utama Big Data bagi kami adalah kemampuan untuk menganalisis data. Kami mencoba mengumpulkan semua sumber informasi baru yang terkait dengan Aeroflot dalam satu bidang informasi untuk diproses lebih lanjut.

Nikolay Shevtsov, Aeroflot. Manajer Proyek di Departemen Sistem Informasi.

Bagaimana biasanya orang membeli tiket? Ada ide tentang perjalanan, seseorang membagikannya dengan teman dan kerabat, di jejaring sosial dan forum, dan kemudian membeli tiket di situs tersebut. Ada banyak sumber informasi, dan tugas kami adalah mengumpulkan semuanya dan menganalisisnya untuk memahami sikap penumpang terhadap layanan dan maskapai secara keseluruhan.

Salah satu proyek kami disebut Platform Panggilan. Kami mengumpulkan semua ulasan, banding, dan keluhan dari berbagai sumber. "Platform" adalah jendela koleksi tunggal kami di situs atau di aplikasi seluler tempat kami menerima informasi dari pengguna. Kami juga mengumpulkan ulasan media sosial terkait Aeroflot.

Banyak divisi Aeroflot yang terlibat dalam menangani keluhan dan banding: karyawan terlibat dalam pelayanan di atas kapal, di area keberangkatan, di area kedatangan, dll. Sebagian besar keluhan, sekitar 2,5 ribu per hari, datang dari penumpang yang datang yang memiliki masalah. Setiap keluhan perlu diproses, diklasifikasikan, dan dialihkan ke departemen yang sesuai untuk karyawan tertentu yang dapat menyelesaikan masalah penumpang. Keluhan yang identik dapat dikelompokkan untuk menghemat waktu menganalisis situasi dan membuat keputusan.

Tujuan dari proyek ini adalah untuk mengoptimalkan pemrosesan aplikasi dan mengurangi waktu untuk pemrosesan mereka. Untuk melakukan ini, perlu dibuat sebuah sistem yang, pada saat keluhan, secara otomatis menentukan topiknya dan mengirimkannya ke departemen yang sesuai kepada karyawan yang bertanggung jawab. Dalam proses memproses keluhan, sistem harus menemukan semua informasi yang tersedia tentang klien, hingga profilnya, penerbangan yang direncanakan di masa depan, dll.

Pada awal proyek, kami mempertimbangkan beberapa alat yang dapat membantu kami dalam masalah ini dan akhirnya memilih Tarantool. Life telah menunjukkan bahwa ini adalah pilihan yang tepat: memungkinkan Anda untuk memenuhi persyaratan SLA dan pada saat yang sama juga dapat meningkatkan beban.

Penerapan


Aeroflot memperkenalkan platform untuk menangani keluhan. Ini adalah tempat penyimpanan informasi yang tidak terstruktur, berdasarkan analisis dan sintesis profil pelanggan yang unik.


Informasi yang diterima berdasarkan permintaan harus diproses dan sistematis. Banding adalah teks yang tidak dapat disimpan dalam bentuk mentah, sehingga seluruh teks menjadi vektor. Pencarian dilakukan untuk satu set hit, peta kata-kata dan frase unik dikompilasi, berdasarkan pada vektor awal dihitung untuk mengkonversi semua hit berikutnya. Awalnya, spesialis analisis data kami menggunakan alat klasik - Python dan Jupyter Notebook pada cluster atau laptop lokal. Vektor memiliki ukuran dinamis, yang menciptakan kesulitan.

Tidak seperti banyak alat lain, Tarantool adalah server aplikasi lengkap. Kita dapat menggunakan banyak perpustakaan, seperti SciLua, menulis logika dalam bahasa pemrograman biasa, dll. Sekarang kami melakukan vektorisasi data menggunakan perpustakaan SicLua secara langsung dan langsung di Tarantool. Kemudian, menggunakan metode jarak cosinus, sistem mencari vektor yang sama untuk periode tiga bulan. Akibatnya, kami mendapat panggilan ganda atau serupa untuk diproses lebih lanjut. Dalam proses pencarian, banyak perhitungan matematis dilakukan: dalam 3 bulan, sekitar 100 ribu panggilan diproses dari semua sumber yang tersedia. Waktu pemrosesan rata-rata adalah 120 ms.

Rustam Kildiev, CTO di Innodata.

Infrastruktur


Basis data Tarantool kami beroperasi pada empat server enam belas inti dengan jumlah RAM yang besar. Berkat modul Vshard, dimungkinkan untuk menerapkan pencarian cepat dengan brute force. Data dibagi menjadi beberapa bagian - bucket, sehingga pemrosesan kueri diparalelkan. Sistem ini mudah diukur, cukup tambahkan server. Kami memiliki replikasi master-master diimplementasikan, meskipun sebagian besar DBMS sekarang datang untuk itu. Juga, kita tidak perlu menambahkan modul, tidak ada masalah dengan administrasi.

Jumlah data kami, jika kami hitung dari RAM, adalah sekitar 1 TB. Pada tahap awal, debugging dan memperbaiki kesalahan dalam proyek, muncul masalah. Hampir semua tabel berisi 7-8 indeks, jadi basis data Tarantool untuk 1 TB membutuhkan waktu 20-40 menit, yang tidak dapat diterima. Selama startup, sistem membuat indeks dan jika Anda menghapusnya, maka memuat akan menjadi lebih cepat. Dalam situasi ini, fungsi Hot-standby membantu kami.

Rencana


Pelanggan dan kami, para pemain, menyukai Tarantool. Kami mempertimbangkan pangkalan lain, tetapi pada akhirnya kami memilih Tarantool. Pertama, kami membutuhkan basis yang sangat cepat. Kedua, itu harus banyak bekerja dengannya, menulis logika, dll., Jadi Lua yang lengkap merupakan keuntungan bagi kita. Ketiga, Tarantool segera menulis ke disk dan tidak mengambil snapshot, dan ini juga baik bagi kami, karena meskipun ada banyak panggilan dari pelanggan, kami tidak dapat kehilangan satu pun.

Tarantool telah membuktikan kegunaannya dalam produksi, dan kami akan memuat lebih banyak data ke dalamnya, menambahkan logika bisnis. Tidak seperti database lain, itu tidak perlu selalu disetel dan sesuatu berubah. Omong-omong, konversi dan pemuatan data ke Tarantool dari sistem lain dilakukan secara otomatis dan dilakukan setiap hari.

Di masa depan, kami berencana untuk beralih ke Tarantool Enterprise, yang akan memungkinkan kami mengelola dan mengkonfigurasi beberapa instance Tarantool dengan mudah. Masih ada beberapa spesialis dalam database ini, dan kebutuhan mereka terus bertambah. Kualifikasi kami terkadang tidak cukup. Dalam kasus seperti itu, obrolan internal pengembang Tarantool membantu, di mana Anda dapat meminta bantuan. Ini tidak ada di sistem lain.

Kami juga berencana untuk meningkatkan ke Tarantool2 dan SQL. Ada banyak ahli SQL di pasar tenaga kerja, sehingga transisi tidak akan terlalu sulit.

temuan


Masalah utama dari proyek ini adalah Lua. Hanya sedikit pengembang yang tahu, tetapi mereka bahkan kurang menyukainya. Awalnya, kami menulis menggunakan bahasa lain, tetapi karena banyaknya permintaan, sistem bekerja lambat. Oleh karena itu, kami menyalin semuanya dengan Lua untuk waktu yang lama dan menyakitkan, tetapi sebagai hasilnya, sistem bekerja dengan jelas dan cepat, dengan sejumlah kecil koreksi dan rilis. Lua sangat dekat dengan kode mesin dan merupakan salah satu bahasa tercepat dari keluarga C. Meskipun merupakan bahasa scripting kecil, ia memiliki semua perpustakaan yang diperlukan, dan kami dapat mentransfer algoritma pencarian, vektorisasi, jarak kosinus, dll.

Tarantool sangat toleran terhadap kesalahan dan bekerja di luar kotak. Kami melakukan banyak percobaan: mematikan Tarantool, mengangkat, dll. - semuanya berfungsi dengan baik, dan data antara ditulis ke disk, jadi kami tidak kehilangan data.

All Articles