Mengapa pembangun harus menggunakan pangkalan data grafik

Dua puluh tahun yang lalu, pasukan pengembangan saya membina mesin pemprosesan bahasa semula jadi yang mengimbas iklan pekerjaan, automatik dan harta tanah untuk kategori yang boleh dicari. Saya tahu bahawa kami menghadapi cabaran pengurusan data yang sukar. Data dalam beberapa jenis iklan relatif mudah, seperti mengenal pasti jenama dan model kereta, tetapi yang lain memerlukan lebih banyak kesimpulan, seperti mengenal pasti kategori pekerjaan berdasarkan senarai kemahiran.

Kami mengembangkan model metadata yang menangkap semua istilah yang dapat dicari, tetapi mesin pemprosesan bahasa semula jadi memerlukan model tersebut untuk memperlihatkan hubungan metadata yang signifikan. Kami tahu merancang model metadata dengan sambungan sewenang-wenang antara titik data dalam pangkalan data hubungan adalah kompleks, jadi kami menjelajah menggunakan pangkalan data objek untuk menguruskan model.

Apa yang kita cuba capai pada masa itu dengan pangkalan data objek dapat dilakukan dengan lebih baik hari ini dengan pangkalan data grafik. Pangkalan data grafik menyimpan maklumat sebagai nod dan data yang menentukan hubungannya dengan nod lain. Mereka adalah seni bina yang terbukti untuk menyimpan data dengan hubungan yang kompleks.

Penggunaan pangkalan data grafik sememangnya telah meningkat selama satu dekad yang lalu kerana syarikat menganggap NoSQL lain dan teknologi data besar. Pasaran pangkalan data grafik global dianggarkan bernilai $ 651 juta pada tahun 2018 dan diramalkan akan meningkat menjadi $ 3,73 bilion pada tahun 2026. Tetapi banyak teknologi pengurusan data besar lain, termasuk Hadoop, Spark, dan lain-lain, telah melihat pertumbuhan populariti, penggunaan kemahiran yang lebih ketara dan kes penggunaan pengeluaran berbanding dengan pangkalan data grafik. Sebagai perbandingan, ukuran pasaran teknologi data besar dianggarkan berjumlah $ 36.8 bilion pada tahun 2018 dan diramalkan akan meningkat menjadi $ 104.3 bilion pada tahun 2026.

Saya ingin memahami mengapa lebih banyak organisasi tidak mempertimbangkan pangkalan data grafik. Pembangun berfikir dalam objek dan menggunakan perwakilan data hierarki dalam XML dan JSON secara berkala. Teknologis dan pihak berkepentingan perniagaan secara intrinsik memahami grafik kerana Internet adalah grafik yang saling berkaitan melalui pautan dan konsep seperti rakan dan rakan rakan dari rangkaian sosial. Lalu mengapa tidak lebih banyak pasukan pengembangan menggunakan pangkalan data grafik dalam aplikasi mereka?

Mempelajari bahasa pertanyaan pangkalan data grafik

Walaupun agak mudah untuk memahami pemodelan node dan hubungan yang digunakan dalam pangkalan data grafik, menanyakannya memerlukan pembelajaran amalan dan kemahiran baru.

Mari lihat contoh pengkomputeran senarai rakan dan rakan rakan. Lima belas tahun yang lalu, saya membuat rangkaian sosial perjalanan dan memutuskan untuk menjadikan model data tetap sederhana dengan menyimpan semua yang ada di MySQL. Jadual yang menyimpan senarai pengguna telah bergabung sendiri untuk mewakili rakan, dan ini adalah pertanyaan yang agak mudah untuk mengekstrak senarai rakan. Tetapi untuk mendapatkan rakan dari senarai rakan memerlukan pertanyaan yang sangat rumit yang berfungsi tetapi tidak berfungsi dengan baik ketika pengguna mempunyai rangkaian yang luas.

Saya bercakap dengan Jim Webber, ketua saintis di Neo4j, salah satu pangkalan data grafik yang ada, mengenai bagaimana membina pertanyaan rakan rakan. Pembangun boleh membuat pertanyaan pangkalan data grafik Neo4j menggunakan RDF (Resource Deskripsi Framework) dan Gremlin, tetapi Webber memberitahu saya bahawa lebih daripada 90 peratus pelanggan menggunakan Cypher. Begini bagaimana pertanyaan dalam Cypher untuk mengekstrak rakan dan rakan rakan kelihatan:

MATCH (me:Person {name:'Rosa'})-[:FRIEND*1..2]->(f:Person)

WHERE me f

RETURN f

Inilah cara untuk memahami pertanyaan ini:

  • Cari saya corak di mana terdapat simpul dengan label Orang dan nama harta: 'Rosa', dan ikatkan pada pemboleh ubah "saya." Pertanyaan menetapkan bahawa "saya" mempunyai hubungan TEMAN keluar pada kedalaman 1 atau 2 dengan nod lain dengan label Orang, dan mengikat padanan tersebut dengan pemboleh ubah "f."
  • Pastikan “saya” tidak sama dengan “f,” kerana saya adalah rakan rakan saya!
  • Kembalikan semua rakan dan rakan rakan

Pertanyaannya elegan dan cekap tetapi mempunyai keluk pembelajaran bagi mereka yang biasa menulis pertanyaan SQL. Di sinilah terdapat cabaran pertama bagi organisasi yang bergerak ke arah pangkalan data grafik: SQL adalah set kemahiran yang meluas, dan Cypher dan bahasa pertanyaan grafik lain adalah kemahiran baru untuk dipelajari.

Merancang hierarki fleksibel dengan pangkalan data grafik

Katalog produk, sistem pengurusan kandungan, aplikasi pengurusan projek, ERP dan CRM semuanya menggunakan hierarki untuk mengkategorikan dan menandai maklumat. Masalahnya, tentu saja, beberapa maklumat tidak benar-benar hierarki, dan perkara pokok harus mewujudkan pendekatan yang konsisten untuk menyusun arsitektur maklumat. Itu boleh menjadi proses yang menyakitkan, terutama jika ada perdebatan dalaman mengenai penstrukturan maklumat, atau ketika pengguna akhir aplikasi tidak dapat mencari maklumat yang mereka cari kerana terdapat dalam bahagian hierarki yang berbeza.

Pangkalan data grafik bukan sahaja membolehkan hierarki sewenang-wenangnya, tetapi juga membolehkan pemaju membuat pandangan hierarki yang berbeza untuk keperluan yang berbeza. Sebagai contoh, artikel ini mengenai pangkalan data grafik mungkin muncul di bawah hierarki dalam sistem pengurusan kandungan untuk pengurusan data, teknologi baru muncul, industri yang cenderung menggunakan pangkalan data grafik, kes penggunaan pangkalan data grafik umum, atau berdasarkan peran teknologi. Mesin cadangan kemudian mempunyai sekumpulan data yang jauh lebih kaya untuk memadankan kandungan dengan minat pengguna.

Saya bercakap dengan Mark Klusza, pengasas bersama Construxiv, sebuah syarikat yang menjual teknologi kepada industri pembinaan, termasuk Grit, sebuah platform penjadualan pembinaan. Sekiranya anda melihat jadual projek pembinaan komersial, anda akan melihat rujukan untuk pelbagai perdagangan, peralatan, bahagian, dan rujukan model. Satu pakej kerja boleh mempunyai beratus-ratus tugas dengan bergantung pada rancangan projek dengan mudah. Rancangan ini mesti mengintegrasikan data dari ERP, Pemodelan Maklumat Bangunan, dan rancangan projek lain dan memberikan pandangan kepada penjadual, pengurus projek, dan subkontraktor. Klusza menjelaskan, “Dengan menggunakan pangkalan data grafik di Grit, kami membuat hubungan yang lebih kaya dengan siapa yang melakukan apa, kapan, di mana, dengan peralatan apa, dan dengan bahan apa. Itu membolehkan kita memperibadikan pandangan dan meramalkan konflik penjadualan pekerjaan dengan lebih baik. "

Untuk memanfaatkan hierarki fleksibel, membantu merancang aplikasi dari bawah dengan pangkalan data grafik. Seluruh aplikasi kemudian dirancang berdasarkan pertanyaan grafik dan memanfaatkan nod, hubungan, label, dan sifat grafik.

Pilihan penggunaan awan mengurangkan kerumitan operasi

Menyebarkan penyelesaian pengurusan data ke pusat data tidak sepele. Prasarana dan operasi mesti mempertimbangkan keperluan keselamatan; mengkaji pertimbangan prestasi untuk meningkatkan pelayan, storan dan rangkaian; dan juga mengoperasikan sistem yang direplikasi untuk pemulihan bencana.

Organisasi yang bereksperimen dengan pangkalan data grafik kini mempunyai beberapa pilihan awan. Jurutera boleh menggunakan Neo4j ke GCP, AWS, Azure, atau memanfaatkan Neo4j's Aura, pangkalan data sebagai perkhidmatan. TigerGraph mempunyai tawaran cloud dan starter kit untuk kes penggunaan seperti pelanggan 360, pengesanan penipuan, mesin cadangan, analisis rangkaian sosial, dan analisis rantaian bekalan. Juga, vendor awan awam mempunyai keupayaan pangkalan data grafik, termasuk AWS Neptune, Gremlin API di Azure's CosmoDB, sumber terbuka JanusGraph di GCP, atau ciri grafik dalam Perkhidmatan Pangkalan Data Awan Oracle.

Saya kembali kepada soalan asal saya. Dengan semua kes penggunaan yang menarik, tersedia platform pangkalan data grafik yang matang, peluang untuk mempelajari pengembangan pangkalan data grafik, dan pilihan penyebaran awan, mengapa tidak lebih banyak organisasi teknologi menggunakan pangkalan data grafik?