10

マイデータ

これは主に、監視対象のアプライアンスごとに、監視対象の値ごとに Timestamp: Value の形式で渡される監視データです。多くのアプライアンスと多くの監視値で定期的に収集されます。

さらに、これらのデータ値の多くがソースで導出され、計算が時々変化するという風変わりな機能があります。これは、データが効果的にバージョン管理されていることを意味し、計算の最新バージョンからのデータのみを簡単に呼び出すことができる必要があります。 注:これは、古い値が上書きされるバージョン管理ではありません。タイムスタンプのカットオフがあり、それを超えるとデータの意味が変わります。

私の使い方

下流では、さまざまな未定義のデータ マイニング/機械学習でデータを使用する予定です。これらの用途が何であるかはまだ明確ではありませんが、ダウンストリーム コードのすべてを Python で作成することは明らかです。また、私たちは非常に小さなショップであるため、セットアップ、メンテナンス、およびダウンストリーム アプリケーションとのインターフェイスの非常に複雑な処理しかできません。それほど多くの人がいません。

選択肢

このデータを格納するために SQL RDBMS を使用することは許可されていないため、適切な NoSQL ソリューションを見つける必要があります。これまでに見つけたものは次のとおりです。

  1. カサンドラ
    • 私にはまったく問題ないように見えますが、一部の主要なユーザーは移動したようです. それほど活気のあるエコシステムにならないのではないかと思います。この SE の投稿には、良いことが書かれているようです: Cassandra time series data
  2. アキュムロ
    • 繰り返しますが、これは問題ないように思えますが、これがメジャーで積極的に開発されたプラットフォームではないことが懸念されます。これにより、ツールとドキュメントに少し飢えているようです。
  3. モンゴDB
    • 私は Mongo の群集に対して、おそらく不合理で強烈な嫌悪感を抱いており、解決策としてこれを破棄する理由を探しています。このような静的で規則的な構造を持つものに対して、Mongo のデータ モデルはすべて間違っているように思えます。私のデータも順番に入ってきます(そして、順番にとどまる必要があります)。とはいえ、みんなとその母親はこのことを気に入っているようなので、私は本当にその適用性を評価しようとしています. これと他の多くの SE の投稿を参照してください: What NoSQL DB to use for sparse Time Series like data?
  4. HBase
    • 現在傾いているところです。私の問題に対して完全に使用可能なアプローチを備えた Cassandra の後継のようです。とは言っても、これは大きな技術であり、私が選択した場合、サインアップしているものが何であるかを本当に知ることを心配しています.
  5. OpenTSDB
    • これは基本的に、HBase の上に構築された時系列固有のデータベースです。完璧ですよね?知らない。私は、抽象化の別のレイヤーが私に何をもたらすかを理解しようとしています。

私の基準

  • オープンソース
  • Python でうまく動作する
  • 少人数のチームに適しています
  • 非常によく文書化されています
  • 順序付けられた時系列データを利用するための特定の機能があります
  • バージョン管理されたデータの問題のいくつかを解決するのに役立ちます

では、どの NoSQL データベースが実際に私のニーズに対応するのに役立つのでしょうか? それは私のリストからかどうかにかかわらず、何でもかまいません。私は、使用パターンだけでなく、非常に具体的でよく理解されたニーズをサポートするコードが実際にどのプラットフォームにあるかを理解しようとしています。どちらが優れているとか、どちらがかっこいいとかは問いません。この種のデータを最もネイティブに保存および操作できるテクノロジを理解しようとしています。

何かご意見は?

4

4 に答える 4

2

私は Cassandra と MongoDB の経験しかありませんが、私の経験は何かを追加するかもしれません。

では、基本的に時間ベースのメトリクスを行っていますか?

タイムスタンプをバージョン管理メカニズムとして使用して、特定のタイムスタンプごとにクエリを実行することを理解していれば、最新の計算を取得するには、メトリック ID などに基づいて ts DESC を取得し、最初の行を削除しますか?

バージョン管理されたキー値ストアのように聞こえる場合があります。

これを念頭に置いて、私が使用した2つのどちらもおそらくお勧めしません.

Cassandra は厳格すぎて階層的すぎます。あまりにもクエリの方法に基づいており、グラフ データのピボットを 1 つしか作成できない点に基づいています (これらのメトリックをグラフ化する必要があると思います)。 . 検索に関しては (Facebook がそれをどの目的で使用しているか、そしてそれだけ)、それもそれほど印象的ではありません。

MongoDB、私は MongoDB が大好きです。私はユーザー グループのエリートです。キー値ストレージ ポリシーを使用していない場合はここで機能する可能性がありますが、結局のところ、あなたの心が設定されておらず、気に入らない場合は、テクノロジーは、私が最初に言うことをさせてくれます:それを使用しないでください!嫌いな技術は苦手なので、やめましょう。

私はMongoでこれが起こっていると思いますが、次のようになります。

{
_id: ObjectID(),
metricId: 'AvailableMessagesInQueue',
formula: '4+5/10.01',
result: NaN
ts: ISODate()
}

そして、次の方法で計算の最新バージョンを照会します。

var results = db.metrics.find({ 'metricId': 'AvailableMessagesInQueue' }).sort({ ts: -1 });
var latest = results.getNext();

上記のドキュメント構造を出力します。どのようにクエリを実行したいか、一般的なサーバーやアプリのシナリオなどを正確に知らなくても、私が思いつくことができる最高のものです。

ただし、HBase に関するこのスレッドが好きです: http://mail-archives.apache.org/mod_mbox/hbase-user/201011.mbox/%3C5A76F6CE309AD049AAF9A039A39242820F0C20E5@sc-mbx04.TheFacebook.com%3E

興味深いかもしれませんが、HBase は適切な時間ベースのキー値ストアであるという議論をサポートしているようです。

私は個人的に HBase を使用したことがないので、私が言うことを真剣に受け止めないでください....

何か追加したことを願っています。そうでない場合は、より具体的な質問に答えることができるように、基準を絞り込んでみてください。

それが少し役立つことを願って、

于 2012-06-23T10:41:34.643 に答える
0

Axibase 時系列データベース

  • オープンソース

    無料のコミュニティ版があります

  • Python でうまく動作する

    https://github.com/axibase/atsd-api-python . ATSD R クライアントなど、他の言語ラッパーもあります。

  • 少人数のチームに適しています

    グラフィックスとルール エンジンが組み込まれているため、少ないコーディングで社内のレポート、ダッシュボード、または監視ソリューションを構築するのに生産的です。

  • 非常によく文書化されています

    IBM のレッドブックに勝るものはありませんが、私たちは努力しています。API、構成、および管理が詳細に文書化され、例が示されています。

  • 順序付けられた時系列データを利用するための特定の機能があります

    これはゼロから作成された時系列データベースであるため、集計、フィルタリング、およびノンパラメトリックの ARIMA とハードウェアの予測を利用できます。

  • バージョン管理されたデータの問題のいくつかを解決するのに役立ちます

    ATSD は、SE および EE エディションでネイティブにバージョン管理された時系列データをサポートします。バージョンは、監査証跡と調整のために、同じタイムスタンプのステータス、変更時刻、およびソースの変更を追跡します。トレースを使用してクリーンで検証済みのデータが必要な場合に便利な機能です。エネルギー計測、PHMR 記録を考えてみてください。ATSD スキーマは、CE エディションを使用している場合、またはデフォルトのバージョン管理列を拡張する必要がある場合に、バージョン管理列を手動で格納するために使用できるシリーズ タグもサポートしています: status、source、change-time。

開示 - 私は ATSD を開発する会社で働いています。

于 2015-08-06T19:03:23.317 に答える