昨年、Google は の一般提供を発表しました。 AmazonSageMakerのRStudioは、業界初の完全マネージド型 RStudio Workbench 統合開発環境 (IDE) であるクラウドです。 使い慣れた RStudio IDE をすばやく起動し、作業を中断することなく、基盤となるコンピューティング リソースをダイヤルアップおよびダイヤルダウンできるため、R で大規模な機械学習 (ML) および分析ソリューションを簡単に構築できます。
RStudio on SageMaker ユーザーの多くは、 Amazonレッドシフトは、データ ストレージと分析ワークロード用の、フル マネージドのペタバイト規模の超並列データ ウェアハウスです。 標準 SQL と既存のビジネス インテリジェンス (BI) ツールを使用して、すべてのデータを迅速、簡単、かつ費用対効果の高い方法で分析できます。 ユーザーは、ODBC、JDBC、または Amazon Redshift Data API を使用してデータを操作することもできます。
SageMaker と Amazon Redshift で RStudio を使用すると、クラウド内の大規模なデータ セットの分析を効率的に実行するのに役立ちます。 ただし、クラウド内のデータを操作すると、組織のデータ サイロを取り除き、セキュリティとコンプライアンスを維持し、ツールを標準化して複雑さを軽減する必要があるなどの課題が生じる可能性があります。 AWS は、SageMaker の RStudio や Amazon Redshift などのツールを提供して、これらの課題に取り組むのに役立ちます。
このブログ投稿では、上記の課題に対処しながら、クラウド内の大量のデータ セットの分析を効率的に実行するために、これらのサービスの両方を一緒に使用する方法を紹介します。 このブログでは、ビジネス アナリスト、データ エンジニア、データ サイエンティスト、および R 言語と Amazon Redshift を使用するすべての開発者を対象読者として、Amazon SageMaker 言語の Rstudio に焦点を当てています。
従来の SageMaker Studio エクスペリエンスを Amazon Redshift で使用したい場合は、以下を参照してください。 Amazon Redshift Data API を使用して Amazon SageMaker Jupyter ノートブックからやり取りする.
ソリューションの概要
今日のブログでは、次の手順を実行します。
- 必要なパッケージを含むサンプル リポジトリのクローンを作成します。
- 安全な ODBC 接続を使用して Amazon Redshift に接続する (ODBC は RStudio の優先プロトコルです).
- SageMaker の RStudio を介して、Amazon Redshift Serverless 内のデータに対してクエリと SageMaker API アクションを実行する
このプロセスは、次のソリューション アーキテクチャに示されています。
ソリューションウォークスルー
前提条件
開始する前に、Amazon SageMaker および Amazon Redshift Serverless で RStudio をセットアップするための次のようなすべての要件を満たしていることを確認してください。
CloudFormation スタックを使用して、必要なインフラストラクチャを生成します。
注: RStudio ドメインと Amazon Redshift クラスターが既にある場合は、この手順をスキップできます
このスタックを起動すると、次のリソースが作成されます。
- 3 つのプライベートサブネット
- 1 つのパブリックサブネット
- 1 NAT ゲートウェイ
- インターネットゲートウェイ
- Amazon Redshift サーバーレス クラスター
- RStudio を使用した SageMaker ドメイン
- SageMaker RStudio ユーザープロファイル
- SageMaker RStudio ドメイン実行のための IAM サービスロール
- SageMaker RStudio ユーザープロファイル実行のための IAM サービスロール
このテンプレートは、リージョンで機能するように設計されています (例: us-east-1
, us-west-2
)、XNUMX つのアベイラビリティーゾーン、SageMaker 上の RStudio、および Amazon Redshift Serverless を備えています。 リージョンがこれらのリソースにアクセスできることを確認するか、それに応じてテンプレートを変更してください。
発射スタック ボタンをクリックしてスタックを作成します。
- ソフトウェア設定ページで、下図のように スタックを作成 ページ、選択 Next.
- ソフトウェア設定ページで、下図のように スタックの詳細を指定する ページで、スタックの名前を指定し、残りのオプションをデフォルトのままにしてから、 Next.
- ソフトウェア設定ページで、下図のように スタックオプションを構成する ページで、オプションをデフォルトのままにして、 Next.
- ソフトウェア設定ページで、下図のように レビューページ、選択
- AWS CloudFormationがカスタム名でIAMリソースを作成する可能性があることを認めます
- AWSCloudFormationには次の機能が必要になる可能性があることを認めます:CAPABILITY_AUTO_EXPANDチェックボックスをオンにして選択 送信.
テンプレートは XNUMX つのスタックを生成します。
スタックのステータスが CREATE_COMPLETEで、Amazon Redshift Serverless コンソールに移動します。 これは、あらゆる規模で高いパフォーマンスを発揮して、クラウドで分析を非常に簡単に実行できるようにする新しい機能です。 データをロードしてクエリを開始するだけです。 クラスターをセットアップして管理する必要はありません。
Note: Amazon SageMaker で Amazon Redshift と RStudio を統合するこのブログで示されているパターンは、Amazon Redshift のデプロイ パターン (サーバーレスまたは従来のクラスター) に関係なく同じです。
Amazon Redshift Serverless でのデータのロード
CloudFormation スクリプトは、という名前のデータベースを作成しました sagemaker
. RStudio ユーザーが照会するテーブルをこのデータベースに入力しましょう。 SQL エディター タブを作成し、 sagemaker
データベースが選択されます。 を使用します。 合成クレジット カード取引データ データベースにテーブルを作成します。 このデータは、SageMaker サンプル表形式データセットの一部です s3://sagemaker-sample-files/datasets/tabular/synthetic_credit_card_transactions
.
クエリ エディターで次のクエリを実行します。 これにより、XNUMX つのテーブルが生成されます。 カード、取引、 & users.
クエリ エディターの左側のペインに XNUMX つのテーブルが表示されることで、クエリが正常に実行されたことを確認できます。
すべてのテーブルにデータが入力されたら、SageMaker RStudio に移動し、ml.m5.xlarge インスタンスで RSession ベース イメージを使用して新しいセッションを開始します。
セッションが開始されたら、このコードを実行して Amazon Redshift Serverless データベースへの接続を作成します。
合成スキーマでテーブルを表示するには、クエリ エディターを介して Amazon Redshift でアクセスを許可する必要があります。
Rスタジオ Connections ペインに sagemaker
スキーマ合成およびテーブルカード、トランザクション、ユーザーを含むデータベース。
テーブルの横にあるテーブル アイコンをクリックすると、1,000 件のレコードを表示できます。
注: プロジェクトで見つけることができるすべてのコード ブロックが事前にビルドされた、事前にビルドされた R Markdown ファイルを作成しました。 GitHubレポ.
それでは、 DBI
パッケージ機能 dbListTables()
既存のテーブルを表示します。
dbGetQuery() を使用して、SQL クエリをデータベースに渡します。
また、 dbplyr
& dplyr
データベースでクエリを実行するためのパッケージ。 しましょう count()
トランザクション テーブルにあるトランザクションの数。 ただし、最初に、これらのパッケージをインストールする必要があります。
tbl()
スキーマを指定しながら機能します。
各テーブルの行数をカウントしてみましょう。
つまり、2,000 人のユーザーがいます。 6,146枚のカード; および 24,386,900 トランザクション。 コンソールでテーブルを表示することもできます。
transactions_tbl
また、何を見ることができます dplyr
動詞はフードの下でやっています。
年ごとの取引数を視覚的に調べてみましょう。
データベース内のデータを次のように要約することもできます。
カード情報を使用して不正行為を表示したいとします。 テーブルを結合し、属性でグループ化するだけです。
それでは、機械学習に使用できるデータセットを準備しましょう。 列のサブセットのみを保持しながら、Discover クレジット カードのみを含めるようにトランザクション データをフィルター処理してみましょう。
それでは、次の変換を使用してクリーニングを行いましょう。
- 変換
is_fraud
バイナリ属性へ - からトランザクション文字列を削除
use_chip
タイプに名前を変更します - 年、月、日をデータ オブジェクトに結合する
- 金額から $ を削除し、数値データ型に変換します
データセットをフィルタリングしてクリーンアップしたので、このデータセットをローカル RAM に収集する準備が整いました。
これで、機能の作成とモデルのフィッティングを開始するための作業データセットができました。 このブログではこれらの手順については説明しませんが、SageMaker の RStudio でモデルを構築する方法について詳しく知りたい場合は、以下を参照してください。 データサイエンティスト向けのAmazonSageMakerでフルマネージドRStudioを発表.
掃除
繰り返しコストが発生しないようにリソースをクリーンアップするには、ルートの CloudFormation テンプレートを削除します。 また、作成されたすべての EFS マウントと、作成された S3 バケットおよびオブジェクトをすべて削除します。
まとめ
クラウドで大規模なデータセットを操作する場合、データの分析とモデリングは困難な場合があります。 Amazon Redshift は、ユーザーがこれらのタスクを実行するのに役立つ人気のあるデータ ウェアハウスです。 データ分析に最も広く使用されている統合開発環境 (IDE) の XNUMX つである RStudio は、多くの場合、R 言語と共に使用されます。 このブログ投稿では、SageMaker で Amazon Redshift と RStudio を一緒に使用して、大量のデータセットを効率的に分析する方法を示しました。 SageMaker で RStudio を使用することにより、ユーザーは、Amazon Redshift との統合を簡素化しながら、SageMaker の完全に管理されたインフラストラクチャ、アクセス制御、ネットワーキング、およびセキュリティ機能を利用できます。 これら XNUMX つのツールを一緒に使用する方法について詳しく知りたい場合は、他のブログ記事やリソースをご覧ください。 また、SageMaker と Amazon Redshift で RStudio を使用してみて、データ分析とモデリング タスクにどのように役立つかを確認することもできます。
このブログにフィードバックを追加するか、 でプル リクエストを作成してください。 GitHubの.
著者について
ライアン・ガーナー は、AWS プロフェッショナル サービスのデータ サイエンティストです。 彼は、AWS のお客様が R を使用してデータサイエンスと機械学習の問題を解決できるよう支援することに情熱を注いでいます。
ラジ・パタク 金融サービス (保険、銀行、資本市場) と機械学習を専門とするシニア ソリューション アーキテクト兼テクノロジストです。 自然言語処理 (NLP)、大規模言語モデル (LLM)、機械学習インフラストラクチャおよび運用プロジェクト (MLOps) を専門としています。
アディティ・ラジニッシュ ウォータールー大学のソフトウェア エンジニアリングの XNUMX 年生です。 彼女の興味には、コンピューター ビジョン、自然言語処理、エッジ コンピューティングが含まれます。 彼女はまた、コミュニティベースの STEM アウトリーチとアドボカシーにも情熱を注いでいます。 余暇には、ロック クライミングをしたり、ピアノを弾いたり、完璧なスコーンの作り方を学んだりしています。
サイテジャ・プディ テキサス州ダラスを拠点とする AWS のソリューション アーキテクトです。 AWS に 3 年以上勤務しており、信頼できるアドバイザーとして、お客様が AWS の真の可能性を引き出せるよう支援しています。 彼はアプリケーション開発のバックグラウンドを持ち、データ サイエンスと機械学習に関心があります。