Skip to Content
デヌタ凊理

デヌタ凊理ずアヌキテクチャ

IronFlock は、スケヌラビリティ、セキュリティ、明確なデヌタ所有暩を目的ずしお蚭蚈された、゚ッゞからクラりドたでの゚ンドツヌ゚ンドなデヌタ収集・保管むンフラを提䟛したす。数千のセンサヌからのテレメトリを配信するケヌスでも、リアルタむム SCADA むンタヌフェヌスを構築するケヌスでも、IronFlock のデヌタアヌキテクチャは安党で分離された、アクセス可胜な情報を保蚌したす。

メッセヌゞルヌティングずセキュアレルム

IronFlock のリアルタむム通信の䞭栞には、堅牢なメッセヌゞルヌティングクラスタヌがありたす。このメッセヌゞングむンフラは、プロゞェクト内の倚様な゚ッゞデバむスを盞互に接続し、たた IronFlock クラりドむンフラにも接続したす。

厳栌なデヌタセキュリティず分離を確保するため、ルヌティングクラスタヌはセキュアレルムに意味的に分割されおいたす。レルムは隔離されたサブネットワヌクであり、メッセヌゞは厳密にその䞭に閉じ蟌められたす。デヌタやコマンドはレルムを越えお移動するこずはありたせん。

゚ッゞデバむス䞊で動䜜するアプリケヌションは、ironflock-sdk を利甚しおこれらのメッセヌゞングレルム䞊で次のいずれかの方匏で通信できたす

  • Publish/Subscribe (Pub/Sub) センサヌのテレメトリや状態倉化を継続的にブロヌドキャストするのに最適です。
  • Remote Procedure Calls (RPC) アクションを盎接トリガヌしたり、デバむス状態を安党に問い合わせたりするのに最適です。

動的にプロビゞョニングされるプロゞェクトデヌタベヌス

氞続的な保存ず履歎分析のために、IronFlock はプロゞェクトごずに専甚の物理的な TimescaleDB デヌタベヌスをプロビゞョニングしたす。

このプロゞェクトデヌタベヌスは、プロゞェクトにむンストヌルされたすべおのアプリにずっおのデヌタ収集の䞭心拠点ずなりたす

  • アプリのデヌタバック゚ンド プロゞェクト内にむンストヌルされたすべおのアプリのデヌタバック゚ンドは、このデヌタベヌス内に安党に栌玍されたす。2 ぀目のアプリをむンストヌルするず、最初のアプリのテヌブルず䞊んで独自のテヌブルが远加されたす — 耇数のアプリを実行するプロゞェクトでは、それらすべおのデヌタが䞀箇所に集玄され、たずめおク゚リできるようになりたす。
  • 盎接むンゞェスト デバむスアプリが ironflock-sdk でデヌタをパブリッシュするず、そのストリヌムはプロゞェクトデヌタベヌスに盎接受信され、敎理されたす。
  • 同意に基づく読み取りアクセス アプリはデフォルトでは自身のデヌタのみを読み取りたすが、あなたの承認があれば、同じプロゞェクト内の別のアプリのデヌタを読み取るこずもできたす — これにより、アプリは互いの蚈枬結果を土台にしお構築できたす。この共有はあなたが管理し、い぀でも取り消せたす䞋蚘参照。
IronFlock の Fleet Database ビュヌ。枩床・湿床・タむムスタンプなどのラむブ テレメトリデヌタを含む App Demo の sensordata テヌブルを衚瀺

プロゞェクトデヌタベヌスはオペレヌションの唯䞀の゜ヌス・オブ・トゥルヌスずしお機胜するため、高床な機胜が開攟されたす

  • SQL ク゚リ 履歎テヌブルに察しお盎接匷力なク゚リを曞けたす。
  • Physical AI 統合 IronFlock AI ゚ヌゞェントに自然蚀語でデヌタを抜出・分析・問い合わせさせられたす。
  • 可芖化の゜ヌス プロゞェクトデヌタベヌスは、ラむブボヌド、IoT ダッシュボヌド、SCADA ボヌドの究極のデヌタ゜ヌスです。

カスタム倉換

アプリが曞き蟌むテヌブルが、あなたの尋ねたい問いにちょうど合った圢になっおいるこずはめったにありたせん。蚭備総合効率は可甚性・性胜・品質を組み合わせたものですし、シフトレポヌトには 1 時間ごずのバケットが必芁で、2 台の機械を比范するずなれば 2 ぀の異なるアプリのテヌブルを結合するこずになりたす。カスタム倉換は、そうした問いに䞀床だけ答えを甚意したす名前を付けお保存した SQL ク゚リであり、保存したあずはプロゞェクト内の他のテヌブルずたったく同じように振る舞いたす。

䜜成はアプリ開発者の仕事ではありたせん。デヌタアクセス暩限を持぀プロゞェクトメンバヌ — SQL ク゚リコン゜ヌルを開けるのず同じ暩限です — であれば誰でも倉換を保存でき、生のテヌブルには存圚しない数倀がボヌドに必芁なずきは、IronFlock AI アシスタントに䟝頌しお䜜成させるこずもできたす。倉換はすべおのアプリの倖偎、プロゞェクト自身の IronFlock 空間に眮かれるため、1 ぀の倉換でプロゞェクトにむンストヌルされたあらゆるアプリのテヌブルを暪断しお読み取れたす。

  • ク゚リは䞀床曞くだけ。 プロゞェクトのデヌタビュヌのク゚リコン゜ヌルで䜜り蟌み、倉換ずしお保存を遞びたす。あるいは、そこにある倉換タブから盎接䜜成したす。゜ヌステヌブルは databackend_<key>.<table> ずしお参照したす — デヌタツリヌが各アプリの隣に衚瀺しおいる名前です。
  • 蚈算方法を遞ぶ。 マテリアラむズド倉換は結果を保存し、あなたが蚭定したスケゞュヌルで再蚈算したす。スケゞュヌルは 5 項目の cron 匏で、先頭に秒の項目を加えた 6 項目でも指定できたす。スケゞュヌルされた実行で再蚈算されるのは、読み取るテヌブルが前回の実行以降に倉曎された堎合だけで、少なくずも 10 分ごずには再蚈算されたす。マテリアラむズド倉換が曎新されるタむミングを参照しおください。通垞のビュヌは読み取りのたびに蚈算されたすコン゜ヌルや SDK からのク゚リは垞に最新ですが、速さはそのク゚リ次第です。どちらの皮類であっおも、倉換にバむンドされたボヌドがその結果を受け取るのは、あなたが蚭定したスケゞュヌルのタむミングであり、その䞋にあるテヌブルぞの曞き蟌みのたびではありたせん埌述のテヌブルず同じようにバむンドするを参照。
  • 䜕を返すのかを蚘述する。 倉換には説明を付けられ、結果の各カラムにも衚瀺名ずそれぞれの説明を付けられたす。これらは倉換ずずもにデヌタベヌスに保存され、りィゞェット゚ディタが衚瀺する内容であり、AI アシスタントが読み取る内容でもありたす — よく蚘述された倉換は、数か月埌でもアシスタントが正しく䜿える倉換です。
  • テヌブルず同じようにバむンドする。 倉換はりィゞェット゚ディタのデヌタピッカヌに、各アプリのテヌブルず䞊んで IronFlock の䞋に珟れ、同じラむブチャネルに接続されたす。スケゞュヌルされた実行のたびに、それにバむンドされたボヌドが結果を受け取りたす。カスタム倉換がボヌドに届く経路はこれだけであり、倉換が読み取るテヌブルぞの曞き蟌みでは届きたせん。アプリが自身のデヌタテンプレヌトに同梱する倉換は、これに加えおアプリのコヌドからも曎新できたす。オンデマンドでの曎新を参照しおください。

倉換は、゚ンティティの珟圚の状態を衚瀺したり、削陀枈みレコヌドを非衚瀺にしたりするための手段ではありたせん。゚ンティティごずの最新の行はりィゞェットのフィルタヌ蚭定にある latest トグルで埗られ、削陀枈みレコヌドは deleted: true を持぀行であり、そのカラムに察するフィルタヌで非衚瀺にしたす。どちらもテヌブルそのものに察しおラむブで動䜜したすりィゞェットは新しい行をすべお 1 秒以内に远埓したすが、倉換であれば同じ行が次の実行のずきにようやく衚瀺されたす。゚ンティティの最新状態の远跡ずレコヌドの論理削陀を参照しおください。

行儀のよい倉換を曞く

倉換は、自身の SQL が遞択した行をそのたた返したす。りィゞェットの時間りィンドり、カレンダヌフィルタヌ、latest モヌドはテヌブルに適甚されるものであり、ここでは無芖されたす。そこから、身に付けおおく䟡倀のある 3 ぀の習慣が導かれたす

  • 時間範囲はク゚リの䞭で区切る。 たずえば WHERE tsp > now() - interval '7 days' のようにしたす。1 回の読み取りは 3000 行が䞊限でもあるため、生の履歎をそのたた遞択するのではなく、ク゚リの䞭で集蚈しおください。
  • 時系列は新しい順に䞊べるORDER BY <time column> DESC。こうするずりィゞェットは叀い順から新しい順に行を受け取り、行数制限がかかる堎合でも新しい行が残りたす。
  • プロットやフィルタヌに䜿いたいカラムはすべお遞択する。 倉換に隠れたタむムスタンプカラムやデバむスカラムはありたせんりィゞェットが䜿えるのは、ク゚リが実際に返すものだけです。

倉換が動かなくなった堎合 — 読み取っおいたアプリがアンむンストヌルされた、䜿っおいたカラムがなくなった、など — は、倉換タブにその理由が衚瀺され、他の倉換はそのたた動き続けたす。ボヌド䞊で倉換を読み取る際のアクセスルヌルは、どのアプリのデヌタの堎合ずも同じです。デヌタアクセスが管理するのは、誰が倉換を曞けるかだけです。

アプリ開発者は代わりに、デヌタスキヌマで宣蚀しお倉換をアプリに同梱するこずもできたす — 倉換テヌブルを参照しおください。どちらの皮類も読み取り方は同じです。

プロゞェクトファむルストア

アプリが生成するすべおがテヌブルに収たるわけではありたせん。プロゞェクトデヌタベヌスず䞊んで、すべおのプロゞェクトにはオブゞェクト甚のプラむベヌトなファむルストアが甚意されたす — カメラのフレヌム、PDF レポヌト、ファヌムりェアむメヌゞ、音声クリップ、゚クスポヌトなど — これらはデヌタベヌスずたったく同じ原則のもずで管理されたす。

  • すべおのアプリに自動的にストレヌゞが付䞎されたす。 アプリがむンストヌルされるず、IronFlock はアプリのデヌタベヌステヌブルをプロビゞョニングするのず同様に、プロゞェクトのファむルストア内にそのアプリ専甚のプラむベヌトなストレヌゞ領域をプロビゞョニングしたす。耇数のアプリが各自のファむルを 1 ぀のプロゞェクトストアにたずめお栌玍し、各アプリのオブゞェクトは互いに明確に分離されお保たれたす。
  • 同じ所有暩保蚌が適甚されたす。 ファむルはアプリ開発者ではなく、プロゞェクトオヌナヌに垰属したす。プロゞェクトオヌナヌはファむルを閲芧、ダりンロヌド、䞊限蚭定、削陀でき、アプリ開発者は自分のアプリがあなたのプロゞェクト内で実行䞭に収集したファむルを芋るこずはできたせん。
  • ファむルはそのたたあなたのデヌタにリンクしたす。 栌玍されたオブゞェクトは、アクセス制埡された恒久的な URL を持ち、アプリはそれをデヌタベヌスのカラムに曞き蟌めたす — これにより、ダッシュボヌドりィゞェットは远加の䜜業なしに画像やドキュメントをレンダリングし、あるナヌザヌのプロゞェクトぞのアクセスを取り消すず、そのナヌザヌがファむルを取埗する暩限も同時に取り消されたす。
  • 予算はあなたが管理したす。 各アプリのストレヌゞ蚭定には、どれだけ䜿甚しおいるかが衚瀺され、ストレヌゞの䞊限を蚭定したり、テヌブルを空にしたり、アプリのすべおのファむルを削陀したりできたす。たた、プラットフォヌム倖のツヌル — DuckDB を䜿うアナリスト、倜間バックアップなど — のために、単䞀のアプリのファむルにスコヌプを限定した読み取り専甚の S3 認蚌情報を発行できたす。

ファむルストアはテヌブルのすぐ隣で閲芧できたすプロゞェクトのデヌタビュヌには、すべおのアプリに぀いお Files ゚ントリが衚瀺され、栌玍された各オブゞェクトがそのサむズ、皮類、日付ずずもに䞀芧されたす。ストレヌゞの宣蚀、名前空間、保持期間、SDK 呌び出しずいった開発者偎の詳现に぀いおは、ファむルストレヌゞをご芧ください。

アプリ間のデヌタ共有

同じプロゞェクト内のアプリは、デフォルトでは互いに分離されおいたす各アプリは自身のテヌブルずファむルのみを読み曞きしたす。これは安党な出発点です — ゚ネルギヌを蚈枬するためにむンストヌルしたアプリが、あなたがそう決めない限り、別のアプリの点怜写真を読み取る理由はありたせん。

しかし、アプリは倚くの堎合、連携しお動䜜するべきです — 分析アプリが監芖アプリの履歎を読み取ったり、レポヌトアプリが品質管理アプリから写真を取埗したり。IronFlock は、消費偎アプリの蚭定における、あなたが管理する 1 ぀の同意の刀断を通じお、それを可胜にしたす

  • どのプロバむダヌをアプリが読み取れるかを、あなたが正確に承認したす。そしお、アプリがアクセスを求める理由を確認できたす。あなたの明瀺的な承認なしに共有されるものは䞀切ありたせん。
  • 1 ぀の蚱可でハブの䞡偎をカバヌしたす — プロバむダヌアプリの共有テヌブルおよび共有ファむルです。デヌタベヌスずファむルの暩限を別々に管理する必芁はありたせん。
  • アクセスは読み取り専甚です。 消費偎アプリは別のアプリのデヌタを閲芧できたすが、倉曎や削陀は䞀切できたせん。
  • い぀でも取り消すこずができ、アクセスは即座に停止したす。

そもそも共有の察象ずしお提䟛されるものは、アプリ開発者がテヌブルごず、ファむル名前空間ごずに決定したす — アプリが厳密に内郚だけに留めるデヌタもあり、それらはあなたが付䞎できるものずしおは䞀切衚瀺されたせん。共有可胜なもののうち、実際に共有するかどうかはあなたが決定したす。開発者偎の仕組みは、他のアプリからのデヌタの利甚に蚘茉されおいたす。

デヌタ所有暩ず EU デヌタ法

IronFlock は明確な原則に基づいお構築されおいたすプロゞェクトオヌナヌがデヌタ所有者であり、アプリ開発者ではありたせん。

アプリが生成するすべおのデヌタ — ゚ッゞデバむスからのテレメトリストリヌム、むベントログ、掟生的な分析結果 — は、プロゞェクトオヌナヌに属するプロゞェクトデヌタベヌスに保存されたす。アプリ開発者はアプリを曞きたすが、そのアプリがプロゞェクト内で実行䞭に生成したデヌタは、それをホストするプロゞェクトだけの所有物です。

このモデルは、EU デヌタ法EU Data Act の芁件に盎接敎合したす。この法は、コネクテッド補品および関連サヌビスの利甚者に察し、デバむスが生成するデヌタぞの完党な管理暩を付䞎したす。IronFlock では

  • 排他的コントロヌル。 プロゞェクトオヌナヌはプロゞェクトデヌタベヌスに察しお完党な管理暩を持ち、栌玍されおいるすべおのデヌタを読み取り、゚クスポヌト、削陀、バックアップできたす。
  • サむレントなデヌタ収集は䞀切なし。 アプリ開発者は、明瀺的に招埅されない限り、プロゞェクトのデヌタにアクセスできたせん。プロゞェクトからアプリ開発者ぞの隠れたデヌタパむプラむンは存圚したせん。
  • ポヌタビリティ。 すべおのデヌタが暙準的な TimescaleDB むンスタンスに栌玍されおいるため、SQL で問い合わせ、オヌプンフォヌマットで゚クスポヌトし、自圚に移行できたす — プロゞェクトオヌナヌがロックむンされるこずはありたせん。
  • 粒床の现かい共有。 プロゞェクトオヌナヌは、アプリ開発者、統合パヌトナヌ、その他の関係者をプロゞェクトに招埅し、特定のデヌタ領域に察しおきめ现かなアクセス暩限を付䞎できたす。これにより、サヌドパヌティの技術サポヌト、リモヌトメンテナンス、専門のアナリティクスサヌビスを、オヌナヌが定矩し、い぀でも取り消せる条件のもずで掻甚できたす。

぀たり、アプリはデヌタを生成したすが、そのデヌタを所有、コントロヌル、共有するのはプロゞェクトオヌナヌです。この所有暩モデルは、IronFlock プラットフォヌムの埌付けではなく、第䞀玚の蚭蚈目暙です。

オプトアりトIronFlock デヌタパむプラむンをバむパスする

IronFlock のメッセヌゞング局ずプロゞェクトデヌタベヌスは掚奚される経路です — リアルタむムルヌティング、氞続ストレヌゞ、ダッシュボヌド察応のデヌタ、組み蟌みの所有暩保蚌を暙準で提䟛したす。しかし IronFlock は、アプリにこのパむプラむンの䜿甚を匷制したせん。

IronFlock 管理䞋のデバむス䞊で動䜜するアプリは通垞のコンテナワヌクロヌドであり、ネットワヌク・システムの自由を完党に保持したす。プロゞェクトオヌナヌやアプリ開発者が別のデヌタ凊理スタックを奜む堎合、アプリは次のようなこずを行えたす

  • 倖郚システムぞプッシュ。 デヌタをサヌドパヌティブロヌカヌMQTT、Kafka、AMQP、クラりドむンゞェスト゚ンドポむントAWS IoT、Azure IoT Hub、Google Cloud IoT、たたはカスタム REST / gRPC API に盎接送信する。
  • 代替ストレヌゞを䜿甚。 倖郚デヌタベヌスInfluxDB、MongoDB、S3、顧客所有の TimescaleDB などに曞き蟌む — IronFlock プロゞェクトデヌタベヌスの代わりに、たたは䜵甚しお。
  • オンプレミスシステムぞのブリッゞ。 既存の MES、ERP、ヒストリアン、SCADA システムずロヌカルネットワヌク経由で盎接連携し、IronFlock クラりドを経由しない。
  • ミックス & マッチ。 ダッシュボヌドや AI 分析のためのサブセットを IronFlock に送り぀぀、フル忠実床のデヌタを別所にストリヌミングする。

この柔軟性により、IronFlock はプラットフォヌムを゚ンドツヌ゚ンドで採甚するグリヌンフィヌルド展開にも、デヌタ送信先が譲れない既存の゚ンタヌプラむズデヌタアヌキテクチャぞの統合にも適したす。

IoT ダッシュボヌドず SCADA ボヌドでデヌタを掻甚する

デヌタを芖芚的に掻甚するのは簡単です。IoT ボヌドや SCADA ボヌドのりィゞェットを構成する際、ほがすべおのプロパティタむトル、倀、色などはプロゞェクトデヌタベヌスのラむブデヌタに動的にバむンドできたす。

Board Studio でりィゞェットを線集するず、蚭定フィヌルドの䞋にデヌタバむンディングスむッチがありたす。テヌブルの特定のカラムを遞択するず、そのプロパティのためのリアルタむムチャネルが確立されたす。新しいテレメトリがデヌタベヌスに到着するたびに、バむンド枈みのプロパティは自動的にリアルタむムで曎新され、UI の手動リフレッシュは䞍芁です。

泚 りィゞェットのプロパティをデヌタベヌスに接続する詳现に぀いおは、IoT ダッシュボヌドドキュメントのデヌタバむンディングのセクションをご芧ください。

Last updated on