今までの記事では、次のような内容を説明してきました。Personalizeにデータを登録するために必要な、データセットグループとスキーマについて今回は、スキーマに基づいてデータセットグループにデータセットを作成する作業から説明しようと思います。データセットを操作するデータセットは具体的にデータを入れる箱のようなもので、スキーマに紐付きどんな項目のデータを登録するかを定めます。公式ドキュメントに説明があるとおり、以下の3種類のデータセットがサポートされています。このデータセットではユーザーに関するメタデータを提供します。これには、年齢、性別、ロイヤリティメンバーシップなど、パーソナライゼーションシステムで重要なシグナルとなる情報が含まれます。このデータセットでは、アイテムに関するメタデータを提供します。タイプ、可用性などの情報が含まれます。このデータセットでは、ユーザーとアイテム間のインタラクション、インタラクションのタイプ、タイムスタンプを指定します。各レコードは、クリック、視聴、カートへの追加などのイベントタイプに対応します。今回は、前の記事で既にInteractionsのスキーマを用意したので、データセットもInteractionsという種類を用いることにします。"com.amazonaws.personalize.schema",(以下略)データセットの一覧を得るメソッドは、次のように定義できます(データセットグループやスキーマの一覧を得る方法とほぼ同じで、また、今後説明する他のデータについても同様です)。Name)は必須ではなく、省略すると全てのデータセットグループの中の全てのデータセットの一覧を得ることができるのですが、ここでは指定することにします。前回の記事の中でデータセットグループARNが得られましたので、それを引数として渡して実行してみます。]}まだカラですので、作成します。データセットを作成するメソッドは、次のように定義できます。post_data)enddatasetGroupArnとschemaArnは前回の記事で得られたものを使い、datasetTypeは前述のようにスキーマに合わせてInteractionsを指定し、データセットの名前は「sample-dataset」にします。"arn:aws:personalize:ap-northeast-1:123456:dataset/sample-dataset-group/INTERACTIONS"}他のデータと同様、ARNから詳細を確認するメソッドは次のように定義できます。post_data)end上で得られたデータセットARNを引数として渡して実行してみると、詳細情報が得られます。}}statusにACTIVEとありますが、CreateDatasetのドキュメントにある通り、データセットグループと同様に次のように変化します。FAILED執筆者の環境では数秒かかりました。データセットのstatusがACTIVEになる前にデータ登録などの操作を行うとエラーになりますので、プログラムを作成する場合はデータセットグループの時と同様に、statusがACTIVEになるまで待つ必要があります。次のようになるでしょう。JSON.parse(ret.body)['dataset']endイベントトラッカーを操作する前回の記事でスキーマを作成した際、次のような説明をしました。EVENT_TYPEは、何かユーザーが取った行動を表します。ECサイトなら閲覧、検索、購入などがあるでしょうし、SNSならお店や商品につけた評価やいわゆる「いいね」を押したかどうかなどもあり得るかもしれません。Personalizeでは、情報推薦のために利用するデータ(ユーザーの行動や、世の中で起こった出来事など何でも)のことをイベントと呼び、イベントを記録するためにイベントトラッカーという概念を使います。イベントトラッカーはデータセットグループに対し1つだけ作成することができますが、作成するまでは存在しません。他のデータと同様、イベントトラッカーの一覧を得るメソッドとイベントトラッカーを作成するメソッドは、次のように定義できます。post_data)end一覧を確認したあと、イベントトラッカーを作成すると、次のような出力が得られるでしょう。イベントトラッカーには、「sample-event-tracker」という名前を付けることにします。"3febd1f4-daa1-42da-8233-3ca785bf9c2b"}他のデータと同様にイベントトラッカーのARNを得ることができ、詳細を確認するメソッドを定義し実行することでイベントトラッカーの情報を得ることができます。}}statusが存在することから、イベントトラッカーの作成時にも、statusがACTIVEになるまで待つ必要があることが分かります。データセットを確認するイベントトラッカーを作成したところで、今回の記事の最初に戻り、データセットグループの中のデータセットの一覧を表示してみます。データセットグループARNを引数に、定義したListDatasetsを呼び出すと、JSON配列の形で2つのデータセットが確認できます。]}datasetTypeがINTERACTIONSとなっているデータセットが、CreateDatasetで作成したデータセットです。一つ、datasetTypeがEVENT_INTERACTIONSというイベントトラッカー用のデータセットは、イベントトラッカー作成時に自動作成されたものです。データセットが自動作成されるならわざわざ作る必要が無いのではないかと思うかもしれませんが、データセットInteractionsを作成しないでイベントトラッカーだけ作成しようとすると、次のようなエラーが発生します。[arn:aws:personalize:ap-northeast-1:123456:dataset-group/sample-dataset-group]"}ここは仕様としてはよく分からないところで、しかもEVENT_INTERACTIONSデータセットが自動作成されたあとは、CreateDatasetで作成したINTERACTIONSデータセットは削除することもできます。いうかこの記事では削除します。post_data)endDeleteDataset('arn:aws:personalize:ap-northeast-1:123456:dataset/sample-dataset-group/INTERACTIONS')理由は、この記事ではINTERACTIONSデータセットは使用しないので、データが空です。空のデータセットが置いてあると、次回に説明する機械学習を実行する時に次のようなエラーが出るからです。[arn:aws:personalize:ap-northeast-1:123456:dataset/sample-dataset-group/INTERACTIONS]なお、英語版の公式ドキュメントのEVENT_INTERACTIONSデータセットの説明箇所及びそれに相当する日本語版の公式ドキュメントには、次のような記載があります。user.データセットの内容は、ユーザーには使用できません。記録したデータの保存場所を確認したり、記録したデータを再読み取りするなどの操作はサポートされていません。AWSらしい仕様だと思います。次の予定ここまでで、図の赤字になっている部分の準備ができました。Personalizeで使用する機械学習にも触れようと思います。