Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
Submit search
EN
Uploaded by
Takahiro Iwase
15,325 views
20140418 info talkセミナー資料
Read more
2
Save
Share
Embed
Embed presentation
Download
Download to read offline
1
/ 80
2
/ 80
3
/ 80
4
/ 80
5
/ 80
6
/ 80
7
/ 80
8
/ 80
9
/ 80
10
/ 80
11
/ 80
12
/ 80
13
/ 80
14
/ 80
15
/ 80
16
/ 80
17
/ 80
18
/ 80
19
/ 80
20
/ 80
21
/ 80
22
/ 80
23
/ 80
24
/ 80
25
/ 80
26
/ 80
27
/ 80
28
/ 80
29
/ 80
30
/ 80
31
/ 80
32
/ 80
33
/ 80
34
/ 80
35
/ 80
36
/ 80
37
/ 80
38
/ 80
39
/ 80
40
/ 80
41
/ 80
42
/ 80
43
/ 80
44
/ 80
45
/ 80
46
/ 80
47
/ 80
48
/ 80
49
/ 80
50
/ 80
51
/ 80
52
/ 80
53
/ 80
54
/ 80
55
/ 80
56
/ 80
57
/ 80
58
/ 80
59
/ 80
60
/ 80
61
/ 80
62
/ 80
63
/ 80
64
/ 80
65
/ 80
66
/ 80
67
/ 80
68
/ 80
69
/ 80
70
/ 80
71
/ 80
72
/ 80
73
/ 80
74
/ 80
75
/ 80
76
/ 80
77
/ 80
78
/ 80
79
/ 80
80
/ 80
More Related Content
PDF
NOSQLの基礎知識(講義資料)
by
CLOUDIAN KK
PDF
qpstudy 2013.07 NoSQL
by
Akihiro Okuno
PDF
RDB技術者のためのNoSQLガイド NoSQLの必要性と位置づけ
by
Recruit Technologies
PDF
NoSQLデータベースと位置情報
by
Koji Ichiwaki
PDF
About NoSQL
by
hideaki honda
PDF
Nosqlの基礎知識(2013年7月講義資料)
by
CLOUDIAN KK
PDF
PHP開発者のためのNoSQL入門
by
じゅん なかざ
PDF
RDBNoSQLの基礎と組み合わせDB構成をちょっとよくする話
by
Shohei Kobayashi
NOSQLの基礎知識(講義資料)
by
CLOUDIAN KK
qpstudy 2013.07 NoSQL
by
Akihiro Okuno
RDB技術者のためのNoSQLガイド NoSQLの必要性と位置づけ
by
Recruit Technologies
NoSQLデータベースと位置情報
by
Koji Ichiwaki
About NoSQL
by
hideaki honda
Nosqlの基礎知識(2013年7月講義資料)
by
CLOUDIAN KK
PHP開発者のためのNoSQL入門
by
じゅん なかざ
RDBNoSQLの基礎と組み合わせDB構成をちょっとよくする話
by
Shohei Kobayashi
What's hot
PDF
MongoDBご紹介:事例紹介もあり
by
ippei_suzuki
PPT
Devsumi2013【15-e-5】NoSQLの野心的な使い方 ~Apache Cassandra編~
by
kishimotosc
PPTX
NoSQLに関するまとめ
by
Gosuke Miyashita
PDF
MongoDB概要:金融業界でのMongoDB
by
ippei_suzuki
PDF
ARC-009_RDB 技術者のための NoSQL ガイド
by
decode2016
PPTX
Amazon DynamoDBの紹介と東急ハンズでの活用について
by
Taiji INOUE
PDF
Db tech showcase2015 how to replicate between clusters
by
Hiroaki Kubota
PDF
[db tech showcase Tokyo 2014] L32: Apache Cassandraに注目!!(IoT, Bigdata、NoSQLのバ...
by
Insight Technology, Inc.
PPTX
日本語:Mongo dbに於けるシャーディングについて
by
ippei_suzuki
PPTX
Pysparkで始めるデータ分析
by
Tanaka Yuichi
PDF
Cassandraとh baseの比較して入門するno sql
by
Yutuki r
PPTX
ハンズのDynamoDBクラウドパターン
by
Naoyuki Yamazaki
PDF
Oss x user_meeting_6_postgres
by
Kosuke Kida
PDF
Cassandraのトランザクションサポート化 & web2pyによるcms用プラグイン開発
by
kishimotosc
PDF
SparkとCassandraの美味しい関係
by
datastaxjp
PPT
Cassandra(no sql)によるシステム提案と開発
by
kishimotosc
PDF
[db tech showcase Tokyo 2015] A33:Amazon DynamoDB Deep Dive by アマゾン データ サービス ...
by
Insight Technology, Inc.
PDF
Oratopostgres-hiroshima
by
Kosuke Kida
PDF
DynamoDBを導入した話
by
dcubeio
PPT
Cassandra v0.6-siryou
by
あしたのオープンソース研究所
MongoDBご紹介:事例紹介もあり
by
ippei_suzuki
Devsumi2013【15-e-5】NoSQLの野心的な使い方 ~Apache Cassandra編~
by
kishimotosc
NoSQLに関するまとめ
by
Gosuke Miyashita
MongoDB概要:金融業界でのMongoDB
by
ippei_suzuki
ARC-009_RDB 技術者のための NoSQL ガイド
by
decode2016
Amazon DynamoDBの紹介と東急ハンズでの活用について
by
Taiji INOUE
Db tech showcase2015 how to replicate between clusters
by
Hiroaki Kubota
[db tech showcase Tokyo 2014] L32: Apache Cassandraに注目!!(IoT, Bigdata、NoSQLのバ...
by
Insight Technology, Inc.
日本語:Mongo dbに於けるシャーディングについて
by
ippei_suzuki
Pysparkで始めるデータ分析
by
Tanaka Yuichi
Cassandraとh baseの比較して入門するno sql
by
Yutuki r
ハンズのDynamoDBクラウドパターン
by
Naoyuki Yamazaki
Oss x user_meeting_6_postgres
by
Kosuke Kida
Cassandraのトランザクションサポート化 & web2pyによるcms用プラグイン開発
by
kishimotosc
SparkとCassandraの美味しい関係
by
datastaxjp
Cassandra(no sql)によるシステム提案と開発
by
kishimotosc
[db tech showcase Tokyo 2015] A33:Amazon DynamoDB Deep Dive by アマゾン データ サービス ...
by
Insight Technology, Inc.
Oratopostgres-hiroshima
by
Kosuke Kida
DynamoDBを導入した話
by
dcubeio
Cassandra v0.6-siryou
by
あしたのオープンソース研究所
Similar to 20140418 info talkセミナー資料
PDF
実務で役立つデータベースの活用法
by
Soudai Sone
PPTX
初心者向けMongoDBのキホン!
by
Tetsutaro Watanabe
PDF
Not only sql _ 新卒エンジニア勉強会20130417
by
エンジニア勉強会 エスキュービズム
PPTX
グラフデータベース入門
by
Masaya Dake
PDF
2019年度 若手技術者向け講座 NoSQL
by
keki3
PDF
Introduction to MongoDB
by
moai kids
PPTX
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
by
yassun7010
DOC
20110301 Mongo Tokyo
by
Kenichi Masuda
DOC
20110302 Mongo Tokyo
by
Kenichi Masuda
PPTX
今から始めるDocument db
by
Kazunori Hamamoto
PPT
MongoDB
by
あしたのオープンソース研究所
実務で役立つデータベースの活用法
by
Soudai Sone
初心者向けMongoDBのキホン!
by
Tetsutaro Watanabe
Not only sql _ 新卒エンジニア勉強会20130417
by
エンジニア勉強会 エスキュービズム
グラフデータベース入門
by
Masaya Dake
2019年度 若手技術者向け講座 NoSQL
by
keki3
Introduction to MongoDB
by
moai kids
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
by
yassun7010
20110301 Mongo Tokyo
by
Kenichi Masuda
20110302 Mongo Tokyo
by
Kenichi Masuda
今から始めるDocument db
by
Kazunori Hamamoto
MongoDB
by
あしたのオープンソース研究所
More from Takahiro Iwase
PPTX
Re port aws_reinvent_161213_slideshare
by
Takahiro Iwase
PPTX
20151205 中国地方db勉強会 dbm_fs
by
Takahiro Iwase
PDF
20131113_mysql_on_分散fsセミナー資料
by
Takahiro Iwase
PDF
20121205 nosql(okuyama fs)セミナー資料
by
Takahiro Iwase
PDF
20120913 nosql@hikarie(okuyama fuse)
by
Takahiro Iwase
PDF
20120405 setsunaセミナー
by
Takahiro Iwase
PDF
20120317 IT系勉強会 in 神戸
by
Takahiro Iwase
PPTX
Okuyama説明資料 20120119 ss
by
Takahiro Iwase
PDF
Kvs okuyama-20110818
by
Takahiro Iwase
PDF
20110708 dist_study okuyama
by
Takahiro Iwase
PDF
20110519 okuyama tokyo_linuxstudy
by
Takahiro Iwase
PDF
20110517 okuyama ソーシャルメディアが育てた技術勉強会
by
Takahiro Iwase
PDF
okuyama_20101101_nosqlafternoon
by
Takahiro Iwase
PDF
2010/07/09 osc kansai-kvsokuyama
by
Takahiro Iwase
Re port aws_reinvent_161213_slideshare
by
Takahiro Iwase
20151205 中国地方db勉強会 dbm_fs
by
Takahiro Iwase
20131113_mysql_on_分散fsセミナー資料
by
Takahiro Iwase
20121205 nosql(okuyama fs)セミナー資料
by
Takahiro Iwase
20120913 nosql@hikarie(okuyama fuse)
by
Takahiro Iwase
20120405 setsunaセミナー
by
Takahiro Iwase
20120317 IT系勉強会 in 神戸
by
Takahiro Iwase
Okuyama説明資料 20120119 ss
by
Takahiro Iwase
Kvs okuyama-20110818
by
Takahiro Iwase
20110708 dist_study okuyama
by
Takahiro Iwase
20110519 okuyama tokyo_linuxstudy
by
Takahiro Iwase
20110517 okuyama ソーシャルメディアが育てた技術勉強会
by
Takahiro Iwase
okuyama_20101101_nosqlafternoon
by
Takahiro Iwase
2010/07/09 osc kansai-kvsokuyama
by
Takahiro Iwase
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!
Download