Amazon Personalizeのインポートについての注意事項

今年の2月くらいから使い始めてたくさんのエラーと出会ってきたので、
決まりごとや気付いたことなどをメモしておきます。

データセットインポートジョブは、データセット内の以前のデータをすべて置き換えます。

参考

基本的にはs3からインポートして取り込みを行っていました。
その場合、差分追加はできないので、全件データを毎回インポートする形になります。

[補足]
Personalizeは s3からのインポートデータにのみに基づいてレコメンデーションを行うことができます。
→また、イベント取り込みSDKを使用してリアルタイムのイベントデータのみ、または両者の組み合わせも可能です(リアルタイムはお金結構かかります)

1つのカラムに複数値がある場合は | (パイプ)で区切る

参考

例)

ITEM_ID,GENRE
item_123,horror|comedy

データセットスキーマに定義されているカラムにNullを含ませない

これはどこかに記載があったわけではないので、経験談ですが。

データインポート時、またはソリューションバージョン作成時にエラーとなることがありました。(7/8週以前は同じデータでも取り込めてたのですがね・・・なぜでしょう

スキーマ定義で使用する「categorical」は文字列カラムに適用する

参考

スキーマの定義の仕方がよくわかっていなかったのですが、上記の資料に書いてありました。
基本的には文字列とそれ以外という括りみたいです。また、予約語以外の文字列カラムのメタデータは「categorical」をつける必要があるそうです。

USER_ID および ITEM_ID を除くすべての文字列が、以下の例に示すように、スキーマでcategorical としてマークされている必要があります。

{
 "type": "record",
 "name": "Users",
 "namespace": "com.amazonaws.personalize.schema",
 "fields": [
 {
 "name": "USER_ID",
 "type": "string"
 },
 {
 "name": "AGE",
 "type": "int"
 },
 {
 "name": "GENDER",
 "type": "string",
 "categorical": true   ★これ
 }
 ],
 "version": "1.0"
}

メタデータは5個まで

それより多く設定するとスキーマ定義作成の段階でエラーになります
More than 5 metadata columns. Please fix your schema and try again.

おわり

またノウハウがたまったら追記していきます。

サーバサイドエンジニア。オムライスが好物

シェアする

  • このエントリーをはてなブックマークに追加

フォローする