Skip to main content
  • 3,396 Posts
  • 13,884 Replies
3396 Posts
Slow bulk insert CSV to MSSQL

This question contains a few moving pieces - all in the hope of improving bulk insert operations.  Background: FME Desktop is on a dedicated workstation with 16gb ram and 2.1gb latent memory usage (ie 14gb physical ram is almost always available for FME to use.)I'm attempting to use FeatureReader to read/write a 1.5gb CSV (10m rows, 15 columns) to a MSSQL server. The writer is Microsoft SQL Server Non-Spatial. The SQL Server writer has Bulk Insert set to Yes, and I've tried Features per Transaction from 500 to 5000 rows. The SQL server has more than enough free space in it's current *.mdf that it is not trying to increase size, the table is set to truncate on insert, and there are no indexes, constraints, or keys at the time of insert. The SQL server has almost no load on it at all (extremely underutilised!), but in any case is on a large machine (20gb ram, 8 core), and the database itself has virtually no usage.  The insert

How do I use a JSON element as attribute value?

I have a JSON file, structured like this:{  "W-Number": {    "EP1": [      {        "timestamp": 1407859200000,        "value": 1.35      },      {        "timestamp": 1407862800000,        "value": 1.44      }    ],    "EP2": [      {        "timestamp": 1407859200000,        "value": 1.58      },      {        "timestamp": 1407862800000,        "value": 1.63      }    ]  }}I want to turn it into a table, like thisW-Number | timestamp | valueEP1 | 1407859200000 | 1.35EP1 | 1407862800000 | 1.44EP2 | 1407859200000 | 1.58EP2 | 1407862800000 | 1.63What I managed so far: used JSONFlattener, then AttributeExposer to expose (see below*). Then I used a ListExploder; it works when I specify e.g. W-Number-EP1{}, which gives me a table for the timestamp and value of EP1, h

Programatically detecting the errors in the input file during the conversion

We are converting files from KML/KMZ format to MapInfo in a batch operation. We have our C# program calling the FME as a console application with parameters, for every file. Everything works fine except sometimes the the KML input file has errors in it and the FME convertor exists with an error I can see in the console screen.Is any way I can programmatically detect when the convertor has problems and skip the file from my side of the code? Is any message send back to the console in case of success or fail? It should be a correct way to get the result since I can see it in the console, i am just looking for the supported way.Below is an example how we call the FME workflow:string inputPath2 = "C:\\Users\\Breazuo\\Documents\\FME\\Workspaces\\ogckml2mapinfo.fmw" +                    " --SourceDataset_OGCKML " + "\"" + path + "\"" +                    " --DestDataset_MAPINFO " + "\"" + FMEOutputDirectory + "\""; System.Diagnostics.P

Badge Winners

Show all badges

Community Stats

32,474
Posts
123,362
Replies
40,647
Members