2017/07/06

ビッグデータ業界のキーパーソンにお話を伺う「ビッグデータマガジン・インタビュー」。第3回は、「NOSQLの基礎知識 (ビッグデータを活かすデータベース技術) 」を執筆されるなど、日本のNOSQL界を先導してらっしゃる、鶴見さまと、河野さまにお話をうかがってまいりました。
―――簡単に自己紹介をお願いします。
クラウディアン株式会社 鶴見利章(つるみ としあき)さま
クラウディアンという会社に勤務して10年になります。もともとはメッセージングサービスを開発して提供していました。メッセージングサービスとは、ドコモ、KDDI、ソフトバンクなど通信キャリアが提供していたMMS(マルチメディアメッセージングサービス)や、SMS(ショートメッセージサービス)のことです。
このサービスを運用していたら、どんどんデータサイズが大きくなって…、今の製品(Cloudian:クラウド・オブジェクトストレージ・ソフトウェア製品)を自社開発し提供することになっていきました。この過程で、今日のテーマになるであろう、NOSQLのDBを熟知することが必要になっていったのです。
クラウディアン株式会社 河野達也(かわの たつや)さま
私もクラウディアンに勤務していますが、入社は2011年です。
以前は大手金融会社に勤めていまして、その中でシステム開発を担当していました。いまは、研究開発をミッションとするエンジニアです。
前職時代の業務ではビッグデータ系の技術を積極的に採用することはありませんでしたが、とはいえ業務のデータ量がどんどん増える中で、純粋にエンジニアとしてNOSQLとかHadoopに興味をもっていったのです。そこで、個人的にオープンソースであるHBaseのコミュニティーに参加し、エバンジェリストとして活動を始めました。
―――まずは、NOSQLを非エンジニアむけに、やさしく解説していただけますか。
NOSQLとは、これまで主流だったリレーショナルデータベース管理システム (RDBMS) とは違った性質のデータベース管理システムのことを指します。RDBMSを操作する主要な言語が「SQL」だったので、「SQLではない」という意味で「No+SQL」と呼ばれたのです。
ただ、SQLは現代でも重要な言語ですし、良く活用されているので、SQLはいらなくなってしまう、という誤解を避けるという主旨で、現在では「No」ではなく「Not Only SQL」の略語であるという解釈が主流です。
NOSQLは、RDBMSを否定するものではなく、補完する位置づけになります。
―――NOSQLの特徴を教えてください。
NOSQLが優れている点として、
- 非構造化データが格納できる
- 水平スケーラビリティ
- 耐障害性が高い
といったことが挙げられます。
また、注意すべき点として、
- データの結合操作というプログラミングが必要で、トランザクション処理には不向き、すなわち、データの一意性を保てない。
- 新たな制約条件を勘案する必要がある。
例えば、高速性を重視してデータをメモリ上におく製品では、データ量の制限があったり、電源断によるデータ消失リスクがある。
といったことを覚えておくと良いでしょう。
―――このような特徴から、どんなシーンで活用するのが適しているのか?など、NOSQL事例を挙げてもう少し詳しく教えていただけますか。
<非構造化データが格納できる>
データの構造(どんな項目をどんな形式で格納するか?)をいったん決定したら、その後は頻繁に変更がない、という場合はRDBMSを活用すべきですが、それ以外の場合はNOSQLが適しています。
例えば、財務システムや給与システムなどの業務システムは、決まったルールで運用されるので、RDBMSが向いています。
一方で、何でもかんでもデータを貯めたい!という現場では、異質なものや、追加項目が理不尽に増えるので、NOSQLを活用するのが良いでしょう。例えば、インターネット上のメディアを運営する会社ならば、ユーザーの行動や書き込みから、どんなヒントが得られるか?が予測できないので、何でもかんでも貯めておきたい、と考え始めるのです。不正アクセスの検知など、想定外の行動を分析するためのデータは、最初から項目を設計することができません。
<水平スケーラビリティ>
NOSQLはデータ量が膨大になっても、サーバー台数を増やすことで、システム全体の容量を増やすことができます。ですので、より高性能・大容量なストレージ装置やサーバーを入れ替える(これを、スケールアップと言います)のではなく、安価なサーバーを追加する(これを、スケールアウトといいます)ことで対応が可能になります。また、データを入れ替えるのではなく、サーバーを追加してゆくだけなのでサービスを停止する必要もありません。そのため、NOSQLは、データの増加予測が難しい場合に適しています。
例えば、新しいソーシャルメディアを始めるときは、どの程度ユーザーに受け入れられるか?人気のサービスになるのか?といったことを予測することができません。一方で、もしも大当たりしたら(うれしいことなのですが…)データ量が爆発的に増えるのです。
大当たりを予定して大規模や大量のサーバーを最初から購入するのは無謀ですし、サーバー増加のためにサービスを停止することも許されないので、NOSQLが適しています。
もしもLINEがNOSQLを使っていなければ、サービスを停止することなく拡張することはできなかったでしょうね。
<耐障害性が高い>
NOSQLでは、データを複数のサーバーに複製することが一般的です。ですので、万が一ハードウエアに不具合が生じて該当するサーバーを除いても、別のどこかのサーバーにデータが残っているということになります。新たなサーバーを追加すれば、その複製データを使って処理の再開が可能になります。このように、極めて耐障害性が高いのです。
最近人気のWebサービスなどで、障害が起こってもデータが消失してしまった例が少ないのはこのためです。そもそも、障害が起こっていることすらユーザーが気づかないことも多いのです。
<トランザクションには不向き>
NOSQLはデータの一意性を保つのにはあまり向いていません。
RDBMSはデータの更新時、データの整合性を保つために、データの読み書きを一時的に制限する排他制御とよばれる同時実行制御の仕組みを厳密に持っています。しかし、NOSQLはこの考え方をゆるめています。
例えば、ある人が銀行でお金を振り込む際、「振り込んだ処理」と「振り込まれた処理」という二つの操作のうち、どちらかが失敗したら、振り込む前の状態に戻す必要があります。しかし、NOSQLでは、この二つの操作をひとつの操作ではなく、それぞれ別の操作とします。そのため、処理の途中で回線などに障害があれば「振り込みはしたのに、振り込まれていない」というような状態も一時的にありえます。
NOSQLは関連する二つの処理完了の確認を待たなくてよいため、データを大量に処理しないといけない場合には向いていますが、データの不整合が許されないシステムには向いていないのです。
このような業務の周辺で非構造化データを活用したい場合、例えば、ソーシャルメディアの書き込みを分析して株価を予測するような分析をしたり、金融取引と個人のソーシャルグラフとの相関から信用判断をしたり、購買情報から商品価格の予測をしたりといった現場では、NOSQLとRDBMSを組み合わせて活用しています。
とりあえず溜めておきたいデータをNOSQLに格納しておき、全データを分析した後、業務で活用すべきデータ項目・形式を定義してから、一部データをRDBMSに格納し直して活用する、といった具合です。
<eBayの組み合わせ例、右端が非構造化データ>
引用:eBayによる講演スライド:
http://www-conf.slac.stanford.edu/xldb2011/talks/xldb2011_tue_1055_TomFastner.pdf
<インメモリデータベースの注意点>
NOSQLの中でもインメモリ型のものは、トランザクションなどの仕組みを持っていることが多いです。メモリ上のデータは、書き込みも読み出しも高速なので、構造化されたデータに加工すれば、トランザクション処理も速くなり、商品データベースとひも付いた購買分析や株式のトレーディングなどに向いていますが、メモリは他のストレージに比べて高価なためデータ量の制約があるケースが多いです。また、電源が落ちてしまうとデータが消えてしまうというリスクがあります。
ですので、インメモリデータベースを活用する場合も、組み合わせの工夫が必要になります。全データは別のストレージに置き、必要な一部データだけをメモリに移し、メモリ上で処理されたデータを適時に別のストレージにバックアップするというような仕組みを必要とします。
後編では、日本のNOSQL界を先導してらっしゃるおふたりから、これからのNOSQLについていただいたメッセージをご紹介いたします。
――――――――――――――――――――――――――――――
クラウディアン株式会社
クラウディアンは、S3互換のクラウド・オブジェクトストレージを構築するパッケージソフトウェア製品のCloudianをはじめ、国内外の通信事業者、クラウドサービス事業者、エンタープライズ向け大規模分散型システムを開発提供してきています。
http://www.cloudian.jp/index.html
――――――――――――――――――――――――――――――
執筆者情報
杉浦 治(すぎうら・おさむ)
株式会社 AppGT 取締役
株式会社 学びラボ 代表取締役
一般財団法人ネットショップ能力認定機構 理事
2002年デジタルハリウッド株式会社取締役に就任。IT業界における経営スペシャリスト育成やネット事業者向け研修開発を行う。
2010年4月「ネットショップ能力認定機構」設立。ネットショップ運営能力を測る「ネットショップ検定」を主催。
2013年7月、プレステージ・インターナショナル(東証一部)より出資を受けて(株)AppGTを設立。コンタクトセンターに蓄積された顧客コミュニケーションデータを分析し、今後の主要な顧客接点となるスマートフォンの活用において、様々な研究や企画提案を行っている。
________________________________________