時系列データを使用したアプリの構築をより簡単に

時系列データはソフトウェア開発者にとって新しい課題ではありませんが、近年の時系列データの指数関数的な増加 (減速の兆しはありません) により、確かに複雑になっています。

情報が力であるとすれば、データのすべてのビットとバイトは、デジタルの金の小さなフレークのようなものです。 多くの企業が時系列データにアクセスできましたが、それを効果的に活用する方法を本当に理解していませんでした。 それはすべて変化しています。

簡単に言えば、時系列データとは、タイムスタンプを持つ任意のデータ ポイントを指します。天気情報、株価、さらには海の潮位表などです。 シリーズを構成するには、データ ポイントが同じソースから取得され、時間の経過とともに順番に追跡される必要があります。 このデータは折れ線グラフやグラフとして簡単に視覚化できますが、表やその他の形式で表示することもできます。

ソフトウェア開発者は、何十年もの間、アプリケーションで時系列データを扱ってきました。 しかし、この種のデータを効果的に扱うには、それを処理するためのデータベースのセットアップなど、さまざまなものが必要です。 たとえば、新しいデータ ポイントが入ってくると以前のデータ ポイントを継続的に上書きするデータベースは、時系列データを使用しようとする開発者にとって問題になります。

今日の大きな違いは、時系列データが急増し、数百万のデバイスとセンサーがオンラインになることで、計測器の普及とモノのインターネット (IoT) とエッジ コンピューティングの主流採用によって、そのデータが増え続けていることです。

組織は確かに履歴データに価値を見出すかもしれませんが、日常業務にとって最も重要なのは通常、最新のデータ ポイントです。 これは、アプリケーションの監視、自動運転車の近接センサー、産業環境のガスセンサー、または接続された家電製品など、幅広いシナリオに当てはまります。

時系列プラットフォーム InfluxDB を開発している InfluxData のエンジニアリング担当副社長である Barbara Nelson 氏は、The New Stack に次のように語っています。 「給湯器の現在の温度を知ることは、特に過熱していて何らかの行動を起こす必要がある場合に、非常に重要になる可能性があります。 過去 5 分間に気温がどれだけ変化したかを知ることも、非常に重要な可能性があります。」

時系列データの値と関連性は、センサーが特定のデータ ポイントを記録するタイミングに対応します。 したがって、これらの大量のデータを効率的かつ迅速に、そしてリアルタイムで処理するには、企業や開発者が適切なツールを必要としています。

多くの場合、開発者は、さまざまな環境/クラウド、言語、フレームワーク、およびツールの組み合わせを使用して、時系列データを使用するアプリケーションを構築および統合する必要があります。 これは、最初に表示されるよりもはるかに難しい場合があります。

時系列データの操作: 4 つの重要な問題

産業用 IoT プラットフォームである PTC ThingWorx の R&D ソフトウェア開発シニア ディレクターである Kesara Kudalugodaarachchi 氏によると、開発者やその他の IT プロフェッショナルが時系列データを扱う際に遭遇するいくつかの重要な課題があります。 (同社は InfluxData の技術パートナーです。)

最大の課題は次のとおりです。

  1. 時系列データは大きいです。 特定の期間に蓄積されるデータの量は、特に長期のデータ保持ポリシーが存在する場合、膨大になる可能性があります。 「データ量が増えるにつれて、クエリの応答時間が長くなるため、そのデータを扱うことがますます難しくなります」と Kudalugodaarachchi 氏は述べています。
  2. データ ストレージは高価になります。 時系列データの量が増えると、データの保存にコストがかかり、古いデータのパージは運用上の頭痛の種になります。
  3. 時系列の「スライス」の分析には時間がかかりすぎます。 時系列データの価値の多くは、データを迅速に処理および分析する能力に関係しています。 1 時間ごとの平均気温の計算など、大量のデータの「タイム スライス」を扱う場合、これは注意が必要です。 「この種の集約をアプリケーション レベルで実行するには、ネットワークを介してデータをアプリケーション層にフェッチする必要があり、これはコストのかかる操作です」と Kudalugodaarachchi 氏は述べています。
  4. データの永続性はスケーリングが困難です。 最後に、時系列データの永続化には、IoT 環境 (時系列データのユース ケースの主要なカテゴリの 1 つ) で高いスループットが必要であり、数十万のデバイスが接続されている (毎秒数十万のデータベース レコードを挿入する) 必要があると述べました。 特に関係データベース管理システムでは、これを拡張するのは困難です。

Kudalugodaarachchi 氏によると、これらの要因はすべて、開発チームが合理的な独自のソリューションやポイント ソリューションを独自に考案した場合でも、開発者のエクスペリエンスを大幅に妨げる可能性があります。 また、「高価」、「難しい」、「時間がかかる」というのは、ビジネスの世界で求められる特性ではありません。

ビジネスと開発者のニーズのバランスをとる

これは重層的な問題を生み出します。組織は時系列データからビジネス価値を引き出す必要がありますが、高品質の開発者エクスペリエンスを確保する必要もあります。そうしないと、採用と定着の問題のリスクが生じます。

アプリケーションで時系列データをサポートするために、開発者がデータベースをゼロから構築するか、別のソリューションを改良する必要がある場合、または前述の課題に独自に取り組む必要がある場合、開発者の経験はほぼ確実に標準以下です。

ここでの “良い” ニュースは、これらの開発者エクスペリエンスの問題の一部は、必ずしも時系列データに固有のものではないということです。

「ツールの統合と使用は常に課題であり、時系列データ アプリケーションも例外ではありません。 「しかし、この課題は、このシナリオでは悪くありません。」

しかし、課題は依然として現実のものです。たとえば、統合開発環境 (IDE) やその他のプラットフォームは、時系列データのユースケース用のソフトウェアを構築するために必要なライブラリを常にサポートしているとは限りません、と Joshi 氏は言います。

InfluxData の Nelson 氏は、時系列データに関する開発者の経験 (したがって、時系列データに依存するアプリケーションのビジネス価値) は、データの取り込みに関する時間のかかる手作業、厄介な回避策と統合、データ形式の問題によって、今日しばしば妨げられていると指摘しました。 、およびその他の問題。 たとえば、エッジ デバイスのネイティブ データ形式は、そのデータがデータベースでどのように表示されるかを期待するものと必ずしも一致しません。

現在、多くのソフトウェアが適切に動作するために他のソフトウェア (特にオープン ソース) に依存しているため、時系列データを使用するアプリケーション (および開発者がそれらを構築するために使用するツール) は、迅速かつ安全に統合できる必要があります。 そうしないと、ボトルネックが膨らみ始めます。

「時系列データ ソフトウェアは、予測、財務的洞察、異常検出、サプライ チェーン、傾向検出に多用されているため、開発者がさまざまなオープン ソース モジュールをシームレスかつ安全に組み合わせることができるようにする必要があります」と Joshi 氏は述べています。 「これは必要です。そうしないと、開発者はこれらのモジュールの作成に多くの時間を費やすことになります。」

さまざまな業界の組織が時系列データの新しい用途や用途を拡大するにつれて、課題もさらに深刻になります。 また、ユースケースがますます複雑化することで、さらに複雑化しています。

「現在、時系列ソフトウェアは、自然言語処理、人工ニューラル ネットワーク、および高度なパターン認識をサポートする必要があります」と Joshi 氏は述べています。 「これらは非常に複雑なドメインであり、開発者は、ソフトウェアを予定どおりに提供するために、重要なツール、事前に作成されたテンプレート、およびテスト済みのモジュールを必要としています。」

解決策を見つける

時系列データを使用した幅広い課題の解決策は、特定のチームまたは組織が直面している問題を書き留めるのではなく、認識し、原因を特定してそれらを軽減できるようにすることから始まります。

現代のソフトウェア開発の他の多くの側面と同様に、「タイム トゥ バリュー」 (最終的に経営幹部が気にかけていること) と開発者のエクスペリエンス (タイム トゥ バリューにとって絶対的に重要) は、一貫して優先順位を付ける環境またはプラットフォームに依存します。自動化、相互運用性、統合、速度、および柔軟性。 ベンダーロックインへの対抗策として、オープン性も取り入れてください。

かなりの時系列データのユースケースを持つ企業は、時系列データに特化したデータ ストアを使用することでメリットが得られる可能性があると Kudalugodaarachchi 氏は述べています。アプリケーション層の代わりに) を使用して、ほぼリアルタイムの応答率を実現します。

これは、開発者が迅速に構築し、結果をより迅速に確認できることを意味します。データベース管理や、操舵室以外のその他の運用上の問題に数え切れないほどの時間を費やす必要はありません。

これは基本的に、InfluxData が InfluxDB で構築したものです。InfluxDB は、インジェスト、リアルタイム分析、ストレージなどの点でチームが直面する一般的な課題を合理化する、時系列アプリケーションを構築およびスケーリングするための開発者向けプラットフォームです。

重要な時系列データのユース ケースを持つすべての企業にとって、Nelson 氏は、「開発者がいる場所に対応する」時系列ソリューションの必要性を強調しました。

InfluxData で、彼女は次のように述べています。 開発者は通常、アプリケーションの一部として使用するために、多くの時系列データを保存する必要があります。 彼らはそれを分析し、それに基づいて行動できるようになりたいと思っています。 彼らは、データを適切な形式で取得し、効率的に保存し、長期にわたって管理する方法を見つけようとするだけに、すべてのエネルギーを費やしたくありません。」

InfluxData のソリューション (オープン ソース、エンタープライズ、およびクラウド バージョンで利用可能) は、開発者が API、コマンド ライン、または UI を介してデータベースにアクセスできるようにし、C#、Go、Javascript、PHP、Python を含む 12 の言語のクライアント ライブラリをサポートします。

データがどのように取り込まれ、開発者がどのようにデータをクエリするかについては、大きな注意が払われています。 InfluxData のソリューションのユーザーは、SQL、InfluxQL (Influx クエリ言語)、または Flux のいずれかを使用できます。これにより、ユーザーはデータをクエリするだけでなく、データに基づいて行動することができます。

データ クエリの結果は、ユーザー フレンドリーな方法で表示されます。 たとえば、Nelson 氏によると、Web UI を使用すると、「基本的にポイント アンド クリックするだけで、測定値を選択し、時間範囲を選択するだけで、さまざまな異なるグラフィック形式のいずれかで結果が表示されます。」

同社は、エッジに位置するエージェントであるオープン ソース プロジェクトの Telegraf も維持しています。 エッジ デバイスからデータをプルするためのプロトコルに適合する 300 を超えるさまざまなプラグインがあります。 次に、Nelson 氏によると、「そのエージェントのすべてで、変換、バッチ処理、および再試行ロジックを使用して、時系列の宛先がどこにでも」書き込むことができます。 これにより、データ パイプラインの回復力が大幅に向上します。

InfluxData は、開発者が長期にわたってデータを管理できるように設計されています。 時系列データを監視しないと、ディスク領域が古いデータでいっぱいになる可能性があります。

「このデータを保存するデータベースに対して私たちが使用する用語であるバケットを最初に定義するとき、保持ポリシーを定義します」と Nelson 氏は言います。 「ねえ、このバケツのデータ、6 か月間保持したい」と言うことができます。 そして、時間の経過とともに自動パージを処理するため、ディスクがいっぱいになる状況に陥ることはありません。」

彼女は次のように要約しています。 基本的に、このすべてのデータを継続的に流入させることができ、ある時点で、クリーンアップして対処しなければならない古いデータが大量にあることに突然気付くリスクを冒さないようにするためです。 . 私たちはあなたのためにそれを処理します。」

ネルソン氏によると、InfluxData のアプローチは、「時系列データを含むアプリケーションを構築しようとしている開発者の 1 日を総合的に見ることから来ています。 …私たちはよく見てきました。 そして、どうすれば彼らにとってそれをより簡単にすることができるでしょうか?

「開発者に、私たちの世界に合わせてこれらすべての変更を加える必要があるとは言いたくありません。 いいえ、私たちはあなたの世界に合わせて機能を開発します。

グループ スケッチで作成。

Leave a Comment

Your email address will not be published. Required fields are marked *