【A-2】 データベース・テクノロジー Part 2 「カラム型」が実現するビッグデータの高速処理 日本アイ・ビー・エム株式会社 ソフトウェア事業 インフォメーション・マネジメント事業部 平野 真弓 © 2013 IBM Corporation ご説明内容 • DB2進化の歴史 ~ より速く、止まらないDB • DB2 10.5登場 • DB2 10.5 BLUアクセラレーション – BLUアクセラレーションの特徴 – BLUアクセラレーションのキー・テクノロジー – BLUアクセラレーションの効果 • 検証結果から見るDB2 10.5 BLUアクセラレーションの有用性 • Cognos Business Intelligence(Cognos BI)との連携デモンスト レーション • BLUアクセラレーションまとめ © 2013 IBM Corporation 2 DB2の進化の歴史 ~ より速く、止まらないDB~ © 2013 IBM Corporation 3 DB2進化の歴史 ~ より速く、止まらないDB 大規模データの高速処理 基幹システムを支える連続稼動性 ・DBパーティショニング ・HADR (Database Partitioning Feature) (High Availability Disaster Recovery) シェアード・ナッシング・ アーキテクチャーによる 大量データの並列処理 ログ・シッピングによる 高可用性と災害対策の 2つのソリューションを 実現 ・マテリアライズ照会表 (Materialized Query Table) 時間のかかるクエリーの 結果を保管、実行クエリー に応じてMQTから結果導出 ・DB2 pureScale ・多次元クラスター表/パーティション表 (Multi Dimension Clustering/ Table partitioning) 同じ値を持つ行を同じブロック/ パーティションに保管し、データ・ アクセスを効率化 DB2 for z/OS データ共用の アーキテクチャーを採用し、極CF めて高い連続稼動性と拡張 性を実現 RDMA通信 DB2 DB2 DB2 ブロック 履歴表 A 1月 © 2013 IBM Corporation 2月 3月 4月 5月 4 DB2 10.5登場 © 2013 IBM Corporation 5 DB2 10.5登場 BLU アクセラレーション アナリティクス処理を加速させるRDBの革命 • アナリティクス処理が従来よりも数十倍高速に • 表にデータを投入するだけですぐに利用可能 • 索引チューニング不要 • 低コストで実装可能なハイブリッド・データベース © 2013 IBM Corporation DB2 pureScaleのさらなる進化 基幹業務を支えるため、連続稼動性と 性能をさらに強化 • オンライン・メンテナンス • 災害対策ソリューション • オンライン、バッチ双方の性能向上 6 DB2 10.5 BLUアクセラレーション © 2013 IBM Corporation 7 アナリティクス処理の性能最適化におけるチャレンジ 非定型分析の性能最適化が難しい – 利用頻度の高い列に索引をつける、FACT表は日付列を次元にしたMDC表にするといった、 設計上のベストプラクティスはあるが、あらゆる分析軸の可能性に対応することは困難 MDC DB管理者 チューニングに膨大なコス トをかけても、非定型のク エリーへの対応困難 MQT 索引 索引 索引 BIレポートとアナリティクス 応答を待つ? コーヒーに行く? 投入して帰宅する? 分析担当者 性能にばらつきがあり、 連続的な分析ができない ひとつのソリューションは、圧倒的な処理性能を持つDWHアプライアンス – 大量データのスキャン、ソート、ジョインを伴う分析処理を高速に実行可能 BIレポートとアナリティクス でも… DWHアプライアンスを導入するほどには、 データ規模が大きくない場合にどうする? DB2 10.5のBLUアクセラレーションが解決! © 2013 IBM Corporation 8 DB2 10.5 BLUアクセラレーション登場 BLU アクセラレーション アナリティクス処理を加速させるRDBの革命 • アナリティクス処理が従来よりも数十倍高速に • 表にデータを投入するだけですぐに利用可能 • 索引チューニング不要 • 低コストで実装可能なハイブリッド・データベース © 2013 IBM Corporation 9 ハイブリッド・ データベース BLUアクセラレーションの特徴 1. カラム・オーガナイズ表 • • 結果セットを導き出すのに必要な最低限のデータの みをアクセス 索引の追加等のチューニング不要 BLUアクセラレーションを 実装したデータベース クエリー実行環境 従来の 実行環境 BLU実行環境 2. ハードウェアの最適な活用 • SIMDおよびマルチコア・パラレリズムによるCPU能 力のフル活用 • CPUとキャッシュに最適化された圧縮アルゴリズム 3. ハイブリッド・データベース • ハードウェアの 最適な活用 カラム・オーガナイズ表と従来の 形式の表(行オーガナイズ表)が共存可能 • 共通のSQL、ユーティリティー・インタフェース 従来のデータ 管理サービス 従来のDB2バッファー・プール SIMD機能を備えたCPU ストレージ 従来の行形式の テーブル C1 • BLU用データ 管理サービス C2 C3 C4 C5 C6 C7 圧縮とエンコードが 行われた列テーブル C8 C1 C2 C3 C4 C5 C6 C7 C8 既存のHWインフラ、アプリケーション、運用監視等、 すべてそのまま利用可能 カラム・オーガナイズ表 © 2013 IBM Corporation 10 BLUアクセラレーションのキー・テクノロジー カラム・ オーガナイズ表 データ・ スキッピング HWに最適化された データ圧縮 マルチコア・ パラレリズム SIMDによる CPU最適化 © 2013 IBM Corporation 11 BLUテクノロジー(1):カラム・オーガナイズ表 汎用RDBMSにおける行ストア(行オーガナイズ表) ID 商品名 価格 サイズ 発売日 1ブロックにすべての列のデータを 1001 商品A 1000 L 2013-01-20 格納 1002 商品B 2000 XS 2010-07-07 クエリーの結果導出に不要な列も 1003 商品C 1500 M 2012-10-31 読み込む必要がある。 1004 商品D 3000 S 2013-04-11 BLUアクセラレーション(カラム・オーガナイズ表) ID 列データ毎に別ブロックに格納 商品名 価格 1001 参照処理における不要列データの サイズ 商品A 発売日 1000 1002 読み込みが無くなり、必要なデータ L 商品B 2013-01-20 2000 1003 のみ効率良くメモリーへロード XS 商品C 2010-07-07 1500 1004 同一列内には特定のデータが繰り M 商品D 2012-10-31 3000 返し現れることが多く、圧縮効率が S 2013-04-11 良い © 2013 IBM Corporation 12 BLUテクノロジー(2):データ・スキッピング SELECT * FROM T WHERE HATSUBAI=‘2013-01-06’ SKIP 条件に適合しないデータブロックを自動的 にスキップ - 一定のデータ件数毎に、各列に出現 したデータの最大値と最小値を保持 2013-01-01 2013-01-02 2013-01-03 2013-01-04 I/O量、メモリー容量、CPU時間を大幅削 減 Min: 2013-01-05 Max:2013-01-08 2013-01-05 2013-01-06 2013-01-07 2013-01-08 SKIP データ・スキッピングのための管理情報は すべて自動メンテナンスされ、利用者によ る管理は一切不要 Min: 2013-01-01 Max:2013-01-04 発売日 Min: 2013-01-09 Max:2013-01-13 2013-01-09 2013-01-10 2013-01-11 2013-01-12 2013-01-13 条件に合致するデータを含んだ領域のみをスキャン © 2013 IBM Corporation 13 BLUテクノロジー(3):マルチコア・パラレリズム カラム・オーガナイズ表に対するクエリーは、自動的に複数CPU 活用 – スキャン、結合、ソート等の処理を複数スレッドで並列に処理する。 © 2013 IBM Corporation 14 BLUテクノロジー(4):SIMDによるCPU最適化 • SIMD(Single Instruction Multiple Data) を利用し、複数の処理 をまとめて実行 ■SIMDを利用した処理 ■通常の処理 2012 2011 2010 2001 2003 2002 2009 2005 2001 2009 2008 2004 2012 データ 命令 CPU 2005 Compare = 2009 結果ストリーム 1つの処理を4回繰り返す © 2013 IBM Corporation 2007 2003 2011 データ 命令 Compare = 2009 2006 2002 2010 CPU 2005 結果ストリーム 1回の命令で複数のデータを処理 15 BLUテクノロジー(5):HWに最適化されたデータ圧縮 ハフマン符号化によるデータの圧縮率最大化 – 値の出現頻度が多いほど、ビット数を小さくする 複数のデータをグルーピングしてレジスターに格納 – 複数データをレジスター幅にまとめ、単一インストラクションで処理 → SIMDの活用 エンコード済みの値は、圧縮したまま処理可能 – 述部(条件評価)と結合は、エンコード済みの値を直接処理 – 結果セットが必要となるまで、データの解凍(マテリアライズ)を行わない LAST_NAME Johnson Smith Smith Smith Smith Johnson Smith Gilligan Sampson Smith © 2013 IBM Corporation エンコード値 レジスターの長さに揃えて格納 レジスター長 レジスター長 16 BLUアクセラレーションの処理イメージ DATA DATA DATA DATA DATA DATA DATA DATA DATA DATA DATA 強化された圧縮技術 によりデータ容量を数 分の一に削減 数TBのデータ 複数CPUコアにて 並列にスキャン DATA © 2013 IBM Corporation DATA カラム・オーガナイ ズ表の必要な列に のみアクセス データ・スキッピングに よってアクセス対象 絞り込み ベクトル処理(SIMD) により 各コア内で複数データを 一度に処理 数秒以内で 処理が完了 DATA DATA 17 BLUアクセラレーションの効果(1):実装の迅速性 実装の迅速性 DB2 BLU Design and Tuning • Create Table • Load data •インデックス不要 •RUNSTATSが不要(LOAD時 に自動的に実行) •パフォーマンス向上のための 構成、追加オブジェクト、操作 が不要 これだけ CREATE TABLE T1 ( C1 int, C2 char(200)) ORGANIZE BY COLUMN アプライアンスに置き換えるのではなく、汎用RDBMSであるDB2の中で利用できる 特別な設計/チューニングをしなくても安定したハイ・パフォーマンスが得られる 使用のための準備作業を大幅に削減 © 2013 IBM Corporation 18 BLUアクセラレーションの効果(1):実装の迅速性 管理の複雑性を解決 繰り返し 実行する BLUにより不要に データベースの設計とチューニング • パーティショニング戦略を決定する • 圧縮手法を選択する • テーブルを作成する • データをロードする • パフォーマンスを改善するための構造を作成する • マテリアライズド・ビュー • インデックスを作成する • B+インデックス • ビットマップ・インデックス • メモリーをチューニングする • I/Oをチューニングする • オプティマイザーのヒントを追加する • 統計情報を収集する 同じ処理結果を得るために必要なデータベース・オブジェクトの数が少ない クエリー処理が最適化され、必要となるデータベース・オブジェクトの数が少ないため 継続的な管理業務を削減可能 © 2013 IBM Corporation 19 BLUアクセラレーションの効果(2):データ圧縮効率 • 強化された圧縮技術と、カラム・オーガナイズによる圧縮効率向上 • 処理オブジェクトの数を削減、 索引用ストレージが不要 ストレージ・サイズには、 以下が含まれる ・表データ ・索引 ・圧縮ディクショナリー ・列ストアのメタデータ DB2 10.1の圧縮に比べても 高い圧縮効果 投資銀行 © 2013 IBM Corporation 独立系ソフトウェア・ベンダー DB2 10.1(圧縮前) DB2 10.1(圧縮後) DB2(BLUアクセラレーション) DB2 with BLU Accel. メーカー 20 BLUアクセラレーションの効果(3):パフォーマンス DB2 10.1 との比較 A社 B社 C社 D社 E社 46.8x 37.4x 13.0x 6.1x 5.6x 通常 数倍から 数十倍の パフォーマンスアップ BNSF RAILWAY 「当社が使っている行テーブルのパフォーマンスと比較して、クエリーの大幅なスピード アップが実現することに驚きました。当社が実行するクエリーのうち4件について、パ フォーマンスが100倍以上改善したのです! パフォーマンスの改善が最も顕著だったの は、BLUアクセラレーションによってあるクエリーの処理スピードが137倍になったこと です」 © 2013 IBM Corporation 21 検証結果から見るDB2 10.5 BLU アクセラレーションの有用性 © 2013 IBM Corporation 22 検証の目的 DB2の最新リリース10.5が、BLUアクセラレーションと呼ばれる、列指向 のデータ処理エンジンを搭載するようになった。 この機能により、従来 からのデータベースの運用や既存のアプリケーションを一切変更する ことなく、高速なデータ分析が可能になる。 今回の検証では、この新しい技術と、従来から行指向のテーブルを 使った処理との特性の違いを検証し、当技術を利用する上での指針や ヒントを得る。 実装の迅速性 圧縮効率 パフォーマンス 確認ポイント 確認ポイント 確認ポイント 構築/運用の簡易性 テーブルおよび 関連オブジェクト のデータ容量 検索性能が高速である こと テーブル作成後に即 時ロード チューニング有無 © 2013 IBM Corporation 圧縮率 分析の軸が変更された 場合でも、チューニング なしで高速検索が可能 23 実施テスト:Star Schema Benchmark SUPPLIER(20万件) CUSTOMER (300万件) C_CUSTKEY C_NAME C_ADDRESS C_CITY C_NATION C_REGION C_PHONE C_MKTSEGMENT PART (140万件) P_PARTKEY P_NAME P_MFGR P_CATEGORY P_BRAND P_COLOR P_TYPE P_SIZE P_CONTAINER LINEORDER(6億件) LINEORDER LO_ORDERKEY LO_LINENUMBER LO_CUSTKEY LO_PARTKEY LO_SUPPKEY LO_ORDERDATE LO_ORDERPRIOTITY LO_SHIPPRIOTITY LO_QUANTITY LO_EXTENDEDPRICE LO_ORDTOTALPRICE LO_DISCOUNT LO_REVENUE LO_SUPPLYCOST LO_TAX LO_COMMITDATE LO_SHIPMODE Star Schema Benchmark のモデルを利用 (www.cs.umb.edu/~poneil/StarSchemaB.pdf ) Scale Factor = 100にてデータ生成 © 2013 IBM Corporation S_SUPPKEY S_NAME S_ADDRESS S_CITY S_NATION S_REGION S_PHONE DATES (2556件) D_DATEKEY D_DATE D_DAYOFWEEK D_MONTH D_YEAR D_YEARMONTHNUM D_YEARMONTH D_DAYNUMINWEEK D_DAYNUMINMONTH D_DAYNUMINYEAR D_MONTHNUMINYEAR D_WEEKNUMINYEAR D_SELLINGSEASON D_LASTDAYINWEEKFL D_LASTDAYINMONTHFL D_HOLIDAYFL D_WEEKDAYFL 24 Star Schema Benchmarkクエリー • Star Schema Benchmarkが定める13のクエリー性能を測定 – パターン1: 2つの表の結合と集計を、選択行のレンジを変動させながら 実行 – パターン2: 4つの表を結合し、2つの分析軸で集計 – パターン3: 4つの表を結合し、3つの分析軸で集計 – パターン4: 5つの表を結合し、3つの分析軸で集計 © 2013 IBM Corporation 25 検証クエリー・パターン1 (Q1.1~Q1.3) • 2つの表の結合と集計を、選択行のレンジを変動させながら3種類実行 -- Query Q1.1 SELECT SUM(LO_EXTENDEDPRICE*LO_DISCOUNT) AS REVENUE FROM LINEORDER, DATES WHERE LO_ORDERDATE = D_DATEKEY AND D_YEAR = 1993 AND LO_DISCOUNT BETWEEN 1 AND 3 AND LO_QUANTITY < 25; -- Query Q1.2 SELECT SUM(LO_EXTENDEDPRICE*LO_DISCOUNT) AS REVENUE FROM LINEORDER, DATES WHERE LO_ORDERDATE = D_DATEKEY AND D_YEARMONTH = 'Jan1994' AND LO_DISCOUNT BETWEEN 4 AND 6 AND LO_QUANTITY BETWEEN 26 AND 35; -- Query Q1.3 SELECT SUM(LO_EXTENDEDPRICE*LO_DISCOUNT) AS REVENUE FROM LINEORDER, DATES WHERE LO_ORDERDATE = D_DATEKEY AND D_WEEKNUMINYEAR = 6 AND D_YEAR = 1994 AND LO_DISCOUNT BETWEEN 5 AND 7 AND LO_QUANTITY BETWEEN 26 AND 35; © 2013 IBM Corporation 26 検証クエリー・パターン2 (Q2.1~Q2.3) • 4つの表を結合し、2つの分析軸で集計 – 選択行のレンジを変動させながら3種類のクエリーを実行 -- Query Q2.1 SELECT SUM(LO_REVENUE), D_YEAR, P_BRAND FROM LINEORDER, DATES, PART, SUPPLIER WHERE LO_ORDERDATE = D_DATEKEY AND LO_PARTKEY = P_PARTKEY AND LO_SUPPKEY = S_SUPPKEY AND P_CATEGORY = 'MFGR#12' AND S_REGION = 'AMERICA' GROUP BY D_YEAR, P_BRAND ORDER BY D_YEAR, P_BRAND; -- Query Q2.3 SELECT SUM(LO_REVENUE), D_YEAR, P_BRAND FROM LINEORDER, DATES, PART, SUPPLIER WHERE LO_ORDERDATE = D_DATEKEY AND LO_PARTKEY = P_PARTKEY AND LO_SUPPKEY = S_SUPPKEY AND P_BRAND= 'MFGR#2239' AND S_REGION = 'EUROPE' GROUP BY D_YEAR, P_BRAND ORDER BY D_YEAR, P_BRAND; -- Query Q2.2 SELECT SUM(LO_REVENUE), D_YEAR, P_BRAND FROM LINEORDER, DATES, PART, SUPPLIER WHERE LO_ORDERDATE = D_DATEKEY AND LO_PARTKEY = P_PARTKEY AND LO_SUPPKEY = S_SUPPKEY AND P_BRAND BETWEEN 'MFGR#2221' AND 'MFGR#2228' AND S_REGION = 'ASIA' GROUP BY D_YEAR, P_BRAND ORDER BY D_YEAR, P_BRAND; © 2013 IBM Corporation 27 検証クエリー・パターン3 (Q3.1~Q3.4) 4つの表を結合し、3つの分析軸で集計 – 選択行のレンジや分析軸の異なる4種類のクエリーを実行 -- Query Q3.1 SELECT C_NATION, S_NATION, D_YEAR, SUM(LO_REVENUE) AS REVENUE FROM CUSTOMER, LINEORDER, SUPPLIER, DATES WHERE LO_CUSTKEY = C_CUSTKEY AND LO_SUPPKEY = S_SUPPKEY AND LO_ORDERDATE = D_DATEKEY AND C_REGION = 'ASIA' AND S_REGION = 'ASIA' AND D_YEAR >= 1992 AND D_YEAR <= 1997 GROUP BY C_NATION, S_NATION, D_YEAR ORDER BY D_YEAR ASC, REVENUE DESC; -- Query Q3.2 SELECT C_CITY, S_CITY, D_YEAR, SUM(LO_REVENUE) AS REVENUE FROM CUSTOMER, LINEORDER, SUPPLIER, DATES WHERE LO_CUSTKEY = C_CUSTKEY AND LO_SUPPKEY = S_SUPPKEY AND LO_ORDERDATE = D_DATEKEY AND C_NATION = 'UNITED STATES' AND S_NATION = 'UNITED STATES' AND D_YEAR >= 1992 AND D_YEAR <= 1997 GROUP BY C_CITY, S_CITY, D_YEAR ORDER BY D_YEAR ASC, REVENUE DESC; © 2013 IBM Corporation -- Query Q3.3 SELECT C_CITY, S_CITY, D_YEAR, SUM(LO_REVENUE) AS REVENUE FROM CUSTOMER, LINEORDER, SUPPLIER, DATES WHERE LO_CUSTKEY = C_CUSTKEY AND LO_SUPPKEY = S_SUPPKEY AND LO_ORDERDATE = D_DATEKEY AND (C_CITY='UNITED KI1' OR C_CITY='UNITED KI5') AND (S_CITY='UNITED KI1' OR S_CITY='UNITED KI5') AND D_YEAR >= 1992 AND D_YEAR <= 1997 GROUP BY C_CITY, S_CITY, D_YEAR ORDER BY D_YEAR ASC, REVENUE DESC; -- Query Q3.4 SELECT C_CITY, S_CITY, D_YEAR, SUM(LO_REVENUE) AS REVENUE FROM CUSTOMER, LINEORDER, SUPPLIER, DATES WHERE LO_CUSTKEY = C_CUSTKEY AND LO_SUPPKEY = S_SUPPKEY AND LO_ORDERDATE = D_DATEKEY AND (C_CITY='UNITED KI1' OR C_CITY='UNITED KI5') AND (S_CITY='UNITED KI1' OR S_CITY='UNITED KI5') AND D_YEARMONTH = 'Dec1997' GROUP BY C_CITY, S_CITY, D_YEAR ORDER BY D_YEAR ASC, REVENUE DESC; 28 検証クエリー・パターン4 (Q4.1~Q4.3) 5つの表を結合して集計 – 選択行のレンジや分析軸の異なる3種類を実行 -- Query Q4.1 SELECT D_YEAR, C_NATION, SUM(LO_REVENUE - LO_SUPPLYCOST) AS PROFIT FROM DATES, CUSTOMER, SUPPLIER, PART, LINEORDER WHERE LO_CUSTKEY = C_CUSTKEY AND LO_SUPPKEY = S_SUPPKEY AND LO_PARTKEY = P_PARTKEY AND LO_ORDERDATE = D_DATEKEY AND C_REGION = 'AMERICA' AND S_REGION = 'AMERICA' AND (P_MFGR = 'MFGR#1' OR P_MFGR = 'MFGR#2') GROUP BY D_YEAR, C_NATION ORDER BY D_YEAR, C_NATION; -- Query Q4.3 SELECT D_YEAR, S_CITY, P_BRAND, SUM(LO_REVENUE - LO_SUPPLYCOST) AS PROFIT FROM DATES, CUSTOMER, SUPPLIER, PART, LINEORDER WHERE LO_CUSTKEY = C_CUSTKEY AND LO_SUPPKEY = S_SUPPKEY AND LO_PARTKEY = P_PARTKEY AND LO_ORDERDATE = D_DATEKEY AND S_NATION = 'UNITED STATES' AND (D_YEAR = 1997 OR D_YEAR = 1998) AND P_CATEGORY = 'MFGR#14' GROUP BY D_YEAR, S_CITY, P_BRAND ORDER BY D_YEAR, S_CITY, P_BRAND; -- Query Q4.2 SELECT D_YEAR, S_NATION, P_CATEGORY, SUM(LO_REVENUE - LO_SUPPLYCOST) AS PROFIT FROM DATES, CUSTOMER, SUPPLIER, PART, LINEORDER WHERE LO_CUSTKEY = C_CUSTKEY AND LO_SUPPKEY = S_SUPPKEY AND LO_PARTKEY = P_PARTKEY AND LO_ORDERDATE = D_DATEKEY AND C_REGION = 'AMERICA' AND S_REGION = 'AMERICA' AND (D_YEAR = 1997 OR D_YEAR = 1998) AND (P_MFGR = 'MFGR#1' OR P_MFGR = 'MFGR#2') GROUP BY D_YEAR, S_NATION, P_CATEGORY ORDER BY D_YEAR, S_NATION, P_CATEGORY; © 2013 IBM Corporation 29 検証環境 IBM Power 740 (Power7 3.7GHz x 8 core, 64GB memory) AIX 7.1 TL2 SP2 DB2 10.5 Beta 同一DB内に、BLUアクセラレーション機能 利用のためのカラム・オーガナイズ表と、 従来と同じ行オーガナイズ表(2パターン) を作成し、比較 DS4800 (RAID5) 従来型表 従来型表 C1 C2 C3 C4 C5 C6 C7 C8 C1 C2 C3 C4 C5 C6 C7 C8 MDC BLUアクセラレーション表 索引 索引 行オーガナイズ表 • 圧縮なし • 索引なし © 2013 IBM Corporation C1 C2 C3 C4 C5 C6 C7 C8 … 行オーガナイズ表 ※チューニング有り • 圧縮あり • 20索引追加 • MDC次元列追加 カラム・オーガナイズ表 • デフォルトでBLU圧縮 • 索引なし 30 DB2 BLU アクセラレーションの使用開始までの流れ ①通常のDB2導入と同じ手順で、DB2 10.5 の導入とインスタンス作成 - db2setup等にて導入 実装の迅速性 ◎構築/運用の簡易性 ◎テーブル作成後に 即時ロード ◎チューニング不要 ②レジストリー変数 DB2_WORKLOAD=ANALYTICS を設定 ③データベースの作成 CREATE DATABASE db名 BLUに適したDBパラメータが設定され、表のデフォルトがカラム・ オーガナイズ表となる(自動設定) C1 C2 C3 C4 C5 C6 C7 C8 ④テーブルの作成 CREATE TABLE table名 … データ圧縮は常にオン 索引は必要としない 圧縮後 データ ⑤データロード 分析対象データ カラム・オーガナイズ表の場合は、ロード時に以下の処理も 含まれる ⑥分析用SQL実行 • 圧縮辞書の作成と圧縮処理 SQLの述部の評価 JOINのキーマッチングは 圧縮データのまま実行 • 自動で統計情報が更新される © 2013 IBM Corporation 31 カラム・オーガナイズ表(BLU)と行オーガナイズ表の共存 DB構成パラメーター DFT_TABLE_ORGにて、デフォルトの表タイプを指定 – COLUMN: カラム・オーガナイズ表 (BLU) – ROW: 行オーガナイズ表 1つのデータベース内で2つのタイプの表が共存可能 – ORGANIZE BY COLUMN / ORGANIZE BY ROW によって明示指定可能 CREATE TABLE BLU01 (C1 INT, C2 CHAR(100)) ORGANIZE BY COLUMN CREATE TABLE ROW01 (C1 INT, C2 CHAR(100)) ORGANIZE BY ROW © 2013 IBM Corporation 32 (補足)行オーガナイズ表へのチューニング:アドバイザー BLUでは不要 による推奨索引追加 • Q1.1~Q4.3までの13個のクエリーをもとに推奨された索引をすべて定義 ■ CUSTOMER表 ■ SUPPLIER表 索引1: C_REGION + C_NATION + C_CUSTKEY 索引1: S_REGION S_NATION S_SUPPKEY 索引2: C_REGION + C_CUSTKEY 索引2: S_NATION S_CITY S_SUPPKEY 索引3: C_NATION + C_CITY C_CUSTKEY 索引3: S_CITY S_SUPPKEY 索引4: C_CITY C_CUSTKEY 索引4: S_REGION S_SUPPKEY 索引5: C_CUSTKEY ■ DATES表: ■ PART表 索引1: D_YEAR + D_DATEKEY 索引1: P_MFGR P_CATEGORY P_PARTKEY 索引2: D_YEARMONTH + D_YEAR + D_DATEKEY 索引2: P_CATEGORY P_BRAND P_PARTKEY 索引3: D_WEEKNUMINYEAR + D_YEAR + D_DATEKEY 索引3: P_BRAND P_PARTKEY 索引4: D_YEARMONTH + D_DATEKEY 索引4: P_BRAND P_PARTKEY 索引5: D_DATEKEY + D_YEAR ■ LINEORER表: 索引1: LO_PARTKEY + LO_REVENUE + LO_ORDERDATE + LO_SUPPKEY 索引2: LO_ORDERDATE + LO_DISCOUNT + LO_QUANTITY + LO_EXTENDEDPRICE © 2013 IBM Corporation 33 (補足)行オーガナイズ表へのチューニング: LINEORDER表のMDC化、圧縮指定 BLUでは不要 • LINEORDER表をMDC化し、スキャン行数を限定 – 13個のクエリーは日付範囲を指定したクエリーが多いため、日付にて クラスタリング • LO_ORDERDATEの年月部分だけを取り出した生成列 (LO_ORDERMONTH)をつくり、MDC表の次元列とした CREATE TABLE LINEORDER ( LO_ORDERKEY BIGINT, LO_LINENUMBER BIGINT, LO_CUSTKEY INTEGER NOT NULL, LO_PARTKEY INTEGER NOT NULL, LO_SUPPKEY INTEGER NOT NULL, LO_ORDERDATE INTEGER NOT NULL, LO_ORDERPRIOTITY VARCHAR(15) NOT NULL, LO_SHIPPRIOTITY INTEGER, LO_QUANTITY BIGINT, LO_EXTENDEDPRICE BIGINT, LO_ORDTOTALPRICE BIGINT, LO_DISCOUNT BIGINT, LO_REVENUE BIGINT, LO_SUPPLYCOST BIGINT, LO_TAX BIGINT, LO_COMMITDATE INTEGER NOT NULL, LO_SHIPMODE VARCHAR(10) NOT NULL, LO_ORDERMONTH INTEGER NOT NULL GENERATED ALWAYS AS (LO_ORDERDATE/100) ) ORGANIZE BY DIMENSIONS ( LO_ORDERMONTH ) COMPRESS YES ADAPTIVE; 圧縮も指定 © 2013 IBM Corporation 34 圧縮効率の検証 • LINEORDER表(6億件)のデータロード後サイズを3種類の表で 比較 – 行オーガナイズ表 (圧縮なし、索引なし) – 行オーガナイズ表 ※チューニング有り (圧縮あり、索引あり、MDC次元 列あり) – カラム・オーガナイズ表(デフォルトでBLU圧縮、索引なし) • 圧縮率の確認 – ロード後、管理ビューにて消費ストレージサイズを確認 SELECT VARCHAR(TABNAME,20) AS TABNAME, DATA_OBJECT_P_SIZE, INDEX_OBJECT_P_SIZE, COL_OBJECT_P_SIZE FROM SYSIBMADM.ADMINTABINFO WHERE TABNAME=‘LINEORDER’; © 2013 IBM Corporation 35 圧縮効率の検証 圧縮効率 ◎索引用ストレージが不要 ◎強化された圧縮技術により圧縮効率向上 100% 87% ストレージ消費 (MB ) 表 タイプ 22% 行 MDC BLU Data Obj Index Obj Col Obj Total 圧縮 率 行 78,089 - - 78,089 100% MDC 37,226 30,458 - 67,684 87% BLU 2 13 17,270 17,285 22% 行 : 行オーガナイズ表 (圧縮なし、索引なし) MDC : チューニングした行オーガナイズ表(圧縮あり、索引あり、 MDC次元列あり) BLU : カラム・オーガナイズ表(デフォルトでBLU圧縮、索引なし) BLU(カラム・オーガナイズ表)ではデフォルトで大きな圧縮効果 [補足]SYSIBMADM.ADMINTABINFO管理ビューには、カラム・オーガナイズ表の物理データを保管する領域サイズを確認する COL_OBJECT_P_SIZE列が追加されている。 内部のメタデータを管理するため、カラム・オーガナイズ表も、わずかにデータ・ページ、索引ページの消費がある。 © 2013 IBM Corporation 36 パフォーマンス検証: Star Schema Benchmarkクエリー 結果 • 13個のクエリーの応答性能を3種類の表で比較 – 行:行オーガナイズ表 (圧縮なし、索引なし) – MDC :チューニングした行オーガナイズ表 (圧縮あり、索引あり、MDC次元列あり) – BLU:カラム・オーガナイズ表(デフォルトでBLU圧縮、索引なし) 表のタ イプ 各クエリーの応答時間 (秒) Q1.1 Q1.2 Q1.3 Q2.1 Q2.2 Q2.3 Q3.1 Q3.2 Q3.3 Q3.4 Q4.1 Q4.2 Q4.3 行 342.7 341.1 340.9 304.3 319.5 334.1 260.7 325.6 336.3 336.7 253.1 261.9 296.4 MDC 6.5 0.2 0.1 25.8 4.1 0.5 105.4 103.2 103.0 17.5 104.5 103.8 103.3 BLU 2.6 2.2 1.9 6.1 5.3 5.2 9.1 5.8 4.6 1.8 9.9 6.6 4.8 行オーガナイズ表をカラム・オーガナイズ表に変更することで、各4分~6分要していたク エリーが、数秒で完了するようになった。 索引の追加やMDC表への変更で、行オーガナイズ表でも高速化できるクエリーはある が、効果が十分に発揮されないクエリーもある。 © 2013 IBM Corporation 37 パフォーマンス検証:MDCとBLU表の比較のポイント BLUではクエリー形式の違いにかかわらず、一貫して高速なレスポンスを維持 パフォーマンス MDC化や索引追加 などで最適化した表 を用意しても、すべて のクエリーの高速化 は難しい ◎検索性能が高速である こと ◎分析の軸が変更された 場合でも、チューニングな しで高速検索が可能 クエリーの形式や集計 列の違いに関わらず、 カラム・オーガナイズ 表(BLU)は数秒の応 答時間を維持 カラム・オーガナイズ表を使えば、照会の軸、 範囲が急遽変更になってもチューニングなしで対応可能 © 2013 IBM Corporation 38 [ご参考]DB2 10.5 BLUアクセラレーション機能対応! Optim Query Workload TunerによるBLU表への変更 アドバイス例 変更後のパフォーマンス改善 率も推定してくれる 対象表 一覧 © 2013 IBM Corporation カラム・オーガナイ ズ表への移行推奨 移行用のスクリプトも 表毎に出力してくれる 39 BLUアクセラレーション検証結果サマリー 実装の迅速性 圧縮効率 パフォーマンス 確認ポイント 確認ポイント 確認ポイント ◎ 構築/運用の簡易性 ◎ 索引用ストレージが不 要 ◎ 検索性能が高速である こと ◎ 強化された圧縮技術 により圧縮効率向上 ◎ 分析の軸が変更された 場合でも、チューニング なしで高速検索が可能 ◎ テーブル作成後に即 時ロード ◎ チューニング不要 Star Schema Benchmark結果サマリー – – – – スタースキーマの分析処理に対して、BLUは安定的に性能向上が見られた。 BLUは、従来表に比べ、25倍~187倍の性能向上 BLUは、すべてのケースにおいて数秒で応答 データ・アナリティクスのように、検索条件や分析の軸が随時変わるようなワーク ロードに対しては、カラム・オーガナイズ表の利用が適していると言える。 – 索引、MDC等の事前設計の困難な非定型検索にBLUが適している © 2013 IBM Corporation 40 DB2 BLUアクセラレーションの活用シナリオ例 EDWアプリケーション OLAPアプリケーション Cognos BI BLUアクセラレーションを実現 Cognos BI 他社のパフォーマンスの 落ちたデータウェアハウス BLUアクセラレーションを実現 BLUアクセラレーションで構築 された高速なデータ・マートを簡 単に作成・ロードする アナリティクスの データ・マート (BLUテーブル) マルチプラットフォーム・ ソフトウェア © 2013 IBM Corporation 41 BLUアクセラレーションまとめ • DB2 10.5のひとつの機能として利用可能な 分析処理を加速するソフトウェア 分析処理が速い! BLUアクセラレーションを 実装したDB2 10.5 クエリー実行環境 従来の 実行環境 BLU実行環境 使い方が簡単! 従来のデータ 管理サービス 行と列のハイブリッド! BLU用データ 管理サービス 従来のDB2バッファープール SIMD機能を備えたCPU ビッグデータの分析のスタートに最適 DB2 ストレージ 従来の行形式の テーブル C1 C2 C3 C4 C5 C6 C7 圧縮とエンコードが 行われた列テーブル C8 C1 C2 C3 C4 C5 C6 C7 C8 WITH BLU ACCELERATION © 2013 IBM Corporation 42 ワークショップ、セッション、および資料は、IBMまたはセッション発表者によって準備され、それぞれ独自の見解を反映したものです。それらは情報提供の目 的のみで提供されており、いかなる参加者に対しても法律的またはその他の指導や助言を意図したものではなく、またそのような結果を生むものでもありませ ん。本講演資料に含まれている情報については、完全性と正確性を期するよう努力しましたが、「現状のまま」提供され、明示または暗示にかかわらずいかな る保証も伴わないものとします。本講演資料またはその他の資料の使用によって、あるいはその他の関連によって、いかなる損害が生じた場合も、IBMは責 任を負わないものとします。 本講演資料に含まれている内容は、IBMまたはそのサプライヤーやライセンス交付者からいかなる保証または表明を引きだすこ とを意図したものでも、IBMソフトウェアの使用を規定する適用ライセンス契約の条項を変更することを意図したものでもなく、またそのような結果を生むもので もありません。 本講演資料でIBM製品、プログラム、またはサービスに言及していても、IBMが営業活動を行っているすべての国でそれらが使用可能であることを暗示するも のではありません。本講演資料で言及している製品リリース日付や製品機能は、市場機会またはその他の要因に基づいてIBM独自の決定権をもっていつで も変更できるものとし、いかなる方法においても将来の製品または機能が使用可能になると確約することを意図したものではありません。本講演資料に含ま れている内容は、参加者が開始する活動によって特定の販売、売上高の向上、またはその他の結果が生じると述べる、または暗示することを意図したもので も、またそのような結果を生むものでもありません。 パフォーマンスは、管理された環境において標準的なIBMベンチマークを使用した測定と予測に基づいて います。ユーザーが経験する実際のスループットやパフォーマンスは、ユーザーのジョブ・ストリームにおけるマルチプログラミングの量、入出力構成、ストレー ジ構成、および処理されるワークロードなどの考慮事項を含む、数多くの要因に応じて変化します。したがって、個々のユーザーがここで述べられているものと 同様の結果を得られると確約するものではありません。 記述されているすべてのお客様事例は、それらのお客様がどのようにIBM製品を使用したか、またそれらのお客様が達成した結果の実例として示されたもの です。実際の環境コストおよびパフォーマンス特性は、お客様ごとに異なる場合があります。 IBM、IBM ロゴ、ibm.com、AIX、Cognos、DB2、Optim、Power、PureData、pureScale、およびz/OSは、世界の多くの国で登録されたInternational Business Machines Corporationの商標です。 他の製品名およびサービス名等は、それぞれIBMまたは各社の商標である場合があります。 現時点での IBM の商標リストについては、www.ibm.com/legal/copytrade.shtmlをご覧ください。 © 2013 IBM Corporation 43
© Copyright 2024 ExpyDoc