2017-05-29 10 views
0

は、(... "zubrava1"、 "zubrava2")10版(10タイムスタンプ)を持つテーブルtestはBigTableのに物理的に格納されたデータはどのよう

    cf:a   cf:b  yy:a  kk:cat 
"com.cnn.news" zubrava10  sobaka foobar 
"ch.main.users" -    -   -   purrpurr 

そして、最初のセル( "zubravaに")と仮定しましょう

このテーブルのデータをディスクに格納する方法は?

私が意味は、10のタイムスタンプのための同じ行の

("row","column_family:column",timestamp) ? 

だから10のバージョンが一緒に保存される、常にプライマリインデックスでありますか?テーブル全体がどのように格納されていますか?

指定された列のすべての値のスキャンは、列指向のモデルの場合と同じくらい速いですか? 10のタイムスタンプのための同じ行の

SELECT cf:a from test 

答えて

0

だから10のバージョンが一緒に保存されますか?テーブル全体がどのように格納されていますか?

Bigtableは行指向のデータベースであるため、1つの行のすべてのデータが一緒に格納され、列ファミリによってまとめられ、次に列によって格納されます。データは逆のタイムスタンプの順番で保存されるため、最新の値を求めるのは簡単かつ迅速ですが、最も古い値を求めるのは難しいということです。

指定された列のすべての値のスキャンは、列指向のモデルの場合と同じくらい速いですか?

SELECT cf:a from test 

いいえ、列指向ストレージモデル格納一緒に単一の列のすべてのデータは、すべての行を横切ります。したがって、カラム指向システム(例えば、Google BigQuery)のフルテーブルスキャンは、ロー指向ストレージシステムよりも高速ですが、ロー指向システムは、ローベースの突然変異およびローベースの原子突然変異を提供します指向型ストレージシステムでは通常そうできません。

これに加えて、Bigtableはすべての行キーのソート順を辞書順に提供します。列指向のストレージシステムでは、通常、そのような保証はありません。

関連する問題