SlideShare a Scribd company logo
1 of 52
Download to read offline
並列データベースシステム
の概念と原理
産業技術総合研究所 情報技術研究部門
油井 誠 <m.yui@aist.go.jp>
2014/01/30 筑波大学情報システム特別講義D
講演趣旨


情報化社会の進展とともに、情報爆発、BigDATAなどが
バズワードになるほど、巨大なデータを利活用すること
が重要な課題となっている





教科書(少なくとも日本語)には載っていないような、
教科書レベルより一歩進んだ話題を扱う





DWHアプライアンスやHadoopなどを利用した大規模データ処理
は、企業でも今後一般化していく(と思われる)
大規模データ処理で核となる技術について紹介する

DBの話題は正規化、関数従属性、トランザクションだけではない
関係データベースの基礎を習得していることが望ましいが、知ら
なくても付いていける内容(のはず)です

近年の先進的かつ重要なデータ工学システムの概念およ
び技術を習得することを目的とする
2
講義内容
 序論 - 並列データベースの前に
 並列処理の基礎



並列処理のTerminology
並列計算機アーキテクチャ


並列データベースのアーキテクチャ

 データベース処理の並列化


結合処理の高速化






並列ハッシュ結合

並列ソート
パーティショニング手法
多重結合や計算機間のデータ交換で発生する問題

 MapReduceによる関係演算の並列処理
3
データベース開発の流れ


Coddの論文: 1970年






System RやIngres: 70年代中盤
Oracle, IBM DB2, Ingres: 80年代序盤
並列データベースの隆盛: 80年代後半




A Relational Model of Data for Large Shared Data Banks,
Communications of ACM

商用: Teradata, Tandem、アカデミア: Gamma, SDC

Google MapReduce発表: 2004年


並列データベースに再び脚光が集まる


DeWitt, Stonebraker: MapReduce: A Major Step Backwards
「ちっとも革新的な所がない。25年前に開発された技術を実装したもの
でしかない」 並列データベース技術の再訪、MapReduceも並列DBと同様の道を辿っている



10+スタートアップが開発/exit競争: 現在
Netezza => IBM, Greenplum => EMC, Vertica => HP, Aster Data =>
Teradata, DATAllegro => MS, Kickfire, ParAccel, Exasol etc.
4
並列/分散データベース


並列データベースシステム


データベースの関係演算を高速に実行することが目的





性能追求型のシステム




基本的に、単一のデータセンタ内での運用

トランザクション処理よりも複雑な分析問合せを処理をするのに
適する




結合(Join)処理の並列化
Sort処理の並列化

PostgreSQLやMySQL単体だとデータウェアハウスのベンチマーク標準TPC-H
で10GBも満足も処理できない

分散データベースシステム



地理的に離れ、ネットワークで接続された複数のデータベースを
束ねて処理することが目的
並列処理は主眼ではない
5
並行/並列/分散コンピューティング
Concurrent (並行)
Task1-a

Task1-b

Task1-b

Task1-a

timeline

アプリケーションからみて
論理的に並行に実行される
e.g., マルチタスクOSのスケジューリング

Parallel (並列)
Task1-a

Task1-b

Task1-a

Task1-b

物理的に並行に実行される
timeline

Distributed (分散)
Node 1

node 2

Node 3

ネットワークを介した複数の
計算機でタスクを処理すること
(同時実行とは直接関係はない)

6
並列処理の基礎


パイプライン並列(pipeline parallel)


依存関係のある演算を直列に並べて、各演算ステップを複数の
PEでconcurrentに処理






入力⇒出力⇒入力のデータをパイプライン的に流す

Dependent parallelとも言われる

独立並列(Independent parallel)

op2
データの依存関係

op3
op1

op5

Pipeline並列が可能

op4
7
並列処理の基礎


パイプライン並列(pipeline parallel)


依存関係のある演算を直列に並べて、各演算ステップを複数の
PEでconcurrentに処理






入力⇒出力⇒入力のデータをパイプライン的に流す

Dependent parallelとも言われる

独立並列(Independent parallel)



演算を並列にならべて、依存関係のない演算を複数のPEで
parallelに処理
データ並列やパーティション並列とも言われる
op2

データの依存関係

op3
op1

op4

op5

独立並列に実行しやすいようにデータを
分割(partitioning)しておくことが重要
8
なぜデータ並列が重要か
At 10 MB/s
1.2 days to scan

1 Terabyte

1,000並列

1.7 minutes to scan

1 Terabyte

10 MB/s

Materials taken from “Readings in Database Systems”, Joseph M. Hellerstein and Michael Stonebraker, eds.

9
計算環境の高性能化のアプローチ


スケールアップ





サーバの計算能力(メモリ、CPU)の増強
システム構築時のハードウェアによって限界が規定される

スケールアウト



サーバ台数を増やして計算能力の増強
その環境で動作するソフトウェアが規定

10
並列計算機のアーキテクチャ
 Shared-nothing(無共有型)






コモディティな計算機を利用可能
Scale-out構成がとれる
メモリアクセスとディスクバンド幅を最大限利用可能
データの同期処理が困難(管理ノード等が必要)
ローカリティを活かすことが重要


データ分割(partitioning)が重要

PE1

PE2

PE3

PE4

CPU

CPU

CPU

CPU

Mem

Mem

Mem

Mem

Disk

Disk

Disk

Disk

プロセッサ要素
(Processor Element)

ネットワーク
11
並列計算機のアーキテクチャ
 Shared-memory(共有メモリ)


単一のメモリ空間を共有できるのでプログラミングは容易
(メモリ上で同期処理をすればよい)




専用の相互接続網を利用するため高価
Scale-up構成によりスケーラビリティに制限がある



メモリバンド幅が相互接続網によって制限をうける


最大CPU接続数に制限がある

PE1

PE2

PE3

PE4

CPU

CPU

CPU

CPU

Mem Mem Mem

Mem

相互接続網

プロセッサ要素
(Processor Element)

(バス/クロスバースイッチ)

Mem

Disk

Disk

Disk

Disk
12
並列計算機のアーキテクチャ
 Shared-disk(共有ディスク)


ネットワーク帯域とストレージの性能依存






I/Oに関してScale-up型の構成となる

ファイバーチャネル等の高価な高速ネットワークが前提
共有ディスク上でのデータ同期をする
ディスクバンド幅がStorage Area Networkの性能で制限される
PE1

PE2

PE3

PE4

CPU

CPU

CPU

CPU

Mem

Mem

Mem

Mem

プロセッサ要素
(Processor Element)

高速ネットワーク

Storage
13
並列データベースの実行環境


Shared-nothing(無共有型)







Shared-memory(共有メモリ)





Hard to program / Cheap to build / Easy to scale-up
Teradata, Greenplum 等、現在の並列データベースで主流の構成
MapReduce等もこの構成
一般的に同期処理の少ないバッチ処理/分析タスクに適する
Easy to program / Expensive to build / Hard to scale-up
VMS cluster、MySQL cluster
MySQL clusterはN/Wを介したメッセージパッシングによりオンメモリテーブル
を共有( HWは無共有型だが、SWレベルで共有メモリ型)

Shared-disk(共有ディスク)





プログラミングのしやすさやスケールアップのしやすさは
Shared-nothingとshared-memoryの中間
Oracle RAC, DB2 pure scale
トランザクション処理をする既存DBの高性能化でよく利用される

現在のトレンドはShared-Nothing
(共有ディスクに移行したDB2のような例もあり、用途次第)
14
データベース処理の並列化
 Intra-query並列化


Intra-operator並列化


Scan, Sort, Join, Aggregation等を並列に処理

Inter-operator並列化


Join

問合せ木の中の並列性を抽出して並列実行




Sort

scan

scan

A

B

それぞれの演算が異なるサイトでconcurrentに動作
 Pipeline並列化

 Inter-query並列化


複数の独立したクエリを異なるProcessor Elementが
並列に実行する



複数のトランザクションの並列実行
多くのインターネットサービスプロバイダが行っている
Database shardingはこのタイプ
 e.g., IDの範囲ごとにDBを分けてトランザクションを分割
15
Nested-loop Join (入れ子ループ結合)
結合処理はデータベースで
もっとも重たい処理

SELECT C.name, C.email
FROM Customers C, Sales S
WHERE C.custId = S.custId
and S.amount > 1000
C.name, C.email

nested-loop join
projection

for each s
for each c
s.custid = c.custid

C.custId = S.custId
Eq-Join

外側テーブル
(N件)

内側テーブル
(M件)

Selection

Sales表

Customer表

3

7

1

4

S.amount > 1000

2

4

9

2

タプル読み書き回数から

時間計算量 O(N×M)

外1行毎に
全スキャン
16
Hash Join (ハッシュ結合)
 等結合の場合
R[i].attr=S[j].attr  h(R[i].attr) = h(S[j].attr)が成り立つ


ただし、h(x)はハッシュ関数
R
h(R)=0

h(R)=1

h(R)=2

h(R)=3

h(S)=0

S

h(S)=1

h(S)=2
h(S)=3

突き合せる領域が圧倒的に減る
17
Hash Join
Buildフェーズ





事前に内側テーブルのハッシュ表を作成

Probeフェーズ





外側テーブルを一行づつ読み込み、ハッシュ関数を適用したタ
プルと対応するハッシュバケット内のタプルを照合

内側テーブル

外側テーブル

(M件)

scan

Hash bucket

(N件)

3

2
7

build

probe

1

4

h(x)

h(x)

4

2

9

Hash表
二次記憶へのタプル読み書き回数から

時間計算量 O(N+M)

Pros:
一度ハッシュ表を作ってし
まえばメモリ内の検索なの
で高速
Cons:
ハッシュ表がメモリに収ま
らないと性能劣化、巨大
データに使えない

先頭から一列づつ
probe
18
Grace Hash Join (Kitsuregawa et al.)


ハッシュ表がメモリから溢れる場合の結合アルゴリズム


Splitフェーズ
build
R
h1(x)

R1

R2

Joinフェーズ



S

…
Rn



build
h1(x)

h2(x)
h1とh2でハッシュ関数が
異なってもよい

h2(x)

Hash表

…

N+Mの読み込み
N+Mの書き込み

N+Mの読み込み

probe

Ri

S2
Sn

ハッシュバケットを
メモリに乗切る量ごとに
ファイルに格納

ここは通常のHash Joinと同じ(build⇒probe)
この作業を各バケットごとに行う
並列化可能!

build

S1

Si
タプル読み書き回数から

時間計算量 O(3(N+M))
19
Hybrid Hash Join (Gamma by DeWitt et al.)


Grace Hash Joinのちょっとした改良


Splitフェーズ



それぞれ1つのバケットR1をメモリ上に保持しておく
h1(s)=1に関しては、R1を使って、この段階でprobeしてしまう

R1を使ってprobe
build
R
h1(x)

R1
R2

…

build
S

h1(x)

Rn

S2

…

Sn

(N + M)% BucketSize 分のディスク
読み書きを削減
タプル読み書き回数から

時間計算量 O( 3(N+M)-2(N+M)/BucketSize )
20
Parallel Grace Hash Join (Kitsuregawa et al.)
 Graceハッシュ結合をn台の計算機を利用して
並列に行うもの


Splitフェーズで計算機間にパーティショニング




結合キーで予めデータ分割されていればデータ交換不要

Joinフェーズは各計算機でローカルに並列実行
build
R
h1(x)

R1
R2

…
Rn

build

S

h1(x)

S1
S2

…

Sn

ハッシュ値の偏りに対処した分散バケット法も提案されている
Bucket spreading parallel hash: a new, robust, parallel hash join method for data skew in the super database
computer, Masaru Kitsuregawa, Yasushi Ogawa, In Proc. VLDB, 1990.
21
結合以外の関係演算の並列処理
 選択、射影演算


各PEで独立に演算

 集約演算



結合則と交換則を満たせば並列化可能
各PEでPartial aggregation(部分集約)した結果をまとめる








分割統治してO(logN)

Group-byによるグループ化演算




count(S) = S count(s(i))
sum(s) = S sum(s(i))
avg(S) = S sum(s(i)) / S count(s(i))

グループ化する属性値に基づいて並列ハッシュ結合と同様の手法
で計算

ソート演算


マージソートの並列化、部分奇数ソートの並列化
22
マージソートの並列化
 各runごとの2wayのマージを複数のPEで並列
に実行
問題点:処理が進むごとに並列性が落ちる


3,4

6,2

9,4

8,7

5,6

3,1

3,4

2,6

4,9

7,8

5,6

1,3

入力ファイルは適度にブロック分割

2
2

4,7
8,9

2,3
4,6

1,3
5,6

2,3
4,4
6,7
8,9

2

1,2
3,5
6

1,2
2,3
3,4
4,5
6,6
7,8
9

1st run

8並列

2nd run

4並列

3rd run

2並列

4th run
Runが進むごとに遊休PEが発生
23
部分奇数ソートの並列化
1.
2.

各PEで、ソートキーの上位数ビットのみを用いてnグ
ループに分割
分割されたグループを各PEに転送
バケットの偏りは問題
⇒バケットのbin packing問題をfirst fitアルゴリズムでとけばよい
(バケットを割り当て済み容量のもっとも小さいPEに埋める)

3.

各PEで独立並列にソート

0100011
1100101
1011101
0011111
…
00

PE2

PE1

11

01
0011111

PE3

1100101

0100011
00

10

0011111

11
1011101

1111011

1100101

01

1111010

0011011

0111101

0011010

0111010

10
1000011

24
部分奇数ソートの並列化
1.
2.

各PEで、ソートキーの上位数ビットのみを用いてnグ
ループに分割
分割されたグループを各PEに転送
バケットの偏りは問題
⇒バケットのbin packing問題をfirst fitアルゴリズムでとけばよい
(バケットを割り当て済み容量のもっとも小さいPEに埋める)

3.

各PEで独立並列にソート

0100011
1100101
1011101
0011111
…

PE1

PE2

PE3

00
01
Bucket spreading parallel hash: a new, robust, parallel hash join method
1100101
0011111
for data skew in 0100011
the super database computer, Masaru Kitsuregawa,
00
1111011
Yasushi Ogawa, In Proc. VLDB, 1990.
01

11

10

11

0011111

1111010

0111101

10
1011101
1100101
のbucket spreading法を応用するとこれらのフェーズを賢く実装出来るので興
0111010
1000011
0011010
味がある方は読んでみるとよい
0011011

25
データ分割


Range partitioning





Pros. 範囲問合せや結合が容易
Cons. データの偏りが発生

Round-robin partitioning



選択、射影演算ぐらいにしか使えない

i-p

q-z

a

Pros. データの偏りが少ない
 負荷の均等分散が可能
Cons. 等結合も範囲問合せも困難




a-h

z

a d

c f

b e

a

z

Hash partitioning


Pros. 比較的データの偏りが小さい




Pros. 等結合に適する




偏りを小さくする手法が確立されている

並列ハッシュ結合で高速実行できる

b d

a c

e

Hash(x)

a

z

Cons. 範囲問合せが困難

多くの商用並列DBでハッシュ分割+並列Graceが採用されている
パーティショニングはデータ並列への鍵
26
データ分割


Range partitioning





なおList partitioningというのもあり、Range partitioning q-z
i-p
a-h
Pros. 範囲問合せや結合が容易
は暗黙的なList partitioningといえる
Cons. データの偏りが発生

Round-robin partitioning



Pros. データの偏りが少ない
 負荷の均等分散が可能
Cons. 等結合も範囲問合せも困難




a

選択、射影演算ぐらいにしか使えない

a d

z

c f

b e

a

z

Hash partitioning


Pros. 比較的データの偏りが小さい




Pros. 等結合に適する




偏りを小さくする手法が確立されている

並列ハッシュ結合で高速実行できる

b d

a c

e

Hash(x)

a

z

Cons. 範囲問合せが困難

多くの商用並列DBでハッシュ分割+並列Graceが採用されている
パーティショニングはデータ並列への鍵
27
Partitioned Join


事前にデータ分割を行うパーティション並列を活かした結
合処理



並列ハッシュ結合のsplitフェーズを省略してローカルにJoin
事前データ分割に用いる属性の選択が鍵
Join on R.x = S.x
build
R
h1(x)

R1

S1

R2

S2

…

…

Rn

build
S

Sn

事前にデータ分割

h1(x)

事前にデータ分割

28
多重結合(Multi-way Joins)の問題
 タプルの再分散が発生してしまう
Select
R1.A, R3.B
From
R1, R2, R3
Where
R1.A = R2.A and R2.B = R3.B
Requires R2 partitioned
by attribute A

Join

Requires R2 partitioned
by attribute B

Conflict

Shuffle

R3

Join

R1

R2

29
Shuffleの問題点


スパコンとは異なり、汎用の計算機クラスタではラック
間の接続が細い(48Gbps未満)



バイセクションバンド幅(全ての計算ノードが全力で通信した
時にシステム全体で達成しうる通信性能)が低い
Many-to-one通信パターンで
tcpパケットの再送が発生
http://www.pdl.cmu.edu/Incast/

Root switch
Rack switch

10GbE

Rack switch

1GbE
DB

DB
Node

DB
Node

1 rack

DB
Node

DB
Node

DB
Node
Ethernet

Node

FAT-tree

(Tsubame2で採用)
30
Shuffleの問題点


スパコンとは異なり、汎用の計算機クラスタではラック
間の接続が細い(48Gbps未満)



バイセクションバンド幅(全ての計算ノードが全力で通信した
時にシステム全体で達成しうる通信性能)が低い
Many-to-one通信パターンで
tcpパケットの再送が発生
http://www.pdl.cmu.edu/Incast/

猛烈shuffleにはTCP incastという問題があり、商用並列DBではtcp以外の独自
ネットワークプロトコルが利用されている
Root switch

Rack switch

10GbE

Rack switch

1GbE
DB

DB
Node

DB
Node

1 rack

DB
Node

DB
Node

DB
Node
Ethernet

Node

FAT-tree

(Tsubame2で採用)
31
Shuffleの問題点


ネットワークでの競合以外にも送信側、受信側もそれぞ
れボトルネックに成りえる

At a sender

At a receiver

In the network

Facebookのある一週間の実績(188,000 MapReduce jobs、3000ノード)
では、全体の33%の時間がshuffleに費やされている Orchestra, Proc. SIGCOMM, 2011



Shuffle処理では、タプルのディスクからの読み出し、タ
プルごとのハッシュ値の計算といったコストもかかる
32
MapReduce


複雑な分散処理を単純なプログラミングモデルに包んで
抽象化



並列ハッシュ結合のSplitと同じことをshuffleでやっている
ユーザはmap/Reduce関数を書くだけ
map(k1, v1) => k2, v2
reduce(k2,list<v2>) => k3, v3
Map

Merge
Sort

reduce

Merge
Sort

reduce

Shuffle

Map

Map

Local disk
write/read

Local Disk
write/read
33
MapReduceの実行イメージ
Machine 1

<k1, v1>
<k2, v2>
<k3, v3>

<nk1, nv1>
<nk2, nv2>
<nk3, nv3>

Local
Map

<nk1, nv1>
<nk3, nv3>
<nk1, nv6>

Global
Shuffle

<nk1, nv1>
<nk1, nv6>
<nk3, nv3>

Local
Sort

<nk1, 2>
<nk3, 1>

Local
Reduce

Machine 2
<k4, v4>
<k5, v5>
<k6, v6>

<nk2, nv4>
<nk2, nv5>
<nk1, nv6>

<nk2, nv4>
<nk2, nv5>
<nk2, nv2>

<nk2, nv4>
<nk2, nv5>
<nk2, nv2>

<nk2, 3>

34
ワードカウントの実行例
入力ファイル: doc1
foo foo foo
bar bar buz

Map

Input

Output

Map
Map

DFS

Reduce

Reduce
shuffle
DFS

35
ワードカウント – map input
入力ファイル: doc1
foo foo foo
bar bar buz

map(k1, v1) => k2, v2
doc1: foo
doc1: foo

Map

Reduce

doc1: foo
doc1: bar

Input

Output

Map
doc1: bar
doc1: buz

Map
DFS

Reduce
shuffle
DFS

36
ワードカウント – map output
入力ファイル: doc1
foo foo foo
bar bar buz

map(k1, v1) => k2, v2
foo: 1
foo: 1

doc1: foo
doc1: foo

Map
doc1: foo
doc1: bar

Input

Output

Map
doc1: bar
doc1: buz

bar: 1
buz: 1

Map
DFS

Reduce

foo: 1
bar: 1

Reduce
shuffle
DFS

37
ワードカウント – reduce input
入力ファイル: doc1
foo foo foo
bar bar buz

reduce(k2,list<v2>) => k3, v3

foo: 1
foo: 1

bar: <1,1>
buz: <1>

Map

Reduce

foo: 1
bar: 1

Input

Output

Map
bar: 1
buz: 1

Map
DFS

foo: <1, 1, 1>

Reduce
shuffle
DFS

38
ワードカウント – reduce output
入力ファイル: doc1
foo foo foo
bar bar buz

reduce(k2,list<v2>) => k3, v3

bar: 2
buz: 1

bar: <1,1>
buz: <1>

Map

Input

Reduce

Output

Map
foo: <1, 1, 1>

Map
DFS

foo: 3

Reduce
shuffle
DFS

39
ワードカウントの実行例
入力ファイル: doc1

ワードカウント結果

foo foo foo
bar bar buz

bar: 2
buz: 1
foo: 3

bar: 2
buz: 1

Map

Input

Reduce

Output

Map
foo: 3

Map
DFS

Reduce
shuffle
DFS

40
MapReduce Internal
 基本的に次のフェーズから成る
 map, shuffle(copy+sort)、reduce

Tom White: Hadoop: The Definitive Guideより抜粋
41
MapReduce Internal
並列データベースだとmapからreduceへの入力はpushされるが、
 基本的に次のフェーズから成る
MapReduceは実際にはreducerがmapperの出力をpullするという
モデルになっている
 map, shuffle(copy+sort)、reduce

Tom White: Hadoop: The Definitive Guideより抜粋
42
MapReduceによる関係演算の実行
pv_users
pageid

age

1

25

2

25

1

32

2

25

pageid

age count

1

25

1

2

25

2

1

32

1

SELECT pageid, age, count(1)
FROM pv_users
GROUP BY pageid, age

43
GROUP BY in MapReduce
SELECT pageid, age, count(1) FROM pv_users GROUP BY pageid, age

pv_users
pageid

age

key

value

key

value

pagei

1

25

<1,25>

1

<1,25>

1

1

2

25

<2,25>

1

<1,32>

1

1

Map
pageid
1

age
32

key
<1,32>

value
1

Shuffle
Sort

Reduce
key
<2,25>

value
1

pagei
2

2

25

<2,25>

1

<2,25>

1

44
GROUP BY in MapReduce
SELECT pageid, age, count(1) FROM pv_users GROUP BY pageid, age

key

value

key

value

pageid

age

count

<1,25>

1

<1,25>

1

1

25

1

<2,25>

1

<1,32>

1

1

32

1

pageid

age

count

2

25

2

key
<1,32>
<2,25>

value
1
1

Shuffle
Sort

Reduce
key
<2,25>
<2,25>

value
1
1

45
Reduce-side Join

Map
task 1

テーブルR(a,b)をスキャン
各タプルごとにb属性を出力キーとして
hash(b)=iのReduceタスクにタプルを送信

Reduce
task i
R.b=S.b

Map
task 2

結合処理をreducer側で行う
テーブルS(b,c)をスキャン
各タプルごとにb属性を出力キーとして
hash(b)=iのReduceタスクにタプルを送信
46
Reduce-side Join Example
SELECT pv.pageid, u.age
FROM page_view pv JOIN user u ON (pv.userid = u.userid)

page_view
pageid

userid

time

userid

value

userid

value

1

111

9:08:01

111

<pageid,1>

111

<pageid,1>

2

111

9:08:13

111

<pageid,2>

111

<pageid,2>

1

222

9:08:14

222

<pageid,1>

111

<age,25>

Map

user

Shuffle
Sort

Reduce

userid

age

gender

userid

value

userid

value

111

25

female

111

<age,25>

222

<pageid,1>

222

32

male

222

<age,32>

222

useridが

<age,32>

47
Reduce-side Join Example
SELECT pv.pageid, u.age
FROM page_view pv JOIN user u ON (pv.userid = u.userid)

pv_users

userid

value

userid

value

111

<pageid,1>

111

<pageid,1>

pageid

age

111

<pageid,2>

111

<pageid,2>

1

25

222

<pageid,1>

111

<age,25>

2

25

Map

Shuffle
Sort

Reduce

userid

value

userid

value

111

<age,25>

222

<pageid,1>

222

<age,32>

222

<age,32>

useridが同じpageidとageの組合せを列挙

pageid

age

1

32

48
Map-side Join (Fragment and Replicate Strategy)



小さなテーブルを全ノードにコピーしてmap側で結合
処理を実行
問題点: データ量に対するスケーラビリティ



データを全ノード(タスク)にコピーしなければならない
複製するテーブルが巨大だったらローカルの結合処理でボトル
ネックとなる

Fragment (large table)

Map tasks:

Split 1

Duplicate
(small table)

Split 2

Split 3

Split 4

Duplicate
49
Multi-way Join by MapReduce
A

(A join B on A.k1=B.k1) as AB join C on AB.k1 = C.k2

k1

av

1

111

AB
k1

B

av

1

k1

bv

1

bv

ABC

111 222

MapReduce

222

k1

C

MapReduce

k2

bv

cv

111 222 333

cv

1

1

av

333

複数回のMapReduceイテレーションが必要
⇒Shuffleのオーバヘッドや分散ファイルシステム
への入出力が増える
50
Multi-way Join for M/R [Arfati & Ullman, EDBT 2010]


R.B=S.B and S.C = T.Cの結合のときに、hash(B)
とhash(C)をshuffleに用いる





Rには属性Cは存在しない⇒すべてのノードに複製を置く
MapReduceのイテレーションは一回で済む

タプルの一位性が崩れるので、事前のデータ分割には使
えない
R(A,B)

h(B,C) 0

1

S(B,C)

2

T(C,D)

3

4

X軸=hash(C)

5

0
1
2
3
4

Y軸=hash(B) 5
51
本日話した内容のまとめ
BigDataに対処するための並列データ処理技術を紹介した
 並列データベースの構成法



Shared-{Nothing|Disk|Memory}等のアーキテクチャ
並列ハッシュ結合、並列ソート







BigDataの技術的に最も困難な課題は巨大なデータ同士のN×Nの結合

データ分割(ハッシュ、範囲、Round-Robin)

多重結合(multi-way Join)やshuffleといった並列処理で
発生する問題 ⇒ データ並列、Partitioned Parallelの重要性
MapReduceを利用した関係演算の処理手法


Facebook Hive(Hadoop), Google BigQueryなどでは、SQLイ
ンタフェースをMapReduceの上に被している




関係データベースの機能(ビューや索引、統計情報の利用)を取り込みつつある

MapReduceでは並列DBと同様のコア技術が使われている


大きな違いはトランザクションのありなし、非構造データの扱いやすさ、構
造データを扱う上での効率、分散ファイルシステムを前提とするか否か
52

More Related Content

What's hot

Azure Synapse Analytics 専用SQL Poolベストプラクティス
Azure Synapse Analytics 専用SQL PoolベストプラクティスAzure Synapse Analytics 専用SQL Poolベストプラクティス
Azure Synapse Analytics 専用SQL PoolベストプラクティスMicrosoft
 
PostgreSQLアンチパターン
PostgreSQLアンチパターンPostgreSQLアンチパターン
PostgreSQLアンチパターンSoudai Sone
 
pg_bigmで全文検索するときに気を付けたい5つのポイント(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)
pg_bigmで全文検索するときに気を付けたい5つのポイント(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)pg_bigmで全文検索するときに気を付けたい5つのポイント(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)
pg_bigmで全文検索するときに気を付けたい5つのポイント(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)NTT DATA Technology & Innovation
 
SolrとElasticsearchを比べてみよう
SolrとElasticsearchを比べてみようSolrとElasticsearchを比べてみよう
SolrとElasticsearchを比べてみようShinsuke Sugaya
 
データ基盤に関わる問い合わせ対応を仕組みで解決する
データ基盤に関わる問い合わせ対応を仕組みで解決するデータ基盤に関わる問い合わせ対応を仕組みで解決する
データ基盤に関わる問い合わせ対応を仕組みで解決する株式会社MonotaRO Tech Team
 
トランザクション処理可能な分散DB 「YugabyteDB」入門(Open Source Conference 2022 Online/Fukuoka 発...
トランザクション処理可能な分散DB 「YugabyteDB」入門(Open Source Conference 2022 Online/Fukuoka 発...トランザクション処理可能な分散DB 「YugabyteDB」入門(Open Source Conference 2022 Online/Fukuoka 発...
トランザクション処理可能な分散DB 「YugabyteDB」入門(Open Source Conference 2022 Online/Fukuoka 発...NTT DATA Technology & Innovation
 
大量時空間データの処理 ~ 現状の課題と今後OSSが解決すべきこと。(Open Source Conference 2021 Online/Osaka講演資料)
大量時空間データの処理 ~ 現状の課題と今後OSSが解決すべきこと。(Open Source Conference 2021 Online/Osaka講演資料)大量時空間データの処理 ~ 現状の課題と今後OSSが解決すべきこと。(Open Source Conference 2021 Online/Osaka講演資料)
大量時空間データの処理 ~ 現状の課題と今後OSSが解決すべきこと。(Open Source Conference 2021 Online/Osaka講演資料)NTT DATA Technology & Innovation
 
YugabyteDBを使ってみよう - part2 -(NewSQL/分散SQLデータベースよろず勉強会 #2 発表資料)
YugabyteDBを使ってみよう - part2 -(NewSQL/分散SQLデータベースよろず勉強会 #2 発表資料)YugabyteDBを使ってみよう - part2 -(NewSQL/分散SQLデータベースよろず勉強会 #2 発表資料)
YugabyteDBを使ってみよう - part2 -(NewSQL/分散SQLデータベースよろず勉強会 #2 発表資料)NTT DATA Technology & Innovation
 
トランザクションをSerializableにする4つの方法
トランザクションをSerializableにする4つの方法トランザクションをSerializableにする4つの方法
トランザクションをSerializableにする4つの方法Kumazaki Hiroki
 
明日から始める! ソフトウェアのグリーン化(GSF MeetUp Tokyo 発表資料)
明日から始める! ソフトウェアのグリーン化(GSF MeetUp Tokyo 発表資料)明日から始める! ソフトウェアのグリーン化(GSF MeetUp Tokyo 発表資料)
明日から始める! ソフトウェアのグリーン化(GSF MeetUp Tokyo 発表資料)NTT DATA Technology & Innovation
 
ビッグデータ処理データベースの全体像と使い分け
2018年version
ビッグデータ処理データベースの全体像と使い分け
2018年versionビッグデータ処理データベースの全体像と使い分け
2018年version
ビッグデータ処理データベースの全体像と使い分け
2018年versionTetsutaro Watanabe
 
オンライン物理バックアップの排他モードと非排他モードについて ~PostgreSQLバージョン15対応版~(第34回PostgreSQLアンカンファレンス...
オンライン物理バックアップの排他モードと非排他モードについて ~PostgreSQLバージョン15対応版~(第34回PostgreSQLアンカンファレンス...オンライン物理バックアップの排他モードと非排他モードについて ~PostgreSQLバージョン15対応版~(第34回PostgreSQLアンカンファレンス...
オンライン物理バックアップの排他モードと非排他モードについて ~PostgreSQLバージョン15対応版~(第34回PostgreSQLアンカンファレンス...NTT DATA Technology & Innovation
 
YugabyteDBを使ってみよう(NewSQL/分散SQLデータベースよろず勉強会 #1 発表資料)
YugabyteDBを使ってみよう(NewSQL/分散SQLデータベースよろず勉強会 #1 発表資料)YugabyteDBを使ってみよう(NewSQL/分散SQLデータベースよろず勉強会 #1 発表資料)
YugabyteDBを使ってみよう(NewSQL/分散SQLデータベースよろず勉強会 #1 発表資料)NTT DATA Technology & Innovation
 
機械学習と機械発見:自然科学研究におけるデータ利活用の再考
機械学習と機械発見:自然科学研究におけるデータ利活用の再考機械学習と機械発見:自然科学研究におけるデータ利活用の再考
機械学習と機械発見:自然科学研究におけるデータ利活用の再考Ichigaku Takigawa
 
統計情報のリセットによるautovacuumへの影響について(第39回PostgreSQLアンカンファレンス@オンライン 発表資料)
統計情報のリセットによるautovacuumへの影響について(第39回PostgreSQLアンカンファレンス@オンライン 発表資料)統計情報のリセットによるautovacuumへの影響について(第39回PostgreSQLアンカンファレンス@オンライン 発表資料)
統計情報のリセットによるautovacuumへの影響について(第39回PostgreSQLアンカンファレンス@オンライン 発表資料)NTT DATA Technology & Innovation
 
データベース技術の羅針盤
データベース技術の羅針盤データベース技術の羅針盤
データベース技術の羅針盤Yoshinori Matsunobu
 
ビッグデータ処理データベースの全体像と使い分け
ビッグデータ処理データベースの全体像と使い分けビッグデータ処理データベースの全体像と使い分け
ビッグデータ処理データベースの全体像と使い分けRecruit Technologies
 

What's hot (20)

Azure Synapse Analytics 専用SQL Poolベストプラクティス
Azure Synapse Analytics 専用SQL PoolベストプラクティスAzure Synapse Analytics 専用SQL Poolベストプラクティス
Azure Synapse Analytics 専用SQL Poolベストプラクティス
 
PostgreSQLアンチパターン
PostgreSQLアンチパターンPostgreSQLアンチパターン
PostgreSQLアンチパターン
 
pg_bigmで全文検索するときに気を付けたい5つのポイント(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)
pg_bigmで全文検索するときに気を付けたい5つのポイント(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)pg_bigmで全文検索するときに気を付けたい5つのポイント(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)
pg_bigmで全文検索するときに気を付けたい5つのポイント(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)
 
SolrとElasticsearchを比べてみよう
SolrとElasticsearchを比べてみようSolrとElasticsearchを比べてみよう
SolrとElasticsearchを比べてみよう
 
Docker Compose 徹底解説
Docker Compose 徹底解説Docker Compose 徹底解説
Docker Compose 徹底解説
 
データ基盤に関わる問い合わせ対応を仕組みで解決する
データ基盤に関わる問い合わせ対応を仕組みで解決するデータ基盤に関わる問い合わせ対応を仕組みで解決する
データ基盤に関わる問い合わせ対応を仕組みで解決する
 
トランザクション処理可能な分散DB 「YugabyteDB」入門(Open Source Conference 2022 Online/Fukuoka 発...
トランザクション処理可能な分散DB 「YugabyteDB」入門(Open Source Conference 2022 Online/Fukuoka 発...トランザクション処理可能な分散DB 「YugabyteDB」入門(Open Source Conference 2022 Online/Fukuoka 発...
トランザクション処理可能な分散DB 「YugabyteDB」入門(Open Source Conference 2022 Online/Fukuoka 発...
 
MVSR Schedulerを作るための指針
MVSR Schedulerを作るための指針MVSR Schedulerを作るための指針
MVSR Schedulerを作るための指針
 
大量時空間データの処理 ~ 現状の課題と今後OSSが解決すべきこと。(Open Source Conference 2021 Online/Osaka講演資料)
大量時空間データの処理 ~ 現状の課題と今後OSSが解決すべきこと。(Open Source Conference 2021 Online/Osaka講演資料)大量時空間データの処理 ~ 現状の課題と今後OSSが解決すべきこと。(Open Source Conference 2021 Online/Osaka講演資料)
大量時空間データの処理 ~ 現状の課題と今後OSSが解決すべきこと。(Open Source Conference 2021 Online/Osaka講演資料)
 
YugabyteDBを使ってみよう - part2 -(NewSQL/分散SQLデータベースよろず勉強会 #2 発表資料)
YugabyteDBを使ってみよう - part2 -(NewSQL/分散SQLデータベースよろず勉強会 #2 発表資料)YugabyteDBを使ってみよう - part2 -(NewSQL/分散SQLデータベースよろず勉強会 #2 発表資料)
YugabyteDBを使ってみよう - part2 -(NewSQL/分散SQLデータベースよろず勉強会 #2 発表資料)
 
トランザクションをSerializableにする4つの方法
トランザクションをSerializableにする4つの方法トランザクションをSerializableにする4つの方法
トランザクションをSerializableにする4つの方法
 
Vacuum徹底解説
Vacuum徹底解説Vacuum徹底解説
Vacuum徹底解説
 
明日から始める! ソフトウェアのグリーン化(GSF MeetUp Tokyo 発表資料)
明日から始める! ソフトウェアのグリーン化(GSF MeetUp Tokyo 発表資料)明日から始める! ソフトウェアのグリーン化(GSF MeetUp Tokyo 発表資料)
明日から始める! ソフトウェアのグリーン化(GSF MeetUp Tokyo 発表資料)
 
ビッグデータ処理データベースの全体像と使い分け
2018年version
ビッグデータ処理データベースの全体像と使い分け
2018年versionビッグデータ処理データベースの全体像と使い分け
2018年version
ビッグデータ処理データベースの全体像と使い分け
2018年version
 
オンライン物理バックアップの排他モードと非排他モードについて ~PostgreSQLバージョン15対応版~(第34回PostgreSQLアンカンファレンス...
オンライン物理バックアップの排他モードと非排他モードについて ~PostgreSQLバージョン15対応版~(第34回PostgreSQLアンカンファレンス...オンライン物理バックアップの排他モードと非排他モードについて ~PostgreSQLバージョン15対応版~(第34回PostgreSQLアンカンファレンス...
オンライン物理バックアップの排他モードと非排他モードについて ~PostgreSQLバージョン15対応版~(第34回PostgreSQLアンカンファレンス...
 
YugabyteDBを使ってみよう(NewSQL/分散SQLデータベースよろず勉強会 #1 発表資料)
YugabyteDBを使ってみよう(NewSQL/分散SQLデータベースよろず勉強会 #1 発表資料)YugabyteDBを使ってみよう(NewSQL/分散SQLデータベースよろず勉強会 #1 発表資料)
YugabyteDBを使ってみよう(NewSQL/分散SQLデータベースよろず勉強会 #1 発表資料)
 
機械学習と機械発見:自然科学研究におけるデータ利活用の再考
機械学習と機械発見:自然科学研究におけるデータ利活用の再考機械学習と機械発見:自然科学研究におけるデータ利活用の再考
機械学習と機械発見:自然科学研究におけるデータ利活用の再考
 
統計情報のリセットによるautovacuumへの影響について(第39回PostgreSQLアンカンファレンス@オンライン 発表資料)
統計情報のリセットによるautovacuumへの影響について(第39回PostgreSQLアンカンファレンス@オンライン 発表資料)統計情報のリセットによるautovacuumへの影響について(第39回PostgreSQLアンカンファレンス@オンライン 発表資料)
統計情報のリセットによるautovacuumへの影響について(第39回PostgreSQLアンカンファレンス@オンライン 発表資料)
 
データベース技術の羅針盤
データベース技術の羅針盤データベース技術の羅針盤
データベース技術の羅針盤
 
ビッグデータ処理データベースの全体像と使い分け
ビッグデータ処理データベースの全体像と使い分けビッグデータ処理データベースの全体像と使い分け
ビッグデータ処理データベースの全体像と使い分け
 

Viewers also liked

Writing Yarn Applications Hadoop Summit 2012
Writing Yarn Applications Hadoop Summit 2012Writing Yarn Applications Hadoop Summit 2012
Writing Yarn Applications Hadoop Summit 2012Hortonworks
 
Future of HCatalog - Hadoop Summit 2012
Future of HCatalog - Hadoop Summit 2012Future of HCatalog - Hadoop Summit 2012
Future of HCatalog - Hadoop Summit 2012Hortonworks
 
Data analytics with hadoop hive on multiple data centers
Data analytics with hadoop hive on multiple data centersData analytics with hadoop hive on multiple data centers
Data analytics with hadoop hive on multiple data centersHirotaka Niisato
 
PostgreSQLの実行計画を読み解こう(OSC2015 Spring/Tokyo)
PostgreSQLの実行計画を読み解こう(OSC2015 Spring/Tokyo)PostgreSQLの実行計画を読み解こう(OSC2015 Spring/Tokyo)
PostgreSQLの実行計画を読み解こう(OSC2015 Spring/Tokyo)Satoshi Yamada
 
20120830 DBリファクタリング読書会第三回
20120830 DBリファクタリング読書会第三回20120830 DBリファクタリング読書会第三回
20120830 DBリファクタリング読書会第三回都元ダイスケ Miyamoto
 
Cloudera Manager4.0とNameNode-HAセミナー資料
Cloudera Manager4.0とNameNode-HAセミナー資料Cloudera Manager4.0とNameNode-HAセミナー資料
Cloudera Manager4.0とNameNode-HAセミナー資料Cloudera Japan
 
Lars George HBase Seminar with O'REILLY Oct.12 2012
Lars George HBase Seminar with O'REILLY Oct.12 2012Lars George HBase Seminar with O'REILLY Oct.12 2012
Lars George HBase Seminar with O'REILLY Oct.12 2012Cloudera Japan
 
【17-E-3】 オンライン機械学習で実現する大規模データ処理
【17-E-3】 オンライン機械学習で実現する大規模データ処理【17-E-3】 オンライン機械学習で実現する大規模データ処理
【17-E-3】 オンライン機械学習で実現する大規模データ処理Developers Summit
 
あなたの知らないPostgreSQL監視の世界
あなたの知らないPostgreSQL監視の世界あなたの知らないPostgreSQL監視の世界
あなたの知らないPostgreSQL監視の世界Yoshinori Nakanishi
 
Hadoop Summit 2012 - Hadoop and Vertica: The Data Analytics Platform at Twitter
Hadoop Summit 2012 - Hadoop and Vertica: The Data Analytics Platform at TwitterHadoop Summit 2012 - Hadoop and Vertica: The Data Analytics Platform at Twitter
Hadoop Summit 2012 - Hadoop and Vertica: The Data Analytics Platform at TwitterBill Graham
 
【SQLインジェクション対策】徳丸先生に怒られない、動的SQLの安全な組み立て方
【SQLインジェクション対策】徳丸先生に怒られない、動的SQLの安全な組み立て方【SQLインジェクション対策】徳丸先生に怒られない、動的SQLの安全な組み立て方
【SQLインジェクション対策】徳丸先生に怒られない、動的SQLの安全な組み立て方kwatch
 
SQLチューニング入門 入門編
SQLチューニング入門 入門編SQLチューニング入門 入門編
SQLチューニング入門 入門編Miki Shimogai
 
Datalogからsqlへの トランスレータを書いた話
Datalogからsqlへの トランスレータを書いた話Datalogからsqlへの トランスレータを書いた話
Datalogからsqlへの トランスレータを書いた話Yuki Takeichi
 
PostgreSQLクエリ実行の基礎知識 ~Explainを読み解こう~
PostgreSQLクエリ実行の基礎知識 ~Explainを読み解こう~PostgreSQLクエリ実行の基礎知識 ~Explainを読み解こう~
PostgreSQLクエリ実行の基礎知識 ~Explainを読み解こう~Miki Shimogai
 

Viewers also liked (16)

Database smells
Database smellsDatabase smells
Database smells
 
Writing Yarn Applications Hadoop Summit 2012
Writing Yarn Applications Hadoop Summit 2012Writing Yarn Applications Hadoop Summit 2012
Writing Yarn Applications Hadoop Summit 2012
 
Future of HCatalog - Hadoop Summit 2012
Future of HCatalog - Hadoop Summit 2012Future of HCatalog - Hadoop Summit 2012
Future of HCatalog - Hadoop Summit 2012
 
Data analytics with hadoop hive on multiple data centers
Data analytics with hadoop hive on multiple data centersData analytics with hadoop hive on multiple data centers
Data analytics with hadoop hive on multiple data centers
 
PostgreSQLの実行計画を読み解こう(OSC2015 Spring/Tokyo)
PostgreSQLの実行計画を読み解こう(OSC2015 Spring/Tokyo)PostgreSQLの実行計画を読み解こう(OSC2015 Spring/Tokyo)
PostgreSQLの実行計画を読み解こう(OSC2015 Spring/Tokyo)
 
20120830 DBリファクタリング読書会第三回
20120830 DBリファクタリング読書会第三回20120830 DBリファクタリング読書会第三回
20120830 DBリファクタリング読書会第三回
 
Cloudera Manager4.0とNameNode-HAセミナー資料
Cloudera Manager4.0とNameNode-HAセミナー資料Cloudera Manager4.0とNameNode-HAセミナー資料
Cloudera Manager4.0とNameNode-HAセミナー資料
 
Lars George HBase Seminar with O'REILLY Oct.12 2012
Lars George HBase Seminar with O'REILLY Oct.12 2012Lars George HBase Seminar with O'REILLY Oct.12 2012
Lars George HBase Seminar with O'REILLY Oct.12 2012
 
【17-E-3】 オンライン機械学習で実現する大規模データ処理
【17-E-3】 オンライン機械学習で実現する大規模データ処理【17-E-3】 オンライン機械学習で実現する大規模データ処理
【17-E-3】 オンライン機械学習で実現する大規模データ処理
 
あなたの知らないPostgreSQL監視の世界
あなたの知らないPostgreSQL監視の世界あなたの知らないPostgreSQL監視の世界
あなたの知らないPostgreSQL監視の世界
 
Hadoop Summit 2012 - Hadoop and Vertica: The Data Analytics Platform at Twitter
Hadoop Summit 2012 - Hadoop and Vertica: The Data Analytics Platform at TwitterHadoop Summit 2012 - Hadoop and Vertica: The Data Analytics Platform at Twitter
Hadoop Summit 2012 - Hadoop and Vertica: The Data Analytics Platform at Twitter
 
【SQLインジェクション対策】徳丸先生に怒られない、動的SQLの安全な組み立て方
【SQLインジェクション対策】徳丸先生に怒られない、動的SQLの安全な組み立て方【SQLインジェクション対策】徳丸先生に怒られない、動的SQLの安全な組み立て方
【SQLインジェクション対策】徳丸先生に怒られない、動的SQLの安全な組み立て方
 
SQLチューニング入門 入門編
SQLチューニング入門 入門編SQLチューニング入門 入門編
SQLチューニング入門 入門編
 
ならば(その弐)
ならば(その弐)ならば(その弐)
ならば(その弐)
 
Datalogからsqlへの トランスレータを書いた話
Datalogからsqlへの トランスレータを書いた話Datalogからsqlへの トランスレータを書いた話
Datalogからsqlへの トランスレータを書いた話
 
PostgreSQLクエリ実行の基礎知識 ~Explainを読み解こう~
PostgreSQLクエリ実行の基礎知識 ~Explainを読み解こう~PostgreSQLクエリ実行の基礎知識 ~Explainを読み解こう~
PostgreSQLクエリ実行の基礎知識 ~Explainを読み解こう~
 

Similar to 並列データベースシステムの概念と原理

Hadoop / Elastic MapReduceつまみ食い
Hadoop / Elastic MapReduceつまみ食いHadoop / Elastic MapReduceつまみ食い
Hadoop / Elastic MapReduceつまみ食いRyuji Tamagawa
 
Hadoop for programmer
Hadoop for programmerHadoop for programmer
Hadoop for programmerSho Shimauchi
 
40分でわかるHadoop徹底入門 (Cloudera World Tokyo 2014 講演資料)
40分でわかるHadoop徹底入門 (Cloudera World Tokyo 2014 講演資料) 40分でわかるHadoop徹底入門 (Cloudera World Tokyo 2014 講演資料)
40分でわかるHadoop徹底入門 (Cloudera World Tokyo 2014 講演資料) hamaken
 
sparksql-hive-bench-by-nec-hwx-at-hcj16
sparksql-hive-bench-by-nec-hwx-at-hcj16sparksql-hive-bench-by-nec-hwx-at-hcj16
sparksql-hive-bench-by-nec-hwx-at-hcj16Yifeng Jiang
 
Rあんなときこんなとき(tokyo r#12)
Rあんなときこんなとき(tokyo r#12)Rあんなときこんなとき(tokyo r#12)
Rあんなときこんなとき(tokyo r#12)Shintaro Fukushima
 
企業等に蓄積されたデータを分析するための処理機能の提案
企業等に蓄積されたデータを分析するための処理機能の提案企業等に蓄積されたデータを分析するための処理機能の提案
企業等に蓄積されたデータを分析するための処理機能の提案Toshiyuki Shimono
 
ビックデータ処理技術の全体像とリクルートでの使い分け
ビックデータ処理技術の全体像とリクルートでの使い分けビックデータ処理技術の全体像とリクルートでの使い分け
ビックデータ処理技術の全体像とリクルートでの使い分けTetsutaro Watanabe
 
データセンター視点で考えてみるHadoop
データセンター視点で考えてみるHadoopデータセンター視点で考えてみるHadoop
データセンター視点で考えてみるHadoopAtsushi Nakada
 
【17-E-3】Hadoop:黄色い象使いへの道 ~「Hadoop徹底入門」より~
【17-E-3】Hadoop:黄色い象使いへの道 ~「Hadoop徹底入門」より~【17-E-3】Hadoop:黄色い象使いへの道 ~「Hadoop徹底入門」より~
【17-E-3】Hadoop:黄色い象使いへの道 ~「Hadoop徹底入門」より~Developers Summit
 
リクルートテクノロジーズ における EMR の活用とコスト圧縮方法
リクルートテクノロジーズ における EMR の活用とコスト圧縮方法リクルートテクノロジーズ における EMR の活用とコスト圧縮方法
リクルートテクノロジーズ における EMR の活用とコスト圧縮方法Tetsutaro Watanabe
 
ビッグデータ処理データベースの全体像と使い分け - 2017年 Version -
ビッグデータ処理データベースの全体像と使い分け - 2017年 Version - ビッグデータ処理データベースの全体像と使い分け - 2017年 Version -
ビッグデータ処理データベースの全体像と使い分け - 2017年 Version - Tetsutaro Watanabe
 
MapReduceによる大規模データを利用した機械学習
MapReduceによる大規模データを利用した機械学習MapReduceによる大規模データを利用した機械学習
MapReduceによる大規模データを利用した機械学習Preferred Networks
 
【講演資料】ビッグデータ時代の経営を支えるビジネスアナリティクスソリューション
【講演資料】ビッグデータ時代の経営を支えるビジネスアナリティクスソリューション【講演資料】ビッグデータ時代の経営を支えるビジネスアナリティクスソリューション
【講演資料】ビッグデータ時代の経営を支えるビジネスアナリティクスソリューションDell TechCenter Japan
 
BPStudy32 CouchDB 再入門
BPStudy32 CouchDB 再入門BPStudy32 CouchDB 再入門
BPStudy32 CouchDB 再入門Yohei Sasaki
 
ビッグデータ活用支援フォーラム
ビッグデータ活用支援フォーラムビッグデータ活用支援フォーラム
ビッグデータ活用支援フォーラムRecruit Technologies
 
リクルート式Hadoopの使い方
リクルート式Hadoopの使い方リクルート式Hadoopの使い方
リクルート式Hadoopの使い方Recruit Technologies
 
Googleの基盤クローン Hadoopについて
Googleの基盤クローン HadoopについてGoogleの基盤クローン Hadoopについて
Googleの基盤クローン HadoopについてKazuki Ohta
 

Similar to 並列データベースシステムの概念と原理 (20)

Hadoop / Elastic MapReduceつまみ食い
Hadoop / Elastic MapReduceつまみ食いHadoop / Elastic MapReduceつまみ食い
Hadoop / Elastic MapReduceつまみ食い
 
Hadoop for programmer
Hadoop for programmerHadoop for programmer
Hadoop for programmer
 
40分でわかるHadoop徹底入門 (Cloudera World Tokyo 2014 講演資料)
40分でわかるHadoop徹底入門 (Cloudera World Tokyo 2014 講演資料) 40分でわかるHadoop徹底入門 (Cloudera World Tokyo 2014 講演資料)
40分でわかるHadoop徹底入門 (Cloudera World Tokyo 2014 講演資料)
 
sparksql-hive-bench-by-nec-hwx-at-hcj16
sparksql-hive-bench-by-nec-hwx-at-hcj16sparksql-hive-bench-by-nec-hwx-at-hcj16
sparksql-hive-bench-by-nec-hwx-at-hcj16
 
Rあんなときこんなとき(tokyo r#12)
Rあんなときこんなとき(tokyo r#12)Rあんなときこんなとき(tokyo r#12)
Rあんなときこんなとき(tokyo r#12)
 
企業等に蓄積されたデータを分析するための処理機能の提案
企業等に蓄積されたデータを分析するための処理機能の提案企業等に蓄積されたデータを分析するための処理機能の提案
企業等に蓄積されたデータを分析するための処理機能の提案
 
ビックデータ処理技術の全体像とリクルートでの使い分け
ビックデータ処理技術の全体像とリクルートでの使い分けビックデータ処理技術の全体像とリクルートでの使い分け
ビックデータ処理技術の全体像とリクルートでの使い分け
 
データセンター視点で考えてみるHadoop
データセンター視点で考えてみるHadoopデータセンター視点で考えてみるHadoop
データセンター視点で考えてみるHadoop
 
【17-E-3】Hadoop:黄色い象使いへの道 ~「Hadoop徹底入門」より~
【17-E-3】Hadoop:黄色い象使いへの道 ~「Hadoop徹底入門」より~【17-E-3】Hadoop:黄色い象使いへの道 ~「Hadoop徹底入門」より~
【17-E-3】Hadoop:黄色い象使いへの道 ~「Hadoop徹底入門」より~
 
リクルートテクノロジーズ における EMR の活用とコスト圧縮方法
リクルートテクノロジーズ における EMR の活用とコスト圧縮方法リクルートテクノロジーズ における EMR の活用とコスト圧縮方法
リクルートテクノロジーズ における EMR の活用とコスト圧縮方法
 
ビッグデータ処理データベースの全体像と使い分け - 2017年 Version -
ビッグデータ処理データベースの全体像と使い分け - 2017年 Version - ビッグデータ処理データベースの全体像と使い分け - 2017年 Version -
ビッグデータ処理データベースの全体像と使い分け - 2017年 Version -
 
Hash Tree
Hash TreeHash Tree
Hash Tree
 
MapReduceによる大規模データを利用した機械学習
MapReduceによる大規模データを利用した機械学習MapReduceによる大規模データを利用した機械学習
MapReduceによる大規模データを利用した機械学習
 
MapReduceによる大規模データ処理 at Yahoo! JAPAN
MapReduceによる大規模データ処理 at Yahoo! JAPANMapReduceによる大規模データ処理 at Yahoo! JAPAN
MapReduceによる大規模データ処理 at Yahoo! JAPAN
 
【講演資料】ビッグデータ時代の経営を支えるビジネスアナリティクスソリューション
【講演資料】ビッグデータ時代の経営を支えるビジネスアナリティクスソリューション【講演資料】ビッグデータ時代の経営を支えるビジネスアナリティクスソリューション
【講演資料】ビッグデータ時代の経営を支えるビジネスアナリティクスソリューション
 
BPStudy32 CouchDB 再入門
BPStudy32 CouchDB 再入門BPStudy32 CouchDB 再入門
BPStudy32 CouchDB 再入門
 
ビッグデータ活用支援フォーラム
ビッグデータ活用支援フォーラムビッグデータ活用支援フォーラム
ビッグデータ活用支援フォーラム
 
リクルート式Hadoopの使い方
リクルート式Hadoopの使い方リクルート式Hadoopの使い方
リクルート式Hadoopの使い方
 
MapReduce/YARNの仕組みを知る
MapReduce/YARNの仕組みを知るMapReduce/YARNの仕組みを知る
MapReduce/YARNの仕組みを知る
 
Googleの基盤クローン Hadoopについて
Googleの基盤クローン HadoopについてGoogleの基盤クローン Hadoopについて
Googleの基盤クローン Hadoopについて
 

More from Makoto Yui

Apache Hivemall and my OSS experience
Apache Hivemall and my OSS experienceApache Hivemall and my OSS experience
Apache Hivemall and my OSS experienceMakoto Yui
 
Introduction to Apache Hivemall v0.5.2 and v0.6
Introduction to Apache Hivemall v0.5.2 and v0.6Introduction to Apache Hivemall v0.5.2 and v0.6
Introduction to Apache Hivemall v0.5.2 and v0.6Makoto Yui
 
Introduction to Apache Hivemall v0.5.0
Introduction to Apache Hivemall v0.5.0Introduction to Apache Hivemall v0.5.0
Introduction to Apache Hivemall v0.5.0Makoto Yui
 
Idea behind Apache Hivemall
Idea behind Apache HivemallIdea behind Apache Hivemall
Idea behind Apache HivemallMakoto Yui
 
Introduction to Apache Hivemall v0.5.0
Introduction to Apache Hivemall v0.5.0Introduction to Apache Hivemall v0.5.0
Introduction to Apache Hivemall v0.5.0Makoto Yui
 
What's new in Hivemall v0.5.0
What's new in Hivemall v0.5.0What's new in Hivemall v0.5.0
What's new in Hivemall v0.5.0Makoto Yui
 
What's new in Apache Hivemall v0.5.0
What's new in Apache Hivemall v0.5.0What's new in Apache Hivemall v0.5.0
What's new in Apache Hivemall v0.5.0Makoto Yui
 
Revisiting b+-trees
Revisiting b+-treesRevisiting b+-trees
Revisiting b+-treesMakoto Yui
 
Incubating Apache Hivemall
Incubating Apache HivemallIncubating Apache Hivemall
Incubating Apache HivemallMakoto Yui
 
Hivemall meets Digdag @Hackertackle 2018-02-17
Hivemall meets Digdag @Hackertackle 2018-02-17Hivemall meets Digdag @Hackertackle 2018-02-17
Hivemall meets Digdag @Hackertackle 2018-02-17Makoto Yui
 
Apache Hivemall @ Apache BigData '17, Miami
Apache Hivemall @ Apache BigData '17, MiamiApache Hivemall @ Apache BigData '17, Miami
Apache Hivemall @ Apache BigData '17, MiamiMakoto Yui
 
機械学習のデータ並列処理@第7回BDI研究会
機械学習のデータ並列処理@第7回BDI研究会機械学習のデータ並列処理@第7回BDI研究会
機械学習のデータ並列処理@第7回BDI研究会Makoto Yui
 
Podling Hivemall in the Apache Incubator
Podling Hivemall in the Apache IncubatorPodling Hivemall in the Apache Incubator
Podling Hivemall in the Apache IncubatorMakoto Yui
 
Dots20161029 myui
Dots20161029 myuiDots20161029 myui
Dots20161029 myuiMakoto Yui
 
Hadoopsummit16 myui
Hadoopsummit16 myuiHadoopsummit16 myui
Hadoopsummit16 myuiMakoto Yui
 
HadoopCon'16, Taipei @myui
HadoopCon'16, Taipei @myuiHadoopCon'16, Taipei @myui
HadoopCon'16, Taipei @myuiMakoto Yui
 
3rd Hivemall meetup
3rd Hivemall meetup3rd Hivemall meetup
3rd Hivemall meetupMakoto Yui
 
Recommendation 101 using Hivemall
Recommendation 101 using HivemallRecommendation 101 using Hivemall
Recommendation 101 using HivemallMakoto Yui
 
Hivemall dbtechshowcase 20160713 #dbts2016
Hivemall dbtechshowcase 20160713 #dbts2016Hivemall dbtechshowcase 20160713 #dbts2016
Hivemall dbtechshowcase 20160713 #dbts2016Makoto Yui
 
Introduction to Hivemall
Introduction to HivemallIntroduction to Hivemall
Introduction to HivemallMakoto Yui
 

More from Makoto Yui (20)

Apache Hivemall and my OSS experience
Apache Hivemall and my OSS experienceApache Hivemall and my OSS experience
Apache Hivemall and my OSS experience
 
Introduction to Apache Hivemall v0.5.2 and v0.6
Introduction to Apache Hivemall v0.5.2 and v0.6Introduction to Apache Hivemall v0.5.2 and v0.6
Introduction to Apache Hivemall v0.5.2 and v0.6
 
Introduction to Apache Hivemall v0.5.0
Introduction to Apache Hivemall v0.5.0Introduction to Apache Hivemall v0.5.0
Introduction to Apache Hivemall v0.5.0
 
Idea behind Apache Hivemall
Idea behind Apache HivemallIdea behind Apache Hivemall
Idea behind Apache Hivemall
 
Introduction to Apache Hivemall v0.5.0
Introduction to Apache Hivemall v0.5.0Introduction to Apache Hivemall v0.5.0
Introduction to Apache Hivemall v0.5.0
 
What's new in Hivemall v0.5.0
What's new in Hivemall v0.5.0What's new in Hivemall v0.5.0
What's new in Hivemall v0.5.0
 
What's new in Apache Hivemall v0.5.0
What's new in Apache Hivemall v0.5.0What's new in Apache Hivemall v0.5.0
What's new in Apache Hivemall v0.5.0
 
Revisiting b+-trees
Revisiting b+-treesRevisiting b+-trees
Revisiting b+-trees
 
Incubating Apache Hivemall
Incubating Apache HivemallIncubating Apache Hivemall
Incubating Apache Hivemall
 
Hivemall meets Digdag @Hackertackle 2018-02-17
Hivemall meets Digdag @Hackertackle 2018-02-17Hivemall meets Digdag @Hackertackle 2018-02-17
Hivemall meets Digdag @Hackertackle 2018-02-17
 
Apache Hivemall @ Apache BigData '17, Miami
Apache Hivemall @ Apache BigData '17, MiamiApache Hivemall @ Apache BigData '17, Miami
Apache Hivemall @ Apache BigData '17, Miami
 
機械学習のデータ並列処理@第7回BDI研究会
機械学習のデータ並列処理@第7回BDI研究会機械学習のデータ並列処理@第7回BDI研究会
機械学習のデータ並列処理@第7回BDI研究会
 
Podling Hivemall in the Apache Incubator
Podling Hivemall in the Apache IncubatorPodling Hivemall in the Apache Incubator
Podling Hivemall in the Apache Incubator
 
Dots20161029 myui
Dots20161029 myuiDots20161029 myui
Dots20161029 myui
 
Hadoopsummit16 myui
Hadoopsummit16 myuiHadoopsummit16 myui
Hadoopsummit16 myui
 
HadoopCon'16, Taipei @myui
HadoopCon'16, Taipei @myuiHadoopCon'16, Taipei @myui
HadoopCon'16, Taipei @myui
 
3rd Hivemall meetup
3rd Hivemall meetup3rd Hivemall meetup
3rd Hivemall meetup
 
Recommendation 101 using Hivemall
Recommendation 101 using HivemallRecommendation 101 using Hivemall
Recommendation 101 using Hivemall
 
Hivemall dbtechshowcase 20160713 #dbts2016
Hivemall dbtechshowcase 20160713 #dbts2016Hivemall dbtechshowcase 20160713 #dbts2016
Hivemall dbtechshowcase 20160713 #dbts2016
 
Introduction to Hivemall
Introduction to HivemallIntroduction to Hivemall
Introduction to Hivemall
 

Recently uploaded

論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...Toru Tamaki
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNetToru Tamaki
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdftaisei2219
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Danieldanielhu54
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものですiPride Co., Ltd.
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムsugiuralab
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A surveyToru Tamaki
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略Ryo Sasaki
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Yuma Ohgami
 

Recently uploaded (9)

論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
 

並列データベースシステムの概念と原理