##はじめに
この記事は株式会社ナレッジコミュニケーションが運営する Amazon AI by ナレコム Advent Calendar 2020 の 14日目にあたる記事になります。
現在開催中のre:Invent2020にて、発表された新サービス「Amazon Redshift ML」について、調べたことを簡単に書いていきます。
##Amazon Redshiftとは
Amazon Redshift(以降Redshift)は、クラウド型のデータウェアサービスです。
Redshiftを活用することで、ペタバイト級のデータウェアハウスを構築し、社内・社外の多様なデータを統合することが可能です。Redshiftは巨大な表に複雑なクエリ(複数の表を結合する等)を実行することに最適化されているため、小売、在庫、金融データといった膨大なデータを特別な苦労なく処理することができます。
RedshiftはAmazon Redshift Spectrumというサービスも提供しているので、今回はこちらについても少し触れたいと思います。
##Amazon Redshift MLについて
Redshift上のデータをシームレスに機械学習処理をすることができるサービスです。
では、従来のRedshift上のデータを機械学習処理する際の一般的な例を挙げさせていただきます。
これまでRedshift上のデータの機械学習させるには、下記の手順が必要でした。
1.Redshift上のデータをAmazon S3にエクスポート
2.Amazon Sagemakerにて、分析環境の準備
3.Amazon Sagemaker上でモデルの開発、推論、デプロイ
上記のように、データの移動、Amazon Sagemakerの利用方法及びモデル開発などの専門的知見などRedshift以外にも必要な知識がありました。さらに、これらの環境を準備するのにも時間がかかります。
##Amazon Redshift MLでできること
Amazon Redshift MLでは、以下のことができます。(下記の図の概略です)
・簡単なSQLコマンドを使用してMLモデルを作成およびトレーニングできます
・自動アルゴリズム選択を使用する柔軟性を提供します(Amazon Sagemakerと連携)
・データを自動的に前処理し、モデルを作成、トレーニング、および展開します
・データウェアハウスの外部にデータを送信することなく、SQLを使用して予測を生成できます
##Amazon Redshift Spectrumについて
Redshiftは非構造化データについては、Amazon S3に保存しているユーザーが多いようです。Amazon Redshift Spectrumを使用することで、Redshift標準のSQLクエリを実行するかのように簡単にAmazon S3上に保存された非構造化データを分析することができます。Redshift Spectrumは、検索されたデータに基づいてクエリ演算能力を自動的に拡張することから、数テラバイトから数ペタバイトさらには、数エクザバイトに至るまで処理するデータの量に関わらず、Amazon S3内のデータに対してすばやくクエリを実行できます。
##Amazon Redshift MLとAmazon Redshift Spectrumについて
Redshift MLは、Redshift上に保存されている構造化データに対して、直接SQLを実行することで機械学習などの分析を行なうことができます。
Redshift Spectrumは、Amazon S3上にある大規模な非構造化データに対して、Redshift同様のSQLクエリを実行、分析を行なうことができます。
##利用する際の注意点
Redshift MLは、SQLでクエリを実行することで、機械学習ができるようになるということは、前項までに説明をしましたが、
多種多様なサービスを有しているAWSだからこその各サービス連携が自動で行なわれている仕組みになっています。
下記サービスが連携することで実現できるようになっており、対象のサービスに対する権限付与が必要になります。
自動で連携するサービス
・Amazon Redshift ML(本サービス)
・Amazon S3
・Amazon Sagemaker
最低限上記サービスのFullaccess権限の付与は実施しましょう。
##料金について
Redshift MLを利用するために追加でRedshiftの料金は発生しません。
既存のクラスタを予測できるように活用するため、追加でRedshiftの料金がかかることはありません。
##おわりに
これまでは、Redshit上のデータで機械学習などを行う場合は、データを一度エクスポートするなどの前準備が必要でしたが、
今回のRedshift MLを使うことで、シームレスにRedshift上のデータを機械学習することができるようになるため、もともとRedshiftを利用している方にとっては、分析作業の効率化にもつながるのではと思いました。
参考記事
AWS公式ブログ
https://aws.amazon.com/jp/blogs/big-data/create-train-and-deploy-machine-learning-models-in-amazon-redshift-using-sql-with-amazon-redshift-ml/
https://aws.amazon.com/jp/blogs/news/amazon-redshift-spectrum-exabyte-scale-in-place-queries-of-s3-data/
https://aws.amazon.com/jp/about-aws/whats-new/2017/04/aws-announces-redshift-spectrum/