I've been using Pentaho Kettle version 5.1 to transfer Excel data to SQL by following these steps (answered by Edgar):

  1. Launch Pentaho Kettle.
  2. (Typically) click on 'No Repository'.
  3. Create a new transformation.
  4. On the left side you will see several 'blocks'. In this case, drag an 'Excel Input' block from the 'Input' category into your transformation file.
  5. Double-click on the block you just dragged. The next steps refer to this block:
    • Click 'Browse' and select the Excel file you want to import.
    • Click on 'Add' (located to the left of the 'Browse' button). You should see the file listed on the 'Selected Files' list underneath.
    • Now go to the '!Sheets' tab (should be the second tab) and select the worksheet with the data you want to import into your database.
    • Finally, go the '!Fields' tab (should be the last to the right), click on the button labeled 'Get fields from header row...' and change the different datatypes accordingly.
    • Click on the button labeled 'Preview rows' to make sure everything is OK.
  6. Now, let's move this data to your SQL database. For simplicity, I'm going to describe how to create a new table on the database. However, notice that Kettle provide blocks for handling updates and 'insert/update' tasks.
  7. Once again, drag a block from the left hand side. This time go to the 'Output' section and select 'Table Output'.
  8. Connect the two blocks by holding the Shift key and dragging the mouse pointer from the from the Excel to the 'Table Output' block. The next steps are related to the 'Table Output' block.
    • First, we need to build a connection to the database. To do this, click on the button labeled 'New...' next to the 'Connection' drop-down box.
    • On the 'Connection Type' list, select 'MySQL' (as you can see, Kettle allows you to connect with a vast number of different databases). Fill all of the appropriate fields and remember to click on 'Test' to ensure the communication is working.
    • Enter the name of the table.
    • Go the tab labeled 'Database fields' and select 'Enter field mapping'. From here make sure you map all of the Excel columns in the stream to the appropriate MySQL fields and click 'OK'. (If the names in Excel match your table you can simply click on 'Guess' to get you close.)
  9. Finally, Save your transformation and run it by selecting the 'Transformation>Run' menu. If everything goes well you should see a message that says 'Transformation Finished' on the execution box under the 'Logging' tab.

Good Luck!

However, I cannot accomplish step 8 because of this error message:

I was unable to connect to the database to verify the status of the table: Unable to close prepared statement after determining SQL layout. You have an error in you SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'OPTION SQL_SELECT_LIMIT=DEFAULT' at line 1

I'm currently using MySQL Server version 5.6 and MySQL workbench version 6.1. How can I solve this error? I can't move on with our thesis because of this problem.


The problem you facing is your using mismatched (or) older MySQL Connector/J, Check are you using latest mysql-connector-java-x.x.xx-bin.jar?

In my case I was using MySQL Server 5.6 and MySQL connector was 'mysql-connector-java-5.1.42-bin.jar'

  1. Download the Latest MySQL Java Connector / Driver
  2. Unzip the zip file
  3. copy the .jar file and paste it in your Lib folder:

PC: C:\Program Files\pentaho\design-tools\data-integration\lib

Mac: /Applications/data-integration/lib

Restart Pentaho (Data Integration) and run you transformation.

Your Answer

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.