Amazonが新たなAWSサービスをリリースした。SQLクエリを入出力に接続することで,コードやインフラストラクチャに時間を費やす必要なく,ビッグデータをSaaS型のサービスにストリーミングすることが可能になる。
クラウドは,そのストレージと計算能力の両面において,実用上,瞬時かつ無限のスケールアップ能力というメリットを必要とする企業にとって,ビッグデータに最適の場所である。Hadoopをベースに提供されるビッグデータ PaaSとしては,AzureのHDInsightやAWSのAmazon Elastic MapReduceなどがすでに存在しているが,今回のサービスで重要なのは,リアルタイムなストリーム処理が可能になったことだ。クラウド上のイベントストリーム処理は,極めてシンプルなSaaS型アプローチを中心とする。それがAzureに続いて,今回,AWSでも可能になるのだ。
今回提供されるAmazon Kinesis Analyticsは,Microsoftが2015年にリリースしたAzure Stream Analyticsに対抗する,AWSの直接的なライバルとなる。ストリーミング分析に対するアプローチ方法はどちらのサービスも同じだ — データソースにフックし,ターゲットを指定して,出力を得るための連続的なクエリを実行する。分析処理はクエリによって実施する。いずれのサービスでもSQL(あるいはSQLに非常に類似したもの)を使用することで,詳細な分析を容易に実現できる。
これはクラウドにおける興味深いトレンドだ — プラットフォームプロバイダがクラウドスケールの分析に関する自らの経験を活用して,処理の複雑性をエンドユーザに対して抽象化するという機能を備える。既存のAWS KinesisサービスはAmazonが,きめ細かいメトリクスをAWSユーザに提供するために使用している。ローンチ当時データサービスのゼネラルマネージャであったRyan Waite氏は,このサービスが“サービス計測のスケールを新たな限界まで拡張可能にすると同時に,リアルタイムの警告を実現する”,と説明している。メトリクスのフォーカスを‘ホスト可能’から‘実行可能’へとシフトするのである。Amazon Kinesis Analyticsを発表したブログ記事の中では,AWSチーフエバンジェリストのJeff Barr氏が,このサービスの使いやすさを強調している。
インフラストラクチャに時間を浪費せず,データ処理とビジネス価値の獲得に集中することが可能になります。SQLクエリ以上に複雑なものを記述する必要なく,エンド・ツー・エンドのパワフルなプロセッシングパイプラインを5分間で構築することができるのです。
Kinesis Analyticsでは,分析アプリケーションをソースに接続してクエリを連続実行し,出力に書き込むというパイプラインモデルを採用している。ソースにはKinesis StreamまたはKinesis Firehoseが使用できるので,イベントプロデューサの膨大な数のデータを単一のクエリに流し込むことが可能だ。SQLクエリには,イベントを送信するプロデューサ数を取得するSELECT DISTINCT
のような単純なものや,スライディングウィンドウを使用したより複雑なものが使用できる。出力先としてもKinesis StreamあるいはFirehoseが使用可能なため,集計データをリレーショナルデータベースや,あるいはHadoopの生データとして格納することが可能になる。
IaaS,あるいはPaaSであっても,これと同じことを実現するには,Kafkaのようにスケーラブルな取得キュー,Apache StormやSpark Streaminのようなストリーム処理エンジン,Elasticsearchなどのスケーラブルな出力先が必要になるはずだ。これらすべてが,多大な管理オーバーヘッドを必要とするクラスタ化された分散システムである上に,分析部分については,自分自身でコード,テスト,デプロイが必要なカスタムソリューションとして開発しなければならない。Kinesis AnalyticsはSQLStreamで動作するので,AWSが,ANSI標準SQLを使用したストリーミング分析のソリューション管理部分を提供している。
Azureも状況はほぼ同じで,これに相当するStreamAnalyticsサービスに先頃,Microsoftのデータ可視化ツールであるPowerBI出力コネクタがリリースされている。Azure Stream AnalyticsのプログラムマネージャであるRyan CrawCour氏は,このマネージドなエンド・ツー・エンド分析ソリューションを,次のように独自開発の場合と比較している。
データからこのような洞察を得てダッシュボードに表示するようなシステムを構築する場合,従来の方法であれば,まずデータを取得して処理し,どこかのデータベースに格納した上で,独自開発したアプリケーションでこのデータベースを継続的にポーリングし,自分自身で構築したダッシュボードに表示しなくてはなりません。
リアルタイム分析とイベントストリーミングは現在,データセンタとクラウドのいずれにおいても,ビッグデータ関連で最も活発な開発領域である。今年リリースされたSpark 2.0には,ストリーミングソース用のDataFrameサポートが加えられている。また,ストリーミングをサポートするビッグデータ処理およびルーティングツールであるApache NiFiは,1.0リリースマイルストンに到達した。さらにはHortonworksが,NiFiベースでストリーミングを重視したDataFlowバージョン1.2をリリースしている。
Lambda Architectureではビッグデータに関して,バッチプロセス用にすべてのデータを永続的に格納しておいた上で,リアルタイムで可視化するためのキー情報を引き出すという,標準的なアプローチを以前から採用してきた。リアルタイム部分すなわち処理速度の面から見ると,バッチ処理部分に比較して,マネージドオプションが不足している状態であった。Kinesis Analyticsのリリースにより,このようなクラウドベースのソリューションを必要としているユーザに,新たな選択肢が用意されることになる。
この記事を評価
- 編集者評
- 編集長アクション