44
db tech showcase Tokyo 2015 - Session B12 カラムストアデータベースの技術と活用法 NEC 田村 稔 2015年 6月10日

[db tech showcase Tokyo 2015] B12:カラムストアデータベースの技術と活用法 by 日本電気株式会社 田村稔

Embed Size (px)

Citation preview

Page 1: [db tech showcase Tokyo 2015] B12:カラムストアデータベースの技術と活用法 by 日本電気株式会社 田村稔

db tech showcase Tokyo 2015 - Session B12

カラムストアデータベースの技術と活用法

NEC

田村 稔

2015年 6月10日

Page 2: [db tech showcase Tokyo 2015] B12:カラムストアデータベースの技術と活用法 by 日本電気株式会社 田村稔

Page 2 © NEC Corporation 2015

自己紹介

田村 稔

NEC クラウドプラットフォーム事業部

▌NEC入社以来、データベース製品の設計開発を担当

RIQS

• 汎用コンピュータ上のリレーショナルデータベース

percio

• オブジェクト指向データベース

InfoFrame DataBooster

• インメモリカラムストアデータベース

Page 3: [db tech showcase Tokyo 2015] B12:カラムストアデータベースの技術と活用法 by 日本電気株式会社 田村稔

Page 3 © NEC Corporation 2015

発表の流れ

▌一般的なカラムデータベースについて

▌当社カラムデータベース

高速化技術

性能

ユースケース

性能以外の特徴

▌まとめ

Page 4: [db tech showcase Tokyo 2015] B12:カラムストアデータベースの技術と活用法 by 日本電気株式会社 田村稔

Page 4 © NEC Corporation 2015

カラムストアデータベースとは

▌従来のリレーショナルデータベースがレコード単位でストレージに格納しているのに対し、カラム(列、項目、属性)ごとに格納する形式のデータベース

名前 住所 電話番号 メール

佐藤 東京都 03-xxxx satou@

鈴木 神奈川県 045-xxx suzuki@

高橋 大阪府 06-xxx takahashi@

田中 愛知県 052-xxx tanaka@

伊藤 埼玉県 048-xxx itou@

渡辺 千葉県 043-xxx watanabe@ 従来のリレーショナルDB 行指向データベース

カラムストアDB 列指向DB

カラムナデータベース columnar database

Page 5: [db tech showcase Tokyo 2015] B12:カラムストアデータベースの技術と活用法 by 日本電気株式会社 田村稔

Page 5 © NEC Corporation 2015

さまざまなカラムデータベース

▌著名なカラムデータベース

Sybase IQ

SAP HANA

HP Vertica

IBM Netezza

Oracle Exadata

▌従来のリレーショナルDBにカラムストア機能が付属した ハイブリッド・データベース

Oracle

Microsoft SQL Server

IBM DB2

Page 6: [db tech showcase Tokyo 2015] B12:カラムストアデータベースの技術と活用法 by 日本電気株式会社 田村稔

Page 6 © NEC Corporation 2015

一般的なカラムデータベースの特徴

▌必要な列しか参照しない

参照列が少ない場合に高速

例: 「東京都の会員の名前一覧」「都道府県ごとの平均購入回数」

▌同じようなデータが近くにあるので圧縮に有利

例: 都道府県は47種類しかない

名前 都道府県 ・・・ 購入 回数

佐藤 東京都 5

鈴木 神奈川県 12

高橋 大阪府 2

田中 愛知県 6

伊藤 東京都 14

: : : :

都道府県 平均 回数

愛知県 3.4

愛媛県 4.5

茨城県 2.4

岡山県 7.2

沖縄県 5.7

: :

都道府県 累計 回数

件数

東京都 19 2

神奈川県 12 1

大阪府 2 1

: : :

通販サイトでの購入回数 都道府県ごとの 平均購入回数

集計処理の途中経過

Page 7: [db tech showcase Tokyo 2015] B12:カラムストアデータベースの技術と活用法 by 日本電気株式会社 田村稔

Page 7 © NEC Corporation 2015

カラムデータベースの用途

▌向いている用途

少ない列を対象にした参照、集計などが高速

データウェアハウス (DWH)

ビジネスインテリジェンス

企業活動の情報を収集・蓄積・分析・報告

▌向いていない用途

レコード単位の挿入・削除・更新は遅い

オンライントランザクション処理 (OLTP)

電子商取引、注文処理、インターネットバンキング、電子株取引

Page 8: [db tech showcase Tokyo 2015] B12:カラムストアデータベースの技術と活用法 by 日本電気株式会社 田村稔

Page 8 © NEC Corporation 2015

求められる高速性

▌データ量の増大

ビッグデータ

IoT (Internet of Things)

▌データ分析の利用拡大

たとえば、売上データ

• 以前は、どこで何がどれだけ売れているか、売れていないか、 どの商品の売上の伸び率が大きいか

• 現在は、より広範囲のデータを収集し、それらの関連性を見つけ、 売上拡大につながる施策を実施する

Page 9: [db tech showcase Tokyo 2015] B12:カラムストアデータベースの技術と活用法 by 日本電気株式会社 田村稔

大量データの高速処理を実現するNECのカラムデータベース

Page 10: [db tech showcase Tokyo 2015] B12:カラムストアデータベースの技術と活用法 by 日本電気株式会社 田村稔

Page 10 © NEC Corporation 2015

NECのカラムデータベース

データ構造&アルゴリズムによる高速化

インメモリ技術による

高速化

バッチ処理 データ分析

InfoFrame DataBooster

大量データの高速なデータ処理が求められる状況において

NECのカラムデータベース

これらを実現するのが...

「大量データの参照・更新を高速に行い、 バッチ処理やデータ分析に使えるデータベース」

技術

適用領域

(データブースター)

Page 11: [db tech showcase Tokyo 2015] B12:カラムストアデータベースの技術と活用法 by 日本電気株式会社 田村稔

Page 11 © NEC Corporation 2015

0

100

200

300

大量データのDWH/アドホック検索を高速化するソフトウェア カラムストア型のインメモリデータ処理エンジン

インメモリ技術 InfoFrame DataBoosterの概要

アプリケーション

C Java SQL

DataBooster

t1:1億件 t2:100万件 t3:1万件 3表をジョイン、集計してソート

11.8秒

インメモリ技術による高速性の一例

カラムストア技術

従来RDB (I/Oなし)

299.5秒

【測定SQL】 select t2.c3, sum(t1.c8*t3.c2) from t1, t2, t3 where t1.c5 = t3.c1 and t1.c3 = t2.c1 and t1.c6 < 500 group by t2.c3 order by 2 desc;

25倍高速

業務システムで利用されるデータベースでは、データ量が多くなると

結合(ジョイン)、並び替え(ソート)、集計(グルーピング)、一括変換 の各処理に意外と時間がかかってしまいます。DataBooster はこれらの処理をメモリ上 で高速に実行するので、大幅な時間短縮が可能です

数時間から数十分に 処理時間を短縮

InfoFrame DataBooster

分析DB

基幹DB

BIツール

Excel

CSV CSV CSV

CSV 検索 加工 分析 集計

CPUキャッシュメモリのヒット率向上による高速化 メモリ上のデータ配置に応じて、最適なアルゴリズムの組合せを決定

メモリデータ処理 アルゴリズム CPUコストの削減、データ量に比例したコスト

重複データを排除する

機能で使用メモリ量を削減

Page 12: [db tech showcase Tokyo 2015] B12:カラムストアデータベースの技術と活用法 by 日本電気株式会社 田村稔

Page 12 © NEC Corporation 2015

高速性を実現する内部データ構造

表形式のデータ表現

0

1

2

3

4

5

6

7

0

1

2

3

4

5

6

7

0

1

2

3

4

0

1

0

1

2

3

4

5

6

7

0

1

2

3

4

5

0

1

2

3

4

5

6

7

イン ポート

性別 年齢 身長

内部 構造

VNo VL Ordset VNo VL VNo VL

ソート済

・表形式データを列ごとに配列構造に分解 - 列データを重複排除・ソートされた値リスト(VL)にし、値番号(VNo)で参照

・必要な列のみを操作 - カラムストアの特性である必要な列のみの参照・更新

・集計・ソート・ジョインなどは値番号を用いて処理 - 参照するデータが少なく、順参照が多く、CPUキャッシュが効く

ソート済 ソート済

表形式のデータを列ごとに成分分解し、メモリ上に展開 従来のレコード単位の逐次処理をカラム単位の一括処理で実現

革新的なメモリデータ構造と データ処理アルゴリズム

Page 13: [db tech showcase Tokyo 2015] B12:カラムストアデータベースの技術と活用法 by 日本電気株式会社 田村稔

Page 13 © NEC Corporation 2015

高速性を実現する内部データ構造

性別 年齢 身長 体重

女性 18 168 55

男性 21 172 64

女性 24 159 48

女性 16 172 48

男性 28 181 78

女性 16 168 52

男性 24 177 64

女性 18 170 55

表形式のデータ表現

1

2

3

0

4

0

3

1

16

18

21

24

28

0

1

0

0

1

0

1

0

女性

男性

0

1

2

3

4

5

6

7

0

1

2

3

4

0

1

0

1

2

3

4

5

6

7

性別 年齢 値番号 値リスト 値番号 値リスト

ソート済 ・・・

成分分解された実データ

イン ポート

ソート済

Page 14: [db tech showcase Tokyo 2015] B12:カラムストアデータベースの技術と活用法 by 日本電気株式会社 田村稔

Page 14 © NEC Corporation 2015

DataBooster の高速性

CPU内 L1 L2キャッシュ

数MB 数GB

主記憶

外部記憶 ディスク

ディスクI/Oがないから速いわけではなく、 いかにCPUキャッシュを効率よく使うか

一般的なRDBが 扱うデータ

DataBoosterが 扱うデータ

数KB

4バイト/列

1億件

1億件

一般的なデータ処理(検索、ソート、ジョイン、集計など)が、 ユーザデータ値ではなく、値番号(int)を扱うことで実現でき、 データ処理を高速化 • int比較による高速化 •扱うデータ量が少ない •シーケンシャル処理

数百GB

数GB 必要な

列だけ

キャッシュヒット率が高い

革新的なメモリデータ構造と データ処理アルゴリズム

Page 15: [db tech showcase Tokyo 2015] B12:カラムストアデータベースの技術と活用法 by 日本電気株式会社 田村稔

Page 15 © NEC Corporation 2015

アルゴリズム例 ソート

商品コード 個数

ABC-0001 3

ABC-0002 1

ABC-0003 4

ABC-0002 1

ABC-0001 5

ABC-0003 9

ABC-0001 2

ABC-0003 6

ABC-0001 3 0

ABC-0002 2 3

ABC-0003 3 5

2

0

3

0

4

6

1

5

0 1

1 2

2 3

3 4

4 5

5 6

6 9

0

1

2

1

0

2

0

2

0 ABC-0001

1 ABC-0002

2 ABC-0003

0 0 0

1 3 4

2 5 6

1 4 1

0 1 3

2 6 2

0 2 5

2 7 7

ABC-0001 3 0 → 1 → 2 → 3

ABC-0002 2 3 → 4 → 5

ABC-0003 3 5 → 6 → 7

カウント

累計

① ②

⑤ ⑥ ③ ④ ① ②

①を上から順番に処理する。 その値の④のところを見て、その値を⑤に格納し、④を1増加 同時に⑤→⑥の逆変換を行う ⑤[x]=y → ⑥[y]=x 例: ⑤の2行目は⑤[1]=3 → ⑥[3]=1

⑥がソート結果

商品コード 個数

①を見て値番号ごとにカウント

上から足し込んで累計化

③ ④ ②

0

1

2

0

1

2

昇順にソート

Page 16: [db tech showcase Tokyo 2015] B12:カラムストアデータベースの技術と活用法 by 日本電気株式会社 田村稔

Page 16 © NEC Corporation 2015

アルゴリズム例 集計

商品コード 個数

ABC-0001 3

ABC-0002 1

ABC-0003 4

ABC-0002 1

ABC-0001 5

ABC-0003 9

ABC-0001 2

ABC-0003 6

ABC-0001 0 → 3 → 8 → 10

ABC-0002 0 → 1 → 2

ABC-0003 0 → 4 → 13 → 19

2

0

3

0

4

6

1

5

0 1

1 2

2 3

3 4

4 5

5 6

6 9

0

1

2

1

0

2

0

2

0 ABC-0001

1 ABC-0002

2 ABC-0003

①を上から順番に処理する。 その値の②の合計欄⑤に、その要素に対応する「個数」の値を足す ⑤[①[x]]+=④[③[x]] 例: ①[0]=0 (ABC-0001) ③[0]=2 → ④[2]=3 ⑤[0]=0→3

商品コード 個数

商品コードごとに個数を合計する

③ ④

⑤ ⑤’

① ②

Page 17: [db tech showcase Tokyo 2015] B12:カラムストアデータベースの技術と活用法 by 日本電気株式会社 田村稔

性能

Page 18: [db tech showcase Tokyo 2015] B12:カラムストアデータベースの技術と活用法 by 日本電気株式会社 田村稔

Page 18 © NEC Corporation 2015

基本機能の性能

1000万件の注文テーブルに対して 各基本機能を実行したときの処理時間

110ms

検索 ソート ジョイン 集計 ユニーク列

抽出

47ms

297ms

515ms

728ms

日付 会員番号 商品

コード 個数

2015/01/01 0447803 JI-025 1 2015/01/01 0903643 BB-100 1 2015/01/01 0698163 JC-010 1 2015/01/01 0973090 AB-003 2 2015/01/01 0365435 CG-020 1 2015/01/01 0814335 CG-020 1 2015/01/01 0887176 DC-092 1

: : : :

会員番号 姓 名 都道府県

0100001 佐藤 初寿 福井県 0100002 加藤 房好 福井県 0100003 小川 彦重 北海道 0100004 安藤 悦治郎 秋田県 0100005 松岡 健又 千葉県 0100006 坂井 なが子 京都府 0100007 福永 末三郎 愛知県

: : : :

注文テーブル

会員テーブル

1000万件

100万件

個数が 2つ以上

会員番号で 昇順

会員番号で ジョイン

商品コード毎に 個数を合計 会員番号で

ユニーク抽出

Page 19: [db tech showcase Tokyo 2015] B12:カラムストアデータベースの技術と活用法 by 日本電気株式会社 田村稔

Page 19 © NEC Corporation 2015

件数ごとの性能比較

ソート

1つの列で昇順にソート

100万件 1000万件

20ms

110ms

5.5倍

• 列の重複度に依存

• ジョインでは2つのテーブルの関係に依存

• 最悪のケースで件数に比例した処理時間

集計

1つの列でグルーピングし 他の列の値を合計

100万件 1000万件

52ms

515ms

9.9倍

ジョイン

100万件のテーブルと 1つの列で結合

100万件 1000万件

124ms

297ms

2.4倍

件数に比例した 処理時間

Page 20: [db tech showcase Tokyo 2015] B12:カラムストアデータベースの技術と活用法 by 日本電気株式会社 田村稔

Page 20 © NEC Corporation 2015

優位性:データインポート性能比較(DataBooster)

▌ 測定データ

TPC-H (Scale Factor=100)※ のテーブルへの CSV形式データファイルのインポート時間を測定

• データ量 : 16列×約6億行 (約92Gバイト)

▌ 測定条件

マシン環境

• CPU : Xeon E5-2650v2(8c/16T)×2

• メモリ : 384Gバイト

• ストレージ : RAID5×4(7200rpm SAS)

• OS : Windows Server 2012

インポート方法

• DataBooster

– DataBooster SQL の COPY 機能を使用

• 他RDB

– 各 RDB が用意する高速インポート機能を使用

– インポート後、検索高速化のためにインデックスを作成

(秒) データインポート インデックス作成 合計

DataBooster 1,312 - 1,312

他RDB1 3,103 8,968 12,071

他RDB2 4,804 7,266 12,070 ※トランザクション処理性能評議会(TPC)が定めた、意思決定支援システム・ データウェアハウスの分野のデータベースシステムの検索や抽出処理性能の指標

• 他RDBと比較して2~4倍以上のデータインポート速度 • 問い合わせを考慮した設計が不要で、チューニングの手間を簡略化

3.6倍

2.3倍 9.2倍

取扱注意

1,312 3,103

4,804

8,968 7,266

12,071 12,070

0

2,000

4,000

6,000

8,000

10,000

12,000

DataBooster 他RDB1 他RDB2

(秒) データインポート

インデックス作成

9.2倍!

Page 21: [db tech showcase Tokyo 2015] B12:カラムストアデータベースの技術と活用法 by 日本電気株式会社 田村稔

Page 21 © NEC Corporation 2015

優位性:クエリ性能比較(DataBooster)

▌ 測定データ

TPC-H (Scale Factor=100)※ の各処理のクエリ時間を測定

• データ量 : 16列×約6億行 (約92Gバイト)

▌ 測定条件

マシン環境

• CPU : Xeon E5-2650v2(8c/16T)×2

• メモリ : 384Gバイト

• ストレージ : RAID5×4(7200rpm SAS)

• OS : Windows Server 2012

(秒) DataBooster 他RDB

1 284 415

2 9 66

3 25 351

4 32 307

5 27 370

6 12 273

7 30 379

8 33 1,424

9 96 575

10 36 345

11 6 13

12 41 318

13 268 462

14 15 289

15 28 286

16 8 40

17 88 5

18 104 491

19 49 11

20 59 86

21 132 630

22 11 31

相乗平均 36 168

※トランザクション処理性能評議会(TPC)が定めた、意思決定支援システム・ データウェアハウスの分野のデータベースシステムの検索や抽出処理性能の指標

• 多重度を上げても1クライアント当たりの平均処理時間で高速、8クライアントで15倍(表1/図)

• 1クライアントの場合も、ほぼ全てのクエリで高速、平均で5倍(表2)

【表2】 1クライアントの処理時間

(クライアント数) 1 2 4 6 8

DataBooster 36 36 40 45 51

他RDB 168 302 553 735 769

【表1/図】 マルチクライアントで実行した際の1クライアント 当たりの(相乗)平均処理時間 (秒)

15倍!

取扱注意

36 36 40 45 51

168

302

553

735 769

0

100

200

300

400

500

600

700

800

900

1 2 4 6 8

DataBooster

他RDB

Page 22: [db tech showcase Tokyo 2015] B12:カラムストアデータベースの技術と活用法 by 日本電気株式会社 田村稔

ユースケース

Page 23: [db tech showcase Tokyo 2015] B12:カラムストアデータベースの技術と活用法 by 日本電気株式会社 田村稔

Page 23 © NEC Corporation 2015

DataBoosterの代表的な適用分野

①データマート作成 ▐DWH から BI ツール向けのデータマート作成 データマートが短時間で作成できるため、鮮度が高く自由度の高い分析が可能

②データ変換/ データ集計/ クレンジング

▐大量データの一括データ変換や集計処理 コード変換(洗い替え)やWebアクセスに対するログ分析・集計処理など、大量データ処

理を高速に実施 1億件レベルの大量データをGUIツールでストレスなく目視確認ができるため、曖昧デー

タの目視確認に活用することが可能

③データ移行

▐移行した大量データの整合性確認 旧システムの列の並びを変更して新システムへデータ移行するなどが可能 旧システムから新システムへデータを移行する場合、移行元と移行先のデータ整合性

を確認する必要があり、データ量が多いと件数のみの確認やキー値のみの確認しかできなかったものが、全件・全列の突き合わせによる正確な整合性確認が可能

④DWH/ アドホック検索

▐付属のGUIを使用した大量データに対するアドホック検索 業務ごとに分散した基幹DBのデータをDataBoosterにロード後、多角的な分析を高速

に処理 分析結果をもとにした新たな分析を実行可能

超高速データ処理により、処理時間短縮や 実行サイクルの短縮(月次から日次へ)を実現

Page 24: [db tech showcase Tokyo 2015] B12:カラムストアデータベースの技術と活用法 by 日本電気株式会社 田村稔

Page 24 © NEC Corporation 2015

データベースのバッチ処理に 数時間かかっている業務への適用例

バッチ処理高速化の適用イメージ

基幹DB

CSV InfoFrame DataBooster CSV

CSV 出力

従来業務

追加処理 数分~

数十分

データ ロード

数分 データ加工

数分

基幹DBから抽出した データを基幹DBに戻さず 集計などデータ加工する 処理に最適

CSV

高速化

バッチ プログラム①

数時間

バッチ プログラム②

バッチ プログラム③

中間ファイル 中間ファイル 結果

数分~

数十分

分析DB

Page 25: [db tech showcase Tokyo 2015] B12:カラムストアデータベースの技術と活用法 by 日本電気株式会社 田村稔

Page 25 © NEC Corporation 2015

適用効果:RDBから置き換えてバッチ処理を高速化

これまでの問題 RDBで行っているデータ加工・集計の夜間バッチ処理が終わらない

バッチ処理を高速化で新たなレポートの生成と、保守工数削減と納期厳守

売上 DB

販売

レポート

データ量・パターンが増えてきたので、

夜間バッチが終わらなくなってしまった・・・

これでは始業時間に間に合わない・・・

×

各部門へ

配布

販売

レポート

販売

レポート

×

× 翌日の業務に

支障が出てしまう

バッチ処理が遅く

始業時間に合わない!

バッチプログラム

(SQL)

バッチ処理

高速化

大量データの高速結合・加工・集計はDataBoosterに外出し DBの負荷を軽減し、夜間バッチも高速処理

解決手段

DataBooster サーバ

加工 処理

集計 処理

販売 レポート

高速な結合・加工・ 集計処理

CSV (集計前)

数時間かかっていた 処理を数分に短縮!

各部門へ 配布

販売 レポート

販売 レポート

売上 DB

結合 処理

CSV (集計後)

バッチプログラム (SQL,API)

Page 26: [db tech showcase Tokyo 2015] B12:カラムストアデータベースの技術と活用法 by 日本電気株式会社 田村稔

Page 26 © NEC Corporation 2015

InfoFrame DataBooster

高速メモリ処理

3億件の ログ

InfoFrame DataBooster

高速メモリ処理

3億件の ログ

InfoFrame DataBooster

高速メモリ処理

3億件の ログ

Page 26

RDB

事例: サービス業 アクセスログ集計システム

ユーザの要望

処理を高速化できる製品はないか

お客様の課題

・既存DBで構築したシステムが、ログデータ量の 増加で分析処理の遅延が発生

・分析処理速度を向上させないと、エンドユーザに対するサービスレベルがダウン

・高速化するにはサーバ追加が必要だがRDBの ライセンス費が高額

解決手段 既存システムと同等以上の処理能力を少ないコア数で実現 既存の環境より 数億円安価に

13億件/時の処理性能によりサービスレベルを維持! 時次、日次、週次、月次の分析を高速に処理することが可能に。ログ 13億件/時(集計は20分) で処理を実施。 エンドユーザに対するサービスレベルを維持。

HW+SWコスト 73%削減! DataBoosterを導入することで、サーバ台数4台で構築。既存DBで増設した場合と比べて HW(サーバ)+SW(OS、DBライセンス、DataBoosterライセンス)の比較で73%のコストを削減。

バッチ処理

高速化

InfoFrame DataBooster

高速メモリ処理

3億件の ログ

1台あたりの処理量が約4倍に!

分析結果を エンドユーザに提供

集計

Page 27: [db tech showcase Tokyo 2015] B12:カラムストアデータベースの技術と活用法 by 日本電気株式会社 田村稔

Page 27 © NEC Corporation 2015

事例: 流通業 データ分析システム

お客様の課題

・各店舗からの販売データが短時間に大量に送られてきており、15分毎に確認する速報レポートの出力要件があり、通常のDWHシステムでは、実現困難である。

解決手段

大量データの加工を高速に処理。データ収集サーバから送られてきた異なる 形式のテキストデータをDataBoosterで高速に形式変換してDWHへ転送する と同時に速報用レポートの出力を可能とした。

ユーザの要望 大量データを高速に加工

できる製品はないか

データ加工 サーバ

データ収集

サーバ

販売

データ

DWH

販売データ

BIサーバ

BIサーバ

自由分析

定型レポート

DataBooster

販売

データ

形式変換

各店舗から送られてきた大量の販売データを15分毎に高速加工処理 速報レポート用のデータ提供が可能

店舗

APサーバ

速報レポート

バッチ処理

高速化

Page 28: [db tech showcase Tokyo 2015] B12:カラムストアデータベースの技術と活用法 by 日本電気株式会社 田村稔

Page 28 © NEC Corporation 2015

今後、利用者(製品責任者)が部品価格を変更させ 製品価格をシミュレートするシステムの構築に着手

DataBooster

ネジが10%値上がりしたら輸入価格が変わったら?

事例: 製造業 製造原価計算システム

お客様の課題

・製品の原価計算時間(全部品レベル)を短縮させたい

・各製品責任者に対し原価が変動した場合、製品価格がどう変動するかのシミュレーション結果を提供したい

ユーザの要望

データ処理を高速化できる製品が必要

製品

中間製品

下位構成品

部品

原価

原価

原価

原価

価格

ネジが10%値上がりしたら製品原価はどうなる?

部品 データ

(属性、価格)

解決手段

部品データなどのBOM※情報を DataBoosterにロードし インメモリで高速計算

※Bill of materials

バッチ処理

高速化

Page 29: [db tech showcase Tokyo 2015] B12:カラムストアデータベースの技術と活用法 by 日本電気株式会社 田村稔

Page 29 © NEC Corporation 2015

ユーザの要望

データマート生成時間を短縮したい

お客様の課題

・データマート生成に5時間以上要する

従来5時間以上要していたデータマート生成時間を40分に短縮

事例: 流通業 データマート生成処理の高速化

データマート1

データマート2

データマート生成処理 高速化対象処理

抽出

抽出 DB

DB

データマート1

データマート2

データマート生成処理

抽出

抽出 DB

DB

CSV

CSV

CSV

CSV DataBooster 高速結合 高速加工

5時間

40分

旧構成

解決手段 ① 抽出データをDataBoosterにロード ② DataBoosterで高速結合、高速加工 ③ 結合、加工結果をデータマートに反映

データの統合/加工

バッチ処理

高速化

Page 30: [db tech showcase Tokyo 2015] B12:カラムストアデータベースの技術と活用法 by 日本電気株式会社 田村稔

その他の特徴

Page 31: [db tech showcase Tokyo 2015] B12:カラムストアデータベースの技術と活用法 by 日本電気株式会社 田村稔

Page 31 © NEC Corporation 2015

強力なGUIツール

億レベルのデータ件数を高速に処理できるGUIを装備 結果を確認しながら、検索、集計、結合、一括更新が可能

イメージ図

メモリ

InfoFrame DataBooster

CSV

検索・編集 (抽出、集計、ジョインなど)

抽出 集計 結合 ソート ロード

基幹DB

結果

処理途中の状態を保持し、再利用可能 処理途中の状態をコンパクトな形式で保持、試行錯誤的なデータ処理が可能。

商用DBMSと比較して数~数十倍の性能を実現 1億件を超えるデータの検索、ソート、集計、結合も数秒で実行。

アドホックなデータ分析

レポート作成

データ移行/統合時の

不正データ検出

AP開発の事前調査 性能検証

データ加工/編集作業が 簡単なマウス操作で実行可能

適用業務例

Page 32: [db tech showcase Tokyo 2015] B12:カラムストアデータベースの技術と活用法 by 日本電気株式会社 田村稔

Page 32 © NEC Corporation 2015

DataBooster DK

Page 33: [db tech showcase Tokyo 2015] B12:カラムストアデータベースの技術と活用法 by 日本電気株式会社 田村稔

Page 33 © NEC Corporation 2015

処理結果を確認しながらアプリケーションの作成が可能なため 開発時の処理内容不正による後戻り工数を大幅に削減

Javaソース生成機能

InfoFrame DataBooster

エンジン

データ操作

結果を確認しながら操作 処理変更が発生しても、該当操作をGUIで行い Javaソースを出力することで修正が容易 生成したJavaソースをひな形として、ユーザ独自の 処理を追加することももちろん可能

DataBoosterの処理速度が高速なため、何度でも処理のやり直しが可能

正しい結果が得られた操作に対する Javaソースを生成

アプリケーション作成を効率化

開発者のスキルによらずデータ処理の高速化が可能

Page 34: [db tech showcase Tokyo 2015] B12:カラムストアデータベースの技術と活用法 by 日本電気株式会社 田村稔

Page 34 © NEC Corporation 2015

DataBoosterは、プログラム用のライブラリ CおよびJavaのAPIを用意

アプリケーション記述イメージ (C/Java)

select

col1,

sum(col2)

from

test

where

col1 < 100

group by

col1

order by

1,2

main()

{

BSTRESULT result;

result = CSVロード("D:¥input.csv","test");

result = 検索(result,"col1 < 100");

result = 集計(result, col1,col2,SUM)

result = ソート(result)

result = CSV出力(result,"D:¥output.csv")

}

表形式データに対する関係演算は、APIとして用意 SQLで実現可能なデータ操作は、DataBoosterで実現可能 SQLに縛られないため、より自由な関係演算が可能

注意: 上記はイメージです。実際のAPIとは異なります。

アプリケーションプログラム(AP)

Page 35: [db tech showcase Tokyo 2015] B12:カラムストアデータベースの技術と活用法 by 日本電気株式会社 田村稔

Page 35 © NEC Corporation 2015

DataBooster SQL 概要

Windows 2008/2012

SQL解析

実行計画策定

実行

PostgreSQL改造

DataBooster SQL

DataBooster ライブラリ

st.execute(”COPY …”);

// ファイルからデータをロード rs = st.executeQuery(”SELECT …”); while(rs.next()){ … } st.execute(”UPDATE …”); st.execute(”COPY …”);

// 結果を出力

CSV BST

▌JDBCによるプログラムが実行可能 PostgreSQLを全面的に流用して改造。ほとんどのSQLを実行可能。

実行時にDataBoosterライブラリを使用してデータ処理を高速化。 とくに、ジョイン、集計、ソート、一括更新で効果大。

テーブルメモリ

Java プログラム (JDBC)

コンパイル 実行 プログラムの最初で

データをロード

ライブラリで提供 プログラムにリンクし、 同一プロセス内で実行

結果表

元表

Page 36: [db tech showcase Tokyo 2015] B12:カラムストアデータベースの技術と活用法 by 日本電気株式会社 田村稔

Page 36 © NEC Corporation 2015

DataBoosterのクライアント・サーバ

基幹DB

基幹 DB

DataBoosterサーバ

DWHや定型レポート作成のための集計などデータ加工に最適

Excel CSV CSV CSV

BIツール

既存のDWH用DBを置き換え、複数クライアントからのアドホックな検索を高速処理

BIツール用サーバ

クライアント

InfoFrame DataBooster

結合 集計

加工 検索

複雑な問い合わせ も高速に処理

JDBC ODBC

Page 37: [db tech showcase Tokyo 2015] B12:カラムストアデータベースの技術と活用法 by 日本電気株式会社 田村稔

Page 37 © NEC Corporation 2015

検証済みBIツール

DataBoosterとの接続検証が実施済みのBIツール

BusinessObjects Yellowfin

Microsoft Excel / PowerPivot MicroStrategy

CROWNIX Report & ERS Tableau

Pentaho CE アイエルアイ StiLL

Page 38: [db tech showcase Tokyo 2015] B12:カラムストアデータベースの技術と活用法 by 日本電気株式会社 田村稔

Page 38 © NEC Corporation 2015

BOM(部品表)の展開

RDBやSQLでは実現するのが難しい、BOMの正展開・逆展開も、 DataBoosterではAPIが用意されていて、容易でしかも高速に実行が可能

正展開ツリー

製品A 部品A

部品B

素材A

素材B

素材C

素材B

素材C

素材D

素材E

親 子

製品A 部品A

製品A 部品B

親 子

部品A 素材A

部品A 素材B

部品A 素材C

部品B 素材B

部品B 素材C

部品B 素材D

部品B 素材E

BOM表

BOM(Bill of materials)とは、製造業で用いられる部品表で、 製品を組み立てる時の部品の一覧と、場合によっては階層構造を表す

逆展開ツリー

製品A 素材A

素材B 製品A 部品A

部品A

製品A 部品B

正展開の結合イメージ

BOM

親 子

BOM

親 子

JOINテーブル

JOINテーブル

結合順序

対象製品

Page 39: [db tech showcase Tokyo 2015] B12:カラムストアデータベースの技術と活用法 by 日本電気株式会社 田村稔

Page 39 © NEC Corporation 2015

BOM具体例

親 子 個数

1 A-001 B-001 1

2 A-001 B-002 2

3 B-001 C-001 2

4 B-001 C-002 1

5 B-002 D-001 3

6 B-002 E-001 4

7 C-001 E-002 2

8 C-001 G-001 10

9 D-001 G-002 1

10 D-001 G-003 1

11 E-002 X-001 2

12 E-002 X-002 8

BOMマスターテーブル

指定製品(A-001) 1個において、 各部品が何個使われているかを求める

深さ No. 個数 指定 子 子_#1 子_#2 子_#3 1 0 1 1 1 A-001 2 1 1 1 1 A-001 B-001 3 2 3 2 2 A-001 B-001 C-001 4 3 7 2 4 A-001 B-001 C-001 E-002 5 4 11 2 8 A-001 B-001 C-001 E-002 X-001 6 4 12 8 32 A-001 B-001 C-001 E-002 X-002 7 3 8 10 20 A-001 B-001 C-001 G-001 8 2 4 1 1 A-001 B-001 C-002 9 1 2 2 2 A-001 B-002 10 2 5 3 6 A-001 B-002 D-001 11 3 9 1 6 A-001 B-002 D-001 G-002 12 3 10 1 6 A-001 B-002 D-001 G-003 13 2 6 4 8 A-001 B-002 E-001

結果テーブル

Page 40: [db tech showcase Tokyo 2015] B12:カラムストアデータベースの技術と活用法 by 日本電気株式会社 田村稔

Page 40 © NEC Corporation 2015

DataBooster 強み

• データベース設計が楽 問い合わせを考慮したテーブル設計が不要 インデックスの付与は不要

• GUI 億件レベルのレコードのデータ操作が可能 集計、ジョインなどが秒単位で実行可能 データを確認しながらデータ操作が可能 GUI 操作をプログラムに変換可能、マクロ実行可能

• SQL でないことのメリット C/Java 言語でプログラム可能 制限の強い SQL で記述する必要がない ユーザ関数を作る必要がなく、あらゆる処理が可能 途中結果も保持し、利用可能で性能上もメリットあり デバッグが楽 性能ボトルネックを見つけやすい

• クラサバでないことのメリット AP のみで実行可能 運用、監視が楽 インストールが楽 通信環境を気にする必要がない

Page 41: [db tech showcase Tokyo 2015] B12:カラムストアデータベースの技術と活用法 by 日本電気株式会社 田村稔

Page 41 © NEC Corporation 2015

DataBooster 使い方

• バッチ 独自API SQL以外 ライブラリ関数 C/Java RDB から抜き出し、別システム (データマート、レポート) に渡す

• DWH クライアント・サーバ BIツール、プログラムから利用 SQL での問い合わせ実行

• GUI (DK) 入力データのクレンジング、確認 テスト結果確認 プロトタイプ開発 性能検証

• GUI操作 → Javaソース変換 開発工数の効率化

Page 42: [db tech showcase Tokyo 2015] B12:カラムストアデータベースの技術と活用法 by 日本電気株式会社 田村稔

Page 42 © NEC Corporation 2015

まとめ

▌NEC の InfoFrame DataBooster は C/Java/SQL、GUI、BIツール など様々なインタフェースで、高速なデータ処理、高速なデータ分析を実現しています

すぐに試せる体験版を用意しています

• 高速なデータ処理がご自身のPCで試すことができます

• 下記サイトよりダウンロードしてください http://jpn.nec.com/infoframe/databooster/download.html

InfoFrame DataBooster

インメモリ データ構造とアルゴリズム 高速データ処理

VNo VL

VNo

VL

×

Page 43: [db tech showcase Tokyo 2015] B12:カラムストアデータベースの技術と活用法 by 日本電気株式会社 田村稔
Page 44: [db tech showcase Tokyo 2015] B12:カラムストアデータベースの技術と活用法 by 日本電気株式会社 田村稔