ホーム>source

BigTableから50個の最新データ(タイムスタンプに基づく)を取得する必要があります。

read_row を使用してデータを取得しますそして CellsRowLimitFilter(50) を使用してフィルタリングする 。しかし、それは最新のデータを返しませんでした。タイムスタンプに基づいてデータがソートされていないようですか?最新のデータを取得するには?

ご協力ありがとうございました。

あなたの答え
  • 解決した方法 # 1

    Bigtableの行キーに関連するすべてのデータ(セル)は、タイムスタンプごとに保存され、保存されたデータが時間とともにどのように変更されたかの記録を提供します。 CellsRowLimitFilter(50) を使用しているメソッド  行の最初のN個のセルを返しますが、最初のセルではなく最新のセルが必要なので、 CellsColumnLimitFilter(50) を使用する必要があります   各列内の最新のN個のセルのみを返します。

  • 解決した方法 # 2

    問題はスキーマにあることが判明しました。時系列データ用に設計されていません。 id#reverse_timestamp で行キーを作成する必要があります  データは最新のものからソートされます。 CellsRowLimitFilter(50)を使用して、50の最新データを取得できるようになりました。

関連記事

  • 前へ java - JPAクエリ:サブクエリをグループ化条件に結合する
  • 次へ amazon web services - AWSユーザーの誤って削除されたルート権限