Submit Search
Upload
MongoDB + XSD/XML
•
0 likes
•
1,297 views
Co-graph Inc.
Follow
丸の内MongoDB勉強会 #7 http://atnd.org/events/36467 「2. MongoDBでXMLデータを扱うシステム開発」
Read less
Read more
Software
Report
Share
Report
Share
1 of 13
Recommended
業務システムにおけるMongoDB活用法
業務システムにおけるMongoDB活用法
Co-graph Inc.
[コグラフ]spss modelerによるデータ加工入門
[コグラフ]spss modelerによるデータ加工入門
Co-graph Inc.
Watch Your Log!
Watch Your Log!
Co-graph Inc.
インフラエンジニア勉強会hbstudyについて
インフラエンジニア勉強会hbstudyについて
Toshiaki Baba
アドテクを支える技術 〜1日40億リクエストを捌くには〜
アドテクを支える技術 〜1日40億リクエストを捌くには〜
MicroAd, Inc.(Engineer)
アドテクを支える技術 〜1日40億リクエストを捌くには〜
アドテクを支える技術 〜1日40億リクエストを捌くには〜
MicroAd, Inc.(Engineer)
業務システムにおけるMongoDB活用法
業務システムにおけるMongoDB活用法
Yoshitaka Mori
アジャイル開発のためのDatadog
アジャイル開発のためのDatadog
Nobuyasu Seki
Recommended
業務システムにおけるMongoDB活用法
業務システムにおけるMongoDB活用法
Co-graph Inc.
[コグラフ]spss modelerによるデータ加工入門
[コグラフ]spss modelerによるデータ加工入門
Co-graph Inc.
Watch Your Log!
Watch Your Log!
Co-graph Inc.
インフラエンジニア勉強会hbstudyについて
インフラエンジニア勉強会hbstudyについて
Toshiaki Baba
アドテクを支える技術 〜1日40億リクエストを捌くには〜
アドテクを支える技術 〜1日40億リクエストを捌くには〜
MicroAd, Inc.(Engineer)
アドテクを支える技術 〜1日40億リクエストを捌くには〜
アドテクを支える技術 〜1日40億リクエストを捌くには〜
MicroAd, Inc.(Engineer)
業務システムにおけるMongoDB活用法
業務システムにおけるMongoDB活用法
Yoshitaka Mori
アジャイル開発のためのDatadog
アジャイル開発のためのDatadog
Nobuyasu Seki
オープンソースカンファレンス OSC 2015 Tokyo/Spring 最新レポート!ownCloud8とMroongaを使った日本語全文検索アプリのご紹介
オープンソースカンファレンス OSC 2015 Tokyo/Spring 最新レポート!ownCloud8とMroongaを使った日本語全文検索アプリのご紹介
Yuki Takahashi
Google Product
Google Product
Daisuke Sugai
Intalio Cloud Workshop
Intalio Cloud Workshop
Daisuke Sugai
Osc2012.dbに行ってきました
Osc2012.dbに行ってきました
Masaru Kobashigawa
機械学習基盤として活用するAutonomous Database
機械学習基盤として活用するAutonomous Database
Kenichi Sonoda
新規事業「Bill One」による Google Cloud 活用術
新規事業「Bill One」による Google Cloud 活用術
Mao Ohnishi
Pythonおじさんのweb2py挑戦記
Pythonおじさんのweb2py挑戦記
Yoshiyuki Nakamura
mongoDB: OSC Tokyo2010 spring
mongoDB: OSC Tokyo2010 spring
ichikaway
A18_Modernizing Enterprise Java Applications [Microsoft Japan Digital Days]
A18_Modernizing Enterprise Java Applications [Microsoft Japan Digital Days]
日本マイクロソフト株式会社
インターネット広告の概要とシステム設計
インターネット広告の概要とシステム設計
MicroAd, Inc.(Engineer)
CloudSQL v2は デキる子なのか?
CloudSQL v2は デキる子なのか?
Kumano Ryo
アドテクを支える基盤 〜10Tバイト/日のビッグデータを処理する〜
アドテクを支える基盤 〜10Tバイト/日のビッグデータを処理する〜
MicroAd, Inc.(Engineer)
ビジネスロジック実装進化論 - An Evolution of Business Logic Implementation
ビジネスロジック実装進化論 - An Evolution of Business Logic Implementation
Tadayoshi Sato
大容量ファイルを爆速で転送! 世界を飛び回る! AsperaとSoftLayerの最強コラボ!
大容量ファイルを爆速で転送! 世界を飛び回る! AsperaとSoftLayerの最強コラボ!
softlayerjp
Opa - Cloud Language
Opa - Cloud Language
Tozo Tanaka
Ansibleは簡単なIT自動化
Ansibleは簡単なIT自動化
You&I
[Modern Cloud Day Tokyo 2019] オラクルクラウド移行を完了したゲストに聞くOracle Cloudを選択する理由&次世代インフ...
[Modern Cloud Day Tokyo 2019] オラクルクラウド移行を完了したゲストに聞くOracle Cloudを選択する理由&次世代インフ...
オラクルエンジニア通信
Fluentd+MongoDB+Groovy
Fluentd+MongoDB+Groovy
Daisuke Ando
MongoDB社の製品紹介 2019-MongoDB EA&Atlas
MongoDB社の製品紹介 2019-MongoDB EA&Atlas
昌桓 李
Autonomous選手権システムエグゼ社発表資料
Autonomous選手権システムエグゼ社発表資料
Mai Nagahisa
More Related Content
Similar to MongoDB + XSD/XML
オープンソースカンファレンス OSC 2015 Tokyo/Spring 最新レポート!ownCloud8とMroongaを使った日本語全文検索アプリのご紹介
オープンソースカンファレンス OSC 2015 Tokyo/Spring 最新レポート!ownCloud8とMroongaを使った日本語全文検索アプリのご紹介
Yuki Takahashi
Google Product
Google Product
Daisuke Sugai
Intalio Cloud Workshop
Intalio Cloud Workshop
Daisuke Sugai
Osc2012.dbに行ってきました
Osc2012.dbに行ってきました
Masaru Kobashigawa
機械学習基盤として活用するAutonomous Database
機械学習基盤として活用するAutonomous Database
Kenichi Sonoda
新規事業「Bill One」による Google Cloud 活用術
新規事業「Bill One」による Google Cloud 活用術
Mao Ohnishi
Pythonおじさんのweb2py挑戦記
Pythonおじさんのweb2py挑戦記
Yoshiyuki Nakamura
mongoDB: OSC Tokyo2010 spring
mongoDB: OSC Tokyo2010 spring
ichikaway
A18_Modernizing Enterprise Java Applications [Microsoft Japan Digital Days]
A18_Modernizing Enterprise Java Applications [Microsoft Japan Digital Days]
日本マイクロソフト株式会社
インターネット広告の概要とシステム設計
インターネット広告の概要とシステム設計
MicroAd, Inc.(Engineer)
CloudSQL v2は デキる子なのか?
CloudSQL v2は デキる子なのか?
Kumano Ryo
アドテクを支える基盤 〜10Tバイト/日のビッグデータを処理する〜
アドテクを支える基盤 〜10Tバイト/日のビッグデータを処理する〜
MicroAd, Inc.(Engineer)
ビジネスロジック実装進化論 - An Evolution of Business Logic Implementation
ビジネスロジック実装進化論 - An Evolution of Business Logic Implementation
Tadayoshi Sato
大容量ファイルを爆速で転送! 世界を飛び回る! AsperaとSoftLayerの最強コラボ!
大容量ファイルを爆速で転送! 世界を飛び回る! AsperaとSoftLayerの最強コラボ!
softlayerjp
Opa - Cloud Language
Opa - Cloud Language
Tozo Tanaka
Ansibleは簡単なIT自動化
Ansibleは簡単なIT自動化
You&I
[Modern Cloud Day Tokyo 2019] オラクルクラウド移行を完了したゲストに聞くOracle Cloudを選択する理由&次世代インフ...
[Modern Cloud Day Tokyo 2019] オラクルクラウド移行を完了したゲストに聞くOracle Cloudを選択する理由&次世代インフ...
オラクルエンジニア通信
Fluentd+MongoDB+Groovy
Fluentd+MongoDB+Groovy
Daisuke Ando
MongoDB社の製品紹介 2019-MongoDB EA&Atlas
MongoDB社の製品紹介 2019-MongoDB EA&Atlas
昌桓 李
Autonomous選手権システムエグゼ社発表資料
Autonomous選手権システムエグゼ社発表資料
Mai Nagahisa
Similar to MongoDB + XSD/XML
(20)
オープンソースカンファレンス OSC 2015 Tokyo/Spring 最新レポート!ownCloud8とMroongaを使った日本語全文検索アプリのご紹介
オープンソースカンファレンス OSC 2015 Tokyo/Spring 最新レポート!ownCloud8とMroongaを使った日本語全文検索アプリのご紹介
Google Product
Google Product
Intalio Cloud Workshop
Intalio Cloud Workshop
Osc2012.dbに行ってきました
Osc2012.dbに行ってきました
機械学習基盤として活用するAutonomous Database
機械学習基盤として活用するAutonomous Database
新規事業「Bill One」による Google Cloud 活用術
新規事業「Bill One」による Google Cloud 活用術
Pythonおじさんのweb2py挑戦記
Pythonおじさんのweb2py挑戦記
mongoDB: OSC Tokyo2010 spring
mongoDB: OSC Tokyo2010 spring
A18_Modernizing Enterprise Java Applications [Microsoft Japan Digital Days]
A18_Modernizing Enterprise Java Applications [Microsoft Japan Digital Days]
インターネット広告の概要とシステム設計
インターネット広告の概要とシステム設計
CloudSQL v2は デキる子なのか?
CloudSQL v2は デキる子なのか?
アドテクを支える基盤 〜10Tバイト/日のビッグデータを処理する〜
アドテクを支える基盤 〜10Tバイト/日のビッグデータを処理する〜
ビジネスロジック実装進化論 - An Evolution of Business Logic Implementation
ビジネスロジック実装進化論 - An Evolution of Business Logic Implementation
大容量ファイルを爆速で転送! 世界を飛び回る! AsperaとSoftLayerの最強コラボ!
大容量ファイルを爆速で転送! 世界を飛び回る! AsperaとSoftLayerの最強コラボ!
Opa - Cloud Language
Opa - Cloud Language
Ansibleは簡単なIT自動化
Ansibleは簡単なIT自動化
[Modern Cloud Day Tokyo 2019] オラクルクラウド移行を完了したゲストに聞くOracle Cloudを選択する理由&次世代インフ...
[Modern Cloud Day Tokyo 2019] オラクルクラウド移行を完了したゲストに聞くOracle Cloudを選択する理由&次世代インフ...
Fluentd+MongoDB+Groovy
Fluentd+MongoDB+Groovy
MongoDB社の製品紹介 2019-MongoDB EA&Atlas
MongoDB社の製品紹介 2019-MongoDB EA&Atlas
Autonomous選手権システムエグゼ社発表資料
Autonomous選手権システムエグゼ社発表資料
MongoDB + XSD/XML
1.
MongoDB + XSD/XML Michael
Nguyen (マイケル・ヌエン) コグラフ株式会社
2.
自己紹介 ● カリフォルニア大学アーバイン校で ICS ● 東京工業大学へ留学 ● Google 検索アプライアンスを補完する 自社製品の開発や、ナレッジマネジメ ント製品の開発 ● コグラフ株式会社でグローバル・サー ビス・デベロップメントマネージャー +
シニアエンジニア ● 趣味は音楽とお酒(特に日本酒)
3.
税務システムでの特徴 ● 電子申告は XML で提出 ● XML
のスキーマは国税庁から臨時に提供されている ● 平成25年2月8日に公開されているスキーマ( XSD フ ァイル)は合計で 110MB を越えている ● システムは内部でデータを XML で保存しなくても、どこ かのタイミングで XML に変換する必要がある
4.
何故 MongoDB ● 問題 ● 大量のスキーマで大量の帳票の数 ● 各帳票には大量の項目の数(表示用のコードは1万行を越えている) ● スキーマは年に数回更新される ● 古いデータをそのまま参照する必要がある ● データのモデルを手動で作成するのは体制的にも時間的にも非現実的 ● 候補となる DB
の種類 ● RDB => × ● NoSQL => ◯ ● XMLDB => ◯
5.
MongoDB のメリット ● XML のデータをそのまま保持出来る ● XML
データを部分的に取得できる( dot notation ) ● スキーマが変わっても DB まわりのコードは一回だけの開 発でほとんどメンテナンスなしで使い続けている ● データのバージョンが違っていても共存は可能 ● データベースの運用での障害なし
6.
BSON と XML ● XML
スキーマは国税庁のものを加工したものがベースにな る ● 加工した XML スキーマを XmlBeans のライブラリで Java Bean を生成 (ant のスクリプト ) ● データ保存時は Java Bean => XML => JSON => BSON ● データ取得時は BSON => JSON => XML => Java Bean
7.
XML/JSON の変換 XML JSON <pre:ROOT_ELEMENT xmlns:pre="http://somewhere.com/asdf" attribute1="value" attribute2="value" attribute3="value" ><pre:CHILD_ELEMENT_1 attribute1="value" attribute2="value" attribute3="value" >value</pre:CHILD_ELEMENT ><pre:CHILD_ELEMENT_2 attribute1="value" attribute2="value" attribute3="value" >value</pre:CHILD_ELEMENT ></pre:ROOT_ELEMENT> { "pre:ROOT_ELEMENT"
: { "@xmlns:pre" : "http://somewhere.com/asdf", "@attribute1" : "value", "@attribute2" : "value", "@attribute3" : "value", "pre:CHILD_ELEMENT_1" : { "@attribute1" : "value", "@attribute2" : "value", "@attribute3" : "value", "#text" : "value" }, "pre:CHILD_ELEMENT_2" : { "@attribute1" : "value", "@attribute2" : "value", "@attribute3" : "value", "#text" : "value" } } }
8.
Collections ● MongoDB では collection
は RDB のテーブルみたいなもの ● collection を事前に作成する必要はない(自動で行われ る) ● MongoDB 側で collection 内のデータは同じ型である必要 はない(ユーザが決める) ● 例えば税務システムには法人の申告データは複数の年度の データを同じコレクションに保存出来る
9.
XPath と Dot
Notation ● Xpath /data/client[clientId = “15138”]/clientCode ● Dot Notation db.client.fnd({“data.client.clientId.#text” : “15138”}, {“data.client.clientCode” : 1})
10.
Tips(1) XML のドキュメントと関係しているものをなるべく同じコレクシ ョンに入れるとクエリの数を減らせる( JOIN
はない) { “_id” : ObjectId(“511c7e016796c903affd1837”), “XMLDataKey” : “XMLData”, “RelatedDataKey1” : “RelatedData1”, “RelatedDataKey2” : “RelatedData2”, “RelatedDataKey3” : “RelatedData3”, … “Metadata1Key” : “Metadata1”, “Metadata2Key” : “Metadata2”, “Metadata3Key” : “Metadata3”, ... }
11.
Tips (2) BSON/JSON Layer
- Internal Common Data Layer – Individual Data Layer BSON/JSON Internal Common Data Individual Data 1 XML Data Other Data Individual Data 2 Individual Data 3
12.
Tips( 3 ) ● XML
データは基本2種類ある ● スキーマが定義されているもの: モデルクラスをライブ ラリなどで生成する ● スキーマが定義されていないもの: オブジェクト => XML => JSON/BSON ( XStream など)
13.
コグラフ株式会社は、 利用者の側に立ったソフトウェアサービスのご提供を通じて 世界中の人々や社会の発展に貢献します ご連絡先 TEL: 03-5340-7450 E-Mail: a@cograph.com