時系列データとは、時間の経過に伴う変化を分析することでインサイトを得られるデータ ポイント列です。
通常、時系列データを構成するのは以下のコンポーネントです。
時間 : データ点が記録された時刻を示します。
メタデータ : データ シリーズを識別するラベルまたはタグで、ほとんど変更されることはありません。メタデータは に保存されます。時系列ドキュメント作成後、 フィールドを追加することはできません。メタデータは とも呼ばれます。詳細については、
metaField
metaField
source
metaField を参照してください。メトリクス : 時間の経過とともに追跡される個々のデータ ポイント。多くの場合、時間とともに変化するキーと値のペアとして表示されます。メトリクスは 値とも呼ばれます。
測定値 : 特定の点におけるすべてのメトリクスのデータを含むドキュメント。測定値には、その時点で記録されている時間、メタデータ、およびすべてのメトリクスが含まれます。
次の表に、時系列データの例を示します。
例 | メトリクス | Metadata |
---|---|---|
株価データ | 株価 | 株式ティッカー、取引所 |
気象データ | 温度 | センサー識別子、ロケーション |
ウェブサイトの訪問者 | 閲覧数 | URL |
時系列データ ストレージの効率化に向け、MongoDB では時系列コレクションを提供しています。
次の例は、気象データの測定ドキュメントを示しています。
{ "timestamp": ISODate("2025-08-19T12:00:00Z"), "metaField": { "sensorId": "A1234", "location": { "city": "New York", "state": "NY" } }, "temperature": 25.4, "humidity": 48.2, "pressure": 1012.5, "windSpeed": 5.2, "windDirection": "NW" }
この例では 、測定値には次の内容が含まれています。
データがいつ記録されたかを示す タイムスタンプ 。
センサーとその場所を識別するメタデータ。
特定の時点で収集された、温度、温度、温度、速度、方向などの複数のメトリクス。
時系列コレクション
バージョン 5.0 で追加
時系列コレクションは時系列データを効率的にストアします。時系列コレクションでは、同じソースから収集されたデータが、ほぼ同じ時点のデータ ポイントと一緒にストアされるよう、書込みが整理されます。
MongoDB Atlas でホストされている配置向け に UI で時系列コレクションを作成 できます。
重要
下位互換性のない機能
以下のダウングレードを行う前に、時系列コレクションを削除する必要があります。
MongoDB 6.0 以降から MongoDB 5.0.7 またはそれ以前のバージョンへ
MongoDB 5.3 から MongoDB 5.0.5 以前のバージョンへ
メリット
時系列データを時系列コレクションにストアすると、通常のコレクションと比較して、クエリの効率が向上し、時系列データやセカンダリインデックスのディスク使用量が削減されます。MongoDB 6.3 以降では、新しい時系列コレクションの時間フィールドとメタデータ フィールド上に複合インデックスが自動的に作成されます。
時系列コレクションは、基礎となる列指向ストレージ形式を使用して、データを時間順にストアします。この形式には、次のメリットがあります。
時系列データの操作の簡素化
クエリ効率の向上
ディスク使用量の削減
読み取り操作の I/O を削減
WiredTiger キャッシュの使用量増加
使用例
時系列コレクションは、時間の経過に伴うデータの分析に最適です。次の表は、時系列データの使用例を示しています。
業種 | 例 |
---|---|
モノのインターネット(IoT) |
|
金融サービス |
|
小売およびEコマース |
|
DevOps |
|
時系列コレクションは、以下のタイプのデータを対象としていません。
順序付けられていないデータ
時間に依存しないデータ
動作
時系列コレクションは通常、他の MongoDB コレクションと同様に動作します。 通常どおり、データの挿入とクエリを行います。
警告
アップデートコマンド内の match 式は、metaField のみを指定できます。時系列ドキュメント内の他のフィールドを更新することはできません。詳細については、「時系列更新の制限」を参照してください。
MongoDB では、時系列コレクションは、内部コレクションを基盤とした書込み可能な非マテリアライズド ビューとして扱われます。データを挿入すると、時系列データは内部コレクションにより最適化されたストレージ形式に自動的に整理されます。
MongoDB 6.3 以降は新しい時系列コレクションを作成すると、MongoDB は metaField フィールドと timeField フィールドに複合インデックスも生成します。クエリのパフォーマンスを向上させるため、時系列コレクションのクエリでは新しい複合インデックスが使用されます。複合インデックスもまた、最適化されたストレージ形式を使用しています。
警告
MongoDB 8.0 以降、時系列コレクションでシャードキーとして timeField
を使用することは非推奨になります。
また、MongoDB 8.0 以降では、timeField
を含むシャードキーで時系列コレクションを作成すると、ログメッセージがプライマリシャードのログファイルに追加されます。さらに、コンフィギュレーションサーバーのレプリカセットのプライマリノードに 12 時間ごとにログメッセージが追加されます。ログメッセージには、timeField
を時系列コレクションのシャードキーとして使用することは非推奨とされたため、metaField
を使用してコレクションを再シャーディングする必要があることが記載されています。
metaFields
時系列ドキュメントには、各ドキュメントのメタデータを持つ metaField を含めることができます。MongoDB は、内部ストレージの最適化とクエリ効率の両方で metaField を使用してドキュメントセットをグループ化します。metaField の詳細については、「metaFieldに関する考慮事項」を参照してください。
Indexes
MongoDB は、時系列コレクションの metaField と timeField の両方に複合インデックスを自動的に作成します。
ゾーン シャーディング
ゾーンシャーディングは時系列コレクションをサポートしていません。バランサーは常に、シャーディングされた時系列コレクションのデータをクラスター内のすべてのシャードに均等に分散させます。
次のステップ
時系列コレクションを始めるには、以下のページのチュートリアルをご覧ください。