私の名前はDaniel、 です。私は新人ですが長時間のlurkerです。 私は次の "子供たちが眠っている間にいくつかのコードを書くことができます"というプロジェクトのためにApache Cassandraを学ぶことにしました。カサンドラDBをモデル化する方法、サーバメトリクス
私が書いているのは、キャサンドラのデータベースに対して読み書きをするきちんとした小さなAPIです。 は、私は、DBのレイアウトの多くは、MongoDBの中で考え出していたが、私にとって、それは上に移動し、エンジニアとして成長する時間です:)
ミッション: を私は、私のラック内のサーバーからエージェントをメトリックを収集するだろうメトリックのペイロードを毎分送信します。 私はapiの部分をかなり分かっており、ペイロードに署名するJWTトークンを使用します。 私が保管するデータのタイプは以下の通りです。 すなわち、cpuload、CPUUSAGE、MEMUSAGE、はdiskUsageなど
私は一種の私を読み込む作るために、ディスク上の時系列 としてそれをすべてを書き込み、私はstoragenginesを理解し、実際のモデルを作成する方法であるカサンドラと混乱していますパーツかなり素晴らしい。 しかし、私はこれらのことが適切に行われていることを理解しようとしています。サーバーの密度、データドッグなどの実際の生活のシナリオではどうすればよいのかを理解しようとしています。 "あなたの好みのサーバー監視サービスを挿入してください"。 :)
しかし、このようなスキーマを設計する経験豊富なエンジニアはどうですか?データベースの
使用シナリオ:
- 書き込みペイロード分ごとにAPIを介して。 (ザッツ少なくとも100kのは、何か役に立つ を学習のために毎分書き込みを想像することができます)
(ものユーザーID
- プル最新のデータ(3H)
- プル最新のデータに関連付けられた資産を読みます
- プル最新のデータ)毎日(毎週)
- が最新のデータをプル(月額)
- などなど
稼働時間などを示す毎月のpdfレポートを生成します。
私は完全なペイロードを含む行を挿入するか、私には、サービスごとにそれらを挿入するより良い午前必要があります。timeuid |すべて1
でCPUUSAGEサービス行ごと
CREATE TABLE metrics(
id uuid PRIMARY KEY,
assetid int,
serviceType text,
metricValue int
)
CREATE TABLE metrics(
id uuid PRIMARY KEY,
assetid int,
cpuload int,
cpuusage int,
memusage int,
diskusage int,
)
mongoでは、私はバケットをあらかじめ割り当てておき、 資料。 Webguiでは、あらかじめ定義された期間の平均統計情報を表示できます。
ダンベスの例が高く評価されています。 あなたは私のむしろ貧しい英語を解読できるといいですね。
このURLはSOの提案で見つかった: Cassandra data model for time series 私はそれも私に当てはまるものだと思います。
Sincerly ダニエル・オルソン