データストレージのオプション
PTC は以下のストレージオプションをサポートしています。
• モデルプロバイダ
• データプロバイダ
H2
H2 はディスクフットプリントが少ないオープンソースのリレーショナルデータベースです。これは Java で記述され、Java アプリケーションに埋め込むこともクライアント-サーバーモードで動作することも可能であり、JDBC API を提供します。H2 は ThingWorx のモデルプロバイダとデータプロバイダ両方の要件を満たします。ThingWorx は埋め込みモードで (メモリ内データベースではなく) 永続化 H2 データベースを開きます。これは最も高速で最も簡単な接続モードですが、このデータベースは JDBC を使用して Tomcat および ThingWorx Web アプリケーションと同じ JVM 内でのみ開きます (外部プロセスはこのデータベースインスタンスに接続したり使用したりできません)。永続データベースとして、データは (ThingworxStorage 内の database フォルダにある) ローカルディスクに書き込まれ、ThingWorx が再起動した後も維持されます。
一般的なユースケース
• 試用版、開発者システム、概念実証、Edge デバイス付近
• 厳密に単一サーバー展開で
制限事項
H2 は埋め込まれているので、本番環境での使用は推奨されていません。
• これはアプリケーションとリソース (CPU、メモリ、ディスクなど) を共有するのでスケーラビリティに制限があります。
• 全体として、アプリケーションの安定性が低下します。たとえば、Tomcat がクラッシュしたり Tomcat プロセスが終了した場合、データベースプロセスも終了し、これによってデータが破損する可能性があります。
• ボトルネックをアプリケーションコードとデータベースに切り離すことでパフォーマンスの問題をトラブルシューティングすることがさらに困難になります。
• 一般的な操作および管理の観点から、データの視覚化、バックアップ、障害復旧はさらに管理が困難になる可能性があります。
PostgreSQL
PostgreSQL は、拡張性と規格準拠に重点が置かれたオープンソースリレーショナルデータベース管理システム (ORDBMS) です。このデータベースサーバーとしての主な機能は、データを安全に保管し、ほかのソフトウェアアプリケーションのリクエストに応じてデータを取得することです。これは、小規模な単一マシンのアプリケーションから、多数の同時ユーザーにサービスを提供する大規模なインターネット接続アプリケーションまで、広範なワークロードを処理できます。PostgreSQL はデータベースレベルでの高可用性機能を提供します。これは同じまたは異なるアベイラビリティーゾーン内に 1 つのマスターノードと複数のスレーブノードから成る構成でセットアップできます。
ThingWorx および PostgreSQL の展開の詳細については、以下のドキュメントを参照してください。
一般的なユースケース
このデータベースは小規模、中規模、大規模の実装に対応して 1 秒につき最大で 15,000 件のプロパティ書き込みが可能であり、高可用性機能を提供します。
Microsoft SQL Server (MSSQL)
Microsoft SQL Server (MSSQL) は Microsoft によって開発されたリレーショナルデータベース管理システムです。これはデータベースサーバーなので、ほかのソフトウェアアプリケーションによってリクエストされたデータを保存および取得することが主な機能であるソフトウェア製品であり、同じコンピュータ上またはネットワーク (インターネットを含む) を介して別のコンピュータ上で動作できます。ThingWorx および Microsoft SQL Server の展開の詳細については、
永続化プロバイダとしての Microsoft SQL Server の使用を参照してください。
複数の SQL Server エディションから自分のデータソリューションに最適なものを選択できます。これらのエディションのリレーショナルデータベースの最大サイズは、10 GB という小さなものから 524 百万 GB という非常に大きなものまであります。高可用性を実現するには、エンタープライズエディションを使用することをお勧めします。
MSSQL は、その永続化プロバイダを介して、モデルプロバイダとデータプロバイダの両方をサポートしています。
一般的なユースケース
SQL Server は小規模な IoT 実装から大規模な IoT 実装まで対応しています。ただし、これは Microsoft SQL/Azure がすでに IT スタックに存在し、スタッフが
「可用性機能を使用した SQL Server 2017 のシナリオ」に従って MSSQL Server 高可用性ソリューションを実装することに精通している場合に使用するのが最適です。
Azure SQL Database
Azure SQL Database は Azure クラウドでホストされているリレーショナル DBaaS (database-as-a-service) であり、フルマネージド PaaS (Platform as a Service) データベースエンジンです。Azure SQL データベースエンジンはエンタープライズエディションの SQL Server に基づいています。Azure プラットフォームはすべての Azure SQL Database を完全に管理し、データ損失がない高いデータ可用性を保証します。Azure SQL Database には高可用性、ディザスタリカバリ、データベースアップグレードが備わっています。
DataStax Enterprise (DSE)
ThingWorx では Apache Cassandra を使用した大容量ランタイムデータストアプロバイダである DataStax Enterprise (DSE) も使用されています。DSE を使用することで、そのアセットで生成される速度よりも高速でデータを取得でき、さらなるデバイス (またはその他のワークロード) が追加された場合にシームレスにスケーリングできます。ランタイムデータストアとして DSE を使用することで、IoT、Web、モバイルアプリケーションのパフォーマンスと可用性を実現するために構築されたデータベースプラットフォームが提供されます。
ほとんどのリレーショナルデータベースは水平スケーリングできず、マスター/スレーブモードで動作します。これに対し、Cassandra のピアツーピアの、マスターがないクラスタリングアーキテクチャでは、データベースは線形かつ高度なスケーラビリティを備えます。
DSE は、高度な管理ツールと監視ツールを備え、インデックシングとサーチのための Solr との統合が組み込まれ、サポートとパッチのメカニズムを持つ、完全にテストおよび検証された Cassandra 展開を提供します。これは、顧客がコンフィギュレーション、モデル、大容量データを保管する複数のデータリポジトリを持つことが可能な、プラガブルデータストアモデルと完全に符号します。特定の機能の要件を満たすデータリポジトリを選択できます。
DSE は、常時稼動の統合マルチモデルデータベースシステムであり、Apache Spark、メモリ内テクノロジ、常に使用可能なサーチ、グラフデータベースコンピューティングを使用してリアルタイム/バッチ解析を行います。これは開発システムおよび生産システムでの操作に必要な高度なツール、短期および長期のデータアクセスに対応する階層化ストレージなどのフレキシブルな機能、同じシステム内で複数のデータベースクラスタを実行するマルチテナント性、企業の要件を満たす高度なセキュリティを提供します。
| ThingWorx が動作するためには、DSE スタックの DSE 統合サーチコンポーネント (Apache Solr) が必要です。このため、ThingWorx は Apache Solr が統合されていないオープンソースの Apache Cassandra インストールでは動作できません。 |
DSE は、現在 H2 または PostgreSQL で提供されているものより大容量で高速なデータストアを必要とする ThingWorx Platform に以下のような利点をもたらします。
• さらに高速でデータを取得できます。
• ランタイムデータ用に 1 つ以上のデータリポジトリがサポートされます (モデルデータは H2 または PostgreSQL 内に保管し、大容量ストリームデータに DSE を使用します)。
• 柔軟なスケーリング特性がサポートされます。DSE リングにさらにノードを追加してトランザクションを高速化できます。
• データプロセスがプラットフォームプロセスと切り離されます。
• クラウドに適したアーキテクチャがサポートされます。
一般的な使用例
一般的な使用例は、分散ロード全体で大量 (15,000 wps 以上) のトランザクション (ランタイム) データがある場合です。
InfluxDB
InfluxDB を使用するには、ThingWorx 8.4 以降が必要です。システムで大量の時系列データが処理され、データの永続化/読み込みに関して実装が値ストリームまたはストリームに大きく依存している場合、ThingWorx で永続化プロバイダとして InfluxDB を使用することをお勧めします。InfluxDB は、時系列データ専用に記述された高性能なデータストアです。同データの高スループットでの取得、圧縮、リアルタイムのクエリーを可能にします。InfluxDB は、DevOps の監視、ログデータ、アプリケーション判定基準、IoT センサーデータ、リアルタイムアナリティクスなど、大量のタイムスタンプ付きデータを処理するあらゆるユースケースでデータストアとして使用されます。データ保持ポリシー (RP) などの機能も提供されます。InfluxDB Enterprise は、時系列データのニーズを満たす高可用性および高スケーラブルなクラスタリングソリューションを提供します。
ThingWorx で PostgreSQL または MSSQL を永続化プロバイダとするデフォルトインストールに組み込んで InfluxPersistenceProviderPackage を使用できます。
• InfluxDB データプロバイダは、現在のところ、値ストリームとストリームのみをサポートしています。データテーブル、Wiki、ブログはサポートされていません。
• InfluxDB データプロバイダは、現在のところ、エクスポート機能をサポートしていません。
• InfluxDB は、現在のところ、プロパティプロバイダとしてはサポートされていません。
(InfluxDB 永続化プロバイダパッケージを使用して作成された) 永続化プロバイダインスタンスをデフォルトの永続化プロバイダとして使用している場合、すべてのストリームと値ストリームに適用される、ストリームおよび値ストリームキューのコンフィギュレーション設定を編集できます。特定のストリームまたは値ストリームについてこれらの設定を変更することはできません。