デブサミ2011【17-C-1】Big Dataを扱うアーキテクチャの原則 萩原正義 氏 / 福井厚 氏
#devsumi SQLは関係代数(基本操作、追加操作)をベースにしている。NoSQLであっても抽象度を高めれば関係代数で同じ表現をすることができる。ただし、データモデルの特性に合わせた操作も大事(グラフ構造ならツリーを辿ったり)。
2011-02-17 10:33:02なぜかSLでのデータ駆動アプリの本がスライドにw #devsumi
2011-02-17 10:33:26#devsumi 【17-C-1】データ分析設計の実装アプローチは、データモデル設計を先行させ、ボトムアップで実装を行う。大規模システムだと多様な要求を全て聞いて安定したアーキテクチャを構築することは困難。
2011-02-17 10:38:31マスタデータとトランザクションデータというわけかたは、大量データを扱うときでも同じ #devsumi
2011-02-17 10:40:14#devsumi 【17-C-1】論理レベルのデータ配置。マスタデータ、トランザクションデータ、参照系データのつながり(Txデータはバッチや非同期処理で参照系データに反映させるなど)を考える。
2011-02-17 10:41:52DDDとか、真面目にやってみようかなー #devsumi
2011-02-17 10:45:47非定型プロセス、ロングトランザクション、ACIDトランザクション、漸次変更処理、バッチ処理。それぞれで、使用されるデータモデル、技術が異なる
2011-02-17 10:46:00#devsumi 【17-C-1】続いてデータモデルを考える。リアルタイム性の高いものから並べると、非定型プロセス、ロングトランザクション、ACIDトランザクション。また、システムの運用に必要な情報生成としては漸次変更処理(今クラウドで話題になりつつある)とバッチ処理。
2011-02-17 10:47:27【17-C-1】 CQRS の説明。今のデータベースは更新と参照が一緒になっているためにスケールしない。 #devsumi
2011-02-17 10:49:29#devsumi 【17-C-1】リアルタイム操作のデータモデル(現状CQRS)。更新系(OLTP)は行指向、参照系(分析)は列指向。分けることで最適なアーキテクチャを構築出来ると言われている。同期をどう取るかがポイント。
2011-02-17 10:51:57【17-C-1】 CQRS の説明。「更新は行指向。参照は列指向なので分けないとスケールしない。分けると更新直後に参照すると古いデータになることがある。即時一貫性は犠牲になる。」 #devsumi
2011-02-17 10:53:15#devsumi 【17-C-1】データ分割・配置の転送最適化。通常のスケールアウト設定だと、参照系はJOINしないようにしている。ただBig DataだとJOINが必要になる。ハッシュテーブルでの注意点は、小さい方をのデータを転送する、ハッシュテーブルはメモリ上で構築すること。
2011-02-17 10:56:53