Amazon S3 データをR で分析

詳細情報をご希望ですか?

無償トライアル:

ダウンロードへ

製品の詳細情報へ:

Amazon S3 JDBC Driver

Amazon S3 ファイルストレージデータに連携するJava アプリケーションを素早く、簡単に開発できる便利なドライバー。



CData JDBC Driver for Amazon S3で標準的なR 関数とお好みの開発環境を使って、 Amazon S3 を分析。



Pure R スクリプトおよび 標準SQL を使って、R およびJava をインストール可能なあらゆるマシン上でAmazon S3 にアクセス。CData JDBC Driver for Amazon S3 とRJDBC package を使って、R でリモートAmazon S3 data を利用できます。CData Driver を使うことで、業界が認めた基準で書かれたドライバーを活用して、オープンソースでポピュラーなR 言語のデータにアクセスできます。この記事では、ドライバーを使ってAmazon S3 にSQL クエリを実行する方法、および標準R 関数を呼び出してAmazon S3 をビジュアライズする方法について説明します。

R をインストール

マルチスレッドのMicrosoft R Open を実行すること、またはBLAS/LAPACK ライブラリにリンクされたオープン R を実行することによって、マルチスレッドおよびマネージドコードから利益を得られたドライバーのパフォーマンスにマッチできます。ここでは、Microsoft R Open 3.2.3 を使用します。CRAN レポジトリのJan. 1, 2016 snapshot からパッケージをインストールするために事前設定されています。このsnapshot は再現性を保証します。

RJDBC パッケージをロード

ドライバーを使うにはRJDBC パッケージをダウンロードします。RJDBC パッケージをインストールしたら、次のコードを入力してパッケージをロードします。

library(RJDBC)

JDBC データソースとしてAmazon S3 に接続

下記の情報を使いAmazon S3 にJDBC データソースとして接続します。

  • Driver Class:cdata.jdbc.amazons3.AmazonS3Driver に設定。
  • Classpath:Driver JAR の場所を設定します。デフォルトではインストールディレクトリの[lib]サブフォルダです。

dbConnect やdbSendQuery のようなDBI 関数は、R にデータアクセスコードを書くための統一インターフェースを提供します。

driver <- JDBC(driverClass = "cdata.jdbc.amazons3.AmazonS3Driver", classPath = "MyInstallationDir\lib\cdata.jdbc.amazons3.jar", identifier.quote = "'")

これで、DBI 関数を使ってAmazon S3 に接続しSQL クエリを実行する準備が整いました。dbConnect 関数を使ってJDBC 接続を初期化します。一般的なJDBC 接続文字列は次のとおりです。

conn <- dbConnect(driver,"AccessKey=a123;SecretKey=s123;")

Amazon S3 リクエストを認可するには、管理者アカウントまたはカスタム権限を持つIAM ユーザーの認証情報を入力します。AccessKey をアクセスキーID に設定します。SecretKey をシークレットアクセスキーに設定します。

Note: AWS アカウント管理者として接続できますが、AWS サービスにアクセスするにはIAM ユーザー認証情報を使用することをお勧めします。

アクセスキーの取得

IAM ユーザーの資格情報を取得するには:

  1. IAM コンソールにサインインします。
  2. ナビゲーションペインで[ユーザー]を選択します。
  3. ユーザーのアクセスキーを作成または管理するには、ユーザーを選択してから[セキュリティ認証情報]タブを選択します。

AWS ルートアカウントの資格情報を取得するには:

  1. ルートアカウントの資格情報を使用してAWS 管理コンソールにサインインします。
  2. アカウント名または番号を選択し、表示されたメニューで[My Security Credentials]を選択します。
  3. [Continue to Security Credentials]をクリックし、[Access Keys]セクションを展開して、ルートアカウントのアクセスキーを管理または作成します。

AWS ロールとして認証

多くの場合、認証にはAWS ルートユーザーのダイレクトなセキュリティ認証情報ではなく、IAM ロールを使用することをお勧めします。RoleARN を指定することでAWS ロールを代わりに使用できます。これにより、本製品は指定されたロールの資格情報を取得しようと試みます。

(すでにEC2 インスタンスなどで接続されているのではなく)AWS に接続している場合は、ロールを引き受けるIAM ユーザーのAccessKey とSecretKey を追加で指定する必要があります。AWS ルートユーザーのAccessKey および SecretKey を指定する場合、ロールは使用できません。

SSO 認証

SSO 認証を必要とするユーザーおよびロールには、RoleARN およびPrincipalArn 接続プロパティを指定してください。各Identity Provider に固有のSSOProperties を指定し、AccessKey とSecretKey を空のままにする必要があります。これにより、本製品は一時的な認証資格情報を取得するために、リクエストでSSO 認証情報を送信します。

スキーマ Discovery

ドライバーはAmazon S3 API をリレーショナルデータベース、ビュー、ストアドプロシージャとしてモデルします。次のコードを使ってテーブルリストを検出します。

dbListTables(conn)

SQL クエリの実行

dbGetQuery 関数を使ってAmazon S3 API がサポートするすべてのSQL クエリを実行できます:

objectsacl <- dbGetQuery(conn,"SELECT Name, OwnerId FROM ObjectsACL WHERE Name = 'TestBucket'")

次のコマンドを使って、結果を[data viewer]ウィンドウで見ることができます。

View(objectsacl)

Amazon S3 Data をプロット

CRAN レポジトリで利用可能なあらゆるデータ初期化パッケージを使ってAmazon S3 を分析する準備が整いました。ビルトインバーのplot 関数を使って簡単なバーを作成できます。

par(las=2,ps=10,mar=c(5,15,4,2)) barplot(objectsacl$OwnerId, main="Amazon S3 ObjectsACL", names.arg = objectsacl$Name, horiz=TRUE)