SHOEISHA iD

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

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

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

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

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

お申し込み受付中!

IoT、ビッグデータの高速分析機能が強化されたVertica 7.2

IoT、ビッグデータの高速分析機能が強化されたVertica 7.2


 情報系システムのパフォーマンス改善、運用管理コスト削減に貢献するデータベース、「Vertica」。2015年末にリリースされたVertica 7.2では、IoTやビッグデータの高速分析機能がさらに強化されました。本稿では、そんなVertica 7.2の代表的な新機能についてご紹介します。

 Verticaは、高い検索パフォーマンスを実現する「DWH/ビッグデータ活用」に特化した列指向(カラムナー)データベースです。

 ※Verticaの基礎を知りたい方は、アシスト Vertica技術情報サイトの「Verticaとはをご確認ください。

 2015年末にVerticaの最新バージョンである、Vertica 7.2がリリースされました。Vertica 7.2では、IoTデータなどのデータストリーミング分析のためにApache Kafkaとの連携が強化されたり、Hive等Hadoopで使われることが多いORCファイル上で直接クエリが実行できるようになったりと、これまで以上にIoTデータやビッグデータ分析の高速化に力を入れています。

 また、こういった新機能だけでなく、主キー/一意キー制約や、バックアップ/リストア機能の強化といった、エンタープライズ向けの機能も強化されています。

 Vertica 7.2で追加された主な新機能は次の通りです。

  •  「Apache Kafka」分散型メッセージングシステムのネイティブサポート
  •  データロード時の主キー/一意キー制約列に対する一意性チェック機能の追加
  •  HASH JOINの性能向上や、ヒント句のサポートといったクエリの最適化
  •  データロード時のParserとしてAvro Parser、CSV Parserの追加
  •  解析関数(NTH_VALUE)、算術関数(COSH、SINH、TANH、LOG10)の追加
  •  JDBC接続のMARS対応やPythonドライバーの追加といったクライアント接続機能の強化
  •  スキーマレベルの権限継承機能の追加
  •  プロセスレベルのハング検知機能追加といったデータベース管理機能の強化
  •  バックアップ・リカバリ機能の強化
  •  Flex Zoneライセンス体系の変更

 この中から、まずはIoTデータとビッグデータ分析をより便利にする以下の2つの新機能をご紹介します。

  1.  「Apache Kafka」分散型メッセージングシステムのネイティブサポート
  2.  Flex Zoneライセンス体系の変更

1.Apache Kafkaと連携することで、大量データのデータストリーミング分析を実現

 Verticaへのデータロードは、COPYコマンドを用いたCSVファイルのバルクロードで実施する方法が一般的です。INSERT文も使用できますが、Verticaのような列指向データベースは1件1件のINSERT処理よりも、ある程度まとまった件数をロードするバルクロードに向いています。

 そのため、これまでのバージョンでは、IoT端末が生成する大量のログデータやTwitterのつぶやきデータ等の逐次発生するデータをリアルタイムで取り込むことは難しいというのが現実でした。(ETLツール等を用いて、少量のデータを逐次COPYコマンドでロードするような仕組みを作れば実現できますが、そういった仕組みはデータ同期等のことを考えると複雑になりがちです)

 Vertica 7.2では、オープンソース分散型メッセージングシステムの「Apache Kafka」(以下Kafka)のネイティブサポートを提供することで、これらのデータをニア・リアルタイムで取り込むことが可能になりました。

Kafka連携機能を利用してTwitterのつぶやきデータを取り込む場合の構成例
図1:Kafka連携機能を利用してTwitterのつぶやきデータを取り込む場合の構成例

 例えばTwitterのつぶやきデータを分析したい場合は、図1のような構成で実現することができます。TwitterのつぶやきデータをApache Flumeやfluentdなどを使って収集し、Kafkaに送信します。Kafkaには送られてきたデータがキューとしてKafka Cluster内に次々と溜まっていきます。このキューに溜まっているデータの中から、分析に使用するデータをVerticaが一定間隔で受け取りに行き、内部的にCOPYコマンドを使ってVerticaにロードします。

 このように、INSERTではなくVerticaが得意とするCOPYコマンドを使用したバルクロードとして処理することで、ログデータ等の逐次発生するようなデータをVerticaにリアルタイムに取り込むことが可能です。ロードしたデータについては通常のテーブルに格納されるので、すぐに分析を行うことができます。

 次に、Kafkaと連携させるために、事前にVertica側で実施しなければならない内容について説明します。

 1. Kafka スケジューラの定義(vkconfig schedulerコマンド)
 接続先のKafkaサーバの情報や、Kafkaにデータを取得しに行く間隔(図1の場合は10秒間隔)等を指定します。

 2.データロード用のターゲットテーブルの作成(CREATE [FLEX] TABLE)
 Kafkaから取得したデータをロードするためのテーブルを作成しておきます。構造化できないようなデータの場合は、半構造化データを扱えるFlex Tableを作成しておくと良いでしょう。

 ※Flex Tableについては後述する「Flex Tableとは?」を参照してください。

 3. Kafka Topicとターゲットテーブルの関連付け(vkconfig topicコマンド)
 KafkaではデータをTopicという単位で分類して格納しています。取り込みたいKafkaのTopicとロード先のVerticaのテーブルとの関連付けを行います。

 4. Kafkaスケジューラの実行(vkconfig launchコマンド)
 設定した内容でkafka連携を開始するためのコマンドを実行します。

 Kafka連携がネイティブサポートされたことで、このようにわずか4つのコマンドを実行するだけで、KafkaのデータをVerticaに取り込むことが可能になりました。

 Kafka連携時の具体的な手順については、アシストが運営するVertica技術情報サイトの「Apache Kafka連携機能を利用して、Verticaにストリーミングデータをロードする(7.2新機能)」で紹介しています。

 
 

次のページ
2. Flex Tableが通常ライセンスで利用可能に

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

  • Facebook
  • Twitter
  • Pocket
  • note
この記事の著者

佐伯 竜輔(サエキ リュウスケ)

 株式会社アシスト データベース技術本部 入社後eラーニング製品、MySQL、InfiniDBのサポートに従事。現在は、Verticaのフィールドエンジニアおよびサポート担当として活動中。『SQL逆引き大全363の極意』共著。

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

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

この記事をシェア

EnterpriseZine(エンタープライズジン)
https://enterprisezine.jp/article/detail/7991 2016/04/27 11:47

Job Board

AD

おすすめ

アクセスランキング

アクセスランキング

イベント

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

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

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

メールバックナンバー

アクセスランキング

アクセスランキング