Recently I wanted to download historical stock information from the internet and store this information into a data warehouse. Using the Task Factory Download File Task I was able to dynamically download thousands of csv files with historical stock information and trends for my data warehouse.
The Download file task allows you to download files over an HTTP connection from inside an SSIS Package and it also has support for HTTPS, I will show you where to enter credentials.
If you want to walk through this example and don’t currently have Task Factory you can download a free 14 day trial here: Free Trial Download
So in this example I am going to download a CSV File from Yahoo Finance with historical price information for Fed Ex.
- Create a new package in SSIS and pull the Task Factory Download File Task into the control flow.
- Now we need to create our HTTP Connection manager.
- Inside the Download File Task select “Create New HTTP Connection…”
- Creating the connection manager is very easy, especially if you are not using HTTPS.
- Server URL: (This is the domain that is hosting the file)
- Use Credentials: (Select this box and proceed with your username and password if credentials are required.
- Test Connection: (Test Connection before proceeding.)
- For Server URL I used: Http://finance.yahoo.com
- Click Ok. Connection manager has now been created successfully.
- Now we need the exact location of the file we want to download.
- If you follow the URL below you will see the stock history for Fed Ex. At the bottom of the page there is a download button. (See next screenshot)
- Now that we have the exact location of the file we can finish setting up the Download File Task.
- Paste the file location into the section “Enter Path of File To Download:”
- Note I am simply specifying a Text Value for this walkthrough. You can use variables and expressions with this task to make it as dynamic as you need.
- The final step in this process is to specify the location where the file will be stored once downloaded. Once again I am using “Text Value”.
- “Enter File Path For Local File:” Enter the specific file location. (Screenshot)
Now execute the package and there you go!
Thanks for Looking.