構造解析データの保存に適したDBを考える

こんにちは,cosmobloomの小野です.

DBの種類については前回の記事で話した通りで,RDBMS,NoSQL,時系列データDBなどが存在します.今回は構造解析データの保存に適したDBについて考えてみたいと思います.

一般的なWebアプリではRDBMSがよく利用されます.これは,業務処理など一連の処理において高いデータ整合性(ASID特性)を必要としているからです.一方で,構造解析システムのような,ユーザが解析を実行した後に勝手に解析を行ってくれるシステムは最終的な結果が保証(BASE特性)されていれば問題ないので業務アプリのような高いデータ整合性は必要ありません.

そのため解析システムの場合は,大量のデータを扱えるNoSQLのほうが都合がよいです.構造解析ソフトであるNEDAは一般的な有限要素法と同じ仕組みで計算を行います.有限要素法は分割された要素ごとの自由度の数だけ計算するのですが,その計算量は対象となるモデルのメッシュの粗さによって異なります.常にメッシュが非常に粗いデータのみを取り扱うのであればRDBMSを使ってもパフォーマンスへの影響は少ないと思いますが,解析で扱うデータが常に粗いメッシュであることはありません.一般的なメッシュの粗さでは,自由度は数千から数万になります.RDBMSでこの規模のデータを関連付けるとパフォーマンス低下が発生してしまいます.

解析ソフトの中身にもよりますが,有限要素法で利用するようなデータにはドキュメント型のNoSQLが適しているでしょう.ドキュメント型のNoSQL DBはキーとデータで関連付けた格納方式を採用しています.データの部分はJSONやXMLで記述するため,データの取り扱いが非常に簡単で,解析対象のデータをひとつにまとめて保存することが可能です.有限要素法のような解析の場合は解析対象のメッシュデータ,解析結果のそれぞれがひとまとまりとなっていると非常に扱いやすいので,ドキュメント型のNoSQLの方がデータ加工,画面表示といった観点で優位性があります.

今回の記事では構造解析データを取り扱うのに適したDBについて考え,ドキュメント型NoSQLが適しているとお話ししました.しかし,前回の記事でもお話しした通り,DBには様々な種類があり,アプリケーションの要件ごとに適切なDBは異なります.DBの設計はアプリの根幹であるため,検討しているDBの公式ドキュメントをよく読み,適切なDBの選定と設計を行うことが何よりも重要です.

それではまた来週お会いしましょう.

小野 弘幸