Upload
robinsy
View
252
Download
7
Embed Size (px)
Citation preview
Apa itu graph database?
Graph Database
• Adalah basis data yang menggunakan konsep graph sebagai metode relasinya.
Elemen di Graph DB
Vertex Edge
agus fachryfollow
vertex
edge
agus fachryfollow
• nama = Agus Sangar• lokasi = Jakarta
• nama = Fachry Bafaddal• lokasi = Jogja
• timestamp = 1433826379878
atribut
Mengapa Graph DB?
• Data modeling yang kaya.
• Performa yang lebih baik terutama untuk query yang dalam (deep traversal).
• Bisa langsung melakukan aktifitas “mining” seperti collaborative filtering untuk recommendation engine hanya dengan sekali query.
• Query setara “join” pada SQL yang lebih murah dan tidak terbatas oleh ukuran data dan kedalamannya.
• Bisa mengakomodir relasi data yang sangat kompleks tanpa perlu merubah skema dan mempengaruhi performa.
Graph DB cocok untuk:
• Social media yang banyak terdapat relasi antara user satu dengan yang lainnya.
• Aplikasi analitis finansial untuk realtime fraud detection.
• Aplikasi dengan “personalized content relevancy”.
• Aplikasi pemeta objek dengan banyak turunan dan keterkaitan yang tidak baku, contoh: aplikasi biologi untuk memecah protein, mineral, dan turunannya.
• Intelligent surveillance system.
• Aplikasi apa saja yang menawarkan outputnya dari “data driven”, seperti: aplikasi untuk memprediksi trend.
Graph DB tidak cocok untuk:
• Aplikasi dengan data yang tidak butuh relasi, atau hanya butuh relasi sederhana.
• Cache dan key value store.
Bagaimana menggunakan Graph DB?
Produk-produk Graph DB
Titan
FlockDB InfiniteGraph
InfoGridVertexDB
DEXFilamentHorton
FluxGraph ArangoDB
Blueprints API
Layer
Blueprints API
Titan
Your App
Agnostik
Komponen Titan Titan
Storage
Cassandra
Hbase
Oracle BerkeleyDB
Indexing Engine
Elastic Search
Solr
Lucene
Analytic Engine
Hadoop
Fulgora
Graph DB di Mindtalk
Blueprints API
Titan
Blueprints Scala
Mindtalk
Cassandra
github.com/anvie/blueprints-scala
DB
STA
CK
CRUDQ
Create
or =• name = Hercules• kind = demigod
Read
Update
Merubah atribut:
Menambahkan relasi:
Delete
db.delete(hercules)
hercules.delete()
or
Query
Bahasa pemrograman berbasiskan graph
“SQL”-nya graph db
Dengan dataset ini:
gremlin pipeline
• https://github.com/anvie/blueprints-scala
• http://gremlindocs.com/
Untuk lebih detail silahkan baca:
Memecahkan masalah menggunakan
Graph DB
Collaborative Filteringrekomendasi film
http://markorodriguez.com
Cari siapa saja pengguna yang menilai film “Toy Story” lebih dari 3 bintang dan film lain mana saja yang dinilai lebih dari 3 bintang
oleh pengguna tersebut.
masalah:
Collaborative Filteringrekomendasi film
http://markorodriguez.com
toyStory.inE(“rated”) .filter{ it => it.get(“stars”) > 3} .outV.outE(“rated”) .filter{ it => it.get(“stars”) > 3 }.inV() .range(0, 5)
jawab:
Masalah Graph DB
• Supernode problem.
• Circular dependency
“understanding the web of relationships among events, people, transactions, locations and
sensor readings might lead to superior intelligence insight. “
“Your business no doubt has similar opportunities.”
~ Mike Matchett
Terima kasih