Scribble at 2020-09-28 15:39:01 Last modified: unmodified

当社では一度も利用したことがない(唯一にして distinguished な開発者である僕が「ない」と言ってるのだから、ない)NoSQL は、これまで見てきた印象では、非 SQL のインターフェイスでデータベースにアクセスする手法というよりも、寧ろ relational な DBMS という設計が不要なデータベースと言った方が正しいと思うんだよね。だって、MongoDB のドキュメントでも分かるように、対応しているクエリの書式ではこう書くといった説明の仕方があって、実質的な INSERT 文とか実質的な SELECT 文なんてものが用意されている。そうやって、格納されているデータを組み合わせて抽出できるなら、実質的には SQL とやってることは同じだろう。寧ろ、NoSQL の例として頻繁に紹介されるビッグデータがそうであるように、つまるところデータを引き出してから解析の目的に合わせてカラムをあれこれと組み合わせたらいいという単純なストレージとして使われているのが実態ではないか。たとえば、ウェブ・サーバのアクセス・ログとかはそうだ。こういうデータは、取得したログの項目ごとに組み合わせてデータベースやテーブルに分別してストアする必要なんてないし、そんなことをしている暇もないのである。そして、必要に応じて後からロジックの方へ巨大な塊としてデータを渡せばいいという使い方なのではないか。

よって、確かにそういう用途であれば、これまでにも使い道は色々とあった。したがって、これからも用途としてはありうるので、もちろん有効なアーキテクチャだとは言える。ただし、思ったよりも特殊な使い方をするわけでもなければ、何か特別な手順を覚えないといけないというわけでもない。繰り返すが MongoDB なんて殆ど jQuery のプラグインみたいな使い方(db.inventory.find( { status: "D" } ))になっている。

  1. もっと新しいノート <<
  2. >> もっと古いノート

冒頭に戻る


※ 以下の SNS 共有ボタンは JavaScript を使っておらず、ボタンを押すまでは SNS サイトと全く通信しません。

Twitter Facebook