it[:ja]皆様、ご無沙汰しております。Johnneyは只今日本に出張しておりまして、浅草界隈のアパホテルでこの記事を書いています^^;それにしても、アパホテルは、ビジネスマンにとっては過不足なく、いい距離感で接客してくれますので、非常に気に入っております笑ところで、最近耳にするのが当たり前になってきた「ビックデータ」ですが、今までビッグデータの保存や検索には高度な技術や大容量のストレージ、サーバースペックを必要としてきました。ところが、徐々に技術やクラウドサービスが進化し、今では簡単にビッグデータ基盤を導入できるようになってきています。Service)のLambda、S3やRedshiftについてお伝えいたします。Lambdaとは?LambdaとはAWSのサービスの1つで、サーバーを構築することなく、処理を組み立てることができる仕組みです。従来のクラウドでは、アプリケーションサーバー等を構築して、その中にバッチ処理やシェルスクリプトを設定し、定期実行する必要がありました。その点、Lambdaは、AWS上の様々なイベントを起点(イベントトリガー)として、処理を実行できるようになっている優れモノなのです。以下の図のようにAWSだけでなく他のサービスや外部サービスと連携して、様々な処理の組み立てが可能なのが、Lambdaの良いところでもあります。そのLambdaの柔軟性、汎用性を利用すれば、比較的低コストでビッグデータ基盤を構築することが可能になります。次に、AWSが提供しているビッグデータ基盤であるRedshiftについてお伝えします。RedShiftとは、PostgreSQLをビッグデータ用に発展させたAmazonが提供するビッグデータ基盤の1つです。Tableau(タブロー)の様なデータ可視化ツールとの相性が良いといった特徴があります。データ登録や更新といった処理は遅くなりがちなため、頻繁に登録や更新が発生するようなデータの蓄積(会員、商品など)には向いていません。従って、日ごとに変化するデータ(商品在庫の日次推移、株価など)等、一回登録すると更新が発生しないようなデータの分析に特化している仕組みになっています。次にRedshiftにデータを取り込む場合、どのようにすればよいかをお伝えします。S3(ストレージサービス)から取り込むといったことができます。従来の仕組みであれば、クラウド上にアプリケーションサーバーを構築し、そのアプリケーションサーバー内の定期処理(バッチ処理)によってストレージ領域にアップロードされたファイルを定期的にチェックし、新しいファイルがアップロードされていたら取り込む・・・といった処理を実装する必要がありました。Lambdaはそれをすることなく、ファイルアップロードなどのイベントに紐づけて取込処理を実装できるようになっています。取込処理も、従来のSQLだけでなく、COPYコマンドというシンプルな処理があり、Redshift上のテーブルとCSVを1:1で紐づけて、CSV内のレコードをまとめて取り込むことができます。逆に従来のSQLでInsertやUpdateを行うと、Redshiftの特性上(※)従来のSQLよりも遅くなってしまいます。検索してみてください。Lambdaの保守を容易にするCloudWatchAWSにはLambdaの保守を助ける様々なオプションがあります。CloudWatchは、Lambdaで処理した結果を長期間ログに保存する事ができます。取込時に障害が起こった場合のログを保存できますし、Lambda上の実装も容易なので、わざわざプログラミングでログの処理を独自実装する必要がありません。おわりにLambda、Redshift、AmazonS3など、様々なAWS内のクラウドサービスを使いこなせば、簡単にITインフラ基盤の構築が可能になりました。大量のデータを可視化して、利益拡大を図りたい方、膨大な研究データを扱う方は、是非ビッグデータ基盤の導入を検討されてみてはいかがでしょうか。弊社は、ビックデータ基盤の構築も行っております。興味がおありの方は、お気軽にご相談ください。