데이터 스토리지 옵션
PTC에서는 다음과 같은 스토리지 옵션을 지원합니다.
모델 공급자
H2
데이터 공급자
* 
ThingWorx Platform 버전 8.5.0부터 DataStax Enterprise는 더 이상 판매되지 않으며 향후 릴리즈에서 지원되지 않습니다. 자세한 내용은 판매 종료 기사를 참조하십시오.
H2
H2는 디스크 공간이 적은 오픈 소스 관계형 데이터베이스입니다. Java 응용 프로그램에 포함되거나 클라이언트-서버 모드에서 실행될 수 있는 Java로 작성되며 JDBC API를 제공합니다. H2는 ThingWorx에 대한 모델 및 데이터 공급자에 대한 요구사항을 모두 충족합니다. ThingWorx는 포함 모드에서 지속형(메모리 내와 반대) H2 데이터베이스를 엽니다. 이는 가장 빠르고 쉬운 연결 모드이지만 JDBC를 사용하는 ThingWorx 웹 응용 프로그램과 Tomcat 동일한 JVM 내에만 데이터베이스가 열립니다(외부 프로세스는 이 데이터베이스 인스턴스를 연결하거나 사용할 수 없음). 지속형 데이터베이스로, 데이터는 로컬 디스크(ThingworxStoragedatabase 폴더)에 기록되고 ThingWorx를 다시 시작한 후에도 유지됩니다.
http://www.h2database.com을 참조하십시오.
일반적인 사용 사례
시험, 개발자 시스템, 개념 입증, Edge 장치 근처
단일 서버 배포에만 해당
제한 사항
H2는 포함된 특성으로 인해 생산에 사용하기에는 권장되지 않습니다.
리소스(CPU, 메모리, 디스크 등)를 응용 프로그램과 공유하기 때문에 확장성 제한
응용 프로그램의 전반적인 안정성을 저해합니다. 예를 들어, Tomcat이 중단되거나 Tomcat 프로세스가 종료되면 데이터베이스 프로세스도 종료되어 데이터가 손상될 수 있습니다.
응용 프로그램 코드나 데이터베이스에서 병목 현상을 격리함으로써 성능 문제를 해결하는 것이 더 어렵습니다.
일반 작업 및 관리 관점에서 데이터 시각화, 백업 및 재해 복구는 유지 관리하기가 더 어려울 수 있습니다.
ThingWorx에 대한 지속성 공급자로 H2를 사용하는 것에 대한 자세한 내용은 H2를 지속성 공급자로 사용을 참조하십시오.
PostgreSQL
PostgreSQL는 확장성과 표준 준수에 중점을 둔 오픈 소스 객체 관계형 데이터베이스 관리 시스템(ORDBMS)입니다. 데이터베이스 서버로서 주요 기능은 데이터를 안전하게 저장하고 다른 소프트웨어 응용 프로그램에서 요청 시 데이터를 검색하는 것입니다. 소규모 단일 시스템 응용 프로그램에서 수많은 동시 사용자가 있는 대규모 인터넷 연결 응용 프로그램에 이르기까지 작업 부하를 처리할 수 있습니다. PostgreSQL은 데이터베이스 수준에서 고가용성 기능을 제공합니다. 동일하거나 다른 사용 가능 영역에서 하나의 마스터 노드와 여러 슬레이브 노드를 갖도록 설정할 수 있습니다.
ThingWorx 및 PostgreSQL 배포에 대한 자세한 내용은 다음 문서를 참조하십시오.
PostgreSQL에 대한 자세한 내용은 https://www.postgresql.org/를 참조하십시오.
일반적인 사용 사례
데이터베이스는 최대 15,000번의 속성 초당 쓰기 수(wps)로 소규모, 중간 및 대규모 구현을 위해 확장할 수 있으며 고가용성 기능을 제공합니다.
Microsoft SQL Server(MSSQL)
Microsoft SQL Server(MSSQL)는 Microsoft에서 개발한 관계형 데이터베이스 관리 시스템입니다. 이는 데이터베이스 서버로서 다른 소프트웨어 응용 프로그램에서 요청한 대로 데이터를 저장하고 검색하는 기본 기능을 가진 소프트웨어 제품입니다. 이러한 소프트웨어 응용 프로그램은 동일한 컴퓨터 또는 네트워크(인터넷 포함)상의 다른 컴퓨터에서 실행될 수 있습니다. ThingWorx 및 Microsoft SQL Server 배포에 대한 자세한 내용은 Microsoft SQL Server를 지속성 공급자로 사용 을 참조하십시오.
여러 SQL 서버 버전 중에서 사용자의 데이터 솔루션에 가장 적합한 버전을 선택할 수 있습니다. 이러한 버전들은 작게는 10GB에서 크게는 524,000,000GB에 이르는 최대 관계형 데이터베이스 크기를 갖습니다. 고가용성을 달성하려면 Enterprise 에디션을 사용하는 것이 좋습니다.
해당 지속성 공급자를 통한 MSSQL은 모델 및 데이터 공급자를 모두 지원합니다.
Microsoft SQL Server에 대한 자세한 내용은 https://www.microsoft.com/en-us/sql-server/sql-server-2016을 참조하십시오.
일반적인 사용 사례
SQL Server는 소규모에서부터 대규모에 이르는 IoT 구현에 사용할 수 있습니다. 그러나 Microsoft SQL/Azure가 이미 IT 스택에 있으며 직원들이 가용성 기능을 사용하는 SQL Server 2017 시나리오에 따라 MSSQL Server 고가용성 솔루션을 구현하는 데 익숙한 경우 가장 유용합니다.
Azure SQL 데이터베이스
Azure SQL 데이터베이스는 Azure 클라우드에 호스팅되는 관계형 DBaaS(Database-as-a-Service)이며 완전히 관리되는 PaaS(Platform as a Service) 데이터베이스 엔진입니다. Azure SQL 데이터베이스 엔진은 SQL Server Enterprise Edition을 기반으로 합니다. Azure 플랫폼은 모든 Azure SQL 데이터베이스를 완전히 관리하고 데이터 손실 없음 및 높은 비율의 데이터 가용성을 보장합니다. Azure SQL 데이터베이스에는 고가용성, 재해 복구 및 데이터베이스 업그레이드가 함께 기본 제공됩니다.
Azure SQL 데이터베이스 및 해당 기능에 대한 자세한 내용은 https://docs.microsoft.com/en-us/azure/sql-database/sql-database-paas를 참조하십시오. Azure SQL 데이터베이스를 ThingWorx 지속성 공급자로 사용하는 방법에 대한 자세한 내용은 Azure SQL 데이터베이스를 지속성 공급자로 사용을 참조하십시오.
DataStax Enterprise(DSE)
* 
ThingWorx Platform 버전 8.5.0부터 DataStax Enterprise는 더 이상 판매되지 않으며 향후 릴리즈에서 지원되지 않습니다. 자세한 내용은 판매 종료 기사를 참조하십시오.
또한 ThingWorx는 Apache Cassandra에 의해 구동되는 대용량 런타임 데이터 저장소 공급자인 DataStax Enterprise(DSE)를 사용합니다. DSE를 사용하면 자산을 생성하는 것 보다 더 높은 속도로 데이터를 취득할 수 있으며, 추가 장치(또는 다른 작업 부하)가 추가될 경우 원활하게 확장할 수 있습니다. DSE를 런타임 데이터 저장소로 사용하면 IoT, 웹 및 모바일 응용 프로그램의 성능 및 가용성 요구를 충족하는 데이터베이스 플랫폼을 제공할 수 있습니다.
대부분의 관계형 데이터베이스는 마스터/슬레이브 모드에서 수평으로 확장하고 작동할 수 없습니다. 반면에 Cassandra의 P2P 형식의 마스터 없는 클러스터링 아키텍처는 선형적으로, 그리고 방대한 규모로 확장할 수 있도록 해줍니다.
DSE는 고급 관리 및 모니터링 도구, 색인화 및 검색을 위한 Solr와의 기본 통합, 지원 및 패치를 위한 메커니즘을 사용하여 완전하게 테스트되고 검증된 Cassandra 배포를 제공합니다. 이는 플러그형 데이터 저장소 모델과 직접적으로 일치하여 고객은 여러 데이터 저장소를 사용하여 구성, 모델 및 대용량 데이터를 저장할 수 있습니다. 사용자는 특정 기능에 대한 요구사항을 충족하는 데이터 저장소를 선택할 수 있습니다.
DSE는 Apache Spark, 메모리 내 기술, 지속적으로 사용할 수 있는 검색 및 그래프 데이터베이스 컴퓨팅을 사용하여 실시간 및 일괄 분석이 가능한 통합된 Always On 다중 모델 데이터베이스 시스템입니다. 이 시스템은 개발 및 생산 시스템 작업을 위한 고급 도구, 계층화된 스토리지 단기 및 장기 데이터 액세스와 같은 유연한 기능, 동일한 시스템 내에서 데이터베이스 클러스터를 실행하기 위한 다중 테넌트, 엔터프라이즈 요구사항을 충족하는 고급 보안 기능을 제공합니다.
* 
ThingWorx가 작동하려면 DSE 스택의 DSE 통합 검색 컴포넌트(Apache Solr)가 필요합니다. 결과적으로 ThingWorx는 Apache Solr가 통합되지 않은 오픈 소스 Apache Cassandra 설치에서는 작동할 수 없습니다.
DSE는 H2 또는 PostgreSQL에서 현재 사용할 수 있는 것보다 높은 용량 및 속도 데이터에 대한 데이터 저장소를 필요로 하는 ThingWorx Platform에 대해 다음과 같은 이점을 제공합니다.
더 높은 데이터 수집 속도를 제공합니다.
런타임 데이터에 대해 두 개 이상의 데이터 저장소를 지원합니다(모델 데이터를 H2 또는 PostgreSQL에 유지하고 DSE를 대용량 스트림 데이터에 사용).
탄력적 확장 속성을 지원합니다. 트랜잭션 속도를 높이기 위해 DSE 링에 노드를 더 추가할 수 있습니다.
데이터 프로세스를 플랫폼 프로세스에서 분리합니다.
클라우드 친화적인 아키텍처를 지원합니다.
일반 사용 사례
일반 사용 사례는 분산된 부하에 대해 많은 양(15,000wps 이상)의 트랜잭션(실행 시간) 데이터가 있는 경우입니다.
InfluxDB
InfluxDB를 사용하려면 ThingWorx 8.4 이상이 있어야 합니다. 시스템에서 주로 시계열 데이터를 처리하고 구현이 데이터의 지속성/검색을 위해 가치 스트림 또는 스트림에 많이 의존할 경우 ThingWorx에서 InfluxDB를 지속성 공급자로 사용하는 것이 좋습니다. InfluxDB는 시계열 데이터에 맞게 작성된 고성능 데이터 저장소입니다. InfluxDB는 동일한 데이터에 대해 높은 처리량 수집, 압축 및 실시간 질의를 허용합니다. InfluxDB는 DevOps 모니터링, 로그 데이터, 응용 프로그램 메트릭, IoT 센서 데이터 및 실시간 분석을 포함하여 대량의 타임스탬프 데이터가 포함되는 모든 사용 사례에 데이터 저장소로 사용됩니다. 또한 데이터 RP(보존 정책)를 포함한 다른 기능을 제공합니다. InfluxDB Enterprise는 시계열 데이터 요구사항에 맞는 고가용성 및 높은 확장성의 클러스터링 솔루션을 제공합니다.
PostgreSQL 또는 MSSQL에 대한 기본 설치의 일부로 지속성 공급자와 함께 사용할 수 있도록 ThingWorx에 InfluxPersistenceProviderPackage가 제공됩니다.
InfluxDB 데이터 공급자는 현재 가치 스트림 및 스트림만 지원합니다. 데이터 테이블, Wiki 및 블로그는 지원되지 않습니다.
InfluxDB 데이터 공급자는 현재 내보내기 기능을 지원하지 않습니다.
InfluxDB는 현재 속성 공급자로 지원되지 않습니다.
InfluxDB 지속성 공급자 패키지를 사용하여 생성된 지속성 공급자 인스턴스를 기본 지속성 공급자로 사용할 경우 스트림 및 가치 스트림 질의 구성 설정을 편집할 수 있으며 편집된 구성 설정은 모든 스트림 및 가치 스트림에 적용됩니다. 특정 스트림 또는 가치 스트림에 대해 이러한 설정을 변경할 수 없습니다.
InfluxDB를 지속성 공급자로 사용하는 방법에 대한 자세한 내용은 InfluxDB를 지속성 공급자로 사용을 참조하십시오.