SHOEISHA iD

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

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

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

EnterpriseZine Day 2022

2022年6月28日(火)13:10

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

お申し込み受付中!

大量データを高速に分析できる列指向データベース、Vericaとは

検証結果に見る、Verticaの特徴と独自性


 HP Verticaは、大量データを高速に分析できる列指向データベースです。昨今、列指向データベースは数多くの製品がリリースされています。また、従来の行指向データベースにも列指向の機能が追加されはじめ、今や列指向データベースは、当たり前に使われる時代となりました。ただ、ユーザからするとどの製品(サービス)を選択するべきか悩ましい状況となっています。本稿では、HP Verticaの検証結果を交えながら、一般的な列指向データベースとの違いや独自性をご紹介します。

すっかり当たり前になった、列指向データベース

 皆さんはHP Vertica(以下、Vertica)というデータベースをご存知でしょうか?Verticaは大量のデータを分析するような情報系システムで利用されているデータベースで、いわゆる「列指向(カラムナー)」に分類されます。最も有名なのが2012年のアメリカ大統領選挙での事例で、民主党のバラク・オバマ氏を支援するWebサイト「Obama for America」のデータ分析にVerticaが使われました。また、HP社自身もVerticaを利用しており、「hp.com」において15ヵ月分のクリックストリームデータや5年分の購買データを分析しています。また、ビッグデータ分析だけではなく、いわゆる企業内のDWHとしての活用実績も数多くあります。「今、何が起きているのか」「今後、何が起きそうか」といった戦略的で、スピーディな意思決定を支えているのが、Verticaというデータベースなのです。

 ただ、列指向という仕組み自体は、もはや珍しいものではありません。数年前であれば確かに「行指向より○○倍速い」といったキーワードがもてはやされましたが、現在では市場の成熟とともに行指向データベースが列指向の機能を取り入れたり、クラウド上で列指向データベースをPaaSとして提供するプレイヤーが増えてきました。かつて主流だったDWH専用アプライアンス型を導入した企業でも、時代の変化とともに改めて製品を選定しなおすという動きが増えているように感じます。

 こうした選択肢の増加はユーザにとって喜ばしいことですが、逆に製品やサービスが増えすぎて個々の良し悪しや特徴がわかりにくくなっています。例えば、列指向データベースの製品紹介やプレゼンテーション資料を見ると、大抵の場合は以下のような特徴が書かれています。

図1:よくある列指向データベースの特徴
図1:よくある列指向データベースの特徴

 このように、ほとんど似たような特徴が書かれているので、カタログスペック上での比較は非常に困難です。また、ベンチマーク結果の公開を禁じている製品がほとんどで、さらに価格が非公開な場合もあります。ただでさえ情報系システムは正当な投資コストを算出して予算化するのが難しいと言われているのに、限られた情報で検討を進めていくとなると、採用までの道のりは困難を極めます。とは言え、全ての製品を評価・検証する時間はもちろんないので、その製品だけが明らかに優れている“尖った”部分をまずは探していかなければなりません。

 そこで本稿では、一般的な列指向データベースとVerticaが明らかに違う点を中心に解説します。

 ※列指向データベースの一般的な特徴については、こちらのサイトをご参照ください。

Vertica最大の特徴はプロジェクション

 Verticaでは、テーブルは論理スキーマとして存在し、実データは「プロジェクション」というオブジェクトに格納されます。これは、一般的な列指向データベースと明らかに違う点です。データはプロジェクション内で、クエリに必要な列だけが圧縮・ソートされた状態になっています。プロジェクション(射影)というと、データベースの世界では「表から条件に合う列を取り出す操作」のことを指しますが、Verticaの場合はこの射影が最初から行われた状態になっていると考えればわかりやすいのではないでしょうか。Verticaはコンピュータ界のノーベル賞とも言われるチューリング賞を今年(2015年)受賞したマイケル・ストーンブレーカー博士が開発に携わった「C-Store」を起源とするデータベースで、読み取りを効率化/高速化するための設計思想が他のデータベースとは大きく異なっています。

 まずは、プロジェクションについて詳しく説明します。Veticaでは、表を作成するとスーパープロジェクションというオブジェクトが自動的に作成されます。スーパープロジェクションは全ての列を含んでおり、データは列ごとに圧縮・ソートされた状態になっています。この段階でかなり効率的な状態でデータが格納されているため、このままでもSQLはかなり高速に処理されます。(Database Designerというツールで圧縮率とソート順を最適化するとより高速になります)。

 しかし、Verticaが面白いのは、この状態から特定のクエリだけを速くするために追加のプロジェクションを作成できるところです。「特定の列だけを含むもの」「すでに結合してあるもの」「すでに集計処理されているもの」というように、あらかじめクエリを意識したプロジェクションを作成しておくことで、性能を限界まで高めることができるのです。

図2:プロジェクションの種類
図2:プロジェクションの種類
 ※各プロジェクションの詳細はVertica技術情報サイトをご参照ください。

 

 では、プロジェクションの効果を検証してみましょう。図3は、同じハードウェア上にStar Schema Benchmark(DWH系処理のベンチマーク)のデータを1TB分用意し、全ての列を含むスーパープロジェクションと、クエリに必要な列だけを含むクエリスペシフィックのプロジェクションで性能を比較した結果です。先ほど説明したように、スーパープロジェクションのみでも従来の行指向データベースと比較してかなり高速な結果になりました。しかし、Verticaならではのクエリスペシフィックを使用すると、さらに大幅な高速化ができることがわかります。

図3:プロジェクションの効果
図3:プロジェクションの効果

 これがVerticaの“尖った”部分の一つであるプロジェクションの効果です。一般的なデータベースでは索引を作成したり、あるいは列のソート順を変えることでチューニングを行いますが、Verticaの場合はプロジェクションを作成するだけです。作成も簡単で、Database DesignerにSQL文(テキスト)を渡せば、自動的に最適なプロジェクションがデザインされます。もちろん、無闇にプロジェクションを作りすぎないよう気をつけなければなりませんが、クエリの応答時間をこれだけ短くできる選択肢は他のデータベースではなかなか見られません。「とにかくこの処理だけは速くしたい」という場合には、プロジェクションが非常に有効です。

次のページ
列指向あるある、Verticaではどうなる? ~圧縮率~

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

  • Facebook
  • Twitter
  • Pocket
  • note
大量データを高速に分析できる列指向データベース、Vericaとは連載記事一覧
この記事の著者

河西 大樹(カワニシ ダイキ)

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

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

この記事をシェア

EnterpriseZine(エンタープライズジン)
https://enterprisezine.jp/article/detail/7232 2015/09/29 12:22

Job Board

PR

おすすめ

アクセスランキング

アクセスランキング

イベント

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

2022年6月28日(火)13:10

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

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

メールバックナンバー

アクセスランキング

アクセスランキング