SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

EnterpriseZine(エンタープライズジン)編集部では、情報システム担当、セキュリティ担当の方々向けに、EnterpriseZine Day、Security Online Day、DataTechという、3つのイベントを開催しております。それぞれ編集部独自の切り口で、業界トレンドや最新事例を網羅。最新の動向を知ることができる場として、好評を得ています。

直近開催のイベントはこちら!

EnterpriseZine編集部ではイベントを随時開催しております

EnterpriseZine(エンタープライズジン)編集部では、情報システム担当、セキュリティ担当の方々向けの講座「EnterpriseZine Academy」や、すべてのITパーソンに向けた「新エバンジェリスト養成講座」などの講座を企画しています。EnterpriseZine編集部ならではの切り口・企画・講師セレクトで、明日を担うIT人材の育成をミッションに展開しております。

お申し込み受付中!

ビッグデータのリーサルウェポン!徹底解析GreenplumDB

GreenplumDBが持つ高速化機能とワークロード管理・可用性機能

005


テーブル毎もしくはテーブル内で、柔軟にストア方式を指定した利用例

 では、Greenplum DBはどうかというと、ローストアとカラムストアの両方のデータ格納方式を利用可能と申し上げました。これは、テーブル単位で処理内容に合った使い分けができるということです。例えば、2つのテーブルA、Bが存在し、テーブルAは、明細単位で参照・更新することが多いのでローストアに設定し、テーブルBは列単位で集計することが多いのでカラムストアに設定することで、使い分けを行い、それぞれの処理を効率化することが可能です。

 また、テーブルパーティション単位でローストアとカラムストアを使い分けることで、1つのテーブル内においてもローストアとカラムストアを組み合わせることができます。例えば、図2のように、テーブルを時系列(図2では1年ごと)でレンジパーティションに区切り、それぞれのパーティションごとにローストアかカラムストアを選択します。この例では、最近のデータに関しては、行単位の参照・更新処理が多く、複数列に対してアクセスが多くなるので、ローストアで格納しています。それ以前の過去のデータに関しては列単位の集計処理が多いため、カラムストアで格納しています。このようにローストアとカラムストアを1つのテーブル内においてハイブリッドで構成し、両方のメリットを得ることができるのは、Greenplum DBの大きな特徴です。

テーブルスペースを利用した物理ストレージの使い分け(SSD等)

 DB高速化をハードウェア構成の観点から考える場合、最近では、SSDの搭載を検討することもあるかと思います。もちろん、Greenplum DBはマルチストレージ(SSD、SAS、SATAなどの混在環境)での構成も可能です。具体的には、それぞれのストレージタイプ毎にテーブルスペースを作成し、図2の例と同様に、古いデータはコスト重視のSATA上に配置し、アクセス頻度が高く高速性が重視される最近のデータは性能重視のSSD上に配置することで、階層化ストレージ管理のような構成をとることが可能です。

リソースキューと動的クエリ優先度管理による柔軟なワークロード管理

 ワークロード管理を行うことができないDWHシステムではどうでしょう。例えば、20分かかるクエリAがハードウェアリソースを占有している状態で、通常5秒で終了するクエリBが実行された場合、クエリAのレスポンスタイムは20分、クエリBは20分5秒となり、クエリBの処理性能に対する満足度は、極端に低くなります。一方、ワークロード管理を行い、クエリAが実行中でもクエリBを優先実行することができれば、クエリAは20分5秒、クエリBは5秒となり、クエリAの処理性能に対する満足度をほぼそのままに、クエリBに対する満足度を通常時と同じに保つことができます。これは、クエリAのレスポンスタイムが5秒伸びますが、元々の20分と比較すれば無視できるほど小さい時間になるためです。

 以上は単純な例ですが、Greenplum DBのワークロード管理機能は、複雑な(重い)クエリ・多重(複数)実行・混合ワークロード環境を適切に管理するために、ハードウェアリソースを全てのクエリに対して適切かつ柔軟に割り当てる能力を持っています。これはリソースキューという仕組みを使って設定します。

 図3を使って具体的に説明しますと、例えば、ユーザを3つのロール(グループ)に分けます(ここではマネジメント、アナリスト、一般社員の3つ)。それぞれのロールごとにリソースキューを作成し、ロールとの関連付けを行います。そして、リソースキューに対して同時実行可能なクエリ数やコストの総和を設定します。

 図3の例では、マネジメントキュー、アナリストキュー、一般社員キューそれぞれに対し同時実行可能クエリ数を12、8、4に設定し、マネジメントキューに属しているユーザは同時に一番多くのクエリを実行することができるようにしています。

 また、リソースキューに対してハードウェアリソース割り当ての優先度を設定します。図3の例では、マネジメントキューに対して、多くのハードウェアリソースを割り当てることで、同じクエリがそれぞれのリソースキューに投げられた場合、マネジメントキューに入っているクエリを一番速く実行することができるようにしています。

 このようにリソースキューの優先度管理を行うことで、全体的な処理性能に対する満足度を高く維持することが可能です。

 リソースキューを用いた優先度管理において設定可能な項目を大きく4つの観点からまとめると、以下の通りとなります。

 (1)同時に処理されるクエリのコストの総和
 クエリごとの*コストを確認し、処理中の複数クエリのコストの総和が、あらかじめ指定した閾値を上回ることのないよう制御します。 *コスト: クエリ処理に使用する必要リソース量

 (2)同時に処理されるクエリ数
 処理中のクエリ数を確認し、処理するクエリの数があらかじめ指定した閾値を上回ることがないよう制御します。

 (3)CPUリソースの優先度
 リソースキュー間でCPUリソースをどのように割り当てるかを制御します。

 (4)メモリの優先度
 リソースキュー間でメモリをどのように割り当てるかを制御します。

次のページ
様々なレベルの耐障害機能

この記事は参考になりましたか?

  • Facebook
  • Twitter
  • Pocket
  • note
ビッグデータのリーサルウェポン!徹底解析GreenplumDB連載記事一覧

もっと読む

この記事の著者

松下正之(マツシタマサユキ)

  EMCジャパン株式会社 データ・コンピューティング事業本部 テクニカル・コンサルタント。   外資系H/Wベンダーにて、Oracle DB/RACを使った大規模・高可用性システムの提案・導入技術支援を中心に、ISV(独立系ソフトウェアベンダー)とのテクニカルアライア...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

EnterpriseZine(エンタープライズジン)
https://enterprisezine.jp/article/detail/3720 2012/02/10 18:37

Job Board

AD

おすすめ

アクセスランキング

アクセスランキング

イベント

EnterpriseZine(エンタープライズジン)編集部では、情報システム担当、セキュリティ担当の方々向けに、EnterpriseZine Day、Security Online Day、DataTechという、3つのイベントを開催しております。それぞれ編集部独自の切り口で、業界トレンドや最新事例を網羅。最新の動向を知ることができる場として、好評を得ています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング