Web-APIを利用するためのシグネチャバージョン4の準備と、使うデータの概要を簡単に説明しました。Personalizeのデータを作成するプログラム例を紹介していきたいと思います。データセットグループを操作するなにはともあれ、データセットグループが無いと何もできません。前回の記事で定義したメソッドcallを用いて、データセットグループの一覧を出すことができます。post_data)endこのメソッドを呼び出すと、最初はカラのJSONが返ってきます。]}ここで、名前をつけてデータセットグループを作成するメソッドを定義します。Name)が返ってきます(何らかの理由で作成に失敗しない限り)。"arn:aws:personalize:ap-northeast-1:123456:dataset-group/sample-dataset-group"}作成したあとは、一覧でも出てきます。Personalizeのデータの一部は即時反映されるわけでは無く、CreateDatasetGroupのドキュメントにも記載されている通り、statusは次のように順に変化します。FAILEDこのstatusは、ListDatasetGroupsで一覧を出して探さなくても、CreateDatasetGroupやListDatasetGroupsで取得したdatasetGroupArnを用いて得られるデータセットグループ詳細で確認できます。データセットグループ詳細を見るメソッドは次のように定義できます。post_data)endこのメソッドを呼ぶと、指定したARNに対するデータセットグループの情報がJSONで返ってきます。}}statusが確認できるので、CreateDatasetGroupでデータセット作成リクエストを送信したあと、例えば次のようにプログラム中でACTIVEになるのを待つ必要があります。JSON.parse(ret.body)['datasetGroup']endスキーマを操作するデータセットグループを作ったらデータを入れたくなりますが、その前にどのようなデータを入れるかを考えておきましょう。今回は、シンプルで汎用性もある、公式ドキュメントと同じスキーマを使います。"1.0"}USER_IDとITEM_IDは、それぞれ名称の通りユーザと推薦情報を表すIDで、推薦情報サービスを構築する人が勝手にデザインできます。会員ナンバー等の数列でもメールアドレスでも何でも良いでしょう。EVENT_TYPEは、何かユーザが取った行動を表します。ECサイトなら閲覧、検索、購入などがあるでしょうし(AIDMAモデルのようなものが考えられます)、SNSならお店や商品につけた評価やいわゆる「いいね」を押したかどうかなどもあり得るかもしれません。EVENT_VALUEは、EVENT_TYPEに対応する値が入ります。閲覧や検索なら回数が入るでしょうし、購入なら回数や購入価格、評価なら点数などを入れることになります。Avroが採用されており、使えるデータ型はAvroの公式ドキュメントに記載されています。スキーマを作成する前は、一覧を出すことでスキーマが存在しないことを確認できます。スキーマの一覧を得るメソッドは、データセットグループの一覧を得るメソッドとほぼ同じです。post_data)endこのメソッドを呼び出すと、最初はカラのJSONが返ってきます。]}ここで、名前をつけてスキーマを作成するメソッドを定義します。post_data)endこのCreateSchemaは、スキーマの名前とスキーマを定義するJSON文字列を引数として渡し呼び出します。「sample-schema」という名前を付け、作成が成功すると、スキーマのARNが返ってきます。"arn:aws:personalize:ap-northeast-1:123456:schema/sample-schema"}ここで、<<-EOSというのはRubyのヒアドキュメント記法です。ARNから詳細を確認するメソッドも、データセットグループの場合とほぼ同じです。post_data)endこのDescribeSchemaを呼び出すと、スキーマの定義やスキーマの名前を含んだ詳細が得られます。}}ここでオブジェクト名「schema」の値の部分が読み難くなっているのは、JSONの中にJSONデータを埋め込むネスト構造になっているため、記号や改行がエスケープされているからです。CreateSchemaやDescribeSchemaのAPIドキュメントを見ても、schemaの部分は以下のようにJSONフォーマットでありながら型はStringとなっています。Yesstatusという属性は無く、即時作成されることが分かります。次の予定ここまでで、図の赤字になっている部分の準備ができました。次の記事では、今回準備したデータセットグループとスキーマを使って、データを登録するための箱であるデータセットの作成などを説明していきたいと思います。