2015-01-07 5 views
6

Cassandraで現在のデータで毎日テーブルを再作成する必要があるユースケースがあります。このためには、ドロップテーブルまたは切り捨てテーブルを使用する必要があります。これは効率的でしょうか?私たちはデータのバックアップなどを望んでいませんか?Cassandraのテーブルを削除すると便利です

おかげ はAnkur

答えて

6

私はほとんどすべてのケースのために切り捨てがドロップ再作成よりも安全運転だと思います。過去にゴーストデータ、スキーマの不一致などでドロップ/再作成することにはいくつかの問題がありました...ドロップ/再作成をより安定させようとするいくつかの修正がありましたが、切り詰めははるかに安く安定しているはずです。

+1

ありがとうRussS!私が持っている1つの質問は、切り捨てを使用して墓石を作成するか、すぐにデータを削除するかどうかです。 – Ankur

+7

即刻です。墓石はありません。 – ashic

6

ドロップテーブルは、テーブルとすべてのデータを削除します。 Truncateはテーブル内のすべてのデータを消去し、デフォルトではデータのスナップショットを作成しますが、スキーマは作成しません。スナップショットを作成するには、切り捨てても効率的です。これを無効にするには、cassandra yaml configでauto_snapshotをfalseに設定します。ただし、サーバー全体に適用されます。それはあまりにも多くのトラブルではない場合、私はドロップし、テーブルを再作成します - しかし、再作成する前にしばらく待っていない場合、私は問題を見てきました。

+0

ありがとうAshic!あなたが言及したように、テーブルを削除してから再作成しようとしても、5分ほどの時間をかけてテーブルを削除することはできません。 – Ankur

+0

私はそれを1日1回のオペレーションとしてドロップすることをお勧めしました。私はあなたがドロップと作成の間に長い遅延を余儀なくされるかもしれないと想像しました。そうでない場合は、切り捨てを行いますが、自動スナップショットを無効にしない限り、スナップショットをクリアすることを忘れないでください。 – ashic

+0

Ashicさんありがとうございます。 truncate tableを使ってみましたが、cqlが正常に完了した後でも、テーブルのレコードを見ることができました。それから、私はドロップテーブルを試してみました。私は切り捨てを使用するつもりですが、それはすぐになるとは思わない。 – Ankur

2

出典:https://support.datastax.com/hc/en-us/articles/204226339-FAQ-How-to-drop-and-recreate-a-table-in-Cassandra-versions-older-than-2-1

注:テーブルが削除または切り捨てられている場合、デフォルトでは、スナップショットが作成されます。ディスク領域を再利用するには、これを手動で削除する必要があります。

手動でもテストされています。

切り捨てはスキーマを維持しますが、削除は行いません。

関連する問題