Composer での ThingWorx モデルの定義 > データストレージ > 永続化プロバイダ > 永続化プロバイダとしての Microsoft SQL Server の使用
永続化プロバイダとしての Microsoft SQL Server の使用
概要
SQL Server は Microsoft によって開発されたリレーショナルデータベース管理システムです。これはデータベースサーバーなので、ほかのソフトウェアアプリケーションによってリクエストされたデータを保存および取得することが主な機能であるソフトウェア製品であり、同じコンピュータ上またはネットワーク (インターネットを含む) を介して別のコンピュータ上で動作できます。
* 
サポートされている MSSQL のバージョンについては、 ThingWorx システムの要件ドキュメントを参照してください。
* 
ThingWorx 8.4.0 で書き込みのパフォーマンスが最適化されました。この結果、MSSQL で一部の API のパフォーマンスが低下した可能性があります。詳細については、 バージョン 8.4.0 リリースノートを参照してください。
このセクションには以下のトピックが含まれています。
SQL Server のエディションの比較
SQL Server には Enterprise、Standard、Express という複数のエディションがあり、ご自分のデータソリューションに最適なエディションを選択できます。以下の表で、MS SQL Server の 3 つのエディションを比較しています。
一般的に、SQL Standard Edition では必要なほとんどの機能がサポートされるので、本番環境にはこれが適しています。
本番環境で AlwaysOn などの高可用性機能やインメモリ OLTP、テーブルとインデックスのパーティション分割などのその他の機能を必要とする場合、SQL Enterprise Edition が推奨されます。
機能
Enterprise Edition
Standard Edition
Express Edition
リレーショナルデータベースの最大サイズ
524 PB
524 PB
10 GB
使用される最大メモリ (SQL Server データベースエンジンのインスタンスあたり)
オペレーティングシステムの最大
128 GB
1 GB
AlwaysOn 可用性グループ
はい
いいえ
いいえ
バックアップ圧縮
はい
はい
いいえ
データベース監視
はい
はい
監視のみ
ログ配布
はい
はい
いいえ
マルチインスタンスのサポート
50
50
50
暗号化されたバックアップ
はい
はい
いいえ
テーブルとインデックスのパーティション分割
はい
いいえ
いいえ
パーティション分割されたテーブルおよびインデックスに対する並列クエリー処理
はい
いいえ
いいえ
SQL Server の各種エディションでサポートされる機能の詳細については、以下を参照してください。
2014 (ThingWorx 8.4 より前のバージョンでサポート): https://msdn.microsoft.com/en-us/library/ms144275(v=sql.120).aspx
MSSQL Server の要件
ハードウェアとソフトウェアの要件
MS SQL Server Express Edition の最小要件は以下に記載されています。
運用のための SQL Server のリソースのサイジングについては、 容量計画のセクションを参照してください。
オペレーティングシステムの要件
Microsoft Windows は MSSQL Server がサポートされている唯一のオペレーティングシステムです。Linux が将来的にサポートされる可能性がありますが、どのオペレーティングシステムを選択しても ThingWorx には影響がありません。詳細については、 上記のリンクに従って、使用している MS SQL Server のバージョンの Microsoft ハードウェアとソフトウェアの要件ページを参照してください。
MSSQL Server への ThingWorx の接続性
ThingWorx は SQL JDBC ドライバーを使用して MSSQL データベースに接続します。JDBC 接続プロパティの詳細については、 https://docs.microsoft.com/ja-jp/previous-versions/sql/sql-server-2008-r2/ms378988(v=sql.105) (2014 バージョンの MS SQL Server) または https://docs.microsoft.com/ja-jp/sql/database-engine/install-windows/installation-for-sql-server?view=sql-server-2017 (2017 バージョンの MS SQL Server) を参照してください。
これらの接続プロパティは、ThingWorx ソフトウェアダウンロードで提供されている platform-settings.json ファイルで設定できます。platform_settings.json ファイルには以下の接続プロパティが含まれています。
jdbcUrl: jdbc:sqlserver://localhost:1433;databaseName=thingworx;applicationName=Thingworx;"
接続プロパティ:
ServerName - SQL Server が動作しているコンピュータ。- localhost
PortNumber - SQL Server が受信しているポート。- 1433
DatabaseName - 接続先データベースの名前 - ThingWorx
applicationName - アプリケーション名、Thingworx
MSSQL インストールの計画
以下の環境に MSSQL をインストールできます。
オンプレミス
SQL Server インストールウィザードでは、すべての SQL Server コンポーネントをインストールするための単一の機能ツリーが提供されるので、各機能を個別にインストールする必要がありません。
詳細については、 https://msdn.microsoft.com/en-us/library/ms143219(v=sql.120).aspx を参照してください。
Amazon EC2 (Amazon EC2 での SQL Server) -
Amazon Web Services には、必要な時間だけ Microsoft SQL Server を実行する柔軟性が備わっています。多数のバージョンおよびエディションから選択でき、これを Amazon Elastic Compute Cloud (Amazon EC2) または Amazon Relational Database Service (Amazon RDS) のどちらで実行するか選択できます。
Amazon EC2 で SQL Server を使用した場合、オンプレミスでインストールされている場合と同様に、各設定を完全に制御できます。
Amazon EC2 環境の詳細
本番環境では Amazon EC2 で以下の設備を使用します。
専用ハードウェア
アベイラビリティーゾーン間のネットワークレイテンシはイントラゾーンのネットワークレイテンシの 6 倍にもなる場合があります。したがって、"ゾーン A - データセンター" 内のすべてのマシンが単一のアベイラビリティーゾーン内に存在しなければなりません。
障害復旧には "ゾーン B - データセンター" の別のアベイラビリティーゾーン/リージョンを使用します。リージョンは地理的に離れた領域であり、各リージョンにはアベイラビリティーゾーンと呼ばれる複数の独立したロケーションがあります。詳細については、 http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-regions-availability-zones.html を参照してください。
Amazon EC2 VPC。仮想プライベートネットワークにマシンを展開して、独自の IP アドレス範囲の選択、サブネットの作成、ルートテーブルおよびネットワークゲートウェイの設定など、仮想ネットワーキング環境を完全に制御します。詳細については、 http://aws.amazon.com/vpc/ を参照してください。
プレイスメントグループは、単一のアベイラビリティーゾーン内の Amazon EC2 インスタンスの論理グループです。プレイスメントグループを使用することで、アプリケーションが低レイテンシの 10 Gbps ネットワークに加わることが可能になります。詳細については、 https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/placement-groups.html を参照してください。
共通のクラスタプレイスメントグループ内で起動したインスタンスは、論理クラスタ内に配置され、そのクラスタ内のすべてのインスタンス間に高帯域、低レイテンシのネットワークが提供されます。クラスタネットワーキングは C4、C3、I2、CR1、G2、および HS1 インスタンスではサポートされていますが、M3 インスタンスではサポートされていません。 https://aws.amazon.com/ec2/instance-types/ を参照してください。
ThingWorx Platform サーバーと同じ VPC 内の複数の IP アドレスを持つ複数の Elastic Network Interfaces (ENI)。 https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-eni.html を参照してください。
Hardware Virtual Machine (HVM) は、従来の実装と比較して I/O パフォーマンスが高く CPU 利用率が低い新規ネットワーク仮想化スタックを使用します。拡張ネットワーキングを利用するためには、HVM AMI を VPC で起動し、適切なドライバーをインストールしなければなりません。
SSD エフェメラルストレージ (EBS ボリュームは推奨されません)。SSD ベースのインスタンスストレージは非常に高いランダム I/O パフォーマンスを得るために最適化されています。
バックアップ用 S3 Simple Storage Service https://console.aws.amazon.com/s3/home?region=us-east-1#
* 
Amazon アカウントにログインしていない場合、このリンクをクリックするとログインするよう求められます。
MS SQL Server を AWS に展開するためのガイド: https://aws.amazon.com/windows/products/sql/
SQL Server AlwaysOn 可用性グループの設定
詳細については、 http://docs.aws.amazon.com/quickstart/latest/sql/part3.html を参照してください。
Amazon EC2 (Amazon RDS 上の Microsoft SQL Server) -
Microsoft Azure -
Microsoft Azure SQL データベースはアプリケーション開発者のための管理されたクラウドデータベースであり、アプリケーションの構築と管理をより簡単かつ生産的に行えます。
SQL Azure を使用することで、組織はリレーショナルデータをクラウドに保存し、ビジネスニーズの変化に従ってデータベースのサイズを速やかに増減できます。データは Microsoft データセンターでホスト、管理、およびプロビジョニングされます。
組織はアプリケーションをオンプレミスで構築して SQL Azure に移動することも、Windows Azure 上で構築してデータをクラウドに保管することもできます。SQL Azure は SQL Server の Transact-SQL (T-SQL) クエリー言語をサポートし、高可用性およびフォールトトレランスの組み込みサポートを提供し、オンプレミス SQL Server データベースとクラウドデータベースとの間でデータの同期化を可能にします。
その他の詳細については、以下を参照してください。
容量計画
MSSQL Server がご自分のデータに適したソリューションであるかどうかを判断するには、以下の Microsoft ドキュメンテーションのサイジングと計画のセクションを参照してください。
ハードウェアとソフトウェアの要件:
SQL Server および IOPS について
SQL Server 用の新規サーバーを設定したり、既存のシステムのディスク構成を追加または修正したりする際には、SQL Server を展開する前に I/O サブシステムの容量を調べるようにします。
SQL をインストールする前に、SQLIO ディスクサブシステムベンチマークツールを使用して I/O サブシステムのベンチマークを実行することをお勧めします。
SQLIOSim ユーティリティおよび SQLIO をストレステストに使用する方法については、TechNet ビデオの 「SQLIOSIM および SQLIO を使用したストレステスト」を参照してください。
ディスクタイプの選択
システムで使用するディスクタイプによって、信頼性とパフォーマンスに影響が生じることがあります。
SQL Server のストレージにはソリッドステートドライブ (SSD) を使用します。
RAID タイプの選択
RAID は SQL Server の一部ではありませんが、RAID を実装すると SQL Server の動作に直接影響が生じることがあります。SQL Server では通常は RAID レベル 0、1、および 5 が使用されます。
SQL Server のエディション別の計算能力の上限
計算能力の上限については、以下を参照してください。
SQL Server の最大容量の仕様
容量の上限については、以下を参照してください。
展開前の I/O に関する最良事例
SQL Server の最良事例については、以下のアーティクルを参照してください。