デブサミ2011【17-C-1】Big Dataを扱うアーキテクチャの原則 萩原正義 氏 / 福井厚 氏

Developers Summit 2011 セッション【17-C-1】に関するつぶやきをまとめました。 セッションを紹介したタイムテーブル http://www.seshop.com/se/timetable/2
5
OMI Takekazu @takekazuomi

SQLにとってbtreeなんて実装の都合にすぎないから 宣言的だから関数型言語とも相性良いし

2011-02-17 10:33:00
Masakazu Matsushita @matsukaz

#devsumi SQLは関係代数(基本操作、追加操作)をベースにしている。NoSQLであっても抽象度を高めれば関係代数で同じ表現をすることができる。ただし、データモデルの特性に合わせた操作も大事(グラフ構造ならツリーを辿ったり)。

2011-02-17 10:33:02
かずき(Kazuki Ota) | Cloud Solution Architect at MS @okazuki

なぜかSLでのデータ駆動アプリの本がスライドにw #devsumi

2011-02-17 10:33:26
てるろー @terurou

抽象化すればどのデータモデルでもだいたいSQL的な操作が使える #devsami #devsami17C1

2011-02-17 10:33:46
てるろー @terurou

BigDataになればなるほどデータ先行で設計する必要がある #devsami #devsami17C1

2011-02-17 10:36:33
Masakazu Matsushita @matsukaz

#devsumi 【17-C-1】データ分析設計の実装アプローチは、データモデル設計を先行させ、ボトムアップで実装を行う。大規模システムだと多様な要求を全て聞いて安定したアーキテクチャを構築することは困難。

2011-02-17 10:38:31
かずき(Kazuki Ota) | Cloud Solution Architect at MS @okazuki

マスタデータとトランザクションデータというわけかたは、大量データを扱うときでも同じ #devsumi

2011-02-17 10:40:14
トビー @t0v1

大人だから基本的な話が多くてもがっかりしない

2011-02-17 10:41:04
Masakazu Matsushita @matsukaz

#devsumi 【17-C-1】論理レベルのデータ配置。マスタデータ、トランザクションデータ、参照系データのつながり(Txデータはバッチや非同期処理で参照系データに反映させるなど)を考える。

2011-02-17 10:41:52
トビー @t0v1

非定型プロセス、ロングトランザクション、ACIDトランザクション、漸次変更処理、バッチ処理。それぞれで、使用されるデータモデル、技術が異なる

2011-02-17 10:46:00
Masakazu Matsushita @matsukaz

#devsumi 【17-C-1】続いてデータモデルを考える。リアルタイム性の高いものから並べると、非定型プロセス、ロングトランザクション、ACIDトランザクション。また、システムの運用に必要な情報生成としては漸次変更処理(今クラウドで話題になりつつある)とバッチ処理。

2011-02-17 10:47:27
トビー @t0v1

スケーラビリティのために更新系、参照系をわける CQRS

2011-02-17 10:48:52
Fujio Kojima @Fujiwo

【17-C-1】 CQRS の説明。今のデータベースは更新と参照が一緒になっているためにスケールしない。 #devsumi

2011-02-17 10:49:29
トビー @t0v1

更新系OLTPは行単位、参照系(分析)は列志向。データのアクセス特性が異なる。

2011-02-17 10:50:08
トビー @t0v1

更新系への変更コマンドを非同期に参照系データに反応する

2011-02-17 10:50:39
てるろー @terurou

更新系は行指向、参照系は列指向 #devsumi #devsumi17C1

2011-02-17 10:50:48
Takuma SHIRAISHI @ts7i

CQRS の話。行指向の更新を列指向の参照に反映させる際のミスマッチ。 #devsumi 17-C-1

2011-02-17 10:51:40
Masakazu Matsushita @matsukaz

#devsumi 【17-C-1】リアルタイム操作のデータモデル(現状CQRS)。更新系(OLTP)は行指向、参照系(分析)は列指向。分けることで最適なアーキテクチャを構築出来ると言われている。同期をどう取るかがポイント。

2011-02-17 10:51:57
Fujio Kojima @Fujiwo

【17-C-1】 CQRS の説明。「更新は行指向。参照は列指向なので分けないとスケールしない。分けると更新直後に参照すると古いデータになることがある。即時一貫性は犠牲になる。#devsumi

2011-02-17 10:53:15
Masakazu Matsushita @matsukaz

#devsumi 【17-C-1】データ分割・配置の転送最適化。通常のスケールアウト設定だと、参照系はJOINしないようにしている。ただBig DataだとJOINが必要になる。ハッシュテーブルでの注意点は、小さい方をのデータを転送する、ハッシュテーブルはメモリ上で構築すること。

2011-02-17 10:56:53
てるろー @terurou

TODO 萩原さんのセッション資料の最後のページをあとで見直す #devsumi #devsumi17C1

2011-02-17 10:59:22
トビー @t0v1

データ分割、メモリ使用の効率化。転送効率化。並列化。負荷分散。の順に実施する。つまりI/O負荷を下げ、スケーラビリティを確保する

2011-02-17 10:59:31