Google Datastore 1500bytes制限と回避方法(PHP)
概要
Google Datatstoreは、型定義もテーブル定義もせずがんがんデータ突っ込めます。
が、デフォルトのままデータ入れていると、1500バイトを超えたところで、PHPの場合、500エラーで止まります。
エラーメッセージは、The value of property "data" is longer than 1500 bytes
という感じ。
なぜエラーが出るか、大きなデータは突っ込めないのか。
Datastoreは、何も指定しなければ、インデックスが貼られます。
インデックスが貼られているデータは、1500バイトまでという制限があります。
つまり、インデックスを貼らなければOK
データ挿入時にインデックス対象から外す
事前のテーブル定義がないので、データ挿入時にインデックスしない、という指定をするしかなさそう。
コード
PHPのライブラリでデータをINSERTするときのコード。
以下のコードの場合、answerdetailだけインデックスしません。
$dbKey = $datastore->key($GLOBALS['DB_prefix'].'groupexamlog');
$dbData = $datastore->entity(
$dbKey,
[
'groupid' => $groupid,
'userid' => $userid,
'score' => $score,
'scoremax' => $scoremax,
'duration' => $duration,
'answertime' => $answertime,
'answerdetail' => $answerdetail
],[
'excludeFromIndexes' => ['answerdetail']
]
);
$result = $datastore->insert($dbData);
参考
Author And Source
この問題について(Google Datastore 1500bytes制限と回避方法(PHP)), 我々は、より多くの情報をここで見つけました https://qiita.com/tsunet111/items/e1c858ba40152f7daf9d著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .