ベンチマークの目的で、1バイトの56K列を持つCassandra2のテーブルが必要です。多くの列を持つテーブルを作成するCassandra 2
私はこのようなこの要件を「USERTABLE」を作成しようとしています:
create table usertable (
y_id varchar primary key,
field0 varchar,
field1 varchar,
field2 varchar,
...
...
field55999 varchar,
field56000 varchar);
私はCQLSHを使用してファイルからこれを実行しようと、それは応答せずに永遠に実行され、多くのメモリを割り当てます。
これを行うには、より良い方法がありますか?フラットファイル(例えばschema.cql)でご自分のCREATE TABLE
文を配置し、彼らところでcqlsh -f schema.cql
を実行し、56kの列に
wayyyyyyy良い作品がわかりますか?パーティションあたり20億個のセルがcassandraによってサポートされているためです。したがって、取得中は、特定の列名を選択クエリ(パフォーマンスを念頭に置いておく)に渡して、すべての列を取得しないようにします。このタイプの醜いスキーマに対する影響または症状は何でしょうか。余りに広い行のための影響? –
上記の答えを参照してください。 – doanduyhai
クエリ 'SELECT field56000 FROM usertable WHERE y_id = xxx'を考えてみましょう。上記のクエリを実行しようとすると、56000列がメモリにロードされ、field56000列名に達するまで順次スキャンが実行されます。これはあなたが正確に意味するものですか?私が間違っているなら、私を訂正してください。 –