Composer의 ThingWorx 모델 정의 > 데이터 스토리지 > 지속성 공급자 > InfluxDB를 지속성 공급자로 사용
InfluxDB를 지속성 공급자로 사용
개요
시스템에서 주로 시계열 데이터를 처리하고 구현이 데이터의 지속성/검색을 위해 가치 스트림 또는 스트림에 많이 의존할 경우 ThingWorx에서 InfluxDB를 지속성 공급자로 사용하는 것이 좋습니다. InfluxDB는 시계열 데이터에 맞게 작성된 고성능 데이터 저장소입니다. InfluxDB는 동일한 데이터에 대해 높은 처리량 수집, 압축 및 실시간 질의를 허용합니다. InfluxDB는 DevOps 모니터링, 로그 데이터, 응용 프로그램 메트릭, IoT 센서 데이터 및 실시간 분석을 포함하여 대량의 타임스탬프 데이터가 포함되는 모든 사용 사례에 데이터 저장소로 사용됩니다. 데이터 보존 정책(RP)을 비롯한 다른 기능도 제공합니다. InfluxDB Enterprise는 시계열 데이터 요구사항에 적합한 고가용성 및 확장성이 뛰어난 클러스터링 솔루션을 제공합니다.
InfluxDB 데이터 지속성 스토리지 공급자는 속성 공급자에 사용되는 PostgreSQL, MSSQL 또는 Azure SQL 기본 설치의 일부로 사용할 수 있습니다.
InfluxPersistenceProviderPackage
Influx2PersistenceProviderPackage
ThingWorx는 OSS, Enterprise 및 Cloud 버전을 지원합니다.
InfluxDB OSS 1.x 및 InfluxDB Enterprise 1.x는 InfluxPersistenceProviderPackage를 통해 지원됩니다. InfluxDB Enterprise는 INfluxDB 1.x에서만 지원됩니다.
InfluxDB OSS 2.x는 Influx2PersistenceProviderPackage를 통해 지원됩니다.
InfluxDB Cloud는 Influx2PersistenceProviderPackage를 통해서만 지원됩니다.
지원되는 특정 버전은 Release Advisor를 참조하십시오.
* 
InfluxDB 데이터 공급자는 현재 가치 스트림 및 스트림만 지원합니다. 데이터 테이블, Wiki 및 블로그는 지원되지 않습니다.
* 
데이터 내보내기는 InfluxPersistenceProviderPackageInflux2PersistenceProviderPackage에서 지원됩니다.
* 
InfluxDB는 속성 공급자로 지원되지 않습니다.
* 
ThingWorx 9.3.9 이상 및 ThingWorx 9.4.0 이상으로 업그레이드하고, InfluxDB OSS 2.0을 사용하여 Influx2PersistenceProviderPackage를 활용하려는 고객은 InfluxDB v2.6으로 업그레이드하기 전에 내보내기가 필요하므로 InfluxDB OSS v2.6으로 전환하려면 먼저 ThingWorx 9.3.8로 업그레이드해야 합니다. InfluxDB Cloud의 경우 사전 업그레이드를 내보낼 필요가 없으므로 ThingWorx 9.3.9 이상 및 ThingWorx 9.4.0 이상으로 업그레이드하기 전에 ThingWorx 9.3.8로 전환할 필요가 없습니다.
InfluxDB Enterprise 및 ThingWorx 시작 환경
* 
위의 다이어그램에는 InfluxDB Enterprise가 포함되어 있습니다. InfluxDB 오픈 소스의 경우 아키텍처 다이어그램은 동일하지만 노드 하나에서만 작동한다는 점이 다릅니다. 또한 InfluxDB Cloud의 경우 데이터베이스가 ThingWorx 환경 외부에서 호스팅되고 InfluxData 회사에 의해 관리됩니다.
다음은 이 문서에서 InfluxDB Enterprise에 대한 구성을 언급할 때 사용되는 용어입니다.
부하 분산 - InfluxDB Enterprise는 부하 분산으로 작동하지 않습니다. 관리자가 이 기능을 구성해야 합니다.
클러스터 - InfluxDB Enterprise 클러스터는 두 가지 노드 유형인 메타 노드와 데이터 노드로 구성됩니다.
데이터 노드 - 모든 원시 시계열 데이터가 여기에 있습니다. 고가용성을 위해서는 둘 이상의 복제 요소가 필요합니다.
메타 노드 - 이러한 노드에는 일관된 상태를 유지하기 위한 단순 작업이 있습니다. 보존 정책, 사용자, 데이터베이스 등 상태에 대한 기본 정보만 포함합니다. 고가용성 환경에서는 세 개 이상의 메타 노드가 필요합니다.
HA에 대한 자세한 내용은 https://www.influxdata.com/blog/understanding-influxenterprise-what-is-a-cluster/를 참조하십시오.
올바른 Influx 데이터베이스 옵션 선택
다음은 PTC 온프레미스 고객들이 현재 사용할 수 있는 두 가지 InfluxDB 옵션에 관한 간략한 개요입니다. Influx 제품을 선택할 때 데이터베이스 소프트웨어 옵션 및 기본 지원 옵션을 신중하게 고려해야 합니다. 올바른 데이터베이스 옵션 선택과 관련된 질문은 Influx 제품지원(https://www.influxdata.com/contact-sales)으로 문의하십시오. 문의 시 PTC 고객은 자신을 PTC ThingWorx 사용자로 알려야 합니다.
InfluxDB 오픈 소스 OSS(단일 노드)
단일 노드만 해당되며 확장할 수 없습니다.
무료
Influx Community 사이트(InfluxData Community Forums(InfluxData Community 포럼))를 통해 커뮤니티 기반 Influx 지원을 이용할 수 있습니다.
Influx 기술 지원 제한으로 인해 생산 인스턴스에는 권장되지 않습니다(긴급 상황에 대한 실시간 Influx 지원 없음).
데이터베이스 유지 관리 및 모니터링은 PTC 고객의 책임입니다.
PTC는 Influx 권장 사항을 제공하기 위해 최상의 노력을 기울이지만, Influx 기술 리소스로의 에스컬레이션이 필요한 경우도 있습니다.
InfluxDB Enterprise
현재 다른 데이터베이스에서 제공하는 것보다 대량의 데이터 볼륨과 높은 속도의 데이터에 더 적합한 데이터 저장소를 찾고 있는 경우 InfluxDB Enterprise를 사용하면 다음과 같은 이점을 얻을 수 있습니다.
데이터 수집 속도가 빨라짐.
런타임 데이터에 둘 이상의 데이터 저장소를 사용할 수 있음. 예를 들어, 관계형 데이터는 PostgreSQL에 저장하고 대량의 스트림 및 가치 스트림 데이터에는 InfluxDB를 사용할 수 있습니다. 스트림 또는 가치 스트림을 정의하면 ThingWorx는 기본 런타임 데이터 저장소 공급자를 사용하지만 정의한 지속성 공급자를 사용하도록 ThingWorx를 구성할 수 있습니다. 다른 데이터 공급자에서 데이터를 내보내고 InfluxDB로 가져올 수도 있습니다. ThingWorx는 데이터 추상을 처리합니다.
클라우드 친화적 아키텍처(수평 확장, InfluxDB Enterprise에서만 제공).
고가용성 사용 가능.
Influx 지원 사이트(InfluxData)를 통해 Influx 담당자로부터 Influx 기술 지원을 받을 수 있습니다.
PTC 고객은 Influx에 PTC/Influx 공동 작업에 필요한 티켓을 개설할 수 있습니다.
데이터베이스 유지 관리 및 모니터링은 PTC 고객의 책임입니다.
InfluxDB Cloud(ThingWorx 환경 외부에서 호스팅되고 InfluxData 회사에서 관리)
InfluxDB Cloud를 사용할 경우 다음과 같은 이점이 있습니다.
InfluxDB Cloud는 클라우드 네이티브, 다중 테넌트, 탄력적 규모, 서버리스 플랫폼으로 빌드됩니다.
AWS, Google 및 Azure의 여러 영역에서 가용성, 내구성 및 확장성을 제공합니다.
모든 최신 보안 기능 및 패치의 설치 및 구성을 통해 보안이 강화됩니다.
InfluxDB Cloud는 클러스터를 자동으로 재조정하고 분할을 처리하며 기본 제공 복제 요소를 활용합니다.
모범 사례
계열 제한
계열은 InfluxDB에 로그인된 모든 사물의 총 속성 수입니다. InfluxDB는 대량의 데이터 볼륨이 소량의 사물 및 사물 속성(예: 10Ks 또는 100Ks)으로 향할 때 양호한 성능을 제공합니다. InfluxDB에서는 총 계열 수가 기본적으로 백만 개로 제한됩니다. 이 제한을 늘릴 수는 있지만 계열 수가 이 제한을 초과하면 InfluxDB 성능이 저하됩니다.
사물 및 속성이 많은 경우 데이터 볼륨이 가장 많은 항목을 선택한 후 이러한 사물 및 속성만 InfluxDB로 향하도록 지정하여 PostgreSQL 또는 MSSQL의 부하를 덜 수 있습니다.
또는 계열을 여러 서버로 나누려는 경우 InfluxDB 데이터 공급자의 여러 인스턴스가 서로 다른 InfluxDB 서버 인스턴스를 가리키도록 할 수 있습니다.
쓰기 제한
코어 32개에 60GB 메모리 VM을 사용하는 경우 초당 100K 쓰기가 가능합니다. 이 제한을 초과하면 ThingWorx에 문제가 발생할 수 있으며, 이로 인해 리소스가 고갈되어 요청이나 작업(예: 데이터베이스에 쓰기)을 처리할 수 없게 됩니다. 이때 ThingWorx는 정지되지만 InfluxDB는 데이터베이스에 계속 쓰고 있습니다. 이 문제는 PostgreSQL에서는 발생하지 않습니다. PostgreSQL이 병목 지점이 되므로 ThingWorx가 내부의 작업을 처리할 수 없을 만큼 리소스가 고갈되는 시점에 도달하는 일이 없기 때문입니다.
SSL/보안 연결
InfluxDB는 SSL 및 HTTPS 연결을 지원합니다. ThingWorx와 InfluxDB 간 네트워크가 지원되지 않는 경우 SSL 및 HTTPS 연결을 사용하여 보안을 강화할 수 있습니다. 서명 개인 키가 안전하게 보관되는 경우 자체 서명된 인증서가 적합합니다.
속성 기본 유형에 대해 알려진 InfluxDB 제한 사항
가치 스트림에 기록된 후에는 속성의 기본 유형을 변경할 수 없습니다. 자세한 내용은 Type conflict on insert int value in float field #3460(부동 필드 #3460에 int 값 삽입 시 유형 충돌)을 참조하십시오.
속성 제거
PurgeAllPropertyHistory, PurgeSelectedPropertyHistoryPurgePropertyHistory 서비스를 사용하여 InfluxDB에서 속성을 제거할 수 있습니다. startDateendDate 매개 변수를 사용하여 범위를 지정합니다.
* 
Influx2PersistenceProviderPackage 공급자를 사용할 경우에는 제거가 지원되지 않습니다. PurgePropertyHistory, PurgeAllPropertyHistory, PurgeSelectedPropertyHistory 서비스는 아무런 영향을 주지 않습니다.
도움이 되셨나요?