目次
ストアから表の行を取得するにはいくつかの方法があります。次の選択肢があります。
TableAPI.get()
を使用して一度に1つの行を取得します。
TableAPI.multiGet()
またはTableAPI.multiGetIterator()
を使用して、シャード・キー(少なくとも主キーの一部に基づく)に関連付けられた行を取得します。
TableAPI.tableIterator()
を使用して、シャード・キーまたは索引キーを共有する表の行を取得します。
それぞれの詳細は次の各項で説明します。
ストアで読取り操作を行うと、3つの例外のいずれかが発生します。1つ目は、ConsistencyException
です。この例外は、一貫性ポリシーが満たされないため、操作を完了できないことを表します。詳細は、「一貫性保証」を参照してください。
2つ目の例外はRequestTimeoutException
です。これは、ストアのタイムアウト・プロパティで指定された時間内に操作を完了できなかったことを表します。ストアで一度に多くの読取りリクエストをサービスしようとしていることを示している可能性があります。データは、ストア内のシャード全体でパーティション化され、パーティション化は、シャード・キーに基づいて行われることに注意してください。1つのキーに対して多数の読取りリクエストが発生するようにキーを設計した場合、ストア内の一部のシャードがアイドルの場合でもリクエストのタイムアウトが発生することがあります。
リクエストのタイムアウトは、ネットワーク速度の低下やまったく反応しない状態を引き起こしているネットワークの問題を表していることもあります。
RequestTimeoutException
に対処するには、単にエラーを記録して続行するか、少しの間待ってから操作を再試行します。タイムアウト値を大きくして操作を再試行することもできます。
最後に、一貫性の問題やリクエスト・タイムアウトの問題以外でなんらかの例外が発生したことを表す一般的なFaultException
を受け取ることがあります。この対処法は、エラーを記録して続行するか、操作を再試行することのみです。