# Migrating FactoryTalk Historian data to Ignition

**URL:** <https://forum.inductiveautomation.com/t/migrating-factorytalk-historian-data-to-ignition/104643>\
**Category:** Ignition\
**Created:** [April 3, 2025, 12:27pm UTC](https://forum.inductiveautomation.com/t/migrating-factorytalk-historian-data-to-ignition/104643 "2025-04-03T12:27:54Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![matt6](https://avatars.discourse-cdn.com/v4/letter/m/87869e/32.png) [@matt6](https://forum.inductiveautomation.com/u/matt6)\
**Post date:** [April 3, 2025, 12:27pm UTC](https://forum.inductiveautomation.com/t/migrating-factorytalk-historian-data-to-ignition/104643/1 "2025-04-03T12:27:54Z")

</div>

Is there a recommended migration path for getting data from a FactoryTalk Historian into the Ignition Historian module?

---

<div class="post-metadata">

**Author:** ![Cody\_Morgan](https://avatars.discourse-cdn.com/v4/letter/c/db5fbb/32.png) [@Cody\_Morgan](https://forum.inductiveautomation.com/u/Cody_Morgan)\
**Post date:** [April 3, 2025, 2:29pm UTC](https://forum.inductiveautomation.com/t/migrating-factorytalk-historian-data-to-ignition/104643/2 "2025-04-03T14:29:46Z")

</div>

The FactoryTalk historian is just rebranded OSI PI, right? Can it use the PI JDBC?

What is the use case? How much data are you looking to migrate? Depending on size, exporting it as CSV or something might be the simplest way to get it out of PI.

EDIT: If you do try to export CSV, you'll have a much better experience using PI Datalink than trying to export via SMT.

---

<div class="post-metadata">

**Author:** ![matt6](https://avatars.discourse-cdn.com/v4/letter/m/87869e/32.png) [@matt6](https://forum.inductiveautomation.com/u/matt6)\
**Post date:** [April 3, 2025, 3:17pm UTC](https://forum.inductiveautomation.com/t/migrating-factorytalk-historian-data-to-ignition/104643/3 "2025-04-03T15:17:06Z")

</div>

Yes, sort of. It's their proprietary version of OSI PI, but has all that same functionality.  
There's a couple years of data in the historian, but I'm not sure how much they are going to want to migrate. If all of it, that's going to be a very large CSV, although I agree that method would be simpler.

---

<div class="post-metadata">

**Author:** ![Matthew.gaitan](https://avatars.discourse-cdn.com/v4/letter/m/59ef9b/32.png) [@Matthew.gaitan](https://forum.inductiveautomation.com/u/Matthew.gaitan)\
**Post date:** [April 3, 2025, 3:17pm UTC](https://forum.inductiveautomation.com/t/migrating-factorytalk-historian-data-to-ignition/104643/4 "2025-04-03T15:17:45Z")

</div>

I do not recommend using PI Datalink or PI SMT to export bulk tag data, I have had both crash on me numerous times when trying to do this

It's much easier to do bulk exports directly into a txt file using the `piconfig` command line tool, if you have access to your pi archive server.

> **[AVEVA™ Documentation](https://docs.aveva.com/bundle/pi-server-s-da-reference/page/1022136.html#_generate_a_text_file_of_archive_data_for_sinusoid_for_the_last_day)**

I have the linked script saved to a text file called `getTagData.txt` (by default the script puts the export at `C:\temp\values.txt`, change to suit your needs), located in the same folder where the pi adminstration tools are installed (for me they are at `D:\Program Files\PI\adm`, in your pi archive server they might be somewhere else) whenever i need to do a bulk export i open the file, make a new entries right before the `@exit` command containing the tags I wish to do a bulk export on, then using the command line, i run the command `piconfig < getTagData.txt`, the tag history export will then show up wherever you defined in in the `getTagData.txt` file.

After that you can write an ignition script that opens the file and loads the data into the historian.I recommend using [system.tag.storeTagHistory | Ignition User Manual](https://www.docs.inductiveautomation.com/docs/8.1/appendix/scripting-functions/system-tag/system-tag-storeTagHistory) funtion

---

<div class="post-metadata">

**Author:** ![matt6](https://avatars.discourse-cdn.com/v4/letter/m/87869e/32.png) [@matt6](https://forum.inductiveautomation.com/u/matt6)\
**Post date:** [April 3, 2025, 3:40pm UTC](https://forum.inductiveautomation.com/t/migrating-factorytalk-historian-data-to-ignition/104643/5 "2025-04-03T15:40:07Z")

</div>

Very helpful. Thank you!

---

<div class="post-metadata">

**Author:** ![jrusso](https://avatars.discourse-cdn.com/v4/letter/j/c0e974/32.png) [@jrusso](https://forum.inductiveautomation.com/u/jrusso)\
**Post date:** [April 3, 2025, 4:41pm UTC](https://forum.inductiveautomation.com/t/migrating-factorytalk-historian-data-to-ignition/104643/6 "2025-04-03T16:41:21Z")

</div>

Does this work for much much older versions of OSI PI? Like pre-AVEVA age versions? Was having some issues a few months ago with a version that was still heavily tied to Rockwell

---

<div class="post-metadata">

**Author:** ![Matthew.gaitan](https://avatars.discourse-cdn.com/v4/letter/m/59ef9b/32.png) [@Matthew.gaitan](https://forum.inductiveautomation.com/u/Matthew.gaitan)\
**Post date:** [April 3, 2025, 4:52pm UTC](https://forum.inductiveautomation.com/t/migrating-factorytalk-historian-data-to-ignition/104643/7 "2025-04-03T16:52:09Z")

</div>

I'm not sure exactly when the functionality was introduced, but we've been using the tool prior to OSI being purchased by AVEVA

---

<div class="post-metadata">

**Author:** ![Cody\_Morgan](https://avatars.discourse-cdn.com/v4/letter/c/db5fbb/32.png) [@Cody\_Morgan](https://forum.inductiveautomation.com/u/Cody_Morgan)\
**Post date:** [April 3, 2025, 5:59pm UTC](https://forum.inductiveautomation.com/t/migrating-factorytalk-historian-data-to-ignition/104643/8 "2025-04-03T17:59:29Z")

</div>

PI DataLink should be able to handle 100s of thousands of values, but I agree `piconfig` is a good option, especially if you have enough data to move that would require scripting this migration into multiple files.

`piconfig` has been around since at least PI 3, probably much longer. Way before AVEVA, definitely. It pre-dated my time at OSI/AVEVA by at least a decade, I'd say.

---

<div class="post-metadata">

**Author:** ![matt6](https://avatars.discourse-cdn.com/v4/letter/m/87869e/32.png) [@matt6](https://forum.inductiveautomation.com/u/matt6)\
**Post date:** [April 4, 2025, 12:01pm UTC](https://forum.inductiveautomation.com/t/migrating-factorytalk-historian-data-to-ignition/104643/9 "2025-04-04T12:01:47Z")

</div>

What about when trying to access old data from archives in files? It sounds like we have some data going back to 2007 that they would like to migrate and we have those files.

---

<div class="post-metadata">

**Author:** ![Cody\_Morgan](https://avatars.discourse-cdn.com/v4/letter/c/db5fbb/32.png) [@Cody\_Morgan](https://forum.inductiveautomation.com/u/Cody_Morgan)\
**Post date:** [April 4, 2025, 12:31pm UTC](https://forum.inductiveautomation.com/t/migrating-factorytalk-historian-data-to-ignition/104643/10 "2025-04-04T12:31:07Z")

</div>

You will have to register the archive files on your PI Server (or on a backup). The archive files themselves only contain the data, and not enough point metadata to read them directly. Not to mention the proprietary file format.

How many tags and what kind of data density are we talking about? If it's a lot, I'd recommend starting with whatever is most important to move for your operations, like maybe 6 months of data, then go back to retrieve the rest. It may take months to move the data, depending on size.

---

<div class="post-metadata">

**Author:** ![michael.flagler](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/michael.flagler/32/26272_2.png) [@michael.flagler](https://forum.inductiveautomation.com/u/michael.flagler)\
**Post date:** [April 4, 2025, 5:16pm UTC](https://forum.inductiveautomation.com/t/migrating-factorytalk-historian-data-to-ignition/104643/11 "2025-04-04T17:16:52Z")

</div>

RSView32 used dBase files for data logging if I recall, but before Rockwell switched to using their rebranded Pi, I think there was a product named RSSQL. I never used it, and I'm not sure if there's an intermediate product between RSSQL and Pi. There's also the built-in data logger that's not really considered FactoryTalk Historian, but could be what they're using also.

---

<div class="post-metadata">

**Author:** ![Cody\_Morgan](https://avatars.discourse-cdn.com/v4/letter/c/db5fbb/32.png) [@Cody\_Morgan](https://forum.inductiveautomation.com/u/Cody_Morgan)\
**Post date:** [April 4, 2025, 8:16pm UTC](https://forum.inductiveautomation.com/t/migrating-factorytalk-historian-data-to-ignition/104643/12 "2025-04-04T20:16:23Z")

</div>

Thanks! I was assuming PI archives containing data back to 2007

---

<div class="post-metadata">

**Author:** ![michael.flagler](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/michael.flagler/32/26272_2.png) [@michael.flagler](https://forum.inductiveautomation.com/u/michael.flagler)\
**Post date:** [April 4, 2025, 8:40pm UTC](https://forum.inductiveautomation.com/t/migrating-factorytalk-historian-data-to-ignition/104643/13 "2025-04-04T20:40:38Z")

</div>

That's my assumption too, but I've caught myself assuming incorrectly many times when some legacy system was in place that the customer calls one thing, but in reality isn't what they have.

---

<div class="post-metadata">

**Author:** ![matt6](https://avatars.discourse-cdn.com/v4/letter/m/87869e/32.png) [@matt6](https://forum.inductiveautomation.com/u/matt6)\
**Post date:** [April 6, 2025, 6:42pm UTC](https://forum.inductiveautomation.com/t/migrating-factorytalk-historian-data-to-ignition/104643/14 "2025-04-06T18:42:31Z")

</div>

Thanks, I am also assuming PI archives, but I have yet to confirm. I wasn't doing work with their Historian at that time.

---

<div class="post-metadata">

**Author:** ![matt6](https://avatars.discourse-cdn.com/v4/letter/m/87869e/32.png) [@matt6](https://forum.inductiveautomation.com/u/matt6)\
**Post date:** [April 14, 2025, 12:07pm UTC](https://forum.inductiveautomation.com/t/migrating-factorytalk-historian-data-to-ignition/104643/15 "2025-04-14T12:07:58Z")

</div>

![image](https://us1.discourse-cdn.com/inductiveautomation/original/3X/4/0/400b9b1269a897efb53a86e31299c756ffe94303.png)

This is the error I'm getting when trying to run a script with these commands:

```python
@tabl piarc
@ostr tag,time,value
@ostr ...
@istr tag,starttime,endtime,count
@output C:\temp\values.txt
@echo off
sinusoid,*-1d,*,1000000
@exit

```

Update: helps if I run the script on the actual historian and not from an engineering workstation. 🙂

---

<div class="post-metadata">

**Author:** ![matt6](https://avatars.discourse-cdn.com/v4/letter/m/87869e/32.png) [@matt6](https://forum.inductiveautomation.com/u/matt6)\
**Post date:** [April 14, 2025, 12:31pm UTC](https://forum.inductiveautomation.com/t/migrating-factorytalk-historian-data-to-ignition/104643/16 "2025-04-14T12:31:46Z")

</div>

Replacing "sinusoid" with an actual tag will obviously export one tag worth of data. Is there a way to export ALL the tag data at once without having to add all 2000 tags to the script?

And why doesn't the `@exit` command actually cause it to exit?

---

<div class="post-metadata">

**Author:** ![Cody\_Morgan](https://avatars.discourse-cdn.com/v4/letter/c/db5fbb/32.png) [@Cody\_Morgan](https://forum.inductiveautomation.com/u/Cody_Morgan)\
**Post date:** [April 16, 2025, 8:59pm UTC](https://forum.inductiveautomation.com/t/migrating-factorytalk-historian-data-to-ignition/104643/17 "2025-04-16T20:59:21Z")

</div>

I have only used piconfig a handful of times, but AVEVA docs have an example of exporting multiple tags by using a csv input file that includes the tag info:

[https://docs.aveva.com/bundle/pi-server-s-da-reference/page/1022136.html#\_export\_data\_for\_multiple\_points\_using\_an\_input\_and\_output\_file](https://docs.aveva.com/bundle/pi-server-s-da-reference/page/1022136.html#_export_data_for_multiple_points_using_an_input_and_output_file)

---

<div class="post-metadata">

**Author:** ![matt6](https://avatars.discourse-cdn.com/v4/letter/m/87869e/32.png) [@matt6](https://forum.inductiveautomation.com/u/matt6)\
**Post date:** [April 16, 2025, 9:51pm UTC](https://forum.inductiveautomation.com/t/migrating-factorytalk-historian-data-to-ignition/104643/18 "2025-04-16T21:51:33Z")

</div>

Yeah, I just wasn't sure if there was a way to say all tags, like "\*" or something (which doesn't work BTW)  
It's fine. I exported a day's worth of data for all 2000 tags and it was a 400MB export file, which is wild. I wrote a NodeJS script to stream the file and restructure to the format necessary for import into the Ignition database as well as change the datetime structure to a unix timestamp. Seems to work well, but this is going to take a long time to convert all the data from 2007-on. I wish there was a faster way.

---

<div class="post-metadata">

**Author:** ![Cody\_Morgan](https://avatars.discourse-cdn.com/v4/letter/c/db5fbb/32.png) [@Cody\_Morgan](https://forum.inductiveautomation.com/u/Cody_Morgan)\
**Post date:** [April 17, 2025, 3:50am UTC](https://forum.inductiveautomation.com/t/migrating-factorytalk-historian-data-to-ignition/104643/19 "2025-04-17T03:50:07Z")

</div>

What kind of data density are you dealing with? 400 MB seems huge for a day's worth of values for 2,000 tags.

You can't use custom AFSDK applications with FactoryTalk, can you? If so, you could streamline it a bit more, and the bulk read calls available in AFSDK are fast.

If I remember correctly, OEMs have a restricted pi server license that doesn't allow custom AFSDK apps.

---

<div class="post-metadata">

**Author:** ![matt6](https://avatars.discourse-cdn.com/v4/letter/m/87869e/32.png) [@matt6](https://forum.inductiveautomation.com/u/matt6)\
**Post date:** [April 17, 2025, 10:29am UTC](https://forum.inductiveautomation.com/t/migrating-factorytalk-historian-data-to-ignition/104643/20 "2025-04-17T10:29:46Z")

</div>

Some of these datapoints are collecting at 1-sec intervals, so yeah it's huge.

I'm not familiar with AFSDK at all, so I can't answer that.

[Next page](https://forum.inductiveautomation.com/t/migrating-factorytalk-historian-data-to-ignition/104643.md?page=2)
