blogs.conchango.com

welcome to the conchango blogging site
Welcome to blogs.conchango.com Sign in | Join | Help
in Search

SSIS Junkie

SSIS: Do you need to deploy raw files?

Short one this. HarshB asked here: http://blogs.conchango.com/jamiethomson/archive/2006/01/04/2540.aspx#2670 if you need to deploy raw files along with your packages in order to use them. Happily the answer is no - if you set DelayValidation=TRUE on the data-flow that consumes data from the raw file then you won't need to deploy it. Of course, you'll have to make sure that the raw file is created prior to the data-flow trying to use it.

There is a small caveat to this however. There is a bug in the DataReader destination that requires any data-flow containing one to have DelayValidation=FALSE. In other words, a raw file source adapter and a datareader destination cannot co-exist unless you deploy a raw file along with the package.

There is a workaround - not a great one but it does work. Use the recordset destination instead as detailed in the original post that HarshB was replying to: http://blogs.conchango.com/jamiethomson/archive/2006/01/04/2540.aspx

-Jamie

 

 

 

Published 23 January 2006 20:01 by jamie.thomson

Comment Notification

If you would like to receive an email when updates are made to this post, please register here

Subscribe to this post's comments using RSS

Comments

 

chockenhull said:

I've just been assigned some extensive SSIS work & am new to the new environment.  I've found this blog site extremely helpful trying to sort through everything.  I'm trying to use raw files to process the data, however I keep running into issues.

My package is creating the raw file at the beginning of the job using variables and I'm using FileNameVariable.  In the Data Flow, using the raw file as a source, the DelayValidation = True and the only other task is a row count .  The other Data Flow has DelayValidation = False.  Here comes the but...it's still giving me an error on the file name variable, cannot be opened for reading.

Is there something else I'm missing?  If I can't use a variable for the file name, I'll have to re-work everything to use a recordset which I'd rather not do and use DB resources.

February 9, 2008 20:20
 

jamie.thomson said:

I'm confused. You say "the dataflow" and "the other dataflow" but its not clear which each is doing and in which order they are executing. What is in this "other dataflow"? Which dataflow is giving the error?

You need to describe this more accurately I'm afraid.

-Jamie

February 10, 2008 16:24
 

chockenhull said:

Thank you for responding.  I hope this clears up what I have coded.

In the Control Flow window, the first executed data flow is named Retrieve Tran History.  This data flow retrieves the records from the DB and loads them into a raw file,  DelayValidation = false.  In the Control Flow window, the Retrieve Tran History is connected to another Data Flow named Get Tran History Row Count, with a green connection.  In this Data Flow, the Raw Source Component, Tran History Raw Input, has the DelayValidation = True.  However when I try to set AccessMode to File Name From Variable and the FileNameVariable to a User::WorkingLocation is gives me an error.  This variable has already been updated at the very beginning of the job.

Maybe I'm not understanding the above post.  Shouldn't I be able to set the DelayValidation to false when accessing the raw source that was created without an error displaying in the IDE?  Per the comment above, I don't have anything else with DelayValidation = false.

February 11, 2008 16:38
 

jamie.thomson said:

chockenhull,

OK, that makes sense. Now, even though DelayValidation=TRUE you should know that this is mainly an execution-time setting (that's an important point that I should have made above - sorry). If you are manipulating source component 'Tran History Raw Input' at design-time (i.e. opening its editor) then the raw file DOES have to exist in order that the component can discover its metadata.

-Jamie

February 11, 2008 16:45
 

chockenhull said:

If I understand correctly, during development, I need the file to exist.  But I can replace the hard-coded file name with the variable before creating the production executable?

Thanks.

February 11, 2008 20:27
 

jamie.thomson said:

You can take the location of the raw file from a variable at design-time as well as execution-time. It makes no difference.

-Jamie

February 11, 2008 20:32

Leave a Comment

(required) 
(optional)
(required) 
Submit

This Blog

Syndication

News

Powered by Community Server (Personal Edition), by Telligent Systems