独自のインデックス リストを作成せずに、行キーを整理して範囲スキャンを実行する良い方法を見つけようとしています。
私は現在、約 15.000 のデータベースを持つ MySQL データベースを持っています。各 ~50 テーブル = 75.000 テーブルです。データの 99% は常に一意の識別子で読み取られるため、そのデータは Cassandra クラスターに移動する予定です。
一部のメンテナンス (完全なテーブルの内容の一覧表示、完全なテーブルの削除、またはデータベースの削除) では、完全なテーブルまたはデータベースの内容を取得する必要があります。Range-Scans は、これに最適なようです。
現在、古い構造の各部分の UUID を生成し、|
(DB + テーブル + Id = UUID1|UUID2|UUID2) で区切ってまとめることを計画しています。
例:
07424eaa-4761-11e1-ac67-12313c033ac4|0619a6ec-4525-11e1-906e-12313c033ac4|0619a6ec-4795-12e9-906e-78313c033ac4
データを含む CF は でソートする必要がありますorg.apache.cassandra.db.marshal.AsciiType
。
クライアントとしてphpcassaを使用しています。
UUID|
範囲スキャンの場合、範囲の開始キーと終了キーとして同じキーを使用したいのですが、それに追加するchr(255)
かz
追加します。両方の文字の ascii-value は、そのキーに続く他の UUID 文字よりも大きくなります。
これは、説明されている範囲スキャンの目標を達成できる確実なアプローチですか?