2016-02-17 4 views
5

:私はステートメントを実行するとテーブルを作成するのに時間がかかるのはなぜですか?私は、次のスキーマを作成してい

CREATE TABLE stats_by_site_tracking_hourly (
    d_tally text, -- 2016-02 
    d_date timestamp, -- 2016-02-01 13 
    site_id int, 
    is_new_member int, -- 1/0 
    device text, -- desktop/tablet/mobile/unknown 
    tracking_medium text, 
    tracking_source text, 
    tracking_campaign text, 
    tracking_term text, 
    accepted counter, 
    adjusted_accepted counter, 
    rejected counter, 
    adjusted_rejected counter, 
    error counter, 
    impressions_positive counter, 
    adjusted_impressions_positive counter, 
    impressions_negative counter, 
    adjusted_impressions_negative counter, 
    revenue counter, 
    adjusted_revenue counter, 
    reversals_rejected counter, 
    reversals_revenue counter, 
    PRIMARY KEY ((d_tally), site_id, d_date, is_new_member, device, tracking_medium, tracking_source, tracking_campaign, tracking_term) 
); 

、それはすべての列のためにダウンし、より多くの減速カウンターの列に移動したときに最初のいくつかの列がしかし、迅速に処理されているようです。

私はこのステートメントを5分間実行したままにしていますが、まだ完了していません。

誰でもこの現象を理解できるでしょうか?


This表が作成されている、とスクリーンショットが撮影されたとき、それは20分ほどのために進んでいなかったとしてCQLSHがどのように見えるかです。


私はちょうど1つの行にcreate tableコマンドを置くとすぐに機能しました。

CREATE TABLE stats_by_site_tracking_hourly (d_tally text, d_date timestamp, site_id int, is_new_member int, device text, tracking_medium text, tracking_source text, tracking_campaign text, tracking_term text, accepted counter, adjusted_accepted counter, rejected counter, adjusted_rejected counter, error counter, impressions_positive counter, adjusted_impressions_positive counter, impressions_negative counter, adjusted_impressions_negative counter, revenue counter, adjusted_revenue counter, reversals_rejected counter, reversals_revenue counter, PRIMARY KEY ((d_tally), site_id, d_date, is_new_member, device, tracking_medium, tracking_source, tracking_campaign, tracking_term)); 
+0

"最初の数行はすぐに処理されるようですが、カウンタの列に移動するとすべての列がますます減速します" - どのようにスキーマ作成の進捗状況を測定しましたか? – doanduyhai

+0

スキーマをcqlshにコピーすると、一度に1行ずつ貼り付けられ、列を追加するために各列の一時停止があると仮定しています。 これは非常に前提ですが、私は遅延の他の理由について考えることはできません。私は私の質問にcqlshのスクリーンショットを追加しました。 –

+0

"スキーマをcqlshにコピーすると、一度に1行ずつ貼り付けられ、カラムを追加しているために各カラムの一時停止があると仮定しています" - >おそらくSSH接続が遅いためです。 ** cqlsh **は完全なステートメントを含むまで、CassandraにCREATE TABLEクエリを送信しません** line by line ** – doanduyhai

答えて

4

私はここでこのバグを提起:here

これは、スキーマ内のタブが原因であることが判明。 CQLSHは、タブになるたびに自動補完しようとしていました。

+0

omg、私はちょうど同じバグを打ち、あなたは正しいです。 –

+0

私はまだこれが周りにあるとは思わなかった! –

2

これはいくつかのコンピュータで同じ問題が発生していましたが、これはcqlsh>対話シェルのバグです。あなたの端末からスクリプトを実行した場合には、すぐに実行されます:

> cqlsh -f your_cql_script.cql <hostname> 

これは関係なく、すぐにどのようなサイズのテーブルを実行しないと、あなたに多くの時間を節約します。

+0

これをDatastaxのバグとして投稿したところ、タブを解釈してオートコンプリートしようとするとcqlshと判明しました! +1を使って回避することもできます:)。 –

関連する問題