SlideShare une entreprise Scribd logo
1  sur  16
システム構築のプロセス評価、改善、策定、開発フレームワークの設計、
実装管理、プリセールスやプロジェクトの立ち上げなど
ブログ :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]
マルチモデル + マルチ APIなのか?
システムの変遷
N層システム
• DBを正規化しデータ層のパ
フォーマンスを最大化するこ
とでシステム全体のスペック
を向上
• ORマップによって業務に近い
データセットを作成
• エンティティの一括シリアラ
イズ、モデルのリゾルバ等を
駆使しファットコントロー
ラーにならないよう分離設計
マッシュアップ
• Web API同士が連携してソ
リューションを構成すること
で、ひとつのシステムの責務
を縮小させRDBにおける複雑
なテーブル間のリレーショナ
ルを排除
• RESTfulなAPIにより、業務のス
テートを永続化層とUI間で転
送
• ユーザー操作に対する応答を
分割することでUIの処理を軽
量化
サーバーレス・コンピューティン
グ
• 永続化層から業務を徹底排除
したKVS(Key Value Store)の
実装である各種分散DB
(Hadoop等)
• 並列でリアルタイムなクエリ
によるバッチ分析等によりOR
マップの必要性を低減
• クエリAPIに依存しないことで
マイクロサービスの実装を容
易にする
永続化層に業務が入り込む APIの調整コスト大、変更に弱い APIの調整コスト無し、柔軟性大
分散アーキテクチャではデータの持ち方を変える必要がある
UI
API A
スキーマ
データストア A
API B
スキーマ
データストア A
UI
API
スキーマ
データストア A
API
スキーマ
データストア B
分散アーキテクチャ分散アーキテクチャではない場合
ステートフルミドルウェア
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/
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
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-
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
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)
•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
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

Contenu connexe

Tendances

Prestoで実現するインタラクティブクエリ - dbtech showcase 2014 Tokyo
Prestoで実現するインタラクティブクエリ - dbtech showcase 2014 TokyoPrestoで実現するインタラクティブクエリ - dbtech showcase 2014 Tokyo
Prestoで実現するインタラクティブクエリ - dbtech showcase 2014 TokyoTreasure Data, Inc.
 
Logをs3とredshiftに格納する仕組み
Logをs3とredshiftに格納する仕組みLogをs3とredshiftに格納する仕組み
Logをs3とredshiftに格納する仕組みKen Morishita
 
Kafkaを使った マイクロサービス基盤 part2 +運用して起きたトラブル集
Kafkaを使った マイクロサービス基盤 part2 +運用して起きたトラブル集Kafkaを使った マイクロサービス基盤 part2 +運用して起きたトラブル集
Kafkaを使った マイクロサービス基盤 part2 +運用して起きたトラブル集matsu_chara
 
最近のストリーム処理事情振り返り
最近のストリーム処理事情振り返り最近のストリーム処理事情振り返り
最近のストリーム処理事情振り返りSotaro Kimura
 
2015 03-12 道玄坂LT祭り第2回 Spark DataFrame Introduction
2015 03-12 道玄坂LT祭り第2回 Spark DataFrame Introduction2015 03-12 道玄坂LT祭り第2回 Spark DataFrame Introduction
2015 03-12 道玄坂LT祭り第2回 Spark DataFrame IntroductionYu Ishikawa
 
Kafkaを活用するためのストリーム処理の基本
Kafkaを活用するためのストリーム処理の基本Kafkaを活用するためのストリーム処理の基本
Kafkaを活用するためのストリーム処理の基本Sotaro Kimura
 
Elasticsearch 2014/04/21 勉強会資料 「Couchbase と Elasticsearch が手を結んだら」
Elasticsearch 2014/04/21 勉強会資料 「Couchbase と Elasticsearch が手を結んだら」Elasticsearch 2014/04/21 勉強会資料 「Couchbase と Elasticsearch が手を結んだら」
Elasticsearch 2014/04/21 勉強会資料 「Couchbase と Elasticsearch が手を結んだら」Masahiro Satake
 
利用者主体で行う分析のための分析基盤
利用者主体で行う分析のための分析基盤利用者主体で行う分析のための分析基盤
利用者主体で行う分析のための分析基盤Sotaro Kimura
 
Apache Arrow - A cross-language development platform for in-memory data
Apache Arrow - A cross-language development platform for in-memory dataApache Arrow - A cross-language development platform for in-memory data
Apache Arrow - A cross-language development platform for in-memory dataKouhei Sutou
 
Amazon Redshiftの開発者がこれだけは知っておきたい10のTIPS / 第18回 AWS User Group - Japan
Amazon Redshiftの開発者がこれだけは知っておきたい10のTIPS / 第18回 AWS User Group - Japan Amazon Redshiftの開発者がこれだけは知っておきたい10のTIPS / 第18回 AWS User Group - Japan
Amazon Redshiftの開発者がこれだけは知っておきたい10のTIPS / 第18回 AWS User Group - Japan Koichi Fujikawa
 
FluentdとRedshiftの素敵な関係
FluentdとRedshiftの素敵な関係FluentdとRedshiftの素敵な関係
FluentdとRedshiftの素敵な関係moai kids
 
性能測定道 事始め編
性能測定道 事始め編性能測定道 事始め編
性能測定道 事始め編Yuto Hayamizu
 
db tech showcase_2014_A14_Actian Vectorで得られる、BIにおける真のパフォーマンスとは
db tech showcase_2014_A14_Actian Vectorで得られる、BIにおける真のパフォーマンスとはdb tech showcase_2014_A14_Actian Vectorで得られる、BIにおける真のパフォーマンスとは
db tech showcase_2014_A14_Actian Vectorで得られる、BIにおける真のパフォーマンスとはKoji Shinkubo
 
性能測定道 実践編
性能測定道 実践編性能測定道 実践編
性能測定道 実践編Yuto Hayamizu
 
Spark Structured StreamingでKafkaクラスタのデータをお手軽活用
Spark Structured StreamingでKafkaクラスタのデータをお手軽活用Spark Structured StreamingでKafkaクラスタのデータをお手軽活用
Spark Structured StreamingでKafkaクラスタのデータをお手軽活用Sotaro Kimura
 
2019.03.19 Deep Dive into Spark SQL with Advanced Performance Tuning
2019.03.19 Deep Dive into Spark SQL with Advanced Performance Tuning2019.03.19 Deep Dive into Spark SQL with Advanced Performance Tuning
2019.03.19 Deep Dive into Spark SQL with Advanced Performance TuningTakuya UESHIN
 

Tendances (20)

Prestoで実現するインタラクティブクエリ - dbtech showcase 2014 Tokyo
Prestoで実現するインタラクティブクエリ - dbtech showcase 2014 TokyoPrestoで実現するインタラクティブクエリ - dbtech showcase 2014 Tokyo
Prestoで実現するインタラクティブクエリ - dbtech showcase 2014 Tokyo
 
Logをs3とredshiftに格納する仕組み
Logをs3とredshiftに格納する仕組みLogをs3とredshiftに格納する仕組み
Logをs3とredshiftに格納する仕組み
 
Kafkaを使った マイクロサービス基盤 part2 +運用して起きたトラブル集
Kafkaを使った マイクロサービス基盤 part2 +運用して起きたトラブル集Kafkaを使った マイクロサービス基盤 part2 +運用して起きたトラブル集
Kafkaを使った マイクロサービス基盤 part2 +運用して起きたトラブル集
 
最近のストリーム処理事情振り返り
最近のストリーム処理事情振り返り最近のストリーム処理事情振り返り
最近のストリーム処理事情振り返り
 
噛み砕いてKafka Streams #kafkajp
噛み砕いてKafka Streams #kafkajp噛み砕いてKafka Streams #kafkajp
噛み砕いてKafka Streams #kafkajp
 
2015 03-12 道玄坂LT祭り第2回 Spark DataFrame Introduction
2015 03-12 道玄坂LT祭り第2回 Spark DataFrame Introduction2015 03-12 道玄坂LT祭り第2回 Spark DataFrame Introduction
2015 03-12 道玄坂LT祭り第2回 Spark DataFrame Introduction
 
Hiveを高速化するLLAP
Hiveを高速化するLLAPHiveを高速化するLLAP
Hiveを高速化するLLAP
 
20150513 legobease
20150513 legobease20150513 legobease
20150513 legobease
 
Kafkaを活用するためのストリーム処理の基本
Kafkaを活用するためのストリーム処理の基本Kafkaを活用するためのストリーム処理の基本
Kafkaを活用するためのストリーム処理の基本
 
Elasticsearch 2014/04/21 勉強会資料 「Couchbase と Elasticsearch が手を結んだら」
Elasticsearch 2014/04/21 勉強会資料 「Couchbase と Elasticsearch が手を結んだら」Elasticsearch 2014/04/21 勉強会資料 「Couchbase と Elasticsearch が手を結んだら」
Elasticsearch 2014/04/21 勉強会資料 「Couchbase と Elasticsearch が手を結んだら」
 
利用者主体で行う分析のための分析基盤
利用者主体で行う分析のための分析基盤利用者主体で行う分析のための分析基盤
利用者主体で行う分析のための分析基盤
 
Apache Arrow - A cross-language development platform for in-memory data
Apache Arrow - A cross-language development platform for in-memory dataApache Arrow - A cross-language development platform for in-memory data
Apache Arrow - A cross-language development platform for in-memory data
 
Amazon Redshiftの開発者がこれだけは知っておきたい10のTIPS / 第18回 AWS User Group - Japan
Amazon Redshiftの開発者がこれだけは知っておきたい10のTIPS / 第18回 AWS User Group - Japan Amazon Redshiftの開発者がこれだけは知っておきたい10のTIPS / 第18回 AWS User Group - Japan
Amazon Redshiftの開発者がこれだけは知っておきたい10のTIPS / 第18回 AWS User Group - Japan
 
FluentdとRedshiftの素敵な関係
FluentdとRedshiftの素敵な関係FluentdとRedshiftの素敵な関係
FluentdとRedshiftの素敵な関係
 
性能測定道 事始め編
性能測定道 事始め編性能測定道 事始め編
性能測定道 事始め編
 
db tech showcase_2014_A14_Actian Vectorで得られる、BIにおける真のパフォーマンスとは
db tech showcase_2014_A14_Actian Vectorで得られる、BIにおける真のパフォーマンスとはdb tech showcase_2014_A14_Actian Vectorで得られる、BIにおける真のパフォーマンスとは
db tech showcase_2014_A14_Actian Vectorで得られる、BIにおける真のパフォーマンスとは
 
Apache Hive 紹介
Apache Hive 紹介Apache Hive 紹介
Apache Hive 紹介
 
性能測定道 実践編
性能測定道 実践編性能測定道 実践編
性能測定道 実践編
 
Spark Structured StreamingでKafkaクラスタのデータをお手軽活用
Spark Structured StreamingでKafkaクラスタのデータをお手軽活用Spark Structured StreamingでKafkaクラスタのデータをお手軽活用
Spark Structured StreamingでKafkaクラスタのデータをお手軽活用
 
2019.03.19 Deep Dive into Spark SQL with Advanced Performance Tuning
2019.03.19 Deep Dive into Spark SQL with Advanced Performance Tuning2019.03.19 Deep Dive into Spark SQL with Advanced Performance Tuning
2019.03.19 Deep Dive into Spark SQL with Advanced Performance Tuning
 

Similaire à Data management of cosmos db using apache gremlin

Jjug springセッション
Jjug springセッションJjug springセッション
Jjug springセッションYuichi Hasegawa
 
Backlogでの Perlのつかいかた
Backlogでの PerlのつかいかたBacklogでの Perlのつかいかた
Backlogでの PerlのつかいかたRyuzo Yamamoto
 
Scalaプログラミング・マニアックス
Scalaプログラミング・マニアックスScalaプログラミング・マニアックス
Scalaプログラミング・マニアックスTomoharu ASAMI
 
ゲームのインフラをAwsで実戦tips全て見せます
ゲームのインフラをAwsで実戦tips全て見せますゲームのインフラをAwsで実戦tips全て見せます
ゲームのインフラをAwsで実戦tips全て見せますinfinite_loop
 
LINEのMySQL運用について
LINEのMySQL運用についてLINEのMySQL運用について
LINEのMySQL運用についてLINE Corporation
 
クラウド運用のためのストリームマイニング
クラウド運用のためのストリームマイニングクラウド運用のためのストリームマイニング
クラウド運用のためのストリームマイニングShin Matsumoto
 
AWS Black Belt Techシリーズ AWS Data Pipeline
AWS Black Belt Techシリーズ  AWS Data PipelineAWS Black Belt Techシリーズ  AWS Data Pipeline
AWS Black Belt Techシリーズ AWS Data PipelineAmazon Web Services Japan
 
Developers.IO 2019 Effective Datalake
Developers.IO 2019 Effective DatalakeDevelopers.IO 2019 Effective Datalake
Developers.IO 2019 Effective DatalakeSatoru Ishikawa
 
Scalaの現状と課題
Scalaの現状と課題Scalaの現状と課題
Scalaの現状と課題Kota Mizushima
 
Object-Funcational Analysis and design
Object-Funcational Analysis and designObject-Funcational Analysis and design
Object-Funcational Analysis and designTomoharu ASAMI
 
Re invent 2017 データベースサービス総復習!
Re invent 2017 データベースサービス総復習!Re invent 2017 データベースサービス総復習!
Re invent 2017 データベースサービス総復習!Satoru Ishikawa
 
EclipseCon NA 2015 report
EclipseCon NA 2015 reportEclipseCon NA 2015 report
EclipseCon NA 2015 reportAkira Tanaka
 
Accelerating AdTech on AWS #AWSAdTechJP
Accelerating AdTech on AWS #AWSAdTechJPAccelerating AdTech on AWS #AWSAdTechJP
Accelerating AdTech on AWS #AWSAdTechJPEiji Shinohara
 
Object-Functional Analysis and Design : 次世代モデリングパラダイムへの道標
Object-Functional Analysis and Design : 次世代モデリングパラダイムへの道標Object-Functional Analysis and Design : 次世代モデリングパラダイムへの道標
Object-Functional Analysis and Design : 次世代モデリングパラダイムへの道標Tomoharu ASAMI
 
OSSとクラウドによるコンピューティングモデルの変化
OSSとクラウドによるコンピューティングモデルの変化OSSとクラウドによるコンピューティングモデルの変化
OSSとクラウドによるコンピューティングモデルの変化Nobuyori Takahashi
 
AWS Black Belt Online Seminar 2017 Amazon Athena
AWS Black Belt Online Seminar 2017 Amazon AthenaAWS Black Belt Online Seminar 2017 Amazon Athena
AWS Black Belt Online Seminar 2017 Amazon AthenaAmazon Web Services Japan
 
Evolution of Impala #hcj2014
Evolution of Impala #hcj2014Evolution of Impala #hcj2014
Evolution of Impala #hcj2014Cloudera Japan
 
Data Scientist Workbench - dots0729
Data Scientist Workbench - dots0729Data Scientist Workbench - dots0729
Data Scientist Workbench - dots0729s. kaijima
 

Similaire à Data management of cosmos db using apache gremlin (20)

Jjug springセッション
Jjug springセッションJjug springセッション
Jjug springセッション
 
Backlogでの Perlのつかいかた
Backlogでの PerlのつかいかたBacklogでの Perlのつかいかた
Backlogでの Perlのつかいかた
 
Scalaプログラミング・マニアックス
Scalaプログラミング・マニアックスScalaプログラミング・マニアックス
Scalaプログラミング・マニアックス
 
ゲームのインフラをAwsで実戦tips全て見せます
ゲームのインフラをAwsで実戦tips全て見せますゲームのインフラをAwsで実戦tips全て見せます
ゲームのインフラをAwsで実戦tips全て見せます
 
AWS re:Invent2017で見た AWSの強さとは
AWS re:Invent2017で見た AWSの強さとは AWS re:Invent2017で見た AWSの強さとは
AWS re:Invent2017で見た AWSの強さとは
 
LINEのMySQL運用について
LINEのMySQL運用についてLINEのMySQL運用について
LINEのMySQL運用について
 
クラウド運用のためのストリームマイニング
クラウド運用のためのストリームマイニングクラウド運用のためのストリームマイニング
クラウド運用のためのストリームマイニング
 
AWS Black Belt Techシリーズ AWS Data Pipeline
AWS Black Belt Techシリーズ  AWS Data PipelineAWS Black Belt Techシリーズ  AWS Data Pipeline
AWS Black Belt Techシリーズ AWS Data Pipeline
 
Developers.IO 2019 Effective Datalake
Developers.IO 2019 Effective DatalakeDevelopers.IO 2019 Effective Datalake
Developers.IO 2019 Effective Datalake
 
Scalaの現状と課題
Scalaの現状と課題Scalaの現状と課題
Scalaの現状と課題
 
Object-Funcational Analysis and design
Object-Funcational Analysis and designObject-Funcational Analysis and design
Object-Funcational Analysis and design
 
Re invent 2017 データベースサービス総復習!
Re invent 2017 データベースサービス総復習!Re invent 2017 データベースサービス総復習!
Re invent 2017 データベースサービス総復習!
 
EclipseCon NA 2015 report
EclipseCon NA 2015 reportEclipseCon NA 2015 report
EclipseCon NA 2015 report
 
Accelerating AdTech on AWS #AWSAdTechJP
Accelerating AdTech on AWS #AWSAdTechJPAccelerating AdTech on AWS #AWSAdTechJP
Accelerating AdTech on AWS #AWSAdTechJP
 
Object-Functional Analysis and Design : 次世代モデリングパラダイムへの道標
Object-Functional Analysis and Design : 次世代モデリングパラダイムへの道標Object-Functional Analysis and Design : 次世代モデリングパラダイムへの道標
Object-Functional Analysis and Design : 次世代モデリングパラダイムへの道標
 
OSSとクラウドによるコンピューティングモデルの変化
OSSとクラウドによるコンピューティングモデルの変化OSSとクラウドによるコンピューティングモデルの変化
OSSとクラウドによるコンピューティングモデルの変化
 
AWS Black Belt Online Seminar 2017 Amazon Athena
AWS Black Belt Online Seminar 2017 Amazon AthenaAWS Black Belt Online Seminar 2017 Amazon Athena
AWS Black Belt Online Seminar 2017 Amazon Athena
 
Serverless analytics on aws
Serverless analytics on awsServerless analytics on aws
Serverless analytics on aws
 
Evolution of Impala #hcj2014
Evolution of Impala #hcj2014Evolution of Impala #hcj2014
Evolution of Impala #hcj2014
 
Data Scientist Workbench - dots0729
Data Scientist Workbench - dots0729Data Scientist Workbench - dots0729
Data Scientist Workbench - dots0729
 

Plus de Takao Tetsuro

Small Language Model Local Launch on AI Tour Tokyo
Small Language Model Local Launch on AI Tour TokyoSmall Language Model Local Launch on AI Tour Tokyo
Small Language Model Local Launch on AI Tour TokyoTakao Tetsuro
 
local launch small language model of AI.
local launch small language model of AI.local launch small language model of AI.
local launch small language model of AI.Takao Tetsuro
 
Implementation Approach of Artifical Intelligence
Implementation Approach of Artifical IntelligenceImplementation Approach of Artifical Intelligence
Implementation Approach of Artifical IntelligenceTakao Tetsuro
 
MAUIGraphicsNamespace.pptx
MAUIGraphicsNamespace.pptxMAUIGraphicsNamespace.pptx
MAUIGraphicsNamespace.pptxTakao Tetsuro
 
Polyglot Persistence and Graph Schema
Polyglot Persistence and Graph SchemaPolyglot Persistence and Graph Schema
Polyglot Persistence and Graph SchemaTakao Tetsuro
 
ServiceMeshEndpointWithMinimalAPIPublish.pptx
ServiceMeshEndpointWithMinimalAPIPublish.pptxServiceMeshEndpointWithMinimalAPIPublish.pptx
ServiceMeshEndpointWithMinimalAPIPublish.pptxTakao Tetsuro
 
OptonsPatternDotNet.pptx
OptonsPatternDotNet.pptxOptonsPatternDotNet.pptx
OptonsPatternDotNet.pptxTakao Tetsuro
 
ASP.NETCoreOptionsPattern.pptx
ASP.NETCoreOptionsPattern.pptxASP.NETCoreOptionsPattern.pptx
ASP.NETCoreOptionsPattern.pptxTakao Tetsuro
 
Layout isfirstprocessofatomicdesign
Layout isfirstprocessofatomicdesignLayout isfirstprocessofatomicdesign
Layout isfirstprocessofatomicdesignTakao Tetsuro
 
Wasm blazor and wasi 2
Wasm blazor and wasi 2Wasm blazor and wasi 2
Wasm blazor and wasi 2Takao Tetsuro
 
WebAssemblyとBlazor 、WebAssembly System Interfaceでコンテナライズの設計を解説
WebAssemblyとBlazor 、WebAssembly System Interfaceでコンテナライズの設計を解説WebAssemblyとBlazor 、WebAssembly System Interfaceでコンテナライズの設計を解説
WebAssemblyとBlazor 、WebAssembly System Interfaceでコンテナライズの設計を解説Takao Tetsuro
 
Interoperability of webassembly with javascript
Interoperability of webassembly with javascriptInteroperability of webassembly with javascript
Interoperability of webassembly with javascriptTakao Tetsuro
 
Interactive connection2
Interactive connection2Interactive connection2
Interactive connection2Takao Tetsuro
 
Relationship betweenddd and mvc
Relationship betweenddd and mvcRelationship betweenddd and mvc
Relationship betweenddd and mvcTakao Tetsuro
 
M365VM_PowerFX_takao-matsumoto_matsui_kojima
M365VM_PowerFX_takao-matsumoto_matsui_kojimaM365VM_PowerFX_takao-matsumoto_matsui_kojima
M365VM_PowerFX_takao-matsumoto_matsui_kojimaTakao Tetsuro
 
OpenStreetMap and Mapbox
OpenStreetMap and MapboxOpenStreetMap and Mapbox
OpenStreetMap and MapboxTakao Tetsuro
 
Excel on OneDrive is not a file
Excel on OneDrive is not a fileExcel on OneDrive is not a file
Excel on OneDrive is not a fileTakao Tetsuro
 
Development toolsforteamdevelopment
Development toolsforteamdevelopmentDevelopment toolsforteamdevelopment
Development toolsforteamdevelopmentTakao Tetsuro
 

Plus de Takao Tetsuro (20)

Small Language Model Local Launch on AI Tour Tokyo
Small Language Model Local Launch on AI Tour TokyoSmall Language Model Local Launch on AI Tour Tokyo
Small Language Model Local Launch on AI Tour Tokyo
 
local launch small language model of AI.
local launch small language model of AI.local launch small language model of AI.
local launch small language model of AI.
 
Implementation Approach of Artifical Intelligence
Implementation Approach of Artifical IntelligenceImplementation Approach of Artifical Intelligence
Implementation Approach of Artifical Intelligence
 
MAUIGraphicsNamespace.pptx
MAUIGraphicsNamespace.pptxMAUIGraphicsNamespace.pptx
MAUIGraphicsNamespace.pptx
 
Polyglot Persistence and Graph Schema
Polyglot Persistence and Graph SchemaPolyglot Persistence and Graph Schema
Polyglot Persistence and Graph Schema
 
ServiceMeshEndpointWithMinimalAPIPublish.pptx
ServiceMeshEndpointWithMinimalAPIPublish.pptxServiceMeshEndpointWithMinimalAPIPublish.pptx
ServiceMeshEndpointWithMinimalAPIPublish.pptx
 
OptonsPatternDotNet.pptx
OptonsPatternDotNet.pptxOptonsPatternDotNet.pptx
OptonsPatternDotNet.pptx
 
ASP.NETCoreOptionsPattern.pptx
ASP.NETCoreOptionsPattern.pptxASP.NETCoreOptionsPattern.pptx
ASP.NETCoreOptionsPattern.pptx
 
gRPCurlDotNet.pptx
gRPCurlDotNet.pptxgRPCurlDotNet.pptx
gRPCurlDotNet.pptx
 
Layout isfirstprocessofatomicdesign
Layout isfirstprocessofatomicdesignLayout isfirstprocessofatomicdesign
Layout isfirstprocessofatomicdesign
 
Wasm blazor and wasi 2
Wasm blazor and wasi 2Wasm blazor and wasi 2
Wasm blazor and wasi 2
 
WebAssemblyとBlazor 、WebAssembly System Interfaceでコンテナライズの設計を解説
WebAssemblyとBlazor 、WebAssembly System Interfaceでコンテナライズの設計を解説WebAssemblyとBlazor 、WebAssembly System Interfaceでコンテナライズの設計を解説
WebAssemblyとBlazor 、WebAssembly System Interfaceでコンテナライズの設計を解説
 
Team development
Team developmentTeam development
Team development
 
Interoperability of webassembly with javascript
Interoperability of webassembly with javascriptInteroperability of webassembly with javascript
Interoperability of webassembly with javascript
 
Interactive connection2
Interactive connection2Interactive connection2
Interactive connection2
 
Relationship betweenddd and mvc
Relationship betweenddd and mvcRelationship betweenddd and mvc
Relationship betweenddd and mvc
 
M365VM_PowerFX_takao-matsumoto_matsui_kojima
M365VM_PowerFX_takao-matsumoto_matsui_kojimaM365VM_PowerFX_takao-matsumoto_matsui_kojima
M365VM_PowerFX_takao-matsumoto_matsui_kojima
 
OpenStreetMap and Mapbox
OpenStreetMap and MapboxOpenStreetMap and Mapbox
OpenStreetMap and Mapbox
 
Excel on OneDrive is not a file
Excel on OneDrive is not a fileExcel on OneDrive is not a file
Excel on OneDrive is not a file
 
Development toolsforteamdevelopment
Development toolsforteamdevelopmentDevelopment toolsforteamdevelopment
Development toolsforteamdevelopment
 

Dernier

デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)UEHARA, Tetsutaro
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineerYuki Kikuchi
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?akihisamiyanaga1
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)Hiroshi Tomioka
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfFumieNakayama
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfFumieNakayama
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...博三 太田
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NTT DATA Technology & Innovation
 

Dernier (8)

デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 

Data management of cosmos db using apache gremlin

Notes de l'éditeur

  1. Cosmos DBはグローバル分散に最適化されたデータベースなので、本日のお話はCosmos DBの使い方の中でもニッチな解説なのかもしれません。ただし、Cosmos DBの特長のひとつであるマルチモデル + マルチ APIという特長が最も伝わり安いセッションだと思います。この特長は調達仕様の策定から要件定義、設計および実装や運用に至るまで非常にインパクトの強い特長で、開発者のスキルが顕在化しやすい部分でもあります。 グローバル分散に関しては、一貫性のバリエーションについて学習されると調達時の役に立つと思います。本セッションでも軽くふれますが、本資料の巻末にリンク集を付けてありますのでそちらを参照ください。 本日はマルチモデル + マルチ APIのお話、そしてその中でもGraphデータモデルのお話になります。
  2. 自己紹介です。
  3. Cosmos DBのようなグローバル分散の永続化層が出てきた背景は、システムの変遷をみると理解できるかもしれません。N層システムからマッシュアップ、サーバーレスコンピューティングという流れの観点でお話しすると、それぞれの永続化層、ミドルウェア、UIについてスライドのようなことが言えます。 【スライドを読む】 【クリック】N層システムでは… 【クリック】マッシュアップでは… 【クリック】サーバーレスコンピューティングでは…
  4. 【クリック】分散アーキテクチャとそうでない場合を説明するためにリポジトリをデータストアとスキーマに分けてお話しします。 【クリック】分散アーキテクチャではない場合、データストアは物理的に同じ場所にあるのでAPIを取り換えることでUIからの様々なクエリに対応することができます。 【クリック】N層の場合はそのようなことを考える必要はありませんが、マッシュアップの場合は各種インターフェイスを用意する必要があるかもしれません。 【クリック】この場合はスキーマにも影響が出る場合がありますがデータストアには影響がありません。 【クリック】分散アーキテクチャの場合はデータストアが物理的に異なりますからスキーマやAPIを通して同期させる必要があります。 【クリック】さらにマイクロサービスの場合はUIとAPIの間にステートフルミドルウェアを形成する方法が採られます。また、別の会社、別の国にまたがったソリューションの場合、APIは複数の種類のクエリに対応する必要があるケースや様々なデータモデルを扱う必要があるケースも考えられます。
  5. 結果的に、マイクロサービスや分散コンピューティングでサーバーレスコンピューティングをインプリメンテーションする場合、マルチモデル + マルチAPIでリスクを軽減させる方法は有用と考えます。 マルチモデル + マルチAPIを簡単に説明するとCosmos DBコンテナーと呼ばれるデータストアーで図のようなことが行われています。 【クリック】プリミティブ型のデータシーケンスをCosmos DBコンテナーが各スキーマを使って各モデルに射影します。 【クリック】各モデルをもう少し詳しくお話しします。一番下のAzure table storageを扱うTable APIと紛らわしいのですが、HadoopをHbaseで扱う際の列ファミリによるテーブルモデルをイメージしてください。 Azure table storageは、シンプルなキーバリュークエリに対応します。 次の、グラフモデルと言っているのはNode and Edge型のスキーマを指します。 また、ドキュメントモデルはMongoDB APIのほかにもDocumentDB SQL APIを使って扱えるドキュメント型のコレクションを指します。 Cassandraは、列ファミリで形成されたテーブルモデル以外にもKVSが表現できるモデルを扱えますが、グラフとの違いは必ずワンホップでデータにたどり着くという部分です。 たとえば、ある人の友人はワンホップで到達しますが、ある人の友人の友人とか、ある人が購入した音楽のアーティスト名といったクエリが必要な場合はグラフを使用します。 このようにARSを採用しデータの一貫性を保ちながらマルチモデル + マルチAPIに対応しているため、サーバーレスコンピューティングの効果を最大限に引き出せるようになっています。 Cosmos DBコンテナーは5つの一貫性レベルを持っています。この一貫性については分散アーキテクチャとしてAzure Functionsと同じくAzure Service Fabricを基盤としています。
  6. distributed graph database for real-time queries and, in parallel, a Big(Graph)Data processor for batch analytics
  7. vertices and edgesとかnodes and edgesとか言われている Apache2 license.
  8. Atomic entity and storable for complex relations 複雑な推論が可能、頂点のカテゴライズとランキング、サブグラフの識別 柔軟で直観的なデータ構造
  9. http://tinkerpop.apache.org/