Enviar pesquisa
Carregar
20140418 info talkセミナー資料
•
2 gostaram
•
15,322 visualizações
Takahiro Iwase
Seguir
Denunciar
Compartilhar
Denunciar
Compartilhar
1 de 80
Baixar agora
Baixar para ler offline
Recomendados
NOSQLの基礎知識(講義資料)
NOSQLの基礎知識(講義資料)
CLOUDIAN KK
qpstudy 2013.07 NoSQL
qpstudy 2013.07 NoSQL
Akihiro Okuno
RDB技術者のためのNoSQLガイド NoSQLの必要性と位置づけ
RDB技術者のためのNoSQLガイド NoSQLの必要性と位置づけ
Recruit Technologies
NoSQLデータベースと位置情報
NoSQLデータベースと位置情報
Koji Ichiwaki
About NoSQL
About NoSQL
hideaki honda
Nosqlの基礎知識(2013年7月講義資料)
Nosqlの基礎知識(2013年7月講義資料)
CLOUDIAN KK
PHP開発者のためのNoSQL入門
PHP開発者のためのNoSQL入門
じゅん なかざ
RDBNoSQLの基礎と組み合わせDB構成をちょっとよくする話
RDBNoSQLの基礎と組み合わせDB構成をちょっとよくする話
Shohei Kobayashi
Recomendados
NOSQLの基礎知識(講義資料)
NOSQLの基礎知識(講義資料)
CLOUDIAN KK
qpstudy 2013.07 NoSQL
qpstudy 2013.07 NoSQL
Akihiro Okuno
RDB技術者のためのNoSQLガイド NoSQLの必要性と位置づけ
RDB技術者のためのNoSQLガイド NoSQLの必要性と位置づけ
Recruit Technologies
NoSQLデータベースと位置情報
NoSQLデータベースと位置情報
Koji Ichiwaki
About NoSQL
About NoSQL
hideaki honda
Nosqlの基礎知識(2013年7月講義資料)
Nosqlの基礎知識(2013年7月講義資料)
CLOUDIAN KK
PHP開発者のためのNoSQL入門
PHP開発者のためのNoSQL入門
じゅん なかざ
RDBNoSQLの基礎と組み合わせDB構成をちょっとよくする話
RDBNoSQLの基礎と組み合わせDB構成をちょっとよくする話
Shohei Kobayashi
MongoDBご紹介:事例紹介もあり
MongoDBご紹介:事例紹介もあり
ippei_suzuki
Devsumi2013【15-e-5】NoSQLの野心的な使い方 ~Apache Cassandra編~
Devsumi2013【15-e-5】NoSQLの野心的な使い方 ~Apache Cassandra編~
kishimotosc
NoSQLに関するまとめ
NoSQLに関するまとめ
Gosuke Miyashita
MongoDB概要:金融業界でのMongoDB
MongoDB概要:金融業界でのMongoDB
ippei_suzuki
ARC-009_RDB 技術者のための NoSQL ガイド
ARC-009_RDB 技術者のための NoSQL ガイド
decode2016
Amazon DynamoDBの紹介と東急ハンズでの活用について
Amazon DynamoDBの紹介と東急ハンズでの活用について
Taiji INOUE
Db tech showcase2015 how to replicate between clusters
Db tech showcase2015 how to replicate between clusters
Hiroaki Kubota
[db tech showcase Tokyo 2014] L32: Apache Cassandraに注目!!(IoT, Bigdata、NoSQLのバ...
[db tech showcase Tokyo 2014] L32: Apache Cassandraに注目!!(IoT, Bigdata、NoSQLのバ...
Insight Technology, Inc.
日本語:Mongo dbに於けるシャーディングについて
日本語:Mongo dbに於けるシャーディングについて
ippei_suzuki
Pysparkで始めるデータ分析
Pysparkで始めるデータ分析
Tanaka Yuichi
Cassandraとh baseの比較して入門するno sql
Cassandraとh baseの比較して入門するno sql
Yutuki r
ハンズのDynamoDBクラウドパターン
ハンズのDynamoDBクラウドパターン
Naoyuki Yamazaki
Oss x user_meeting_6_postgres
Oss x user_meeting_6_postgres
Kosuke Kida
Cassandraのトランザクションサポート化 & web2pyによるcms用プラグイン開発
Cassandraのトランザクションサポート化 & web2pyによるcms用プラグイン開発
kishimotosc
SparkとCassandraの美味しい関係
SparkとCassandraの美味しい関係
datastaxjp
Cassandra(no sql)によるシステム提案と開発
Cassandra(no sql)によるシステム提案と開発
kishimotosc
[db tech showcase Tokyo 2015] A33:Amazon DynamoDB Deep Dive by アマゾン データ サービス ...
[db tech showcase Tokyo 2015] A33:Amazon DynamoDB Deep Dive by アマゾン データ サービス ...
Insight Technology, Inc.
Oratopostgres-hiroshima
Oratopostgres-hiroshima
Kosuke Kida
DynamoDBを導入した話
DynamoDBを導入した話
dcubeio
Cassandra v0.6-siryou
Cassandra v0.6-siryou
あしたのオープンソース研究所
20131113_mysql_on_分散fsセミナー資料
20131113_mysql_on_分散fsセミナー資料
Takahiro Iwase
OSSとクラウドによるコンピューティングモデルの変化
OSSとクラウドによるコンピューティングモデルの変化
Nobuyori Takahashi
Mais conteúdo relacionado
Mais procurados
MongoDBご紹介:事例紹介もあり
MongoDBご紹介:事例紹介もあり
ippei_suzuki
Devsumi2013【15-e-5】NoSQLの野心的な使い方 ~Apache Cassandra編~
Devsumi2013【15-e-5】NoSQLの野心的な使い方 ~Apache Cassandra編~
kishimotosc
NoSQLに関するまとめ
NoSQLに関するまとめ
Gosuke Miyashita
MongoDB概要:金融業界でのMongoDB
MongoDB概要:金融業界でのMongoDB
ippei_suzuki
ARC-009_RDB 技術者のための NoSQL ガイド
ARC-009_RDB 技術者のための NoSQL ガイド
decode2016
Amazon DynamoDBの紹介と東急ハンズでの活用について
Amazon DynamoDBの紹介と東急ハンズでの活用について
Taiji INOUE
Db tech showcase2015 how to replicate between clusters
Db tech showcase2015 how to replicate between clusters
Hiroaki Kubota
[db tech showcase Tokyo 2014] L32: Apache Cassandraに注目!!(IoT, Bigdata、NoSQLのバ...
[db tech showcase Tokyo 2014] L32: Apache Cassandraに注目!!(IoT, Bigdata、NoSQLのバ...
Insight Technology, Inc.
日本語:Mongo dbに於けるシャーディングについて
日本語:Mongo dbに於けるシャーディングについて
ippei_suzuki
Pysparkで始めるデータ分析
Pysparkで始めるデータ分析
Tanaka Yuichi
Cassandraとh baseの比較して入門するno sql
Cassandraとh baseの比較して入門するno sql
Yutuki r
ハンズのDynamoDBクラウドパターン
ハンズのDynamoDBクラウドパターン
Naoyuki Yamazaki
Oss x user_meeting_6_postgres
Oss x user_meeting_6_postgres
Kosuke Kida
Cassandraのトランザクションサポート化 & web2pyによるcms用プラグイン開発
Cassandraのトランザクションサポート化 & web2pyによるcms用プラグイン開発
kishimotosc
SparkとCassandraの美味しい関係
SparkとCassandraの美味しい関係
datastaxjp
Cassandra(no sql)によるシステム提案と開発
Cassandra(no sql)によるシステム提案と開発
kishimotosc
[db tech showcase Tokyo 2015] A33:Amazon DynamoDB Deep Dive by アマゾン データ サービス ...
[db tech showcase Tokyo 2015] A33:Amazon DynamoDB Deep Dive by アマゾン データ サービス ...
Insight Technology, Inc.
Oratopostgres-hiroshima
Oratopostgres-hiroshima
Kosuke Kida
DynamoDBを導入した話
DynamoDBを導入した話
dcubeio
Cassandra v0.6-siryou
Cassandra v0.6-siryou
あしたのオープンソース研究所
Mais procurados
(20)
MongoDBご紹介:事例紹介もあり
MongoDBご紹介:事例紹介もあり
Devsumi2013【15-e-5】NoSQLの野心的な使い方 ~Apache Cassandra編~
Devsumi2013【15-e-5】NoSQLの野心的な使い方 ~Apache Cassandra編~
NoSQLに関するまとめ
NoSQLに関するまとめ
MongoDB概要:金融業界でのMongoDB
MongoDB概要:金融業界でのMongoDB
ARC-009_RDB 技術者のための NoSQL ガイド
ARC-009_RDB 技術者のための NoSQL ガイド
Amazon DynamoDBの紹介と東急ハンズでの活用について
Amazon DynamoDBの紹介と東急ハンズでの活用について
Db tech showcase2015 how to replicate between clusters
Db tech showcase2015 how to replicate between clusters
[db tech showcase Tokyo 2014] L32: Apache Cassandraに注目!!(IoT, Bigdata、NoSQLのバ...
[db tech showcase Tokyo 2014] L32: Apache Cassandraに注目!!(IoT, Bigdata、NoSQLのバ...
日本語:Mongo dbに於けるシャーディングについて
日本語:Mongo dbに於けるシャーディングについて
Pysparkで始めるデータ分析
Pysparkで始めるデータ分析
Cassandraとh baseの比較して入門するno sql
Cassandraとh baseの比較して入門するno sql
ハンズのDynamoDBクラウドパターン
ハンズのDynamoDBクラウドパターン
Oss x user_meeting_6_postgres
Oss x user_meeting_6_postgres
Cassandraのトランザクションサポート化 & web2pyによるcms用プラグイン開発
Cassandraのトランザクションサポート化 & web2pyによるcms用プラグイン開発
SparkとCassandraの美味しい関係
SparkとCassandraの美味しい関係
Cassandra(no sql)によるシステム提案と開発
Cassandra(no sql)によるシステム提案と開発
[db tech showcase Tokyo 2015] A33:Amazon DynamoDB Deep Dive by アマゾン データ サービス ...
[db tech showcase Tokyo 2015] A33:Amazon DynamoDB Deep Dive by アマゾン データ サービス ...
Oratopostgres-hiroshima
Oratopostgres-hiroshima
DynamoDBを導入した話
DynamoDBを導入した話
Cassandra v0.6-siryou
Cassandra v0.6-siryou
Semelhante a 20140418 info talkセミナー資料
20131113_mysql_on_分散fsセミナー資料
20131113_mysql_on_分散fsセミナー資料
Takahiro Iwase
OSSとクラウドによるコンピューティングモデルの変化
OSSとクラウドによるコンピューティングモデルの変化
Nobuyori Takahashi
20110305_Code4Lib2011参加報告会:田辺浩介参加報告
20110305_Code4Lib2011参加報告会:田辺浩介参加報告
Code4Lib JAPAN
Mongo db勉強会
Mongo db勉強会
otmb
学外から電子ジャーナル?!(データベースも)
学外から電子ジャーナル?!(データベースも)
Yuji Nonaka
[db tech showcase Tokyo 2018] #dbts2018 #D1L 『"何が必要?どう実現?"~異種DB間データリアルタイム連携』
[db tech showcase Tokyo 2018] #dbts2018 #D1L 『"何が必要?どう実現?"~異種DB間データリアルタイム連携』
Insight Technology, Inc.
20160416 Azure Data Lakeのはまりどころ
20160416 Azure Data Lakeのはまりどころ
一希 大田
実務で役立つデータベースの活用法
実務で役立つデータベースの活用法
Soudai Sone
uroboroSQLの紹介 (OSC2017 Tokyo/Spring)
uroboroSQLの紹介 (OSC2017 Tokyo/Spring)
Kenichi Hoshi
Database on Kubernetes - HA,Replication and more -
Database on Kubernetes - HA,Replication and more -
t8kobayashi
データベース技術の羅針盤
データベース技術の羅針盤
Yoshinori Matsunobu
20121103 #odstudy できる! VBAマクロ
20121103 #odstudy できる! VBAマクロ
Hiyou Shinnonome
DB思い出話いろいろ(仮)
DB思い出話いろいろ(仮)
Takahiro Kitayama
経済学のための実践的データ分析 4.SQL ことはじめ
経済学のための実践的データ分析 4.SQL ことはじめ
Yasushi Hara
実はとても面白い...Documentation library
実はとても面白い...Documentation library
Kouta Shiobara
モバイルアプリ開発者にも知ってほしい Microsoft AzureのDatabase as a Service
モバイルアプリ開発者にも知ってほしい Microsoft AzureのDatabase as a Service
Yuta Matsumura
[db tech showcase Tokyo 2018] #dbts2018 #D24 『異種データベース間データ連携ウラ話 ~ 新しいデータベースを試...
[db tech showcase Tokyo 2018] #dbts2018 #D24 『異種データベース間データ連携ウラ話 ~ 新しいデータベースを試...
Insight Technology, Inc.
PHP+MySQLを使ったスケーラブルなソーシャルゲーム開発
PHP+MySQLを使ったスケーラブルなソーシャルゲーム開発
infinite_loop
Add PLEASE clause to Oracle Database
Add PLEASE clause to Oracle Database
Noriyoshi Shinoda
20151205 中国地方db勉強会 dbm_fs
20151205 中国地方db勉強会 dbm_fs
Takahiro Iwase
Semelhante a 20140418 info talkセミナー資料
(20)
20131113_mysql_on_分散fsセミナー資料
20131113_mysql_on_分散fsセミナー資料
OSSとクラウドによるコンピューティングモデルの変化
OSSとクラウドによるコンピューティングモデルの変化
20110305_Code4Lib2011参加報告会:田辺浩介参加報告
20110305_Code4Lib2011参加報告会:田辺浩介参加報告
Mongo db勉強会
Mongo db勉強会
学外から電子ジャーナル?!(データベースも)
学外から電子ジャーナル?!(データベースも)
[db tech showcase Tokyo 2018] #dbts2018 #D1L 『"何が必要?どう実現?"~異種DB間データリアルタイム連携』
[db tech showcase Tokyo 2018] #dbts2018 #D1L 『"何が必要?どう実現?"~異種DB間データリアルタイム連携』
20160416 Azure Data Lakeのはまりどころ
20160416 Azure Data Lakeのはまりどころ
実務で役立つデータベースの活用法
実務で役立つデータベースの活用法
uroboroSQLの紹介 (OSC2017 Tokyo/Spring)
uroboroSQLの紹介 (OSC2017 Tokyo/Spring)
Database on Kubernetes - HA,Replication and more -
Database on Kubernetes - HA,Replication and more -
データベース技術の羅針盤
データベース技術の羅針盤
20121103 #odstudy できる! VBAマクロ
20121103 #odstudy できる! VBAマクロ
DB思い出話いろいろ(仮)
DB思い出話いろいろ(仮)
経済学のための実践的データ分析 4.SQL ことはじめ
経済学のための実践的データ分析 4.SQL ことはじめ
実はとても面白い...Documentation library
実はとても面白い...Documentation library
モバイルアプリ開発者にも知ってほしい Microsoft AzureのDatabase as a Service
モバイルアプリ開発者にも知ってほしい Microsoft AzureのDatabase as a Service
[db tech showcase Tokyo 2018] #dbts2018 #D24 『異種データベース間データ連携ウラ話 ~ 新しいデータベースを試...
[db tech showcase Tokyo 2018] #dbts2018 #D24 『異種データベース間データ連携ウラ話 ~ 新しいデータベースを試...
PHP+MySQLを使ったスケーラブルなソーシャルゲーム開発
PHP+MySQLを使ったスケーラブルなソーシャルゲーム開発
Add PLEASE clause to Oracle Database
Add PLEASE clause to Oracle Database
20151205 中国地方db勉強会 dbm_fs
20151205 中国地方db勉強会 dbm_fs
Mais de Takahiro Iwase
Re port aws_reinvent_161213_slideshare
Re port aws_reinvent_161213_slideshare
Takahiro Iwase
20121205 nosql(okuyama fs)セミナー資料
20121205 nosql(okuyama fs)セミナー資料
Takahiro Iwase
20120913 nosql@hikarie(okuyama fuse)
20120913 nosql@hikarie(okuyama fuse)
Takahiro Iwase
20120405 setsunaセミナー
20120405 setsunaセミナー
Takahiro Iwase
20120317 IT系勉強会 in 神戸
20120317 IT系勉強会 in 神戸
Takahiro Iwase
Okuyama説明資料 20120119 ss
Okuyama説明資料 20120119 ss
Takahiro Iwase
Kvs okuyama-20110818
Kvs okuyama-20110818
Takahiro Iwase
20110708 dist_study okuyama
20110708 dist_study okuyama
Takahiro Iwase
20110519 okuyama tokyo_linuxstudy
20110519 okuyama tokyo_linuxstudy
Takahiro Iwase
20110517 okuyama ソーシャルメディアが育てた技術勉強会
20110517 okuyama ソーシャルメディアが育てた技術勉強会
Takahiro Iwase
okuyama_20101101_nosqlafternoon
okuyama_20101101_nosqlafternoon
Takahiro Iwase
2010/07/09 osc kansai-kvsokuyama
2010/07/09 osc kansai-kvsokuyama
Takahiro Iwase
Mais de Takahiro Iwase
(12)
Re port aws_reinvent_161213_slideshare
Re port aws_reinvent_161213_slideshare
20121205 nosql(okuyama fs)セミナー資料
20121205 nosql(okuyama fs)セミナー資料
20120913 nosql@hikarie(okuyama fuse)
20120913 nosql@hikarie(okuyama fuse)
20120405 setsunaセミナー
20120405 setsunaセミナー
20120317 IT系勉強会 in 神戸
20120317 IT系勉強会 in 神戸
Okuyama説明資料 20120119 ss
Okuyama説明資料 20120119 ss
Kvs okuyama-20110818
Kvs okuyama-20110818
20110708 dist_study okuyama
20110708 dist_study okuyama
20110519 okuyama tokyo_linuxstudy
20110519 okuyama tokyo_linuxstudy
20110517 okuyama ソーシャルメディアが育てた技術勉強会
20110517 okuyama ソーシャルメディアが育てた技術勉強会
okuyama_20101101_nosqlafternoon
okuyama_20101101_nosqlafternoon
2010/07/09 osc kansai-kvsokuyama
2010/07/09 osc kansai-kvsokuyama
20140418 info talkセミナー資料
1.
Kobe Digital Labo,
Inc. 岩瀬 高博 Twitter: @okuyamaoo Mail: ta.okuyamaoo@gmail.com FemtoDB On memory document database
2.
自己紹介 ・岩瀬 高博(@okuyamaoo) > (株) 神戸デジタル・ラボ所属 業務及び活動 >大規模e-コマースサイトのチューニング、運用 >分散処理、データベースの研究及び適応 >(独)情報通信研究機構 特別研究員 研究領域:大規模Webアーカイブ >分散KVS
okuyama、CEP Setsuna の開発 >OSS、Java、DB、車が好き
3.
1.ドキュメント型データベース? 2.FemtoDBの紹介 今日のお話し
4.
ドキュメント型データベース?
5.
ドキュメント型データベース? ・ドキュメント型データベースとは? ・NOSQLデータベースと総称されるデータベースの中の1種類
6.
NOSQL ・NOSQLデータベース ・NOSQLはSQLをインタフェースとしないデータベース ※wikipediaより
7.
NOSQL ・NOSQLデータベース ・ 用途に特化させることで処理能力、キャパシティー 冗長性などの能力を高めたデータベース
8.
NOSQL ・種類は? ・NOSQLは扱うデータ型に応じて種類分け出来きる
9.
NOSQL ・種類は? Key-Value型 Column型 Document型 Graph型 ・NOSQLは扱うデータ型に応じて種類分け出来る
10.
NOSQL ・種類は? ・NOSQLは扱うデータ型に応じて種類分け出来る Key-Value型 Column型 Document型 Graph型 一意のKeyと値の関係 もっともシンプルなモデル
11.
NOSQL ・種類は? Key-Value型 Column型 Document型 Graph型 データをカラム単位で管理 カラム単位での操作が得意 ・NOSQLは扱うデータ型に応じて種類分け出来る
12.
NOSQL ・種類は? Key-Value型 Column型 Document型 Graph型 グラフ構造データを管理 ファイルツリー、 ソーシャルグラフ ・NOSQLは扱うデータ型に応じて種類分け出来る
13.
NOSQL ・種類は? Key-Value型 Column型 Document型 Graph型 ・NOSQLは扱うデータ型に応じて種類分け出来る
14.
Document型 ・Document型データベースを詳しく ・扱うデータのフォーマットは? 自由なデータフォーマットを扱える 例えばリレーションナルデータベースの場合は? テーブル定義 create table UserMaster
( UserID varchar(10) pkey, Name varchar(50), Address varchar(100), Birthday date, Tel varchar(15), deleteFlg boolean ) 事前にテーブル定義を作成 ↓ 定義に沿ったデータ構造で登録 定義をデータベースで管理する
15.
Document型 ・Document型データベースを詳しく ・扱うデータのフォーマットは? 自由なデータフォーマットを扱える ではDocument型の場合は? 登録データ {”UserID” :”10001”, “Name” :”名前”, “Address”
:”住所”, “Birthday” :”1981/09/08” “Tel” :”090-9999-8888”, “deleteFlg”:false } 登録されるデータ次第 ↓ データ構造に合った構造となる 定義をアプリケーションで管理する
16.
Document型 ・Document型データベース ・どのような特徴なのか? 登録データ {”UserID” : ”10001”, “Name”
: ”名前”, “Address” : ”住所”, “Birthday” : ”1981/09/08” “Tel” :”090-9999-8888” “deleteFlg”:false } 登録データ {”UserID” : ”10002”, “Name” : ”名前”, “Address” :”住所”, “Birthday” :”1981/10/12” “Tel” :”080-6666-7777”, “Mail” :”test@abc.co.jp”, “deleteFlg”:false } 上記の2データを[Address=“住所”]の条件のもと扱える データ構造の異なる2データを透過的に扱うことが出来る。 異なる部分の処理をアプリケーションに依存させる。
17.
Document型 ・Document型データベース ・代表的なソフトウェアは? MongoDB 開発元:MongoDB Inc. 開発言語:C++ ライセンス:GNU AGPL
v3.0 企業サポートなども展開している。 独自クライアントによる問い合わせが基本となる データはJSONで表現(内部はBSON)
18.
Document型 ・Document型データベース ・代表的なソフトウェアは? CouchDB 開発元:Apache Software Foundation 開発言語:Erlang ライセンス:Apache
License 2.0 Map/Reduceによるデータ操作 RestfulAPIによるアクセス (GET,POST,DELETなど) データはJSONとして表現
19.
FemtoDB
20.
FemtoDB? ・FemtoDBって? ・2014年より開発を開始したドキュメント型のデータベース 昨日Version 0.0.3をリリースしました Apache License,
Version 2.0
21.
FemtoDB? ・なぜ開発したか? ・普段業務ではKVSのokuyamaを使ったアプリケーション開発 こういった用途には凄くむいている ・データ構造が単純 ・一意のデータ登録/取得がメイン アプリケーションのキャッシュにしたり、ファイルサーバの バックエンドストレージなどにつかったり
22.
FemtoDB? ・なぜ開発したか? ・あるときokuyamaを使ってサイト内商品検索エンジンを構築 >これを自社サービス化 顧客ECデータベース MySQLやOracleなど TSV 商品のデータを出力 商品データと 全文検索インデックスなどを 作成し登録 検索エンジンの フロントサーバが参照
23.
FemtoDB? ・なぜ開発したか? ・いろいろ問題が これらのことから検索やソートが得意でトランザクションが使え データ構造が柔軟なデータベースをつくろうと考えた ・トランザクションがないからデータの一括入れ替えとか出来ない ・全文検索はokuyamaで、それ以外の検索、ソートは検索アプリ ケーション上で実現しておりロジックが複数箇所に点在 ・okuyama+検索アプリケーションサーバの構成なのでどうしても 構成が大きくなりがち
24.
特徴は? ・FemtoDBの特徴とは? ・ データ構造 ・ インタフェース ・
データアクセス機能 ・ トランザクション ・ データ管理機能
25.
データ構造 ・FemtoDBのデータ構造 FemtoDB Table JSON
26.
データ構造 ・FemtoDBのデータ構造 FemtoDB Table JSON ・1プロセスでのシングルプロセス構成 ・他プロセスとの連携等なし
27.
データ構造 ・FemtoDBのデータ構造 FemtoDB Table JSON ・データ管理単位テーブル 全てのデータはいずれかのテーブルに属する ・リソースの許す限り作成可能
28.
データ構造 ・FemtoDBのデータ構造 FemtoDB Table JSON ・KeyとValueが文字型である単純な連想配列型 ・ネストした形式は扱えない
29.
データ構造 ・最小単位のJSON部分を詳しく JSON ・ネスト構造を持たない単純な構造のみ管理可能 {”UserID” :”10001”, “Name” :”名前”, “Address”:”住所”, “Birthday”:”1981/09/08”, “Tel”
:”090-9999-8888”, “deleteFlg”:false } {”UserID” :”10001”, “Name” :”名前”, “Address” :”住所”, “Birthday” :”1981/09/08” “Tel” :”090-9999-8888”, “School” :{“小学校”:”XXXX”, “中学校”:”YYYY”, “高校”:”ZZZZZ”} “deleteFlg”:false } 扱える 扱えない
30.
データ構造 ・最小単位のJSON部分を詳しく 異なる構造のJSONを1テーブルで扱える ・以下の2種類のJSONデータを同じ条件で取得可能 {”UserID” :”10001”, “Name” :”名前XX”, “Address”
:”住所XX”, “Birthday” :”1981/09/08” “Tel” :”090-9999-8888”, “deleteFlg” :false } {”UserID” :”10002”, “Name” :”名前YY”, “Address” :”住所YY”, “Birthday” :”1985/09/08” “HighSchool”:”YYY高校”, “deleteFlg” :false } ・「deleteFlg = false」の条件で2件とも取得可能 ・「Tel = “090-9999-8888」の条件でUserIDが10001だけ取得
31.
特徴は? ・FemtoDBの特徴とは? ・ データ構造 ・ インタフェース ・
データアクセス機能 ・ トランザクション ・ データ管理機能
32.
インタフェース ・操作インターフェース ・RestfulAPIで全ての操作を行う 起動と同時にHTTPサーバが起動 ※デフォルトでは8080番ポートで起動
33.
インタフェース FemtoDB HTTP:8080 ・HTTPサーバにはJettyを利用 ・ポートは起動引数で変更可能 ・最大同時接続数は起動引数にて指定可能 ・クエリの同時実行数は接続数とは個別で指定可能 ・HTTPSは未対応 ・RestfulAPIで全ての操作を行う 起動と同時にHTTPサーバが起動 ※デフォルトでは8080番ポートで起動 ・操作インターフェース
34.
インタフェース ・RestfulAPIインタフェース ・リクエスト:パスとメソッドの組み合わせ ・レスポンス:JSON形式による応答 FemtoDB Request: GET :
/femtodb/dataaccess {”UserID”:”10001”, “Name”:”名前”, “Address”:”住所”, “Birthday”:”1981/09/08” “Tel”:”090-9999-8888” “deleteFlg”:false } Response: text/json
35.
インタフェース ・データローダー ・TSV/CSVファイルを登録するデータローダ FemtoDB ローダー TSV ・1トランザクション処理内で行われる 登録失敗等が起こると自動ロールバック ・カラム情報はヘッダーに定義するか自動作成
36.
特徴は? ・FemtoDBの特徴とは? ・ データ構造 ・ インタフェース ・
トランザクション ・ データアクセス機能 ・ データ管理機能
37.
トランザクション ・トランザクション機能を搭載している MVCCを参考にしたトランザクション機能 ・MVCC(マルチバージョン コンカレンシー コントロール) MVCCの動きは書き込みトランザクション中に読み込み トランザクションが発生すると1つ前のバージョンの情報を返す そのため読み込みと書き込み処理を同一データに対して 同時に実行可能
38.
トランザクション ・MVCCの挙動 {”UserID”:”10001”, “Name”:”名前XX”, “Address”:”住所XX”, “Birthday”:”1981/09/08” “Tel”:”090-9999-8888” “deleteFlg”:false } 更新処理 1.トランザクション内で更新処理が始まる
39.
トランザクション ・MVCCの挙動 {”UserID”:”10001”, “Name”:”名前XX”, “Address”:”住所XX”, “Birthday”:”1981/09/08” “Tel”:”090-9999-8888” “deleteFlg”:false } 更新処理 1.トランザクション内で更新処理が始まる 2.更新前データと更新中データが分離される {”UserID”:”10001”, “Name”:”名前XX”, “Address”:”住所XX”, “Birthday”:”1981/09/08” “Tel”:”090-9999-8888” “deleteFlg”:false } {”UserID”:”10001”, “Name”:”名前XX”, “Address”:”住所XX”, “Birthday”:”1981/09/08” “Tel”:”090-9999-8888” “deleteFlg”:false } 更新前 更新中
40.
トランザクション ・MVCCの挙動 {”UserID”:”10001”, “Name”:”名前XX”, “Address”:”住所XX”, “Birthday”:”1981/09/08” “Tel”:”090-9999-8888” “deleteFlg”:false } {”UserID”:”10001”, “Name”:”名前XX”, “Address”:”住所XX”, “Birthday”:”1981/09/08” “Tel”:”090-9999-8888” “deleteFlg”:false } 更新前 更新中 更新処理 参照処理 1.トランザクション内で更新処理が始まる 2.更新前データと更新中データが分離される 3.参照処理には更新前データが返される
41.
トランザクション ・MVCCの挙動 {”UserID”:”10001”, “Name”:”名前XX”, “Address”:”住所XX”, “Birthday”:”1981/09/08” “Tel”:”090-9999-8888” “deleteFlg”:false } {”UserID”:”10001”, “Name”:”名前XX”, “Address”:”住所XX”, “Birthday”:”1981/09/08” “Tel”:”090-9999-8888” “deleteFlg”:false } 更新前 更新中 更新処理 参照処理 更新中データを別トランザクションが 更新しようとした場合は、後続処理がエラーとなる 別の更新処理 ☓
42.
トランザクション ・トランザクションの適応範囲 ・全てのデータ操作処理(テーブル操作は対象外)は トランザクションが適応されて処理される。 ・明示的なトランザクション開始、コミット、ロールバック、終了 トランザクションで隠蔽された範囲内で複数のデータ処理を 行うことができる。 ・開始を宣言しないオートコミットトランザクション 1リクエスト単位でトランザクションを作成し処理 処理失敗時は自動的にロールバック 処理成功時は自動的にコミット
43.
特徴は? ・FemtoDBの特徴とは? ・ データ構造 ・ インタフェース ・
トランザクション ・ データアクセス機能 ・ データ管理機能
44.
データアクセス機能 ・FemtoDBへのアクセスAPI ・テーブル作成用API ・トランザクション操作用API ・データ操作用API
45.
テーブル操作 ・テーブル操作API ・テーブルの作成 ・テーブル削除 ・インデックスの追加作成 ・テーブル情報の閲覧
46.
テーブル操作 ・テーブル操作API ・テーブルの作成 URLパス:/femtodb/table メソッド:POST パラメータ:table=usermst :indexcolumns=userid:equal http://localhost:8080/femtodb/table?table=usermst&indexcolumns=userid:equal 実際にURLで指定すると以下のようになる $curl http://localhost:8080/femtodb/table?table=usermst&indexcolumns=userid:equal -X
POST
47.
テーブル操作 ・テーブル操作API ・テーブルの作成 ・テーブル削除 ・インデックスの追加作成 ・テーブル情報の閲覧
48.
テーブル操作 ・テーブル操作API ・テーブルの削除 URLパス:/femtodb/table メソッド:DELETE パラメータ:table=usermst http://localhost:8080/femtodb/table?table=usermst 実際にURLで指定すると以下のようになる $curl “http://localhost:8080/femtodb/table?table=usermst” -X
DELETE このようにURLとメソッドの 組み合わせで処理を実行
49.
テーブル操作 ・テーブル操作API ・テーブルの作成 ・テーブル削除 ・インデックスの追加作成 ・テーブル情報の閲覧
50.
テーブル操作 ・テーブル操作API ・インデックスの追加作成
51.
インデックスの説明 ・検索用インデックスを作成可能 検索を高速に行うインデックスを作成可能 インデックスの種類は2種類 ハッシュIndex:完全一致、範囲一致用 テキストIndex:全文検索用のインデックス
52.
インデックスの説明 ・ハッシュIndex データのカラムの値 カラムデータが同じデータ 100000 [{データ1},{データ5}] 100001
[{データ42},{データ452}] 108100 [{データ2},{データ6}, {データ9}] 200000 ・・・ 200100 ・・・ 200200 ・・・ 300009 ・・・ 400000 ・・・{”UserID”:”10001”, “Name”:”名前XX”, “Address”:”住所XX”, “Birthday”:”1981/09/08” “Tel”:”090-9999-8888” “deleteFlg”:false } カラムデータの部分が 同じデータが束ねられるて 管理される
53.
インデックスの説明 ・テキストIndex データのカラムの値 カラムデータが同じデータ 名前YY [{データ1},{データ5}] 名前XX
[{データ42},{データ452}] 名前ZZ [{データ2},{データ6}, {データ9}] ・・・・・ ・・・ ・・・・・ ・・・ ・・・・・ ・・・ ・・・・・ ・・・ ・・・・・ ・・・{”UserID”:”10001”, “Name”:”名前XX”, “Address”:”住所XX”, “Birthday”:”1981/09/08” “Tel”:”090-9999-8888” “deleteFlg”:false } カラム内の文字列を構文解析し 転置インデックスを作成 解析には形態素解析器の kuromojiを利用 m(_ _)m
54.
テーブル操作 ・テーブル操作API ・インデックスの追加作成 URLパス:/femtodb/table メソッド:PUT パラメータ:table=usermst :indexcolumns=userid:equal テーブル作成時に指定しなかった場合に データ登録後に追加作成可能
55.
テーブル操作 ・テーブル操作API ・テーブルの作成 ・テーブル削除 ・インデックスの追加作成 ・テーブル情報の閲覧
56.
テーブル操作 ・テーブル操作API ・テーブル閲覧 URLパス:/femtodb/table メソッド:GET パラメータ:table=usermst 作成されているテーブルの一覧と インデックスの一覧情報を取得
57.
データアクセス機能 ・FemtoDBへのアクセスAPI ・テーブル作成用API ・トランザクション操作用API ・データ操作用API
58.
トランザクション操作 ・トランザクション操作API トランザクション操作は大きく以下の4種類 ・トランザクションを開始する ・トランザクションをコミットする ・トランザクションをロールバックする ・トランザクションを終了する これらの命令がそれぞれAPIとして提供されている
59.
トランザクション操作 ・利用イメージ 1.トランザクション開始API呼び出し FemtoDB ユニークなIDが返される 2. データ操作APIを呼び出す その際1で取得したIDをパラメータとして付加 3.コミット/ロールバックAPI呼び出し 1で取得したIDをパラメータとして付加 4.トランザクション終了API呼び出し 1で取得したIDをパラメータとして付加 transactionno=1002
60.
トランザクション操作 ・利用イメージ 1.トランザクション開始API呼び出し FemtoDB ユニークなIDが返される 2. データ操作APIを呼び出す その際1で取得したIDをパラメータとして付加 3.コミット/ロールバックAPI呼び出し 1で取得したIDをパラメータとして付加 4.トランザクション終了API呼び出し 1で取得したIDをパラメータとして付加 ・異なるIDでデータ操作を呼び出し 2の操作中のデータは参照出来ない transactionno=9998
61.
データアクセス機能 ・FemtoDBへのアクセスAPI ・テーブル作成用API ・トランザクション操作用API ・データ操作用API
62.
データ操作 ・データ操作API ・データ登録 ・データ検索 ・データ更新 ・データ削除
63.
データ操作 ・データ操作API ・データ登録 URLパス:/femtodb/dataaccess メソッド:POST パラメータ:table=usermst :data={JSON形式} 実際にURLで指定すると以下のようになる $curl http://localhost:8080/femtodb/dataaccess -d “table=usermst“ -d
“data={‘userid’:’0001’, ‘name’:’名前XXX’, ‘address’:’住所XXX’}” -d “data={‘userid’:’0002’, ‘name’:’名前YYY’, ‘tel’:’090-9999-8888’}” -X POST 主キーの概念はないので同一内容のデータも複数登録される
64.
データ操作 ・データ操作API ・データ登録 ・データ検索 ・データ更新 ・データ削除
65.
データ操作 ・データ操作API ・データ検索 URLパス:/femtodb/dataaccess メソッド:GET パラメータ:table=usermst :where=条件 :sort=並び替えカラム名 :limit=取得件数 :offset=取得開始位置
66.
データ操作 ・where部分 ・取得条件を指定 指定は カラム名 [条件式] パラメータ 条件式は “=“
, “text” , “<” ,”>” , “in”, “notin” ※ “=“及び、”text”は定義したインデックスカラムの場合 インデックス検索が行われる ※ 全てのデータに含まれないカラムの場合は含まれない データは除外される
67.
データ操作 ・sort部分 ・並び替えを指定 指定は カラム名 順序 [数値ヒント] ・順序はasc/desc ・数値ヒントはデータを数値として並び替える ※
データによってカラムが存在しない場合は後端へ
68.
データ操作 ・データ操作API ・データ登録 ・データ検索 ・データ更新 ・データ削除
69.
データ操作 ・データ操作API ・データ更新 URLパス:/femtodb/dataaccess メソッド:PUT パラメータ:table=usermst :where=条件 :data={JSON} where部分は検索と同様の指定方法。インデックスも適応。 更新データはJSONフォーマットで指定 {“deleteflg”:”0”} 、 {“newcolumn”:”newdata”}
70.
データ操作 ・データ操作API ・データ登録 ・データ検索 ・データ更新 ・データ削除
71.
データ操作 ・データ操作API ・データ削除 URLパス:/femtodb/dataaccess メソッド:DELETE パラメータ:table=usermst :where=条件 where部分は検索と同様の指定方法 インデックスも適応 条件の対象が全て削除される
72.
データ操作 ・データ操作API ・トランザクションIDの付加 全てのデータ操作APIにトランザクションIDを 付加することが出来る 例)更新の場合 $curl http://localhost:8080/femtodb/dataaccess -d “table=usermst“ -d
“where=userid = 0001” -d “data={‘deleteflg’:’1’}” -d “transactionno=1002” -X PUT
73.
特徴は? ・FemtoDBの特徴とは? ・ データ構造 ・ インタフェース ・
トランザクション ・ データアクセス機能 ・ データ管理機能
74.
データ管理機能 ・全てのデータはメモリ上で管理 テーブル定義、データ、インデックス情報の 全てがメモリ上で管理される そのため処理においてディスクアクセスは発生しない FemtoDB テーブル作成、データ登録処理…etc データ検索処理…etc
75.
データ管理機能 ・メモリデータ+ジャーナルファイル メモリ上のデータのため、FemtoDBが停止すると データは全て消失する 使いづらいのでジャーナル機能を搭載 ※デフォルトOff 起動オプションで利用可能 FemtoDB テーブル作成、データ登録処理…etc データ検索処理…etc データは全てメモリへ 参照も全てメモリ ・更新系操作は全てログとして記録 ・起動時にログからデータを復元
76.
データ管理機能 ・スナップショット機能を開発中 ジャーナルファルだけでは操作の蓄積でログが肥大化し 復元が長時間化する ・ 一定時間毎に全てのデータをストアするスナップショット機能 操作ログ 長時間稼働しデータ更新を 行うとログが肥大化する 最初から最後まで トレースするのに 凄く時間がかかる
77.
データ管理機能 ・スナップショット機能を開発中 ジャーナルファルだけでは操作の蓄積でログが肥大化し 復元が長時間化する ・ 一定時間毎に全てのデータをストアするスナップショット機能 操作ログ 稼働中にある程度 ログが溜まったタイミング でスナップショットを作成 FemtoDB スナップショット作成
78.
データ管理機能 ・スナップショット機能を開発中 ジャーナルファルだけでは操作の蓄積でログが肥大化し 復元が長時間化する ・ 一定時間毎に全てのデータをストアするスナップショット機能 操作ログ 稼働中にある程度 ログが溜まったタイミング でスナップショットを作成 FemtoDB スナップショット作成 作成した部分までを削除 操作ログ
79.
最後に ・Information GitHub https://github.com/okuyamaoo/femtodb twitter @okuyamaoo
80.
Thank you!
Baixar agora