Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
システム構築のプロセス評価、改善、策定、開発フレームワークの設計、
実装管理、プリセールスやプロジェクトの立ち上げなど
ブログ :http://blog.processtune.com
プロフィール :Tetsuro Takao on
Face...
マルチモデル + マルチ APIなのか?
システムの変遷
N層システム
• DBを正規化しデータ層のパ
フォーマンスを最大化するこ
とでシステム全体のスペック
を向上
• ORマップによって業務に近い
データセットを作成
• エンティティの一括...
分散アーキテクチャではデータの持ち方を変える必要がある
UI
API A
スキーマ
データストア A
API B
スキーマ
データストア A
UI
API
スキーマ
データストア A
API
スキーマ
データストア B
分散アーキテクチャ分散ア...
Cosmos DBはアトム レコード シーケンス(Atom Record
Sequence)でスキーマを構成するように設計されている
↓
そのため、さまざまなクエリに対して動的に適したデータモ
デルに変換することが可能です。
Cosmos DB...
https://docs.microsoft.com/ja-jp/dotnet/api/microsoft.azure.cosmosdb.table?view=azure-dotnet
Azure Cosmos DB Table .NET AP...
https://docs.mongodb.com/ecosystem/drivers/csharp/
https://docs.microsoft.com/ja-jp/dotnet/api/overview/azure/cosmosdb/client?view=azure-dotnet
https://cassandra.apache.org/doc/latest/getting_started/drivers.html
Graph
Vertices(Nodes)
Edges
(Timestamp / Weight)オブジェクト
プロパティ
key/value-
pairs
プロパティ
key/value-
pairs
プロパティ
key/value-
pair...
Graph
オブジェクト
プロパティ
key/value-
pairs
プロパティ
key/value-
pairs
プロパティ
key/value-
pairs
プロパティ
key/value-
pairs
プロパティ
key/value-
...
•Amazon Neptune - Fully-managed graph database service.
•Bitsy - A small, fast, embeddable, durable in-memory graph databa...
Azure Cosmos DB の概要
https://docs.microsoft.com/ja-jp/azure/cosmos-db/introduction
Azure Cosmos DB の調整可能なデータの一貫性レベル
https:/...
Data management of cosmos db using apache gremlin
Data management of cosmos db using apache gremlin
Data management of cosmos db using apache gremlin
Data management of cosmos db using apache gremlin
Upcoming SlideShare
Loading in …5
×

Data management of cosmos db using apache gremlin

198 views

Published on

presentation for technical community named dotnetlab.

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Data management of cosmos db using apache gremlin

  1. 1. システム構築のプロセス評価、改善、策定、開発フレームワークの設計、 実装管理、プリセールスやプロジェクトの立ち上げなど ブログ :http://blog.processtune.com プロフィール :Tetsuro Takao on Facebook, Twitter or http://mvp.microsoft.com コミュニティ :.NETラボの運営スタッフ https://dotnetlab.connpass.com/ Microsoft MVP:Developer Technologies [July 2010 – June 2019]
  2. 2. マルチモデル + マルチ APIなのか? システムの変遷 N層システム • DBを正規化しデータ層のパ フォーマンスを最大化するこ とでシステム全体のスペック を向上 • ORマップによって業務に近い データセットを作成 • エンティティの一括シリアラ イズ、モデルのリゾルバ等を 駆使しファットコントロー ラーにならないよう分離設計 マッシュアップ • Web API同士が連携してソ リューションを構成すること で、ひとつのシステムの責務 を縮小させRDBにおける複雑 なテーブル間のリレーショナ ルを排除 • RESTfulなAPIにより、業務のス テートを永続化層とUI間で転 送 • ユーザー操作に対する応答を 分割することでUIの処理を軽 量化 サーバーレス・コンピューティン グ • 永続化層から業務を徹底排除 したKVS(Key Value Store)の 実装である各種分散DB (Hadoop等) • 並列でリアルタイムなクエリ によるバッチ分析等によりOR マップの必要性を低減 • クエリAPIに依存しないことで マイクロサービスの実装を容 易にする 永続化層に業務が入り込む APIの調整コスト大、変更に弱い APIの調整コスト無し、柔軟性大
  3. 3. 分散アーキテクチャではデータの持ち方を変える必要がある UI API A スキーマ データストア A API B スキーマ データストア A UI API スキーマ データストア A API スキーマ データストア B 分散アーキテクチャ分散アーキテクチャではない場合 ステートフルミドルウェア
  4. 4. Cosmos DBはアトム レコード シーケンス(Atom Record Sequence)でスキーマを構成するように設計されている ↓ そのため、さまざまなクエリに対して動的に適したデータモ デルに変換することが可能です。 Cosmos DBのデータのシーケンス アトム プリミティブ型のデータ配列 数値 数値 … 文字 列 文字 列 … ブー ル値 ブー ル値 … … … … レコード 構造体 … … … シーケンス アト ム レ コー ド シー ケン ス シー ケン ス Transact SQL →SQL API ← テーブル・モデル Gremlin →Graph API ← グラフ・モデル Mongo DB →MongoDB API ← ドキュメント・モデル Cassandra →Cassandra API ← 列ファミリ・モデル等 Table Storage→Table API ← キーバリュー・モデル https://azure.microsoft.com/ja-jp/blog/a-technical-overview-of-azure-cosmos-db/
  5. 5. https://docs.microsoft.com/ja-jp/dotnet/api/microsoft.azure.cosmosdb.table?view=azure-dotnet Azure Cosmos DB Table .NET API Azure Cosmos DB Table Java API Azure Cosmos DB Table Node.js API Azure Cosmos DB Table SDK for Python
  6. 6. https://docs.mongodb.com/ecosystem/drivers/csharp/
  7. 7. https://docs.microsoft.com/ja-jp/dotnet/api/overview/azure/cosmosdb/client?view=azure-dotnet
  8. 8. https://cassandra.apache.org/doc/latest/getting_started/drivers.html
  9. 9. Graph Vertices(Nodes) Edges (Timestamp / Weight)オブジェクト プロパティ key/value- pairs プロパティ key/value- pairs プロパティ key/value- pairs プロパティ key/value- pairs プロパティ key/value- pairs プロパティ key/value- pairs オブジェクト プロパティ key/value- pairs プロパティ key/value- pairs プロパティ key/value- pairs プロパティ key/value- pairs プロパティ key/value- pairs プロパティ key/value- pairs
  10. 10. Graph オブジェクト プロパティ key/value- pairs プロパティ key/value- pairs プロパティ key/value- pairs プロパティ key/value- pairs プロパティ key/value- pairs プロパティ key/value- pairs オブジェクト プロパティ key/value- pairs プロパティ key/value- pairs プロパティ key/value- pairs プロパティ key/value- pairs プロパティ key/value- pairs プロパティ key/value- pairs Blank Blank Blank Vertices(Nodes) Edges (Timestamp / Weight)
  11. 11. •Amazon Neptune - Fully-managed graph database service. •Bitsy - A small, fast, embeddable, durable in-memory graph database. •Blazegraph - RDF graph database with OLTP support. •CosmosDB - Microsoft's distributed OLTP graph database. •ChronoGraph - A versioned graph database. •DSEGraph - DataStax graph database with OLTP and OLAP support. •GRAKN.AI - Distributed OLTP/OLAP knowledge graph system. •Hadoop (Spark) - OLAP graph processor using Spark. •HGraphDB - OLTP graph database running on Apache HBase. •Huawei Graph Engine Service - Fully-managed, distributed, at-scale graph query and analysis service that provides a visualized interactive analytics platform. •IBM Graph - OLTP graph database as a service. •JanusGraph - Distributed OLTP and OLAP graph database with BerkeleyDB, Apache Cassandra and Apache HBase support. •JanusGraph (Amazon) - The Amazon DynamoDB Storage Backend for JanusGraph. •Neo4j - OLTP graph database (embedded and high availability). •neo4j-gremlin-bolt - OLTP graph database (using Bolt Protocol). •OrientDB - OLTP graph database •Apache S2Graph - OLTP graph database running on Apache HBase. •Sqlg - OLTP implementation on SQL databases. •Stardog - RDF graph database with OLTP and OLAP support. •TinkerGraph - In-memory OLTP and OLAP reference implementation. •Titan - Distributed OLTP and OLAP graph database with BerkeleyDB, Apache Cassandra and Apache HBase support. •Titan (Amazon) - The Amazon DynamoDB storage backend for Titan. •Titan (Tupl) - The Tupl storage backend for Titan. •Unipop - OLTP Elasticsearch and JDBC backed graph. •cypher-for-gremlin - A Cypher to Gremlin traversal transpiler. •Ferma (java/dsl) - An ORM / OGM for Apache TinkerPop. •Goblin (python/dsl) - Goblin OGM for the TinkerPop 3 Gremlin Server. •Gremlin.Net (.NET - C#/variant) - Gremlin hosted in C# for use with any .NET-based VM. •gremlin-javascript (js) - Gremlin hosted in JavaScript for use with Node.js. •gremlin-orm (javascript) Gremlin ORM for Node.js. •gremlin-python (python/variant) - Gremlin hosted in Python for use with any Python-based VM. •gremlin-py (python/variant) - Write pure Python Gremlin that can be sent to Gremlin Server. •gremlin-scala (scala/variant) - A Scala-based Gremlin language variant for TinkerPop3. •gremlin-objects (java/dsl) - An Object Graph Mapping Library For Gremlin. •gremlin-template-string (js/variant) - A Gremlin language builder. •ipython-gremlin (python/variant) - Gremlin in IPython and Jupyter. •kotlin-gremlin-ogm (kotlin/dsl) - An Object Graph Mapping Library for Kotlin and Gremlin. •ogre (clojure/variant) - A Clojure language wrapper for TinkerPop3. •Peapod (java/dsl) - An object-graph-wrapper. •sparql-gremlin (sparql/distinct) - A SPARQL to Gremlin traversal compiler. •spring-data-gremlin (java/dsl) - Spring Data support for TinkerPop-enabled graph systems. •sql-gremlin (sql/distinct) - An SQL to Gremlin traversal compiler. Apache TinkerPop™ is a graph computing framework for both graph databases (OLTP) and graph analytic systems (OLAP). Graph Systems Query Languages
  12. 12. Azure Cosmos DB の概要 https://docs.microsoft.com/ja-jp/azure/cosmos-db/introduction Azure Cosmos DB の調整可能なデータの一貫性レベル https://docs.microsoft.com/ja-jp/azure/cosmos-db/consistency-levels Making A Simple Recommender System - Azure Cosmos DB And Apache Tinkerpop https://www.c-sharpcorner.com/article/making-a-simple-recommender-system-azure-cosmos-db- and-apache-tinkerpop/ Graphs with Azure Cosmos DB Gremlin API https://channel9.msdn.com/Shows/Azure-Friday/Graphs-with-Azure-Cosmos-DB-Gremlin-API .NET を使用して Azure Table Storage と Azure Cosmos DB Table API を使用する https://docs.microsoft.com/ja-jp/azure/cosmos-db/table-storage-how-to-use-dotnet Azure Cosmos DB: Gremlin API を使用して .NET Framework アプリケーションまたは .NET Core アプリ ケーションを構築する https://docs.microsoft.com/ja-jp/azure/cosmos-db/create-graph-dotnet Apache TinkerPop™ The Gremlin Graph Traversal Machine and Language https://tinkerpop.apache.org/gremlin.html

×