Ulasan: Kinetica menganalisis miliaran baris secara real time

Pada tahun 2009, pendiri Kinetica di masa depan menjadi kosong ketika mencoba menemukan database yang ada yang dapat memberikan United States Army Intelligence and Security Command (INSCOM) di Fort Belvoir (Virginia) kemampuan untuk melacak jutaan sinyal berbeda secara real time untuk mengevaluasi ancaman keamanan nasional. Jadi mereka membangun database baru dari awal, berpusat pada paralelisasi besar-besaran yang menggabungkan kekuatan GPU dan CPU untuk menjelajahi dan memvisualisasikan data dalam ruang dan waktu. Pada 2014 mereka menarik pelanggan lain, dan pada 2016 mereka bergabung sebagai Kinetica.

Versi terkini dari basis data ini adalah jantung dari Kinetica 7, sekarang diperluas cakupannya menjadi Platform Analisis Aktif Kinetica. Platform ini menggabungkan analisis data historis dan streaming, kecerdasan lokasi, dan pembelajaran mesin dalam paket cloud-ready berperforma tinggi.

Sebagai referensi pelanggan, Kinetica memiliki antara lain Ovo, GSK, SoftBank, Telkomsel, Scotiabank, dan Caesars. Ovo menggunakan Kinetica untuk personalisasi ritel. Telkomsel, operator nirkabel Worldn, menggunakan Kinetica untuk wawasan jaringan dan pelanggan. Anadarko, yang baru-baru ini diakuisisi oleh Chevron, menggunakan Kinetica untuk mempercepat analisis cekungan minyak ke titik di mana perusahaan tidak perlu mengurangi data survei 90 miliar barisnya untuk visualisasi dan analisis 3D.

Kinetica sering dibandingkan dengan database GPU lainnya, seperti OmniSci, Brytlyt, SQream DB, dan BlazingDB. Menurut perusahaan, bagaimanapun, mereka biasanya bersaing dengan solusi yang jauh lebih luas, dari solusi tumpukan SMACK (Spark, Mesos, Akka, Cassandra, dan Kafka) yang dipesan lebih dahulu hingga pemrosesan data terdistribusi dan platform penyimpanan data yang lebih tradisional.

Fitur dan arsitektur utama Kinetica

Kinetica menggabungkan database yang terdistribusi, dalam memori, dan dipercepat GPU dengan analitik streaming, kecerdasan lokasi, dan pembelajaran mesin. Database dibuat vektor, berbentuk kolom, mengutamakan memori, dan dirancang untuk beban kerja analitik (OLAP), secara otomatis mendistribusikan beban kerja apa pun ke seluruh CPU dan GPU. Kinetica menggunakan SQL-92 untuk bahasa kueri, seperti PostgreSQL dan MySQL, dan mendukung berbagai kemampuan termasuk pencarian teks, analisis deret waktu, kecerdasan lokasi, dan analisis grafik.

Kinetica dapat beroperasi pada seluruh korpus data dengan mengelola data secara cerdas di seluruh memori GPU, memori sistem, disk atau SSD, HDFS, dan penyimpanan cloud seperti Amazon S3. Menurut perusahaan, kemampuan untuk mengelola semua tingkatan penyimpanan ini unik untuk Kinetica di antara database GPU.

Dengan kemampuan penyerapan paralelnya yang terdistribusi, Kinetica dapat melakukan penyerapan berkecepatan tinggi pada kumpulan data streaming (dengan Kafka) dan analitik kompleks pada streaming dan data historis secara bersamaan. Anda dapat melatih model TensorFlow terhadap data secara langsung di Kinetica, atau mengimpor model TensorFlow atau "kotak hitam" yang telah dilatih sebelumnya untuk menjalankan kesimpulan melalui pemrosesan batch, pemrosesan streaming, atau layanan web publik.

Kinetica memiliki pustaka fungsi geospasial yang kuat dan berakselerasi GPU untuk melakukan pemfilteran sesuai permintaan, agregasi, deret waktu, gabungan spasial, dan analisis geofence. Itu juga dapat menampilkan geometri, peta panas, dan kontur tak terbatas, menggunakan teknologi rendering sisi server (karena rendering sisi klien dari kumpulan data besar sangat memakan waktu).

Anda dapat menggunakan data relasional Anda dalam konteks grafik asli (dengan secara eksplisit membuat node, edge, dan objek grafik lainnya dari data relasional) untuk memahami hubungan geospasial dan non-geospasial, dan Anda dapat melakukan pengoptimalan rute waktu nyata dan bahkan analisis jaringan sosial menggunakan algoritme grafik yang dipercepat GPU Kinetica (menggunakan kinetica.solve_graphfungsi).

Kinetica Kinetica

Pilihan instalasi dan konfigurasi Kinetica

Ada tiga metode untuk menginstal Kinetica. Metode yang disukai sekarang adalah KAgent, yang mengotomatiskan penginstalan dan konfigurasi Kinetica, Active Analytics Workbench (AAW) dan Kubernetes, ring (ketersediaan tinggi), dan banyak lagi. Dua metode alternatif menggunakan Docker (untuk instalasi portabel Kinetica) dan menginstal secara manual melalui baris perintah menggunakan manajer paket berbasis Linux umum seperti yumdan apt.

Pengelolaan sumber daya.  Kinetica mendukung lima tingkatan penyimpanan: VRAM, RAM, cache disk, persist, dan penyimpanan dingin. Setiap operasi yang menggunakan GPU memerlukan data tempat mereka beroperasi ditempatkan di tingkat VRAM. Mengelola data dalam lima lapisan ini adalah masalah yang tidak sepele.

Penggusuran adalah perpindahan data secara paksa dari tingkat yang lebih tinggi ke tingkat yang lebih rendah untuk memberi ruang bagi data lain untuk dipindahkan ke tingkat yang lebih tinggi tersebut. Setiap objek dalam sistem memiliki tingkat evictability yang bergantung pada jenis objek itu dan tingkatan yang tersedia di bawahnya yang dapat digusur. Penggusuran dapat dilakukan sebagai tanggapan atas permintaan, yang dapat menyebabkan banyak pergerakan data, atau secara proaktif di latar belakang berdasarkan tingkat tanda air yang tinggi dan rendah serta prioritas penggusuran, yang biasanya menyebabkan lebih sedikit pergerakan data.

Ketersediaan tinggi.  Kinetica HA menghilangkan satu titik kegagalan dalam kluster Kinetica standar dan menyediakan pemulihan dari kegagalan. Ini diimplementasikan di luar Kinetica untuk memanfaatkan banyak replika data dan menyediakan penyimpanan data yang pada akhirnya konsisten. Solusi Kinetica HA terdiri dari empat komponen: penyeimbang beban front-end, manajer proses ketersediaan tinggi, satu atau lebih cluster Kinetica, dan antrian pesan terdistribusi.

Administrasi.  Anda dapat mengelola Kinetica dengan alat GAdmin grafis, perintah baris serviceperintah Linux , atau KAgent. Tangkapan layar di bawah ini menunjukkan dasbor GAdmin untuk cluster 6-node.

Demo Kinetica

Selain GAdmin dan KAgent, Kinetica menawarkan alat visualisasi berbasis web, Reveal, dan Active Analytics Workbench (AAW), yang untuk mengintegrasikan model dan algoritme pembelajaran mesin.

Cluster enam node yang ditunjukkan pada gambar di atas adalah yang saya gunakan untuk menjelajahi beberapa demo Kinetica. Cluster terdiri dari instans g3.8xlarge yang masing-masing berisi dua GPU Nvidia Tesla M60 dan 32 CPU Intel Xeon E5 2686 v4. Setiap instans memiliki RAM 244 GiB dan VRAM 16 GiB per GPU. Pengaturan ini dapat diperkecil, naik, dan keluar untuk mengakomodasi kasus penggunaan apa pun. Setelah saya menyelesaikan pengujian saya, database berisi 413 tabel dan 2,2 miliar catatan.

Demo yang saya jelajahi adalah untuk perkiraan risiko keuangan menggunakan opsi, risiko asuransi banjir di Texas, penilaian keamanan jaringan berdasarkan inspeksi lalu lintas, dan naik taksi di NYC. Dalam prosesnya, saya perhatikan bahwa, tidak seperti demo OmniSci (lihat ulasan saya), yang semuanya menggunakan tabel pipih tunggal (untuk kecepatan), demo Kinetica sering menggunakan beberapa tabel, tampilan, dan dasbor analitik.

Perkiraan risiko keuangan dengan opsi

Aplikasi ini pada dasarnya adalah bukti konsep manajemen risiko keuangan real-time dengan Kinetica. Aplikasi seluler React dan dua dasbor web memungkinkan seorang manajer risiko untuk melihat semua "yunani" (faktor dalam mengukur risiko) untuk portofolionya dan menambahkan lindung nilai. Di belakang layar, transaksi mengalir ke database dan model risiko pembelajaran mesin Black Scholes terus diperbarui pada data langsung. Sebaliknya, manajemen risiko tradisional melibatkan penyalinan data transaksi ke cluster terpisah yang menjalankan model risiko setiap malam.

Risiko asuransi untuk bencana banjir di Texas

Tujuan dari aplikasi ini adalah untuk menilai eksposur risiko perusahaan asuransi terhadap bencana banjir di Texas dari tabel pemegang polis dan zona banjir Badai Harvey. Aplikasi ini melakukan komputasi geospasial yang berat dalam SQL bersama dengan komputasi statistik.

Penilaian keamanan jaringan

Aplikasi ini dirancang untuk membantu petugas keamanan jaringan melindungi jaringan dari gangguan. Tabel Kinetica yang mendasari menggabungkan sekitar 1,8 miliar permintaan jaringan historis dengan umpan waktu nyata.

Naik taksi NYC

Database naik taksi Kota New York adalah sesuatu yang juga saya lihat di OmniSci. Kinetica menyediakannya sebagai kumpulan data yang dapat Anda muat; itu membutuhkan waktu sekitar satu menit. Awalnya butuh waktu lebih lama untuk memperbarui semua grafik setelah setiap operasi zoom peta di Kinetica daripada yang saya ingat dari OmniSci; kemudian saya mengubah pengaturan sehingga Kinetica tidak akan memplot data di luar peta yang diperbesar pada grafik lain, dan waktu respons turun ke kisaran sub-detik.

Irisan dan dasbor Kinetica

Grafik individual di Kinetica Reveal disebut irisan. Irisan diatur menjadi dasbor.

Desainer slice sangat mirip dengan desainer yang akan Anda temukan di OmniSci dan sejumlah produk BI, seperti Tableau.

Saya tidak menguji bagian analisis grafik Kinetica, tapi saya suka cara desainnya. Jika database grafik hanyalah sebagian kecil dari apa yang perlu Anda lakukan dengan data Anda, maka gunakan kembali baris yang disimpan dari tabel relasional karena edge dan node sangat masuk akal. Menggunakan GPU untuk mempercepat algoritma grafik juga sangat masuk akal.

Melihat bagaimana Kinetica mengintegrasikan pembelajaran mesin dengan basis data GPU, analisis real-time, dan informasi geografis membuat saya memahami ke mana OmniSci ingin pergi — tetapi Kinetica sudah ada di sana. Selain itu, melihat bagaimana Kinetica mengelola tingkatan penyimpanannya membuat saya mengerti mengapa Kinetica biasanya bersaing dengan data besar dan sistem gudang data.

Secara keseluruhan, Kinetica sangat mengesankan. Itu melakukan apa yang diklaimnya, melompati database tinggi dengan satu ... Maksud saya, menganalisis database dengan miliaran baris historis dan umpan langsung secara real time. Saya berharap saya dapat merasakan biaya berlangganan, tetapi itu adalah hak milik, seperti yang sering terjadi pada sistem skala ini.

-

Biaya: Kinetica mengenakan biaya langganan tahunan berdasarkan jumlah terabyte dalam memori; itu tidak mengenakan biaya untuk penyimpanan data di tingkatan lain. Lisensi langganan memungkinkan Anda menjalankan Kinetica di mana saja — di lokasi atau di cloud. Biaya langganan dapat diprediksi sepenuhnya. Tersedia uji coba gratis 30 hari.

Platform: Server RHEL, CentOS, Ubuntu, Suse, atau Debian Linux dengan setidaknya delapan inti CPU dan RAM 8 GB; Nvidia K40 atau lebih tinggi; lokal, di cloud, atau di edge pada perangkat tertanam Jetson TX2. Kinetica juga berjalan di Docker, dengan atau tanpa GPU.