Definizione del modello ThingWorx in Composer > Archiviazione dati > Provider di persistenza > Utilizzo di Microsoft SQL Server come provider di persistenza
Utilizzo di Microsoft SQL Server come provider di persistenza
Panoramica
SQL Server è un sistema gestionale dei database relazionali sviluppato da Microsoft. Come server di database, è un prodotto software con la funzione principale di memorizzazione e recupero dei dati in base alle richieste di altre applicazioni software, che possono essere eseguite sullo stesso computer o su un altro computer in una rete (inclusa Internet).
* 
Per informazioni sulle versioni di MSSQL supportate, fare riferimento al documento ThingWorx System Requirements.
* 
In ThingWorx 8.4.0 sono state apportate ottimizzazioni relative alle prestazioni di scrittura. Di conseguenza, alcune API potrebbero presentare prestazioni ridotte in MSSQL. Per ulteriori informazioni, fare riferimento alle Note di rilascio della versione 8.4.0.
In questa sezione sono inclusi gli argomenti seguenti:
Confronto tra edizioni di SQL Server
SQL Server è disponibile in tre diverse edizioni per soddisfare al meglio la propria soluzione dati: Enterprise, Standard o Express. Nella tabella seguente vengono confrontate le tre edizioni di MS SQL Server.
In genere, la SQL Standard Edition è adatta agli ambienti di produzione in quanto supporta la maggior parte delle funzionalità richieste.
Se l'ambiente di produzione richiede funzionalità a disponibilità elevata, ad esempio AlwaysOn o altre funzionalità come OLTP in memoria, partizionamento di tabelle e indici, la soluzione consigliabile è SQL Enterprise Edition.
Funzionalità
Enterprise Edition
Standard Edition
Express Edition
Dimensione massima del database relazionale
524 PB
524 PB
10 GB
Massima memoria utilizzata (per istanza di SQL Server Database Engine)
Massimo sistema operativo
128 GB
1 GB
Gruppi di disponibilità AlwaysOn
No
No
Compressione di backup
No
Mirroring del database
Solo controllo
Log shipping
No
Supporto per istanze multiple
50
50
50
Backup crittografato
No
Partizionamento di tabelle e indici
No
No
Elaborazione di interrogazioni parallele su tabelle e indici partizionati
No
No
Per descrizioni dettagliate delle funzionalità supportate dalle diverse edizioni di SQL Server, fare riferimento ai link seguenti.
2014 (supportato con le versioni precedenti a ThingWorx 8.4): https://msdn.microsoft.com/en-us/library/ms144275(v=sql.120).aspx
Requisiti di MSSQL Server
Requisiti hardware e software
I requisiti minimi per MS SQL Server Express Edition sono disponibili al seguente link:
Per informazioni sulle risorse di dimensionamento di SQL Server per la produzione, fare riferimento alla sezione Pianificazione della capacità.
Requisiti del sistema operativo
Microsoft Windows è l'unico sistema operativo supportato per MSSQL Server. Linux potrebbe essere supportato in futuro, ma la scelta del sistema operativo non influisce su ThingWorx. Per ulteriori informazioni, fare riferimento al link nell' elenco riportato sopra alla pagina dei requisiti hardware e software Microsoft per la versione di MS SQL Server MS in uso.
Connettività di ThingWorx a MSSQL Server
ThingWorx si connette al database MSSQL utilizzando un driver JDBC SQL. Per ulteriori informazioni sulle proprietà di connessione JDBC, fare riferimento al link https://docs.microsoft.com/en-us/previous-versions/sql/sql-server-2008-r2/ms378988(v=sql.105) per la versione 2014 di MS SQL server o al link https://docs.microsoft.com/en-us/sql/database-engine/install-windows/installation-for-sql-server?view=sql-server-2017 per la versione 2017 di MS SQL Server.
Queste proprietà di connessione possono essere configurate nel file platform-settings.json disponibile nel download del software ThingWorx. Il file platform_settings.json contiene le proprietà di connessione seguenti:
jdbcUrl: jdbc:sqlserver://localhost:1433;databaseName=thingworx;applicationName=Thingworx;"
Proprietà di connessione:
ServerName - Computer che esegue SQL Server, localhost
PortNumber - Porta su cui SQL Server è in ascolto, 1433
DatabaseName - Nome del database a cui connettersi, ThingWorx
applicationName - Nome dell'applicazione, Thingworx
Pianificazione dell'installazione di MSSQL
L'installazione di MSSQL può essere eseguita nei seguenti ambienti:
in locale
L'Installazione guidata di SQL Server fornisce una singola struttura di funzionalità per l'installazione di tutti i componenti di SQL Server in modo che non sia necessario installarli singolarmente.
Per ulteriori informazioni, fare riferimento a https://msdn.microsoft.com/en-us/library/ms143219(v=sql.120).aspx
Amazon EC2 (SQL Server in Amazon EC2)-
Amazon Web Services offre la flessibilità necessaria per eseguire Microsoft SQL Server solo per il tempo necessario. È possibile scegliere tra diverse versioni ed edizioni, nonché stabilire se procedere all'esecuzione su Amazon Elastic Compute Cloud (Amazon EC2) o su Amazon Relational Database Service (Amazon RDS).
L'utilizzo di SQL Server su Amazon EC2 consente di controllare in modo completo tutte le impostazioni, così come avviene quando viene installato in locale.
Specifiche dell'ambiente Amazon EC2
Per gli ambienti di produzione, utilizzare in Amazon EC2 le strutture descritte di seguito.
Hardware dedicato
La latenza della rete tra le zone di disponibilità può essere sei volte superiore alla latenza della rete interna alle zone. Di conseguenza, tutti i computer nella "Zona A - Data Center" devono risiedere in una singola zona di disponibilità.
Zone di disponibilità diverse e/o una regione per la "Zona B - Data Center" per il ripristino di emergenza. Ogni regione è un'area geografica separata e dispone di più ubicazioni isolate, note come Zone di disponibilità. Per ulteriori informazioni, fare riferimento al link http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-regions-availability-zones.html.
Amazon EC2 VPC. Distribuzione dei computer in una rete privata virtuale per ottenere il controllo completo dell'ambiente di rete virtuale, inclusa una selezione del proprio intervallo di indirizzi IP, la creazione di subnet e la configurazione di tabelle di route e gateway di rete. Per ulteriori informazioni, fare riferimento al link http://aws.amazon.com/vpc/.
Un gruppo di collocazione è un raggruppamento logico di istanze di Amazon EC2 all'interno di una singola Zona di disponibilità. L'utilizzo di gruppi di collocazione consente l'esecuzione delle applicazioni in una rete a bassa latenza da 10 Gbps. Per ulteriori informazioni, fare riferimento al link https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/placement-groups.html.
Le istanze avviate in un gruppo di collocazione cluster comune vengono inserite in un cluster logico che fornisce una rete a bassa latenza con larghezza di banda elevata tra tutte le istanze del cluster. Le istanze di C4, C3, I2, CR1, G2 e HS1 supportano la rete cluster, che non è invece supportata dalle istanze di M3. Fare riferimento a https://aws.amazon.com/ec2/instance-types/.
Più interfacce di rete elastiche (ENI) con più indirizzi IP nello stesso VPC del server ThingWorx Platform. Fare riferimento a https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-eni.html.
HVM (Hardware Virtual Machine) utilizza un nuovo stack di virtualizzazione di rete che fornisce prestazioni di I/O più elevate e un utilizzo inferiore della CPU rispetto alle implementazioni tradizionali. Per sfruttare le funzionalità di networking avanzate, è necessario avviare una AMI HVM in un VPC e installare il driver appropriato.
Archiviazione temporanea su SSD (i volumi EBS non sono consigliati). L'archiviazione delle istanze con supporto SSD è ottimizzata per garantire prestazioni di I/O casuali molto elevate.
Servizio di archiviazione semplice S3 per i backup https://console.aws.amazon.com/s3/home?region=us-east-1#
* 
Se non si è eseguito l'accesso all'account Amazon, seguendo questo link comporta la visualizzazione di una richiesta di accesso.
Una guida per la distribuzione di MS SQL Server in AWS: https://aws.amazon.com/windows/products/sql/
Configurazione di un gruppo di disponibilità AlwaysOn SQL Server
Per ulteriori informazioni, fare riferimento al seguente link: http://docs.aws.amazon.com/quickstart/latest/sql/part3.html
Amazon EC2 (Microsoft SQL Server su Amazon RDS)-
Microsoft Azure-
Microsoft Azure SQL Database è un database cloud gestito per gli sviluppatori di applicazioni che semplifica e rende più produttiva la creazione e la gestione delle applicazioni.
SQL Azure consente alle organizzazioni di archiviare i dati relazionali nel cloud e aumentare o ridurre rapidamente le dimensioni dei rispettivi database in base alle esigenze aziendali in continua evoluzione. I dati vengono ospitati, gestiti e sottoposti a provisioning nei data center Microsoft.
Le organizzazioni possono creare applicazioni locali e spostarle in SQL Azure o crearle in Windows Azure e mantenere i dati nel cloud. SQL Azure supporta il linguaggio di interrogazione Transact-SQL (T-SQL) di SQL Server, offre supporto incorporato per la disponibilità elevata e tolleranza di errore, oltre a consentire la sincronizzazione dei dati tra SQL Server e i database cloud.
Per ulteriori informazioni, fare riferimento al seguente link:
Pianificazione della capacità
Per determinare se MSSQL Server è la soluzione giusta per i propri dati, fare riferimento alle sezioni relative al dimensionamento e alla pianificazione della seguente documentazione Microsoft:
Requisiti hardware e software:
Informazioni su SQL Server e IOPS
Durante la configurazione di un nuovo server per SQL Server o quando si aggiunge o si modifica la configurazione del disco di un sistema esistente, è buona norma determinare la capacità del sottosistema di I/O prima di distribuire SQL Server.
Prima di installare SQL, è consigliabile fare riferimento al sottosistema di I/O utilizzando lo strumento di benchmark del sottosistema del disco SQLIO.
Per informazioni su come utilizzare l'utilità SQLIOSim e SQLIO per il test delle sollecitazioni, fare riferimento al video TechNet Stress testing using SQLIOSIM and SQLIO.
Scelta dei tipi di disco
I tipi di disco utilizzati nel sistema possono influire sull'affidabilità e sulle prestazioni.
Per l'archiviazione in SQL Server utilizzare le unità SSD.
Scelta dei tipi di RAID
Sebbene la tecnologia RAID non faccia parte di SQL Server, la sua implementazione può influire direttamente sulle prestazioni di SQL Server. In genere con SQL Server vengono utilizzati i livelli RAID 0, 1 e 5.
Limiti della capacità di calcolo per edizione di SQL Server
Per ulteriori informazioni sui limiti della capacità di calcolo, fare riferimento al seguente link:
Specifiche di capacità massima per SQL Server
Per ulteriori informazioni sui limiti di capacità massima, fare riferimento al seguente link:
Best practice I/O di pre-distribuzione
Per le best practice di SQL Server, fare riferimento al seguente articolo: