Hist orian Storage Locations (Reference) define the repositories where the FrameworX Historian module archives time-series data from historian tags and tables.
Storage Locations provide:
- Database connections for time-series data
- External historian integration
- Custom storage via script classes
- Store and Forward buffering
- Multi-database support
Each Storage Location serves as a destination for historian tables, enabling flexible data archiving strategies.
In this page:
Table of Contents maxLevel 2 minLevel 2 indent 10px exclude Steps style none
Overview
Storage Locations are designated databases that store historical data from Tags on their HistorianTables.
Each Storage Location is a repository for time-series data, enabling long-term trending and analysis.
When defining which Tags will store time-series data, those Historian Tags are grouped into Historian Tables, and each Historian Table is located in a Historian Archive Location defined in this interface.
By Default, the system has an SQL database defined for Storage Location, Historian Tools and Script Classes that can be added to the solution, as alternate, or concurrent, storage locations.
On this page:
Understanding Storage Locations
The Storage Location defines where Tag data will be archived establishing a clear linkage between tags and the storage infrastructure. When configuring the Storage Location, you can use:
SQL databases
Script Classes
Connections with Third-Party Historians, Like Canary and others.
When you set the Storage Location, you specify the storage system for Tag data.
By default, the platform uses an SQLite database. You can change the default database or add additional databases if you need to use different ones.
Configuring the Default SQL Database
You have several options to choose from when defining the default database. If you would like to change the default database to be something other then the initial SQLite built-in database, follow the steps below:
Access Historian / Storage Locations.
Click on the to open the Dialog.
Define the default database configuration, defining Provider, Database, and Server IP.
Test the database connection. Provide the necessary authentication information and click Test.
Click OK to update the default database.
Available Databases
The following table provides a list of accepted providers and databases for configuring the default options.
Storage Types
SQL Databases (Default)
Built-in database support with TagHistorian object:
- SQLite (default, embedded)
- SQL Server
- PostgreSQL
- Oracle
- MySQL
- MS Access
- Firebird
Tag Providers
External historian systems:
- CanaryLabs - Industrial historian with compression
- InfluxDB - Time-series database
- GE Proficy - Enterprise historian
Script Classes
Custom storage implementations:
- User-defined archiving logic
- Custom data transformations
- Third-party integrations
- Cloud storage adapters
Default SQL Database Configuration
Modifying Default Database
- Navigate to Historian → Storage Locations
- Click Settings icon ??
- Configure:
- Provider: Database type
- Database: Specific database
- Server IP: Connection endpoint
- Test connection with credentials
- Click OK
Supported Providers and Databases
Provider | Supported |
---|
Provider
Databases | |
---|---|
SQLite | SQLite |
Odbc | Firebird |
, MSAccess2003 |
MSExcel2003
MySql
, MSExcel2003, MySQL, ODBC_DSN |
, ODBC_FileDsn |
, Oracle |
, SQLServer |
, SQLServer_WA | |
OleDb | CSVFile |
MSAccess2003
MSAccess2007
MSExcel2003
MSExcel2007
Oracle
SQLServer
, MSAccess2003/2007, MSExcel2003/2007, Oracle, SQLServer, SQLServer_WA | |
OracleClient | Oracle |
SqlClient | SQLServer |
, SQLServer_WA | |
PostgreSQL | PostgreSQL |
Adding Storage
LocationLocations
Configuration Steps
- Go to Historian → Storage Locations
- Click Plus icon ?
- Configure properties (see table below)
- Click OK
Storage Location Properties
Property | Description | Required |
---|---|---|
Name | Unique identifier | Yes |
Description | Documentation text | No |
StoreAndForward | Local buffering on connection failure | No |
Storage System | Tag Provider or Script Class | Yes |
Object | Selected provider/class instance | Yes |
Protocol | Communication protocol (Tag Provider only) | Conditional |
Station Editor | Connection string configuration | Conditional |
Store and Forward
Operation
When enabled, provides data integrity during connection failures:
- Connection Lost - Data buffered locally
- Local Storage - SQLite database cache
- Reconnection - Automatic retry
- Data Transfer - Batch synchronization
- Cleanup - Buffer cleared after success
Configuration
StoreAndForward: True
Buffer Location: Local SQLite
Retry Interval: 5 seconds
Batch Size: 250 rows
Best Practices
- Always enable for critical data
- Monitor buffer growth
- Plan disk space for buffering
- Test failover scenarios
Tag Provider Configuration
CanaryLabs
Industrial historian with high compression:
Protocol: CanaryLabs
Connection: Server=hostname;Port=12345
Features: Compression, Aggregation, Web API
InfluxDB
Open-source time-series database:
Protocol: InfluxDB
Connection: http://server:8086;Database=mydb
Features: High throughput, SQL-like queries
GE Proficy
Enterprise historian platform:
Protocol: GEProficy
Connection: Server=hostname;Username=user
Features: Enterprise integration, Analytics
Script Class Storage
Implementation Requirements
Script class must implement:
csharp
public class CustomStorage
{
public void StoreData(string table, DateTime timestamp,
Dictionary<string, object> values)
{
// Custom storage logic
}
public DataTable RetrieveData(string table,
DateTime start, DateTime end)
{
// Custom retrieval logic
}
}
Use Cases
- Cloud storage (AWS, Azure)
- Custom file formats
- NoSQL databases
- Message queues
- Data transformation
Connection Strings
SQL Server
Server=hostname\instance;Database=HistorianDB;
User Id=sa;Password=pwd;
PostgreSQL
Host=localhost;Database=historian;
Username=user;Password=pass;Port=5432;
Oracle
Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)
(HOST=server)(PORT=1521))(CONNECT_DATA=
(SERVICE_NAME=orcl)));User Id=hr;Password=pwd;
MySQL
Server=localhost;Database=historian;
Uid=root;Pwd=password;Port=3306;
Performance Considerations
Database Selection
Database | Best For | Limitations |
---|---|---|
SQLite | Small systems | 10GB limit, single writer |
SQL Server | Enterprise | License cost |
PostgreSQL | Open source | Complex setup |
InfluxDB | Time-series | Specialized queries |
CanaryLabs | Compression | Proprietary |
Optimization Tips
- Partition large databases - By time or tag groups
- Index appropriately - Timestamp always indexed
- Regular maintenance - Archive old data
- Monitor performance - Query execution times
- Size buffers correctly - Store and Forward capacity
Multiple Storage Locations
Concurrent Storage
Configure multiple locations for:
- Redundancy
- Performance distribution
- Specialized storage
- Migration scenarios
Assignment Strategy
High-frequency data → Local SQLite
Production records → SQL Server
Compliance data → CanaryLabs
Temporary data → InfluxDB
Troubleshooting
Connection failures:
- Verify connection string
- Check network connectivity
- Confirm credentials
- Test firewall rules
Store and Forward issues:
- Check disk space
- Monitor buffer database
- Verify retry logic
- Review error logs
Performance problems:
- Analyze query patterns
- Check index usage
- Review table sizes
- Monitor network latency
Data not storing:
- Confirm table assignment
- Check storage location status
- Verify permissions
- Review trigger configuration
Best Practices
- Test connections - Before production deployment
- Enable Store and Forward - For critical data
- Document configuration - Connection strings and settings
- Plan capacity - Size databases appropriately
- Monitor health - Track connection status
- Backup regularly - Especially configuration
- Use appropriate storage - Match technology to requirements
- Secure connections - Encrypt sensitive data
In this section...
Page Tree | ||||
---|---|---|---|---|
|
Solutions can store data using an external Historian package, or support SQL and multiple Historians concurrently, according to your requirements.
Follow the steps below to add and configure new storage locations.
Access Historian / Storage Locations.
Click on the .
On the dialog, configure the new database. You find the description of each option available in the next section of this documentation page.
Click Ok.
Storage Location Properties
The table below describes the configuration options available when adding a new Storage Location.
Property
Description
Name
A unique name to identify the new Storage Location.
Description
Optional description to provide more context or information.
StoreAndForward
If you check this option, the platform will store data locally in case of connection failure with the external database. The data is transferred when the connection is established.
Storage System
Types available to configure the Storage Location. Currently, two options are available:
Tag Provider: Enables you to use external solutions to archive Tag data.
Script Class: For this option, you need to create a script class or point to existing classes to define how the data will be handled and stored. For help creating classes, see the Scripts (Tasks and Classes) documentation.
Object
The tag provider or script class to use as a storage location. You may also create a new tag provider or script class from this option.
Protocol (Only available if using Tag Provider)
Defines the protocol used by the External Tag Provider. Currently, you can use the following options:
Station Editor (Only available if using Tag Provider)
Configure the connection string to the selected provider and run a test to ensure the setup is correct. Visit the links above to find out how to configure each tag provider's connection string.
In this section:
Page Tree | ||||
---|---|---|---|---|
|