You are on page 1of 13

SSIS Interview questions:1. What's the difference between Control Flow and Data Flow? 2.

What is the Multicast Shape used for? 3. What shape would you use to concatenate two input fields into a single output field? 4. On the basic level you can tell right away if they understand how Control Flow works vs Data Flow etc... as you dig deeper I'd look to see if the candidate had an understanding of when its best to use script vs the built in components. Another good item is difference between synchronous and asynchronous data flow transformations etc. Questions like that are open enough that they give the person interviewing a chance to show what they know rather than some books online type answer. Focus on the big picture in your evaluation of the candidate and if they have the expertise to make elegant SSIS solutions.. I don't think little questions about a particular property etc are important (you are looking for full time I assume). For example you might ask about package configurations and how they work but not ask for step by step how to use them. Not everyone uses every part of SSIS. Perhaps some others here can come up with some good questions on the script components - there are a lot of things you could ask there to see if they have an idea of the classes and methods used in SSIS. 5)What is the control flow 6) what is a data flow 7) how do you do error handling in SSIS 8) how do you do logging in ssis 9) how do you deploy ssis packages. 10) how do you schedule ssis packages to run on the fly 11) how do you run stored procedure and get data 12) give a scenario: Want to insert a tect file into database table, but during the upload want to change a column called as months - January, Feb, etc to a code, 1,2,3.. .This code can be read from another database table called months. After the conversion of the data ,upload the file. If there are any errors, write to error table. Then for all errors, read errors from database, create a file, and mail it to the superviso. How would you accomplish this task in SSIS? That should be sufficient to test a person. 13) Also, what are variables and what is variable scope.

14)Control Flow:
1. 2. 3. 4. Process Oriented Doesnt manage or pass data between components. It functions as a task coordinator In control flow tasks requires completion (Success.,failure or completion)

5. Synchronous in nature, this means, task requires completion before moving to next task. If the tasks are not connected with each other but still they are synchronous in nature. 6. Tasks can be executed both parallel and serially 7. Three types of control flow elements in SSIS 2005 1. Containers Provides structures in the packages 2. Tasks Provides functionality in the packages 3. Precedence Constraints Connects containers, executables and and tasks into an ordered control flow. We can control the sequence execution for tasks and also specify the conditions that tasks and containers run. 2. It is possible to include nested containers as SSIS Architecture supports nesting of the containers. Control flow can include multiple levels of nested containers.

15) Data Flow


3. Streaming in nature 4. Information oriented 5. Passes data between other components 6. Transformations work together to manage and process data. This means first set of data from the source may be in the final destination step while at the same time other set of data is still flowing. All the transformations are doing work at the same time. 7. Three types of Data Flow components 1. Sources Extracts data from the various sources (Database, Text Files etc) 2. Transformations Cleans, modify, merge and summarizes the data 3. Destination Loads data into destinations like database, files or in memory datasets

16) If the person knows about Data Flow and Control Flow and what are the debugging problems/ ways we can debug a control flow/ Data Flow. Answer:Control Flow - Set Breakpoints
Break condition When the task or container receives the OnPreExecute event. When the task or container receives the OnPostExecute event. When the task or container receives the OnError event. Description Called when a task is about to execute. This event is raised by a task or a container immediately before it runs. Called immediately after the execution logic of the task finishes. This event is raised by a task or container immediately after it runs. Called by a task or container when an error occurs.

When the task or container receives the OnWarning event. When the task or container receives the OnInformation event. When the task or container receives the OnTaskFailed event. When the task or container receives the OnProgress event. When the task or container receives the OnQueryCancel event. When the task or container receives the OnVariableValueChanged event. When the task or container receives the OnCustomEvent event.

Called when the task is in a state that does not justify an error, but does warrant a warning. Called when the task is required to provide information. Called by the task host when it fails. Called to update progress about task execution. Called at any time in task processing when you can cancel execution. Called by the Integration Services runtime when the value of a variable changes. The RaiseChangeEvent of the variable must be set to true to raise this event. Called by tasks to raise custom task-defined events.

Data flow- Data Viewers


Data viewers display data between two components in a data flow. Data viewers can display data when the data is extracted from a data source and first enters a data flow, before and after a transformation updates the data, and before the data is loaded into its destination. A data viewer can display data in a grid, histogram, scatter plot, or column chart.

Using a grid, you select the columns to display. The values for the selected columns display in a tabular format. Using a histogram, you select the column to model in the histogram. A histogram shows the distribution of numeric values and works only with numeric data. Using a scatter plot, you select the columns to appear on the x-axis and y-axis. The scatter plot graph works only with numeric data. Using a chart format, you select the column to model with the column chart. The column chart displays the occurrence count of discrete values in the selected column.

17). The Person knows how to add/ configure a transformation. (Believe me a person who is cramming the name of transformations is not a developer at all)

18). The Person Know Enough VB Script/ any other programming language so that he can make use of the expertise in "Derived Column Task", "Script Task". (Usage of Script Task is not required at all its available on the internet and cramming the ways the task is behaving is of no use) 19). The Person must be intermediate/ good in SQL Server/ TSQL, so he may utilize his expertise in development of stored procedures and there usage in control flow / data

flow. (AGAIN: IF A PERSON CRAMS the way to call a stored procedure, is just wastage of some of his grey matter, it available on Internet and can be found in one click only.). 20) - True or False - Using a checkpoint file in SSIS is just like issuing the CHECKPOINT command against the relational engine. It commits all of the data to the database. False. SSIS provides a Checkpoint capability which allows a package to restart at the point of failure. 21) - Can you explain the what the Import\Export tool does and the basic steps in the wizard? The Import\Export tool is accessible via BIDS or executing the dtswizard command. The tool identifies a data source and a destination to move data either within 1 database, between instances or even from a database to a file (or vice versa). 22) - What are the command line tools to execute SQL Server Integration Services packages? DTSEXECUI - When this command line tool is run a user interface is loaded in order to configure each of the applicable parameters to execute an SSIS package. DTEXEC - This is a pure command line tool where all of the needed switches must be passed into the command for successful execution of the SSIS package. for more info http://msdn.microsoft.com/en-us/library/ms162810.aspx 23) - Can you explain the SQL Server Integration Services functionality in Management Studio? You have the ability to do the following: Login to the SQL Server Integration Services instance View the SSIS log View the packages that are currently running on that instance Browse the packages stored in MSDB or the file system Import or export packages Delete packages Run packages 24) - Can you name some of the core SSIS components in the Business Intelligence Development Studio you work with on a regular basis when building an SSIS package? Connection Managers Control Flow Data Flow Event Handlers Variables window Toolbox window Output window

Logging Package Configurations Question Difficulty = Moderate 25) - True or False: SSIS has a default means to log all records updated, deleted or inserted on a per table basis. False, but a custom solution can be built to meet these needs. 26) - What is a breakpoint in SSIS? How is it setup? How do you disable it? A breakpoint is a stopping point in the code. The breakpoint can give the Developer\DBA an opportunity to review the status of the data, variables and the overall status of the SSIS package. 10 unique conditions exist for each breakpoint. Breakpoints are setup in BIDS. In BIDS, navigate to the control flow interface. Right click on the object where you want to set the breakpoint and select the 'Edit Breakpoints...' option. 27) - Can you name 5 or more of the native SSIS connection managers? OLEDB connection - Used to connect to any data source requiring an OLEDB connection (i.e., SQL Server 2000) Flat file connection - Used to make a connection to a single file in the File System. Required for reading information from a File System flat file ADO.Net connection - Uses the .Net Provider to make a connection to SQL Server 2005 or other connection exposed through managed code (like C#) in a custom task Analysis Services connection - Used to make a connection to an Analysis Services database or project. Required for the Analysis Services DDL Task and Analysis Services Processing Task File connection - Used to reference a file or folder. The options are to either use or create a file or folder Excel FTP HTTP MSMQ SMO SMTP SQLMobile WMI 28) - How do you eliminate quotes from being uploaded from a flat file to SQL Server? In the SSIS package on the Flat File Connection Manager Editor, enter quotes into the Text qualifier field then preview the data to ensure the quotes are not included. Additional information: How to strip out double quotes from an import file in SQL

Server Integration Services Question 5 - Can you name 5 or more of the main SSIS tool box widgets and their functionality? For Loop Container Foreach Loop Container Sequence Container ActiveX Script Task Analysis Services Execute DDL Task Analysis Services Processing Task Bulk Insert Task Data Flow Task Data Mining Query Task Execute DTS 2000 Package Task Execute Package Task Execute Process Task Execute SQL Task etc. Question Difficulty = Difficult 29) - Can you explain one approach to deploy an SSIS package? One option is to build a deployment manifest file in BIDS, then copy the directory to the applicable SQL Server then work through the steps of the package installation wizard A second option is using the dtutil utility to copy, paste, rename, delete an SSIS Package A third option is to login to SQL Server Integration Services via SQL Server Management Studio then navigate to the 'Stored Packages' folder then right click on the one of the children folders or an SSIS package to access the 'Import Packages...' or 'Export Packages...'option. A fourth option in BIDS is to navigate to File | Save Copy of Package and complete the interface.

30) - Can you explain how to setup a checkpoint file in SSIS? The following items need to be configured on the properties tab for SSIS package: CheckpointFileName - Specify the full path to the Checkpoint file that the package uses to save the value of package variables and log completed tasks. Rather than using a hardcoded path as shown above, it's a good idea to use an expression that concatenates a path defined in a package variable and the package name. CheckpointUsage - Determines if/how checkpoints are used. Choose from these options: Never (default), IfExists, or Always. Never indicates that you are not using Checkpoints. IfExists is the typical setting and implements the restart at the point of failure behavior. If a Checkpoint file is found it is used to restore package variable values and restart at the point of failure. If a Checkpoint file is not found the package starts execution with the first task. The Always choice raises an error if the Checkpoint file does not exist.

SaveCheckpoints - Choose from these options: True or False (default). You must select True to implement the Checkpoint behavior. 31) - Can you explain different options for dynamic configurations in SSIS? Use an XML file Use custom variables Use a database per environment with the variables Use a centralized database with all variables 32) - How do you upgrade an SSIS Package? Depending on the complexity of the package, one or two techniques are typically used: Recode the package based on the functionality in SQL Server DTS Use the Migrate DTS 2000 Package wizard in BIDS then recode any portion of the package that is not accurate 33) - Can you name five of the Perfmon counters for SSIS and the value they provide? SQLServer:SSIS Service SSIS Package Instances - Total number of simultaneous SSIS Packages running SQLServer:SSIS Pipeline BLOB bytes read - Total bytes read from binary large objects during the monitoring period. BLOB bytes written - Total bytes written to binary large objects during the monitoring period. BLOB files in use - Number of binary large objects files used during the data flow task during the monitoring period. Buffer memory - The amount of physical or virtual memory used by the data flow task during the monitoring period. Buffers in use - The number of buffers in use during the data flow task during the monitoring period. Buffers spooled - The number of buffers written to disk during the data flow task during the monitoring period. Flat buffer memory - The total number of blocks of memory in use by the data flow task during the monitoring period. Flat buffers in use - The number of blocks of memory in use by the data flow task at a point in time. Private buffer memory - The total amount of physical or virtual memory used by data transformation tasks in the data flow engine during the monitoring period. Private buffers in use - The number of blocks of memory in use by the transformations in the data flow task at a point in time. Rows read - Total number of input rows in use by the data flow task at a point in time. Rows written - Total number of output rows in use by the data flow task at a point in time.

SSIS DTC Transaction's HOT Questions I am using SSIS with Transaction, and I met a lot of questions as below: 1.IF DTC doesn't support ADO.NET Connection? Please check the ADO.net Connection's property, it has a property named like: DTCTrancactionSupport. But it's always set to False and unable to edit. IF the answer is NO, HOW could I bound all my Tasks into one Transaction? You know, I have some Tasks with SQL connection, and I have also some Script Tasks, witch need the ADO.net connection. 2.IF DTC required to run in both the Destination Server and the Source Server? I have a Dataflow Task, and take some data from a table in a Source Server to a Destination Server. The DTC doesn't run on the Source Server. I found the Dataflow Task hangs when I use the SSIS Transaction(just set the Task's transactionOpion to Required, Only one Task in the Package). 3.IF DTC doesn't support RetainSameConnection? Many people say that. Really? 4.When a DTC transaction is running, if the table in it could not be modified by process outside of the transaction? For example, a package with a DTC transaction, and there is a SQL Task inside, when it is running, could I modified the same table's data manually(in the Sql Sever Management Studio)?

SSIS Related Questions 0) We are migrating data from SQL Server 2000 OLTP design to SQL Server 2005 OLAP design. 1) We have an data flow task SSIS package. 2) We managed to send a mail with various variables & their values in subject or body of mail. 3) How do we send mail with details of Error/Warning using OnError/OnWarning events? 4) Can we have bad tables i.e where records which failed to migrate get inserted

into. If yes, what are the steps to implement this. 5) Can we have a mix of in-built & custom logging. Is logging provider necessary to do logging. What logging provider to use? 6) Where are the errors that come during build, deploy, install and execute stored? Is there a log file(s) & what it their location? 7) Please post links if that is better. SSIS Boolean Questions Please write YES/NO against point number in your answer i.e. for example: 1) YES, 2) YES, 3) NO, 4) YES etc. We have source SQL Server 200 databases in one instance and target SQL Server 2005 in another instance both being on different windows 2000 server systems. Target OLAP DB design is derived from source OLTP. Most master & transaction tables are as is but some target tables are a result of merging source tables. We need to do SSIS packages based migration using data flow task based on column mapping & queries using Business Intelligence Development Studio (BIDS). There are no transformations required. 1) Can I group packages under project into sub-groups i.e. super packages? 2) Can I execute a set of packages together which are logically/physically grouped? 3) Can we execute set of ordered packages/individual packages from command line and even stored procedure? 4) Can we maintain transaction integrity across the entire set of ordered packages we execute? 5) Can we send a mail to mail id(s) in case of events like OnError etc. 6) Can we schedule the packages? 7) Does SSIS provide via BIDS a way to compare data in source with target to decide what got inserted/deleted/updated and based on that do the necessary? 8) Can SSIS packages be developed including code for data encryption? 9) Can we pass parameters to packages that get called from stored procedure? 10) Can we call stored procedure/function in SSIS package?

Some Basic SSIS Questions I have been working with SSIS and find myself stopped on what seem like very basic tasks. Am I right in thinking that, if you want to import a flat file into a SQL datatable, in most PC based systems, that you have to manually cast EVERY SINGLE COLUMN to unicode string, if you don't want to get the 'cannot convert between unicode and non-unicode string data types'? I mean, this is surely a VERY COMMON task, taking a CR/LF delimited ASCII file and dumping it into a database tables? What if you have 50 fields to import? Am I the only one who finds it very difficult to cast a string from a textfile to a date format? At this point, I always just dump the date to a 8 character string and save it that way, and use a SQL view to cast it to a date. At least SQL Server can do 'basic date conversions'. Is there any way to freeze execution and find out what data was provided to a derived column, if you're trying to do some substring operations and hodge together a date? I couldn't find any. I usually put a extra column in a datatable and plunk some data there to find out 'what it looked like', how else can you debug an SSIS program? Is there a planned service pack or update to SSIS that will make this more usable? Does Microsoft ever intend to implement an UPSERT type module? Or a File Move operation that handles directories that fill up with log files, each of which have to be added to a datatable and then moved to an archive directory (surely, another very common task - I figured out how to accomplish this but it is far from intuitive, the way it currently works). Sorry for grumbling, but honestly, I find turnaround time to develop a very simple import program is RIDICULOUS. It's quicker to write a COBOL program to issue a bunch of formatted SQL UPDATE statements than using this application. Questions On SSIS Tool. I have some questions on SSIS tool I tried to read many docs to understand SSIS. Now I am looking forward for below questions. How to use SSIS for : 1. How to Export data from SQL Server 2005 in to Access database using SSIS? 2. How to Import data from Access .mdb file to SQL Server 2005 database using SSIS? 3. How to Import Oracle10g data in to SQL Server 2005 databvase using SSIS? 4. How to Import Oracle10g Data to Access file using SSIS? 5. How to Import SQL Server 2000 data in to SQL Server 2005? It will be great to have step by step explanation. Thanks in advance.

SSIS And Security - Questions Hello, I realize that I am confused about SSIS and security. In BIDS, I work on and modify my packages. That part I understand. Then, I want to build my project, then deploy to SQL Server 2005. I know how to do that too (for the most part, please see below): My confusion arises around the "Protection Level" options in the package properties. Right now I have everything set to "EncryptSensitiveWithUserKey". My understanding is that I need to change this in order to run my packages from SQL Server jobs, because only the creator of the package can currently run the job. So my question is, since I want to deploy to SQL Server, don't I want to change the "Protection Level" to "ServerStorage"? However, it will not let me change the protection level to ServerStorage. It says "The protection level, ServerStorage, cannot be used when saving to this destination"... presumably because it is attempting to save to the file system. However, even when I built out my packages and saved to SQL Server, I could not change the protection level either. Which is why I am really confused... Once you save your packages to SQL Server, how do you make changes to the packages, so that the changes are reflected in the packages stored on SQL Server? There is some concept I am not understanding here. Thanks for any help Converting DTS To SSIS - 2 Questions Hi, I was wondering if anyone know how to do Dynamic Properties Tasks in SSIS? And, does anyone know how to create a global database in SSIS so I won't have to change all of the database names in my package? I'm sorry, I'm new to SSIS and I'm just really frustrated. Thank you. Where Is The Forum For DTS -&&> SSIS Migration Questions? I have a question regarding a DTS (SQL server 2000 package) to SSIS (SQL SERVER 2005 package) migration. which is the best forum to post my question ? Couple Of Basic SSIS Questions Hello all, this is my first post, I have a couple of basic questions regarding the use of SSIS. I have used SSIS for a couple of years for on off table loads but never implemented production jobs with it so please bear with these questions. 1. When making scripts that connect to one or more databases, is there a way to

store the userid and password somewhere besides embedded within the package, such as a web.config file, this would make routine password changes much more manageble. I guess it was only one question but any help would be greatly appreciated. Thanks. Simple Vb / Ssis Data Type Questions I have a some raw data in a string that looks like

'1989' I need that to become numeric 19.89 if I define a type double for rawAmount and do this: rawAmount = CInt(iRest.Substring(41, 4)) Row.amount2 = rawAmount / 100 where row.amount2 is a type double precision float from my script component task output, I get: 19.899999999999999 what output should i use in this data flow component to get 19.89. thanks. Newbie Questions About SSIS Script Components And Data Streams The following is a list of questions that I have not been able to obtain concrete answers. I am probably missing something: 1) ReadWriteVariables -- can the updated value for a ReadWriteVariable be accessed within the same data flow? It appears not as I think the PostExecute() fires at the completion of the data flow not the end of the Script Component. Secondarily, the Script Component is a non-blocking transformation so the component does not "see" the end of the pipeline prior to sending data down stream. 2) Record Count -- Because of #1 above, How could you calculate a record count for a data stream? It does not appear that one can calculate the number of records for a data stream within a data flow and then access the count from within the same data flow. 3) FinishOutputs() -- Is the concept of FinishOutputs() applicable to Script Component Destinations? Asked another way, is FinishOutputs() executed at the end of the data stream regardless of whether there are "real" outputs for the component? I can create a "Dummy" output to create FinishOutputs() but is this ok? 4) Script Component -- It appears that the Script Component Source, Transformation or Destination are really defined based on the columns defined in "Inputs and Outputs". Can you convert an Source script component to a transformation script component by simply adding an Output?

How to load data into data warehouse? http://msdn.microsoft.com/en-us/library/ms137795.aspx http://www.bigresource.com/MS_SQL-opulating-Fact-Tables-Star-Schema-in-DataMartusing-DTS-0S3zfYVl.html#3JCIKRMY

You might also like