Open halsk opened 2 years ago
(指定の保健所に所属する療養者を表示(保健師用)) /api/nurse/centers/{centerId}/patients/
特定保健所に属する患者情報が全件取得出来ない
Scanしたデータのサイズが1MBを超えている https://docs.aws.amazon.com/ja_jp/amazondynamodb/latest/developerguide/Scan.html
LastEvaluatedKey を使用してページング処理を実装する https://dev.classmethod.jp/articles/hot-to-get-more-than-1mb-of-data-from-dynamodb-when-using-scan/ 恐らくこのあたり https://github.com/codeforjapan/remote-patient-monitoring-api/blob/develop/src/aws/patientTable.ts#L23
TableにIndexを追加し、Scan を Query に変更する(諸々最適化が必要なので検討は時間を要する) Queryでも1MBを超える可能性があるのでいずれにしてもページング処理は必要 倶知安保健所で観察中の患者が表示されない等状況が生じており、急ぎである状況のようです。 僕の方でももう少し見てみますが、まずは第一報ということで。 ※ページングが必要なのは最終的にはDynamo DBの全アクセスになると思いますが、暫定として問題が出ているAPIから対応する方向でも良いのかなと思っております。
実はエラーは出ないのに(むしろこれが厄介)全件が取得出来ないという動作なので、タイトルを修正しました。
自動クローズになりましたが、別途恒久対応は必要ということでリオープン。
問題のAPI
(指定の保健所に所属する療養者を表示(保健師用)) /api/nurse/centers/{centerId}/patients/
問題の内容
特定保健所に属する患者情報が全件取得出来ない
問題の原因 (現段階での推測)
Scanしたデータのサイズが1MBを超えている https://docs.aws.amazon.com/ja_jp/amazondynamodb/latest/developerguide/Scan.html
対応策 (暫定)
LastEvaluatedKey を使用してページング処理を実装する https://dev.classmethod.jp/articles/hot-to-get-more-than-1mb-of-data-from-dynamodb-when-using-scan/ 恐らくこのあたり https://github.com/codeforjapan/remote-patient-monitoring-api/blob/develop/src/aws/patientTable.ts#L23
対応策 (恒久)
TableにIndexを追加し、Scan を Query に変更する(諸々最適化が必要なので検討は時間を要する) Queryでも1MBを超える可能性があるのでいずれにしてもページング処理は必要 倶知安保健所で観察中の患者が表示されない等状況が生じており、急ぎである状況のようです。 僕の方でももう少し見てみますが、まずは第一報ということで。 ※ページングが必要なのは最終的にはDynamo DBの全アクセスになると思いますが、暫定として問題が出ているAPIから対応する方向でも良いのかなと思っております。