最も一般的に使用されるリレーショナル データベースとキャッシュに加えて、Spring Boot で MongoDB と LDAP ストレージを構成して使用する方法の例を以前に紹介しました。次に、別の特別なデータベースの紹介を続けます。それは、Spring Boot での時系列データベース InfluxDB の使用です。
時系列データベースとは何ですか?正式名称は時系列データベースです。時系列データベースは、主に時間タグ付き(時間順に変化する、つまり時系列化)なデータを処理するために使用され、時間タグ付きデータは時系列データとも呼ばれます。
時系列データは主に、電力業界や化学業界などのさまざまな種類のリアルタイム監視、検査、分析装置によって収集および生成されます。これらの産業データの典型的な特徴は次のとおりです。 (監視ポイントごとに 1 つ)、複数のデータを数秒以内に生成できます)、収集時間に大きく依存します (各データは固有の時間に対応する必要があります)、測定ポイントが多く、大量のデータが存在します。 (従来のリアルタイム監視システムは数千の監視ポイントを持ち、毎秒データが生成され、毎日数十ギガバイトのデータが生成されます)。リレーショナル データベースも時系列に基づいてデータを保存できますが、ストレージ構造の欠点により、これらのデータは高頻度の保存とクエリ統計を効率的に実現できません。そのため、時系列の保存と最適化に特化した新しい手法が生まれました。より高い効率要件を満たすために。
InfluxDB は、現在人気のあるオープン ソースの時系列データベースです (公式 Web サイトのアドレス: https://www.influxdata.com/)。より一般的な使用シナリオは、時間に関連する高頻度のデータ レコードと統計です。たとえば、データ ストレージとクエリの監視が必要です。
次の実践セッションに進む前に、まず InfluxDB のいくつかの重要な用語を理解しましょう:
データベース: データベース
測定: リレーショナル データベースのテーブル (テーブル) に似ています
ポイント: リレーショナル データベースの行 (データの行) に似ています
そのうち、Point は 3 つの部分で構成されます:
time: タイムスタンプ
<dependency> <groupId>org.influxdb</groupId> <artifactId>influxdb-java</artifactId> </dependency>
spring.influx.url=http://localhost:8086 spring.influx.user=admin spring.influx.password=
@Service @AllArgsConstructor @Slf4j public class Monitor { private InfluxDB influxDB; @Scheduled(fixedRate = 5000) public void writeQPS() { // 模拟要上报的统计数据 int count = (int) (Math.random() * 100); Point point = Point.measurement("ApiQPS") // ApiQPS表 .tag("url", "/hello") // url字段 .addField("count", count) // 统计数据 .time(System.currentTimeMillis(), TimeUnit.MILLISECONDS) // 时间 .build(); // 往test库写数据 influxDB.write("test", "autogen", point); log.info("上报统计数据:" + count); } }
$ influx
> show databases
> create database "test"
2021-08-03 01:52:47.732 INFO 94110 --- [ main] c.d.chapter63.Chapter63Application : Started Chapter63Application in 2.326 seconds (JVM running for 3.027) 2021-08-03 01:52:47.764 INFO 94110 --- [ scheduling-1] com.didispace.chapter63.Monitor : 上报统计数据:25 2021-08-03 01:52:52.736 INFO 94110 --- [ scheduling-1] com.didispace.chapter63.Monitor : 上报统计数据:30 2021-08-03 01:52:57.737 INFO 94110 --- [ scheduling-1] com.didispace.chapter63.Monitor : 上报统计数据:38 2021-08-03 01:53:02.739 INFO 94110 --- [ scheduling-1] com.didispace.chapter63.Monitor : 上报统计数据:51 2021-08-03 01:53:07.739 INFO 94110 --- [ scheduling-1] com.didispace.chapter63.Monitor : 上报统计数据:31
> select * from ApiQPS order by time desc; name: ApiQPS time count url ---- ----- --- 1627926787730000000 31 /hello 1627926782730000000 51 /hello 1627926777729000000 38 /hello 1627926772727000000 30 /hello 1627926767728000000 25 /hello
以上がSpring Boot で時系列データベースを使用するための 1 つのトリックを教えますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。