永続化プロバイダ
ThingWorx において、値ストリーム、ストリーム、データテーブル、ブログ、wiki はデータプロバイダです。データプロバイダは、ランタイムデータが格納されるデータベースです。ランタイムデータとは、Thing が構成され、接続されているデバイスによって使用されてそのデータ (温度、湿度、位置など) が保存されると永続化されるデータです。Thing のメタデータを保存するにはモデルプロバイダが使用されます。永続化プロバイダは最初はモデルプロバイダとデータプロバイダに 1 つのデータベースを使用するよう設定されていますが、管理者は要件に基づいて別々のデータベースを使用するよう設定できます。
ビジネスモデルで必要とされるデータ量によって、データの処理方法が決まります。大量のデータを必要とする場合、スケーラブルなデータストアが求められます。ThingWorx では、値ストリーム、ストリーム、データテーブルデータに以下のいずれかの永続化プロバイダを選択できます。
• PostgreSQL
• Microsoft SQL Server
• Azure SQL Server
• InfluxDB
ThingworxPersistenceProvider
デフォルトの永続化プロバイダは ThingworxPersistenceProvider であり、これは ThingWorx とともにインストールされる永続化プロバイダに基づいています。
Composer を介した ThingworxPersistenceProvider に対するコンフィギュレーション設定は永続化されず、Platform の再起動時に platform-setting.json で指定されている値にリセットされます。変更を永続化するには、Platform を停止し、platform-settings.json を更新し、Platform を再起動します。platform-settings.json は ThingworxPersistenceProvider のコンフィギュレーションの信頼できる情報源です。Platform の起動時に、ThingworxPersistenceProvider は platform-settings.json で指定されている設定を使用します。この機能は、管理者がプラットフォームに悪影響を与える変更をロールバックできるようにしながら各自の設定を調整できるようにするために実装されました。
ThingWorx でストリームまたは値ストリームにデータを書き込む際には、最良事例として 1:1 の比率を使用しないでください。たとえば、モデル内に 10,000 個の Thing がある場合、データの読み取りパフォーマンスを向上させるには、(10,000 個のストリームではなく) 50 個のストリームまたは値ストリームを使用します。
環境間でのエンティティとデータのマイグレーション
ストリーム、値ストリーム、データテーブルエンティティとその関連データを異なるシステム間 (開発システムから運用システムなど) でマイグレーションできます。既存のエンティティやデータを既存の永続化プロバイダ環境から新しい永続化プロバイダ環境にマイグレーションするには、以下のステップに従います。
エンティティ定義をマイグレーションし、データはマイグレーションしない場合、以下のステップを実行します。
1. ソースシステムからエンティティをエクスポートします。
2. ターゲットのシステムにエンティティをインポートします。
3. ターゲットのシステムで、必要なエンティティの永続化プロバイダを手動で変更します。
エンティティ定義とデータをマイグレーションする場合、以下のステップを実行します。
1. ソースシステムからエンティティとデータをエクスポートします。
2. ターゲットのシステムにエンティティをインポートします。
3. ターゲットのシステムで、必要なエンティティの永続化プロバイダを手動で変更します。
4. ターゲットのシステムにデータをインポートします。
前のステップで選択した永続化プロバイダに従って、データが適切なデータストアに保存されます。
既存の環境でのデータのマイグレーション
現在の環境下のデータを既存の永続化プロバイダから新しい永続化プロバイダにマイグレーションするには、永続化プロバイダの初期設定が完了した後で以下のステップを実行します。
1. 新しい永続化プロバイダにマイグレーションするエンティティを特定します。
2. 特定したエンティティのデータをエクスポートします。
3. Composer で、特定したエンティティの永続化プロバイダを変更します。
4. データをインポートします。