Extract, Transform, and Load (ETL)
Overview of the Historian Extract, Transform, and Load (ETL) Tools
Transferring data from one Historian server to another is typically performed by Proficy Historian collectors. These collectors provide a connected streaming data transfer mechanism (except the calculation and file transfer collectors). In a system where a steady network connection is not possible or not cost-effective, a periodic file-oriented data transfer is preferred. The Historian ETL tools consist of a comprehensive set of file-oriented data extraction, transfer, and loading tools.
- Data transfer via radio or low bandwidth cellular connection
- Data transfer where there is no connectivity (read and write using portable media)
- Data transfer for periodic connectivity applications (for example, ships can transfer data when they arrive at a port)
- Data migration from OSI PI Server to Proficy Historian
- Data extraction to import into other applications
- Data import from other applications
- Extract: Using this tool, you can extract time series data from Proficy Historian or PI Server. For Proficy Historian, you can also extract alarms and events data, perform scaling and absolute deadband compression.
- Transform: Using this tool, you can transfer data from an onsite Historian server to the destination Historian server using a file-sharing application such as FTP, BITS, and so on.
- Load: Using this tool, you can load data into Proficy Historian. This tool monitors a file directory, unzips the files, and processes them.
- The ETL tools do not support array data.
Historian ETL Workflow
Step Number | Description | Notes |
---|---|---|
1 | Install Historian ETL. | This step is required. You must install ETL on both the source and destination machines of the data transfer. Note: If you want to upgrade ETL:
|
2 | Extract data from Proficy Historian or PI Server. | This step is required. It involves extracting tag data and compressing it so that it can be transferred to the destination Historian server. |
3 | Transfer the data using BITS, FTP, or any other file-sharing application. | This step is required. It involves setting up the file-sharing application that you want to use and then transferring the data to the machine on which the destination Historian server is installed. |
4 | Load the data into the destination Historian server. | This step is optional. It involves extracting the .zip files transferred by the file-sharing application and then loading the data into the destination Historian server. |
About Prerequisites
Create a Tag Configuration File Manually
Procedure
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Taglist>
<Tag Name="Pressure">
<LocalName>ValvePressure</LocalName>
<RemoteName>ValvePressure</RemoteName>
<Compression>1</Compression>
<DeadbandRange>2.5</DeadbandRange>
<DeadbandTimeout>2</DeadbandTimeout>
<RequireRescale>1</RequireRescale>
<HiEng>10</HiEng>
<LowEng>8</LowEng>
<HiScale>10</HiScale>
<LowScale>8</LowScale>
</Tag>
</Taglist>
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Taglist>
<Tag Name="Pressure">
<LocalName>ValvePressure</LocalName>
<RemoteName>ValvePressure</RemoteName>
</Tag>
</Taglist>
What to do next
Specify Tags Using a Template Spreadsheet
About this task
Procedure
What to do next
Specify Tags Using a New Spreadsheet
About this task
Procedure
What to do next
Tag Properties
Column Name | Data Type | Description |
---|---|---|
Name | String | Enter the name of the tag. A value is required and must be unique. |
LocalName | String | Enter the local name of the tag. A value is required. |
RemoteName | String | Enter the remote name of the tag. A value is required. |
Compression | Boolean |
|
DeadbandRange | Numeric | Enter the collector deadband range (only absolute values, not in percentage). |
DeadbandTimeout | Numeric | Enter the collector compression timeout for the tag. |
RequireRescale | Boolean |
|
HiEng | Numeric | Enter the upper limit in engineering units for the tag. |
LowEng | Numeric | Enter the lower limit in engineering units for the tag. |
HiScale | Numeric | Enter the upper limit for the tag value if scaling is enabled. |
LowScale | Numeric | Enter the lower limit for the tag value if scaling is enabled. |
Column Name | Data Type | Description |
---|---|---|
Name | String | Enter the name of the tag. A value is required and must be unique. |
LocalName | String | Enter the local name of the tag. A value is required. |
RemoteName | String | Enter the remote name of the tag. A value is required. |
About Extracting Data
- Proficy Historian: This is performed by the Historian ETL Extract tool as follows:
- Extracts data related to tags into text files, which are named in the following format: YYYYDDMMHHRR_<onsite Historian computer name>.txt. These files are stored in the following folder: <Historian ETL installation location>/Historian ETL Extract/HistFiles.Note: Data related to alarms and events is stored in .lax files. You can choose not to extract data related to alarms and events.
- After a specified number of files are extracted (by default, 6), the files are compressed into a .zip file, which is named in the following format: YYYYDDMMHHRR_<onsite Historian computer name>.zip. These files are stored in the following folder: <Historian ETL installation location>/Historian ETL Extract/ZipFiles.
- Deletes the text files in the <Historian ETL installation location>/Historian ETL Extract/HistFiles folder after they are compressed.
Before you extract data using this tool, you must configure this tool.
- Extracts data related to tags into text files, which are named in the following format: YYYYDDMMHHRR_<onsite Historian computer name>.txt. These files are stored in the following folder: <Historian ETL installation location>/Historian ETL Extract/HistFiles.
- PI Server: This is performed by the Historian ETL PI Extract tool as follows:
- Extracts data related to tags into text files, which are named in the following format: YYYYDDMMHHRR_<onsite Historian computer name>.txt. These files are stored in the following folder: <Historian ETL installation location>/Historian ETL PI Extract/HistFiles.
- After a specified number of files are extracted (by default, 6), the files are compressed into a .zip file, which is named in the following format: YYYYDDMMHHRR_<onsite Historian computer name>.zip. These files are stored in the following folder: <Historian ETL installation location>/Historian ETL PI Extract/ZipFiles.
Note: Encryption is not supported by the Historian ETL PI Extract tool.Before you extract data using this tool, you must configure this tool.
Configure the Historian ETL Extract Settings
Before you begin
About this task
Procedure
What to do next
Configure Historian ETL PI Extract Settings
Before you begin
About this task
Procedure
What to do next
Extract Historical Data
About this task
Procedure
What to do next
Start the Data Extraction
Before you begin
- If you want to extract data from a Proficy Historian server, configure the Historian ETL Extract settings.
- If you want to extract data from PI Server, configure the Historian ETL PI Extract settings.
Procedure
What to do next
About Transferring Data Using Background Intelligent Transfer Service (BITS)
After you extract data from a Proficy Historian or a PI Server, you must transfer it to the destination machine. To do so, you can use BITS, FTP, or any other file-sharing application.
- Install the BITS IIS server extension.
- Configure the BITS settings.
- Transfer data to the destination machine.
Configure BITS
Before you begin
Procedure
- Using IIS Management Console, navigate to the default website node, select Add Virtual Directory, and create a virtual directory named MD_BITS.
- In the MD_BITS folder, create a folder named OSMUploads.
-
Enable the BITS IIS server extension:
- Navigate to the virtual directory in IIS Manager.
- From the list of features in the virtual directory, double-click BITS Uploads.
- Select the Allow clients to upload files check box, and then select Apply.
-
Change the port number of the default website in IIS. By default, the port number is 80.
- In IIS Manager, in the Connections section, under the computer name > Sites, select Default Web Site.
- In the Actions pane, under Edit Site, select Bindings.
- In the Site Bindings window, select .
- In the Edit Site Bindings window, in the Port field, enter the new port number (for example, 6150), and then select OK.
- In the Site Bindings window, select Close.
- In the Actions section, under Manage Web Site, select Stop, and then select Start.
What to do next
Verify the Data Transfer Settings
This topic provides a list of tasks that you can perform to verify that the data transfer settings are correct.
- From you onsite Historian machine, using Internet Explorer, verify that you can access a web page created on the destination machine.
- Verify that the Historian ETL Load tool running on the destination machine is configured to watch the virtual folder in IIS for the incoming .zip files.
Transfer Data using BITS
Before you begin
About this task
Procedure
-
If you want to use the OSM_LBW_Transfer.vbs file to transfer files, perform the following steps:
-
If you want to use the OSMBitsDownload.vbs file to download files, perform the following steps.
What to do next
About Transferring Data Using File Transfer Protocol (FTP)
- Install an FTP server on the destination Historian server.
- Configure the FTP settings.
- Transfer data to the destination Historian server.
Configure FTP
Before you begin
About this task
Procedure
Results
What to do next
Transfer Data Using FTP
Before you begin
Procedure
What to do next
About Loading Data
- Extracts the .zip files in the <Historian ETL installation location>/Historian ETL Load/ZipImportFiles folder and stores the text files in the <Historian ETL installation location>/Historian ETL Load/ImportFiles folder in the destination Historian server.
- Loads the data into the destination Historian server.
- Deletes the .zip files in the <Historian ETL installation location>/Historian ETL Load/ZipImportFiles folder, and imports the text files to the destination Historian server.
- Deletes the text files in the <Historian ETL installation location>/Historian ETL Load/ImportFiles folder after importing them to the destination Historian server.
Configure the Historian ETL Load tool
About this task
Procedure
What to do next
Load Data into the Destination Historian Server
Before you begin
- Configure the ETL Load tool.
- Verify that the Historian ETL Load tool running on the destination Historian server is configured to watch the IIS Virtual folder for the incoming .zip files.
Procedure
Troubleshooting ETL Issues
Unable to Start the ETL Tools
Issue: When you try to start the Historian ETL Extract, Historian ETL PI Extract, or the Historian ETL Load service, an error occurs.
- Access the configuration file for the service that you want to start. For example, for the Historian ETL Extract service, access the HistorianETLExtract.exe.config file.
- Set the element generatePublisherEvidence to disabled.
Data File Format
Parameter | Description | Valid Values |
---|---|---|
Time | The time at which the data is captured. It is displayed in
the following format: <epoch format>:<nanoseconds,
human-readable> For example, if the value is
1601890328:76000000, then: The value after the colon is greater than 0 only if
the time resolution of the tag is milliseconds or
microseconds.
|
N/A |
Tag name | The name of the tag for which the data is captured. | Any tag that exists in the destination Historian server Note: If the AddTagAutomatically parameter is set to True, when you add a tag that does not exist in the Historian server, it will be created. |
Data value | The value of the data that is captured. | N/A |
Data type | The data type for the value that is captured. |
|
Quality | The quality of the data that is captured. |
|
- The BLOB data type is not supported.
- Comments are not captured.
- Data quality other than GOOD and BAD is not supported.
Example of a Regeneration File
<?xml version="1.0"?>
<SOAP-ENV:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:clr="http://schemas.microsoft.com/soap/encoding/clr/1.0" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<SOAP-ENV:Body>
<a1:ArrayList id="ref-1" xmlns:a1="http://schemas.microsoft.com/clr/ns/System.Collections">
<_items href="#ref-2"/>
<_size>3</_size>
<_version>3</_version>
</a1:ArrayList>
<SOAP-ENC:Array id="ref-2" SOAP-ENC:arrayType="xsd:anyType[4]">
<item href="#ref-3"/>
<item href="#ref-4"/>
<item href="#ref-5"/>
</SOAP-ENC:Array>
<a3:RegenRequest id="ref-3" xmlns:a3="http://schemas.microsoft.com/clr/nsassem/ETLExtract/HistorianETLExtract%2C%20Version%3D1.9.0.0%2C%20Culture%3Dneutral%2C%20PublicKeyToken%3Dnull">
<startTime>2020-07-02T09:39:37.3384336+05:30</startTime>
<endTime>2020-07-02T10:39:37.3384336+05:30</endTime>
<interval>3</interval>
</a3:RegenRequest>
<a3:RegenRequest id="ref-4" xmlns:a3="http://schemas.microsoft.com/clr/nsassem/ETLExtract/HistorianETLExtract%2C%20Version%3D1.9.0.0%2C%20Culture%3Dneutral%2C%20PublicKeyToken%3Dnull">
<startTime>2020-07-02T09:39:37.3384336+05:30</startTime>
<endTime>2020-07-02T10:39:37.3384336+05:30</endTime>
<interval>4.5</interval>
</a3:RegenRequest>
<a3:RegenRequest id="ref-5" xmlns:a3="http://schemas.microsoft.com/clr/nsassem/ETLExtract/HistorianETLExtract%2C%20Version%3D1.9.0.0%2C%20Culture%3Dneutral%2C%20PublicKeyToken%3Dnull">
<startTime>2020-07-02T09:39:37.3384336+05:30</startTime>
<endTime>2020-07-02T10:39:37.3384336+05:30</endTime>
<interval>14.5</interval>
</a3:RegenRequest>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
Example of a State File
<SOAP-ENV:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:clr="http://schemas.microsoft.com/soap/encoding/clr/1.0" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<SOAP-ENV:Body>
<a1:Persist id="ref-1" xmlns:a1="http://schemas.microsoft.com/clr/nsassem/LBExport/LBExport%2C%20Version%3D1.0.1.0%2C%20Culture%3Dneutral%2C%20PublicKeyToken%3Dnull">
<lastExport>2010-06-07T17:00:04.2017462-04:00</lastExport>
</a1:Persist>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>