1

https://cloud.google.com/bigtable/docs/go/cbt-reference

このリファレンスのように、次のコマンドを試しました

cbt count <table>

3 つの異なるテーブル用。

そのうちの 1 つについては、期待どおりの結果が得られました。行数は、1M に少し恥ずかしがり屋です。

2 番目のテーブルでは、次のエラーが発生しました。

[~]$ cbt count prod.userprofile
2016/10/23 22:47:48 Reading rows: rpc error: code = 4 desc = Error while reading table 'projects/focal-elf-631/instances/campaign-stat/tables/prod.userprofile'
[~]$ cbt count prod.userprofile
2016/10/23 23:00:23 Reading rows: rpc error: code = 4 desc = Error while reading table 'projects/focal-elf-631/instances/campaign-stat/tables/prod.userprofile'

何度か試しましたが、毎回同じエラーが発生しました。

最後のエラーについては、別のエラーが発生しました (エラー コードは上記と同じですが、その説明は異なります)。

[~]$ cbt count prod.appprofile
2016/10/23 22:45:17 Reading rows: rpc error: code = 4 desc = Error while reading table 'projects/focal-elf-631/instances/campaign-stat/tables/prod.appprofile' : Response was not consumed in time; terminating connection. (Possible causes: row size > 256MB, slow client data read, and network problems)
[~]$ cbt count prod.appprofile
2016/10/23 23:11:10 Reading rows: rpc error: code = 4 desc = Error while reading table 'projects/focal-elf-631/instances/campaign-stat/tables/prod.appprofile' : Response was not consumed in time; terminating connection. (Possible causes: row size > 256MB, slow client data read, and network problems)

これも何度か試しましたが、何も変わりませんでした。

「rpc エラー コード 4」をキーワードとして、stackoverflow でググって検索しましたが、有用なものは見つかりませんでした。

このコマンドが失敗する理由と、これを解決するために私ができることを本当に知りたいです (ちなみに、これらの 2 つのテーブルは 24 時間年中無休で運用されており、数十の大きなテーブル ノードが正常に動作しているため、帯域幅や QPS と関係があるとは思わないでください)。

どんな助けでも本当に感謝します。

4

2 に答える 2

3

大きなテーブルでカウントを取得するには、Bigtable のすべての行から何かを読み取る必要があります。カウントを表す単一の値を取得するという概念はありません。

残念ながら、このタイプの問題には map/reduce のようなものが必要です。幸いなことに、 Dataflow で countを実行するのは非常に簡単です。

于 2016-10-25T23:51:24.127 に答える