SHOEISHA iD

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

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

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

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

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

お申し込み受付中!

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

ビッグデータ分析をSQLで簡単に!~IoTを支える超高速分析用DB Vertica~

 「Vertica」は情報系システムにおいて大量データの「超高速」集計・分析処理に強みを持つ列指向データベースとして、ワールドワイドで3,500社以上のお客様に利用いただいているデータベースソフトウェアです。「Vertica」には単なるデータベースとは一線を画すビッグデータ分析プラットフォームとして、独自の分析関数や機械学習といった豊富な分析機能が実装されています。本稿では、このような「Vertica」のビッグデータ分析機能の概要や活用法をまとめてご紹介します。

はじめに

 Verticaの強みは複雑なチューニングを必要とせず、シンプルな運用で高速なパフォーマンスを実現できるという点にあります。

 例えば、あるビル空調サービス会社では、データ量や分析処理量の大幅な増加に伴い、大量データの処理性能に大きな課題を抱えていましたが、Verticaを採用することで従来システムの10倍の処理効率を実現することに成功しました。また同社では、DWH(Data Warehouse)用途だけでなく、空調の各センサーデータをニア・リアルタイムにロードし、空調システムの不具合をリアルタイムで予測するIoT基盤としてもVerticaを利用しています。

 このようにVerticaは企業データのDWHとしての利用はもちろんのこと、機械学習アルゴリズムの実装や半構造化データをそのまま取り込むFlex Table機能等により、大量データの分析プラットフォームとしても普及しています。

 本稿では、通常のデータベースから一歩進んだ、Verticaのビッグデータ分析機能をご紹介します(図1)。

 Verticaの基礎を知りたい方は、アシストが開設している「Vertica技術情報サイト」の以下の記事をご参照ください。

 ・Verticaとは

図1:Verticaのビッグデータ機能一覧
図1:Verticaのビッグデータ機能一覧

 本記事では次の機能について、ご紹介します。

  •  Flex Table(半構造化データ活用)
  •  Hadoop/Spark連携
  •  Kafka連携(リアルタイムデータ連携)
  •  SQL Analytics(ログ分析用のSQL拡張関数)
  •  Machine Learning(機械学習)

半構造化データをデータベースへ取り込む

 Apache Hadoop(以降、Hadoop)やApache Spark(以降、Spark)に格納されるログデータや、IoTデバイスなどからのセンサーデータは、半構造化データです。通常これらのデータをデータベースに取り込むためには事前にCSVなどの構造化データに変換する必要がありますが、Verticaでは半構造化データをそのまま取り込むFlex Tableという便利な機能が提供されています。この機能を利用することにより、前処理無くVerticaに直接データロードできるため運用や開発の負荷を大幅に軽減することができます。

 使い方はとても簡単で、Flex Tableを作成し、COPYコマンドでJSONやAVRO、CEFといった半構造化データをロードするだけです(図2)。

図2:半構造化データをFlex Tableに取り込むイメージ
図2:半構造化データをFlex Tableに取り込むイメージ

 たとえばJSON形式のファイルの場合、key-value型でデータが格納されているため、Verticaはキーを列名、バリューをテーブルデータとして自動的に認識し、データをロードします。この時、事前にテーブルの列名などの定義は不要です。また、データ型は文字列型だけでなく、BOOLEAN、INTEGER、FLOAT、TIMESTAMP、DATEなどにも対応しています。データをロードしたあとは、通常のSQLでデータ操作を行うことが可能です。Flex Tableの基本的な利用方法については、「Vertica技術情報サイト」の以下の記事をご参照ください。

 ・Flex Table(基本編)

Hadoopと連携し、オンライン系分析処理を高速化する

 ビッグデータ基盤というと、Hadoopを思い浮かべる方が多いのではないでしょうか。実際にHadoopを大量データのバッチ処理やデータレイク(大量データの置場)として活用されている方も多いと思います。しかし、Hadoopはオンライン系の高速分析処理に課題があるため、HadoopのフロントにVerticaを配置し、高速分析処理はVerticaに任せることでこの課題を払拭することができます。

 HadoopとVerticaの連携には以下の3つの方法があります。

 ① HDFS上のデータをVerticaにロードする
 ② HDFS上のデータを外部表としてアクセスする
 ③ Hadoopのテーブル定義を利用し、Hiveを通じてHDFS上のデータにアクセスする

 これらの3つを図解したものが(図3)です。

図3:HadoopとVerticaの連携
図3:HadoopとVerticaの連携

 最もシンプルで高速なパフォーマンスを得られるのは①の方法です。(図4)のように、データロード用のコマンド(COPYコマンド)でHDFS上のデータをVertica内に簡単に取り込むことができます。Hadoopで事前バッチ処理したデータをVerticaに取り込んで使うような場合に非常に便利です。

 図4:Hadoop上のデータをVerticaにインポート
COPY testTable SOURCE dfs(url='http://hadoop:50070/webhdfs/v1/test.txt',username='hadoopUser');

 一方、②と③の方法では、Verticaに実際のデータをロードするのではなく、Verticaを介してHDFS上のデータを参照します。Verticaにデータを取り込む①の方法と比べると処理性能は劣りますが、Verticaにアクセスするのと同様にSQLで簡単にHDFS上のデータにアクセスできるメリットがあります。

 また、Verticaはデータベースに取り込むデータ量に応じてライセンス費用が決まりますが、②と③の方法はライセンスの課金対象にならないというコスト的なメリットもあります。

 

次のページ
Sparkと連携し、高速なバッチ処理をシンプルに開発する

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

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

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

 株式会社アシスト データベース技術本部 技術統括部 アシスト入社後、「Oracle Database」の構築や教育、サポート業務を担当。2015年より「Vertica」担当となり、製品検証や執筆を担当。

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

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

この記事をシェア

EnterpriseZine(エンタープライズジン)
https://enterprisezine.jp/article/detail/9602 2017/08/03 06:00

Job Board

AD

おすすめ

アクセスランキング

アクセスランキング

イベント

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

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

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

メールバックナンバー

アクセスランキング

アクセスランキング