Importing Historical Data from OSI PI/FT historian

I have an OSI PI / Factorytalk historian database. I am transitioning to Ignition and will be using ignition historian moving forward. Is there a relatively clean/easy way to import this data? May have to map some tags or something but the goal is to completely eliminate this old DB, but the data is valuable and referred to quite frequently. The suggested method as of now is to manually import through scripting but i believe this would be incredibly tedious (1000s of tags).

Any help or suggestions are greatly appreciated!!

1 Like

Sorry for the delay on this. I took a note down to reply when I had more time, because I wanted to be as thorough as I could.

I know a lot about PI, but less about getting data into Ignition. I’ll list here all of the ways that I know of to get data out of PI, with some commentary. However, I don’t know which of these methods are or are not available when using Factory Talk PI. I came from OSIsoft, and I know that there are certain licensing restrictions for OEMs like Rockwell and Emerson. I’m not sure which products you have access to, nor do I know if certain versions of FT Historian have access to different product PI products. I also don’t know what the easiest way to get this data into Ignition Historian is.

  1. AFSDK
    1. Can be leveraged with C# or Powershell
    2. One of, if not the most flexible and fast way to export data from PI. (Be sure to use the bulk tag query methods)
    3. Requires a little more legwork (developing a custom script)
    4. Pretty sure you can’t use custom AFSDK applications with FT. IIRC, AFSDK applications must some sort of license/product code to connect to Rockwell FT PI. You might be able to get a key for your application somehow, but :person_shrugging:
  2. PI Web API
    1. Can be leveraged via HTTP requests (likely directly from Ignition)
    2. Perhaps more flexible than using AFSDK directly, since you don’t need a .NET dev environment.
    3. Not sure on performance, probably fairly fast– it uses AFSDK under the hood. I’ve never tested export performance with Web API, though.
    4. Configuring security can be a pain.
  3. PI PowerShell Tools
    1. Probably not very useful, although you can query PI with it, I only see a way to query one PI Point at a time.
  4. ODBC/JDBC/OLEDB
  5. I have no practical hands-on experience with this, but in my head it seems like the most practical approach. Especially if you’re wanting to move the data into a platform that makes it easy to work with databases.
  6. I know initial configuration can be a pain, and I’m unsure about performance. This product was developed back when OSIsoft cared a lot about users having easy access to their data, so I imagine it is decent.
  7. DataLink
    1. This is an Excel plugin built on top of AFSDK
    2. Not great for very large exports
  8. PIConfig
    1. Not the easiest to use, but widely available.
    2. CSV output
    3. Some other recent experience with it on the forum: Migrating FactoryTalk Historian data to Ignition
  9. PI SDK
    1. Older SDK, probably no reason to use it instead of AFSDK.
  10. OPC
    1. OSIsoft/AVEVA have a PI OPC DA and PI OPC HDA server, but no UA access to read data from PI.
    2. Configuring OPC DA is a pain
1 Like

Here are some general things you should keep in mind when pulling data out of PI:

  1. If your Data Archive is under a lot of load, querying older archives will be more taxing.
    1. Depending on amount of data and amount of other load on the archive, might consider standing up a collective member for querying the large export.
  2. Querying multiple tags from similar time ranges will be more performant than a single tag for the entire desired time range.
  3. In some cases, WebAPI/AFSDK performance scales per user rather than just per connection.
  4. When exporting historical data, if you’re progressing your queries based on time, remember that it may be possible for data to be added to some points for a time range that was already queried. If you’re worried about this, you can put your points in “Data Pipes” with Web API or AFSDK. This will allow you to monitor any new values coming in, and you can just ignore the values for time ranges you haven’t queried yet.
1 Like