Ce diaporama a bien été signalé.
Nous utilisons votre profil LinkedIn et vos données d’activité pour vous proposer des publicités personnalisées et pertinentes. Vous pouvez changer vos préférences de publicités à tout moment.

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

20 869 vues

Publié le

近年データベースは、OLTP 向けに高速トランザクションを扱う一方、データ分析向けにカラムストアデータベースが普及してきています。カラムストアデータベースは、ジョイン、ソート、集計など大量データの一括処理が得意であり、バッチ処理や分析系SQL文を高速に実行することが可能です。本セッションでは、NEC の InfoFrame DataBooster を例に、カラムストアデータベースの利点、高速化技術、活用法を紹介します。

Publié dans : Technologie
  • Soyez le premier à commenter

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

  1. 1. db tech showcase Tokyo 2015 - Session B12 カラムストアデータベースの技術と活用法 NEC 田村 稔 2015年 6月10日
  2. 2. Page 2 © NEC Corporation 2015 自己紹介 田村 稔 NEC クラウドプラットフォーム事業部 ▌NEC入社以来、データベース製品の設計開発を担当 RIQS • 汎用コンピュータ上のリレーショナルデータベース percio • オブジェクト指向データベース InfoFrame DataBooster • インメモリカラムストアデータベース
  3. 3. Page 3 © NEC Corporation 2015 発表の流れ ▌一般的なカラムデータベースについて ▌当社カラムデータベース 高速化技術 性能 ユースケース 性能以外の特徴 ▌まとめ
  4. 4. 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
  5. 5. Page 5 © NEC Corporation 2015 さまざまなカラムデータベース ▌著名なカラムデータベース  Sybase IQ  SAP HANA  HP Vertica  IBM Netezza  Oracle Exadata ▌従来のリレーショナルDBにカラムストア機能が付属した ハイブリッド・データベース  Oracle  Microsoft SQL Server  IBM DB2
  6. 6. 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 : : : 通販サイトでの購入回数 都道府県ごとの 平均購入回数 集計処理の途中経過
  7. 7. Page 7 © NEC Corporation 2015 カラムデータベースの用途 ▌向いている用途 少ない列を対象にした参照、集計などが高速  データウェアハウス (DWH)  ビジネスインテリジェンス 企業活動の情報を収集・蓄積・分析・報告 ▌向いていない用途 レコード単位の挿入・削除・更新は遅い  オンライントランザクション処理 (OLTP) 電子商取引、注文処理、インターネットバンキング、電子株取引
  8. 8. Page 8 © NEC Corporation 2015 求められる高速性 ▌データ量の増大  ビッグデータ  IoT (Internet of Things) ▌データ分析の利用拡大  たとえば、売上データ • 以前は、どこで何がどれだけ売れているか、売れていないか、 どの商品の売上の伸び率が大きいか • 現在は、より広範囲のデータを収集し、それらの関連性を見つけ、 売上拡大につながる施策を実施する
  9. 9. 大量データの高速処理を実現する NECのカラムデータベース
  10. 10. Page 10 © NEC Corporation 2015 NECのカラムデータベース データ構造&アルゴリズム による高速化 インメモリ技術による 高速化 バッチ処理 データ分析 InfoFrame DataBooster 大量データの高速なデータ処理が求められる状況において NECのカラムデータベース これらを実現するのが... 「大量データの参照・更新を高速に行い、 バッチ処理やデータ分析に使えるデータベース」 技術 適用領域 (データブースター)
  11. 11. 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 CSVCSVCSV CSV 検索加工分析集計 CPUキャッシュメモリのヒット率向上による高速化 メモリ上のデータ配置に応じて、最適なアルゴリズムの組合せを決定 メモリデータ処理 アルゴリズム CPUコストの削減、データ量に比例したコスト 重複データを排除する 機能で使用メモリ量を削減
  12. 12. 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 VLOrdset VNo VL VNo VL ソート済 ・表形式データを列ごとに配列構造に分解 - 列データを重複排除・ソートされた値リスト(VL)にし、値番号(VNo)で参照 ・必要な列のみを操作 - カラムストアの特性である必要な列のみの参照・更新 ・集計・ソート・ジョインなどは値番号を用いて処理 - 参照するデータが少なく、順参照が多く、CPUキャッシュが効く ソート済 ソート済 表形式のデータを列ごとに成分分解し、メモリ上に展開 従来のレコード単位の逐次処理をカラム単位の一括処理で実現 革新的なメモリデータ構造と データ処理アルゴリズム
  13. 13. 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 性別 年齢 値番号 値リスト 値番号 値リスト ソート済 ・・・ 成分分解された実データ イン ポート ソート済
  14. 14. Page 14 © NEC Corporation 2015 DataBooster の高速性 CPU内 L1 L2キャッシュ 数MB 数GB 主記憶 外部記憶 ディスク ディスクI/Oがないから速いわけではなく、 いかにCPUキャッシュを効率よく使うか 一般的なRDBが 扱うデータ DataBoosterが 扱うデータ 数KB 4バイト/列 1億件 1億件 一般的なデータ処理(検索、ソート、ジョイン、集計など)が、 ユーザデータ値ではなく、値番号(int)を扱うことで実現でき、 データ処理を高速化 •int比較による高速化 •扱うデータ量が少ない •シーケンシャル処理 数百GB 数GB 必要な 列だけ キャッシュヒット率が高い 革新的なメモリデータ構造と データ処理アルゴリズム
  15. 15. 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 昇順にソート
  16. 16. 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 商品コード 個数 商品コードごとに個数を合計する ③ ④ ⑤ ⑤’ ① ②
  17. 17. 性能
  18. 18. 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つ以上 会員番号で 昇順 会員番号で ジョイン 商品コード毎に 個数を合計 会員番号で ユニーク抽出
  19. 19. 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倍 件数に比例した 処理時間
  20. 20. 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倍!
  21. 21. 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
  22. 22. ユースケース
  23. 23. Page 23 © NEC Corporation 2015 DataBoosterの代表的な適用分野 ①データマート作成 ▐DWH から BI ツール向けのデータマート作成  データマートが短時間で作成できるため、鮮度が高く自由度の高い分析が可能 ②データ変換/ データ集計/ クレンジング ▐大量データの一括データ変換や集計処理  コード変換(洗い替え)やWebアクセスに対するログ分析・集計処理など、大量データ処 理を高速に実施  1億件レベルの大量データをGUIツールでストレスなく目視確認ができるため、曖昧デー タの目視確認に活用することが可能 ③データ移行 ▐移行した大量データの整合性確認  旧システムの列の並びを変更して新システムへデータ移行するなどが可能  旧システムから新システムへデータを移行する場合、移行元と移行先のデータ整合性 を確認する必要があり、データ量が多いと件数のみの確認やキー値のみの確認しかで きなかったものが、全件・全列の突き合わせによる正確な整合性確認が可能 ④DWH/ アドホック検索 ▐付属のGUIを使用した大量データに対するアドホック検索  業務ごとに分散した基幹DBのデータをDataBoosterにロード後、多角的な分析を高速 に処理  分析結果をもとにした新たな分析を実行可能 超高速データ処理により、処理時間短縮や 実行サイクルの短縮(月次から日次へ)を実現
  24. 24. Page 24 © NEC Corporation 2015 データベースのバッチ処理に 数時間かかっている業務への適用例 バッチ処理高速化の適用イメージ 基幹DB CSV InfoFrame DataBoosterCSV CSV 出力 従来業務 追加処理 数分~ 数十分 データ ロード 数分 データ加工 数分 基幹DBから抽出した データを基幹DBに戻さず 集計などデータ加工する 処理に最適 CSV 高速化 バッチ プログラム① 数時間 バッチ プログラム② バッチ プログラム③ 中間ファイル 中間ファイル 結果 数分~ 数十分 分析DB
  25. 25. Page 25 © NEC Corporation 2015 適用効果:RDBから置き換えてバッチ処理を高速化 これまでの問題 RDBで行っているデータ加工・集計の夜間バッチ処理が終わらない バッチ処理を高速化で新たなレポートの生成と、保守工数削減と納期厳守 売上 DB 販売 レポート データ量・パターンが増えてきたので、 夜間バッチが終わらなくなってしまった・・・ これでは始業時間に間に合わない・・・ × 各部門へ 配布 販売 レポート 販売 レポート × × 翌日の業務に 支障が出てしまう バッチ処理が遅く 始業時間に合わない! バッチプログラム (SQL) バッチ処理 高速化 大量データの高速結合・加工・集計はDataBoosterに外出し DBの負荷を軽減し、夜間バッチも高速処理 解決手段 DataBooster サーバ 加工 処理 集計 処理 販売 レポート 高速な結合・加工・ 集計処理 CSV (集計前) 数時間かかっていた 処理を数分に短縮! 各部門へ 配布 販売 レポート 販売 レポート 売上 DB 結合 処理 CSV (集計後) バッチプログラム (SQL,API)
  26. 26. 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倍に! 分析結果を エンドユーザに提供 集計
  27. 27. Page 27 © NEC Corporation 2015 事例: 流通業 データ分析システム お客様の課題 ・各店舗からの販売データが短時間に大量に送られてきて おり、15分毎に確認する速報レポートの出力要件があり、 通常のDWHシステムでは、実現困難である。 解決手段 大量データの加工を高速に処理。データ収集サーバから送られてきた異なる 形式のテキストデータをDataBoosterで高速に形式変換してDWHへ転送する と同時に速報用レポートの出力を可能とした。 ユーザの要望 大量データを高速に加工 できる製品はないか データ加工 サーバ データ収集 サーバ 販売 データ DWH 販売データ BIサーバ BIサーバ 自由分析 定型レポート DataBooster 販売 データ 形式変換 各店舗から送られてきた大量の販売データを15分毎に高速加工処理 速報レポート用のデータ提供が可能 店舗 : APサーバ 速報レポート バッチ処理 高速化
  28. 28. Page 28 © NEC Corporation 2015 今後、利用者(製品責任者)が部品価格を変更させ 製品価格をシミュレートするシステムの構築に着手 DataBooster ネジが10%値上がりしたら輸 入価格が変わったら? 事例: 製造業 製造原価計算システム お客様の課題 ・製品の原価計算時間(全部品レベル)を短縮させ たい ・各製品責任者に対し原価が変動した場合、製品 価格がどう変動するかのシミュレーション結果を提 供したい ユーザの要望 データ処理を高速化できる製品が必要 製品 中間製品 下位構成品 部品 原価 原価 原価 原価 価格 ネジが10%値上がりしたら製 品原価はどうなる? 部品 データ (属性、価格) 解決手段 部品データなどのBOM※情報を DataBoosterにロードし インメモリで高速計算 ※Bill of materials バッチ処理 高速化
  29. 29. Page 29 © NEC Corporation 2015 ユーザの要望 データマート生成時間を短縮したい お客様の課題 ・データマート生成に5時間以上要する 従来5時間以上要していたデータマート生成時間を40分に短縮 事例: 流通業 データマート生成処理の高速化 データマート1 データマート2 データマート生成処理 高速化対象処理 抽出 抽出DB DB データマート1 データマート2 データマート生成処理 抽出 抽出DB DB CSV CSV CSV CSVDataBooster 高速結合 高速加工 5時間 40分 ① ② ③ 旧構成 解決手段 ① 抽出データをDataBoosterにロード ② DataBoosterで高速結合、高速加工 ③ 結合、加工結果をデータマートに反映 データの統合/加工 バッチ処理 高速化
  30. 30. その他の特徴
  31. 31. Page 31 © NEC Corporation 2015 強力なGUIツール 億レベルのデータ件数を高速に処理できるGUIを装備 結果を確認しながら、検索、集計、結合、一括更新が可能 イメージ図 メモリ InfoFrame DataBooster CSV 検索・編集 (抽出、集計、ジョインなど) 抽出 集計 結合 ソートロード 基幹DB 結果 処理途中の状態を保持し、再利用可能 処理途中の状態をコンパクトな形式で保持、試行錯誤的なデータ処理が可能。 商用DBMSと比較して数~数十倍の性能を実現 1億件を超えるデータの検索、ソート、集計、結合も数秒で実行。 アドホックなデータ分析 レポート作成 データ移行/統合時の 不正データ検出 AP開発の事前調査 性能検証 データ加工/編集作業が 簡単なマウス操作で実行可能 適 用 業 務 例
  32. 32. Page 32 © NEC Corporation 2015 DataBooster DK
  33. 33. Page 33 © NEC Corporation 2015 処理結果を確認しながらアプリケーションの作成が可能なため 開発時の処理内容不正による後戻り工数を大幅に削減 Javaソース生成機能 InfoFrame DataBooster エンジン データ操作 結果を確認しながら操作  処理変更が発生しても、該当操作をGUIで行い Javaソースを出力することで修正が容易  生成したJavaソースをひな形として、ユーザ独自の 処理を追加することももちろん可能 DataBoosterの処理速度が高速なため、何度でも処理のやり直しが可能 正しい結果が得られた操作に対する Javaソースを生成 アプリケーション作成を効率化 開発者のスキルによらずデータ処理の高速化が可能
  34. 34. 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)
  35. 35. 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) コンパイル 実行 プログラムの最初で データをロード ライブラリで提供 プログラムにリンクし、 同一プロセス内で実行 結果表 元表
  36. 36. Page 36 © NEC Corporation 2015 DataBoosterのクライアント・サーバ 基幹DB 基幹 DB DataBoosterサーバ DWHや定型レポート作成のための 集計などデータ加工に最適 ExcelCSV CSV CSV BIツール 既存のDWH用DBを置き換え、複数クライアントからのアドホックな検索を高速処理 BIツール用サーバ クライアント InfoFrame DataBooster 結合集計 加工 検索 複雑な問い合わせ も高速に処理 JDBC ODBC
  37. 37. Page 37 © NEC Corporation 2015 検証済みBIツール DataBoosterとの接続検証が実施済みのBIツール BusinessObjects Yellowfin Microsoft Excel / PowerPivot MicroStrategy CROWNIX Report & ERS Tableau Pentaho CE アイエルアイ StiLL
  38. 38. 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 テーブル 結合順序 対象製品
  39. 39. 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 結果テーブル
  40. 40. Page 40 © NEC Corporation 2015 DataBooster 強み • データベース設計が楽 問い合わせを考慮したテーブル設計が不要 インデックスの付与は不要 • GUI 億件レベルのレコードのデータ操作が可能 集計、ジョインなどが秒単位で実行可能 データを確認しながらデータ操作が可能 GUI 操作をプログラムに変換可能、マクロ実行可能 • SQL でないことのメリット C/Java 言語でプログラム可能 制限の強い SQL で記述する必要がない ユーザ関数を作る必要がなく、あらゆる処理が可能 途中結果も保持し、利用可能で性能上もメリットあり デバッグが楽 性能ボトルネックを見つけやすい • クラサバでないことのメリット AP のみで実行可能 運用、監視が楽 インストールが楽 通信環境を気にする必要がない
  41. 41. Page 41 © NEC Corporation 2015 DataBooster 使い方 • バッチ 独自API SQL以外 ライブラリ関数 C/Java RDB から抜き出し、別システム (データマート、レポート) に渡す • DWH クライアント・サーバ BIツール、プログラムから利用 SQL での問い合わせ実行 • GUI (DK) 入力データのクレンジング、確認 テスト結果確認 プロトタイプ開発 性能検証 • GUI操作 → Javaソース変換 開発工数の効率化
  42. 42. 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 ×

×