InfluxdbをTSDBの例として考えてみましょう。概要では、Influxdbは時間追加だけのファイルでソートされたデータを格納しています。しかし、追加するだけでなく、ランダムなタイムスタンプでデータを挿入することも可能であると主張しています。また、IoTの世界では、過去のデータを時折見つけて(たとえば、一部のデバイスがしばらくオフラインになってから再びオンラインになるなど)、このデータを時系列DBに配置してグラフをプロットしています。このようなシナリオには、どのようにすればよいでしょうか?追加専用ファイルを完全に書き換えますか?過去から時系列のDBのタイムスタンプ付きデータを挿入
答えて
これは私がそれを理解する方法です。 InfluxDBは、データがある時間ブロックごとに論理データベース(シャード)を作成します。既定では、シャードグループ期間は1週間です。したがって、タイムスタンプ付きの測定値をたとえば4週間前、彼らはその後の週からシャードに影響を与えません。
各シャード内で、着信書き込みは最初にWAL(write ahead log)に追加され、メモリにもキャッシュされます。 WALとキャッシュが十分にいっぱいになると、ディスクにスナップショットされ、レベル0のTSM(時間構造化マージツリー)ファイルに変換されます。これらのファイルは読み取り専用で、測定は最初にシリーズ順に、次に時間順に行われます。
TSMファイルが大きくなるにつれて、圧縮されてレベルが上がります。複数のレベル0のスナップショットが圧縮され、レベル1のファイルが生成されます。コンパイルによって、TSMファイルが最小限の一連のセットを含むように(理想的には)最適化され、他のTSMと重複しないように最適化されますファイル。これは、特定のシリーズ/時間ルックアップを検索する必要があるTSMファイルの数が減ることを意味します。
これを知っていると、ランダムタイムスタンプの書き込み作業負荷の下でInfluxDBがどのように苦しんでいますか?タイムスタンプがまばらに散らばっていて、シャードグループの持続時間が短い、すなわちほとんどの書き込みが異なるシャードに当たった場合、私たちは多くのシャードで終わるでしょう。これは、非効率的な多くのほぼ空のデータファイルを意味します(この問題はFAQで解決されています)。一方、ランダム・タイムスタンプが1つまたは2つのシャードに集中している場合、それらの下位レベルのTSMファイルは時間的に重複している可能性が高く、狭い時間範囲での照会の場合でもすべてを検索する必要があります。これは、これらの種類のクエリでの読み取りパフォーマンスに影響します。
詳しい情報は、これらのリソースで見つけることができます:
- 1. 時系列の挿入
- 2. 時系列Python ARIMA(過去のデータをテスト、トレーニング、予測すること)
- 3. 日付インデックス付き時系列データを使用してx軸上の経過時間をプロット
- 4. OpenTSDB(時系列データベース)にデータを挿入する方法
- 5. カサンドラDBに数百万の時系列データを効率的に挿入するための助言が必要
- 6. DBから配列変数へのデータの挿入(PL/SQL)
- 7. 不規則なタイムスタンプ付きデータを等間隔の時系列データに変換する
- 8. 過去24時間のタイムスタンプによるフィルタ結果
- 9. dbから別のdbにデータを挿入
- 10. パンダ:返されたデータからインデックス付き時系列を作成する
- 11. 時系列データの条件付き補間R
- 12. ワトソンのIoT CloudantのDBは、過去のデータ
- 13. DBへの同時挿入
- 14. R:時系列の時系列データを扱うには?
- 15. 外挿する時系列
- 16. SQLの過去の日付
- 17. カッサンドラDBのデータ挿入
- 18. python時系列の国データ
- 19. MySQLの時系列データ:サンプリング
- 20. sqlite dbからデータを消去
- 21. 任意の過去の日付にfacet.date.startを設定しないで常時データ
- 22. oracle DBにデータを挿入
- 23. 配列のデータをデータベースから挿入
- 24. 配列からのAMchartプロット時系列データ
- 25. 過去の時価総額データはquantmod経由ですか?
- 26. タイムスタンプの検証はnullであるかのPostgreSQL 8.4.9で過去
- 27. キュウリの各ステップのタイムスタンプを取得できますか?キュウリ過去に
- 28. angularjsのフロントエンドからmysql dbへのデータの挿入
- 29. テーブルからデータを選択して別のDBに挿入
- 30. 最後のタイムスタンプからの経過時間を確認する