12
SSIS Interview Questions and Answers : Deployment Deployment Question: How to create the deployment utility? Question: How to deploy the packages SSIS? Question: Where a package does deploys in Integration service database? Question: What is Manifest file in SSIS? Question: What is File System Deployment? Question: how to back up or retrieve the SSIS package? Question: What are the different databases in Integration services while login through SSMS? How to Create Deployment Utility: Deployment is the process in which package converts into development mode to executable mode. For Deploying the SSIS package you can directly deploy the package by right clicking Integration services project and build it. This will save the package.dtsx file on bin\project folder. In my case below is the location. C:\Documents and Settings \My Documents\Visual Studio 2008\projects. Also you can create the deployment utility using which the package can be deployed at either SQL Server or as a file on any location. For creating deployment utility follow below steps. 1. Right Click on project and click on properties, you will get the below screen. 2. In above screen, select true for createDeploymentUtility Option. Also you can set the deployment path. 3. Now close the window after making the changes and build the project by right clicking on project. 4. A deployment folder will be created in BIN folder of your main project location. C:\Documents and Settings \My Documents\Visual Studio 2008\projects. 5. Deployment folder you will find .manifest file, double clicking on it you can get options to deploy package on SQL Server. 6. Login in to SQL Server Deploy the package in integration services and you can verify it by checking MSDB on integration Services. Question: What is Manifest file in SSIS? Manifest while if the utility which can be used to deploy the package using wizard on file system and SQL Server database. Question: What is File System Deployment? File system deployment means to save package file on local or network drive. Question: how to back up or retrieve the SSIS package If your package is deployed on SQL Server then you can back up the MSDB database as all the package on SQL server deploys at MSDB.

SSIS QA

Embed Size (px)

DESCRIPTION

SSIS QA

Citation preview

SSIS Interview Questions and Answers : Deployment DeploymentQuestion: How to create the deployment utility?Question: How to deploy the packages SSIS?Question: Where a package does deploys in Integration service database?Question: What is Manifest file in SSIS?Question: What is File System Deployment?Question: how to back up or retrieve the SSIS package?Question: What are the different databases in Integration services while login through SSMS?How to Create Deployment Utility:Deployment is the process in which package converts into development mode to executable mode.For Deploying the SSIS package you can directly deploy the package by right clicking Integration servicesproject and build it. This will save the package.dtsx file on bin\project folder. In my case below is the location.C:\Documents and Settings \My Documents\Visual Studio 2008\projects.Also you can create the deployment utility using which the package can be deployed at either SQL Server or as afile on any location.For creating deployment utility follow below steps.1. Right Click on project and click on properties, you will get the below screen.2. In above screen, select true for createDeploymentUtility Option. Also you can set the deployment path.3. Now close the window after making the changes and build the project by right clicking on project.4. A deployment folder will be created in BIN folder of your main project location. C:\Documents andSettings \My Documents\Visual Studio 2008\projects.5. Deployment folder you will find .manifest file, double clicking on it you can get options to deploypackage on SQL Server.6. Login in to SQL Server Deploy the package in integration services and you can verify it by checkingMSDB on integration Services.Question: What is Manifest file in SSIS?Manifest while if the utility which can be used to deploy the package using wizard on file system and SQLServer database.Question: What is File System Deployment?File system deployment means to save package file on local or network drive.Question: how to back up or retrieve the SSIS packageIf your package is deployed on SQL Server then you can back up the MSDB database as all the package on SQLserver deploys at MSDB.

What is Transaction in SSIS package and how to implement it? (SSIS Interview Questions)

Packages use transactions to bind the database actions that tasks perform into atomic units, and by doing this maintain data integrity. All MicrosoftIntegration Services container typespackages, the For Loop, For each Loop, and Sequence containers, and the task hosts that encapsulate each taskcan be configured to use transactions. Integration Services provides three options for configuring transactions: NotSupported, Supported, and Required.

Required indicates that the container starts a transaction, unless one is already started by its parent container. If a transaction already exists, the container joins the transaction. For example, if a package that is not configured to support transactions includes a Sequence container that uses the Required option, the Sequence container would start its own transaction. If the package were configured to use the Required option, the Sequence container would join the package transaction. Supported indicates that the container does not start a transaction, but joins any transaction started by its parent container. For example, if a package with four Execute SQL tasks starts a transaction and all four tasks use the Supported option, the database updates performed by the Execute SQL tasks are rolled back if any task fails. If the package does not start a transaction, the four Execute SQL tasks are not bound by a transaction, and no database updates except the ones performed by the failed task are rolled back. NotSupported indicates that the container does not start a transaction or join an existing transaction. A transaction started by a parent container does not affect child containers that have been configured to not support transactions. For example, if a package is configured to start a transaction and a For Loop container in the package uses the NotSupported option, none of the tasks in the For Loop can roll back if they fail.

Question: How to implement isolation level in SSIS package?Can Implement Isolation Level by configuring Isolation Level property of package by right clicking on it and finding Isolation property.Question: What is chaos in isolation level options in SSIS?"Chaos" - like "Read Uncommitted," permits viewing uncommitted changes, but without holding update locks until the end of transaction. Due to its lack of support on the SQL Server platform and inability to roll back, it is rarely used.

SSIS Interview Questions: Checkpoint Checkpoint is the property in SSIS which enables the project to restart from the point of failure. When we set the property to true package create the checkpoint file which stores the information about package execution and use to restart package from the point of failure.If the package runs successfully, the checkpoint file is deleted, and then re-created the next time the package is run.

You can assign value to variables and connection manager and can also change other attributes dynamically at run time using configuration file.For creating config file you right click on package body select the configuration option and then select a file type and attribute which you want to add in that config file.There various options provided for handling config details such as creating XML files, using SQL Server database table environment package variables.Package configurations provide the following benefits:Easy to move package from one environment to other.Helpful when there are system dependent variable which are used in packageIntegration Services supports several different methods of storing package configurations, such as XML files, tables in a SQL Server database, and environment and package variables.Each configuration is a property/value pair. The XML configuration file and SQL Server configuration types can include multiple configurations.Configurations are included in deployment utility for installing packages.

Checkpoint data is not saved for ForLoop and ForEach Loop containers. Whenever package restarts the For Loop and ForEach Loop containers and the child containers are run again. So as conclusion for loop a container if a child container in the loop runs successfully, it is not recorded in the checkpoint file, instead it is rerun.There is work around for this as listed on Microsoft website: put loop task inside the sequence container task.Now one big thing which you have to remember that checkpoint applies for control flow task only it means if there is failure in data-flow task it will rerun the data-flow task again. For example there is data-flow task where out of 50000 records 20000 transferred in to destination. At this point a general error occurs and fails the data-flow task. Now what will checkpoint do will the data-flow continue for rest records or it will start from new when package restart. Answer simply entire data-flow task will restart from beginning.

Difference between Control flow and Data flow Difference between control flow and data flow: Control flow is for designing the flow of package. Dataflow if for ETL process. Dataflow is the subset of control flow. There will be only one control flow while multiple dataflow can exists. Data flow cant work without a control flow.Control flow is the main window or interface of the package where we design entire flow i.e. Control Flow depicts the flow of execution of task.All the tasks in any packages are subset of control flow. So all this indicates that a package can have only one control flow. All process base tasks are part of control flow while ETL related tasks are the part of Dataflow which is again a subset of control flow.

For Loop and For Each Loop For Loop and For Each loop both are used for looping the object or tasks in SSIS package. But both of them work differently.For Loop is like normal for loop where you defines the EVAL expression and task loops that no of times. For example if you want to iterate some task 20 times it will loop for 20 times and then stop.While For Each Loop works for object level let say we have a folder in which there are multiple files and these files need be dumped into database. For this you need to iterate for each file which is possible through for each loop task. For Each loop task will iterate for each file in the folder. You can say its iterates for the collection. For each loop has multiple type of iterates.What is Sequence Container?

Sequence Containers handle the flow of a subset of a package and can help you divide a

Package into smaller, more manageable pieces. Some nice applications that you can use

Sequence containers for include the following: Grouping tasks so that you can disable a part of the package that s no longer needed Narrowing the scope of the variable to a container Managing the properties of multiple tasks in one step by setting the properties of the Container Using one method to ensure that multiple tasks have to execute successfully before the next task executes Creating a transaction across a series of data - related tasks, but not on the entire package Creating event handlers on a single container, wherein you could send an email if anything inside one container fails and perhaps page if anything else fails

Question: What is Execute SQL Task?The Execute SQL Task is one of the most widely used tasks in SSIS for interacting with an RDBMS dataSource. The Execute SQL Task can be used for many sorts of things, like Truncating staging data table prior to importing, Retrieving row counts to determine the next step in a workflow, To call stored procedures to perform business logic against sets of staged data. The task used to retrieve information from a database repository.The output from this can be obtained as recordset, multiple variables and other multiple sources.

Difference between Execute TSQL Task and Execute SQL Task In SSIS there is one tasks Execute TSQL task which is similar to Execute SQL task. Will see what is the difference between two.Execute TSQL Task Execute SQL Task

Takes less memory Takes more memory compare to ETL

Parameterized queries not supportParameterized query possible

Output into variable not supportedsupported

Only ADO.net connection supportedSupported multiple type of connection

Faster performanceComparatively low

Question: What is slowly changing dimensions?

Analysis Services ComponentQuestion: What is slowly changing dimensions?The Slowly Changing Dimension (SCD) Transform provides a great head start in helping to solve acommon, classic changing - dimension problem that occurs in the outer edge of your data model the dimension or lookup tables. A dimension table contains a set of discrete values with a description and often other measurableattributes such as price, weight, or sales territory. The classic problem is what to do in your dimension data when an attribute in a row changes, particularly when you are loading data automatically through an ETL process. Using this transform you can easily do for what you can shave days off of your development time in relation to creating the load manually through TSQL.Question: Lets say there are changes made in table A and that need to be replicated in data warehouse for same record. Table A exists in both db already and whatever changes done to it need to be reflected in datawarehouse. Create the package for it. Can create the package using Slowly Changing dimensions.

SSIS Interview Questions :Execute DDL Task

The SQL Server Analysis Services Execute DDL Task is the Analysis Services equivalent of the ExecuteSQL Task, but limited in scope to issuing Data Definition Language statements. The task simplyexecutes a DDL statement against an Analysis Services system. Typically, you would use DDL statements to create a cube, a dimension, or any other online analytical processing (OLAP) object.To configure the task, go to the DDL tab and select the Connection Manager that you wish toexecute the DDL statement against in the Connection option. Then in the Source Type property, select whether the DDL statement will be directly inputted, pulled from a file, or pulled from a variable option.Essentially the source type option determines whether you need to key in the DDL statement directly, provide a variable, or point to a file where the DDL statement is stored.SSIS Interview : Data Profiling Task

Data profiling is the process of analyzing the source data to better understand what condition the datais in, in terms of cleanliness, patterns, number of nulls, and so on. In fact, you probably have donedata profiling before with scripts and spreadsheets, but perhaps you didn t realize that it was called data profiling The output of the Data Profiling Task will be used to help you in your development and design of the ETL and dimensional structures in your solution. Periodically, you may want to re - run the Data Profile Task to see how the data has changed, but the package you develop will not include the task in the overall recurring ETL process.

SSIS Interview: Data Conversion and Derived Column The Data Conversion Transform performs a similar function to the CONVERT or CASTFunctions In TSQL. The transform is configured in the Data Conversion Transformation Editor,where you would check each column that you wished to convert and then assign what youwish to convert it to under the Data Type column. The Output Alias is the column name you want to assign to the column after it is transformed.If you don t assign it a new name, it will show as Data Conversion: ColumnName later in theData Flow.The Derived Column Transformcreates a new column that is derived from the outputAnother column. It is one of the most important transforms in your Data Flow arsenal. You maywish to use this transformation, for example, to multiply the quantity of orders by the cost ofthe order to derive the total cost of the order. You can also use it to find outthe current date or to fill in the blanks in the data by using the ISNULL function. This is one ofthe top five transforms that you ll find yourself using to alleviate the need for TSQL scripting inthe package. To configure this transform, drag the column or variable into the Expressioncolumn .Then add any functions to it. A list of functions can be found in the top - right corner ofthe Derive Column Transformation Editor. You must then specify, in the Derived Column dropdown box, if you want the output to replace an existing column in the Data Flow or to create anew column.SSIS Interview Questions: SSIS Multicast Task Multicast transformation in SSIS which convert one input into multiple output which can be then used for different operations.For example when we need to save the data in destination on the basis of two different look-up tables. The multicast can generate two outputs on which look-up operation can do simultaneously. Multicast is to increase database efficiency of package.

Difference Between Merge and Union All

The Merge Transform can merge data from two paths into a single output. The transform isuseful when you wish to break out your Data Flow into a path that handles certain errors and then merge it back into the main Data Flow downstream after the errors have been handled. It s also useful if you wish to merge data from two Data Sources.The data must be sorted before the Merge Transform. You can do this by using the SortTransform prior to the merge or by specifying an ORDER BY clause in the source connection.The metadata must be the same between both paths. For example, the CustomerID columncant be a numeric column in one path and a character column in another path.The Union All Transform works much the same way as the Merge Transform, but it does notrequire the data be sorted. It takes the outputs from multiple sources or transforms andcombines them into a single result set.

SSIS Synchronous and Asynchronous

Transformations are broken into two main categories: synchronous and asynchronous. Synchronous transformations are components like the Derived Column and Data ConversionTransforms where rows flow into memory buffers in the transform and the same buffers comeout. No rows are held and typically these transforms perform very quickly with minimal impactto your Data Flow.There are two types of asynchronous transforms: fully blocking and partial blocking.Partial blocking transforms, such as the Union All Transform, create new memory buffers forthe output other transform than what come into the transform. Full blocking transforms, suchas the Sort and Aggregate Transforms, do the same thing but cause a full block of the data. Inorder to sort the data, SSIS must first see every single row of the data. If you have a 100MBfile, then you may require 200MB of RAM in order to process the Data Flow because of a fullyblocking transform. These fully blocking transforms represent the single largest slowdown inSSIS and architecture decisions you must make.

SSIS Interview : OLE DB Command Transform

The OLE DB Command Transform is a component designed to execute a SQL statement foreach row in an input stream. This task is analogous to an ADO Command object being created,prepared, and executed for each row of a result set. The input stream provides the data forparameters that can be set into the SQL statement that is either an in - line statement or astored procedure call. We don t know about you, but just hearing the for each row phrasein the context of SQL makes us think of another phrase performance degradation. Thisinvolves firing an update, insert, or delete statement, prepared or unprepared some unknownnumber of times. This doesn t mean there aren t any good reasons to use this transformation .Pay specific attention to the volume ofinput rows that will be fed into it. Weigh the performance and scalability aspects during yourdesign phases against a solution that would cache the stream into a temporary table and useset - based logic instead. To use the OLE DB Command Transform Task, you basically need todetermine how to set up the connection where the SQL statement will be run, provide the SQLstatement to be executed, and configure the mapping of any parameters in the input stream tothe SQL statement. Take a look at the settings for the OLE DB Command Transformation byopening its editor. The OLE DB Command Transform is another component that uses theAdvanced Editor.

Script Task InterviewQuestion: What is Script Task?Question: What is Script Component?Question: How to use script component as Source and Destination?Question: What are the languages available for coding in Script Task?Question: How to Handle Object Variable in Script Task?Question: What are the steps to use a package Variable in Script Task?

SSIS Interview : Config Files Config file in Sql Server Integration Service is used to provide inputs to connection manager different properties which package use to assign values at run time dynamically.Using config file user need to make changes to the config file which package will take automatically at run time because of using it you don't need to every time made changes in package in case you are deploying package on multiple servers or locations.There are multiple ways in which configuration values can be store.

XML configuration fileStore the configuration as an XML file. .Environment variableStore the configuration in one of the environment variables.Registry entryStore the configuration in the registry.Parent package variableStore the configuration as a variable in the package that contains the task.SQL ServerStore the configuration in a table in SQL Server.

Here are the steps to enable the config file for package.On the SSIS package, right click and select Package Configurations.In the Package Configuration Organizer dialog box, select Enable package configurations, and then click Add.

Security InterviewQuestion: How to implement the security in SSIS package?Question: What is the protection Level in SSIS package and what are the different types of protection available?Question: How to implement database level package security?Question: What is event handler Tab in Design window?Question: What is SSIS package?Question: What are the other part tabs of package design window?

Few More During an SSIS package execution, how are SQL database errors handled? Give an example of a handled and unhandled error event in a well designed package.Error events are handled through the Event handler. Each task and container may have a dedicated ON-ERROR event defined for it. When an error occurs, the event handler is immediately invoked for the event defined at the failing task level. ON-ERROR events defined within a data flow (red line to a defined task) may be configured to not fail the load and execute any defined tasks prior to going to the next row. If no error-handling event is defined within a data flow or the error occurs in the processes flow, control is transferred to the next highest level of the package (ie. The container level). If an ON-ERROR event is defined there, that code is executed, then control is raised up the chain until the package ON-EVENT is reached. Once control leaves a data flow for an ON-ERROR event, the package will not return to the data flow.

What is a data viewer in SSIS and its uses?Data viewers are grids that can be added to any data line within the Data Flow. Bu using the data viewer you can debug the package at run time by viewing the data

How to configure package properties at runtime?By using configuration feature you can doing it run time. For this there are multiple methods.

What to insert a new column in the dataset data flow?By using derived column you can insert new column in dataset.

What is a multicast?A dataflow transformation that multiply the single dataset into multiple output as per the requirement.Multicast More Detail

Explain star schema, snowflake schema, fact and dimension table?

What is lookup transformation?

Name the two Integration Services Security Properties.

Which task will you use in a package to find corrupt or incomplete information in data?

What is the alternative for Data driven query task from DTS in SSIS?

What are some ways in which a connection task can be set dynamically within an SSIS package?

What is a UDL and what advantages does it have?Universal Data Link defines a data source. Advantages are portability, so that movingpackages from environments is easier since data source information is stored in the UDL oneach machine. For UDLs should you use Windows or SQL Server authentication? Since theUDL is an unencrypted text file you should use Windows Authentication otherwise the storedpassword is not secure.What is ragged right format in flat files?Flat files with spaces at the end of the specifications are typically difficult to process in some

ETL platforms. The Ragged Right option in SSIS provides a way to handle these easily without having to run the file through a Script Task to put a character into a consistent spot, or having the origination system reformat their extract files.

New feature in SSIS 2008 vs SSIS 2005?New feature in SSIS 2012 vs SSIS 2008?Explain parallel Execution and no of package can participate.Difference between Checkpoint and Breakpoint ?How to run your SSIS package on a schedule?What is the difference between Conditional Split and Multicast Transformation?

How to use Stored Procedure in SSIS package in dataflow task?

How to remove duplicate record in SSIS?How can a Data driven query task from DTS be implemented using the SSIS transform objects?One way to implement this functionality is to use a lookup component to determine if certain data exists (the select query of DDQ), then to redirect rowsets based on failure (data does not exist) or success (data does exist) of the lookup component to the appropriate data operation (insert/update/etc.). What are the four (4) migration tools available to Integration Services package designers that aid in migrating SQL Server 2000 DTS packages?The four migration tools are: DTS 2000 Runtime Engine, DTS 2000 Package Task, DTS 2000 Upgrade Advisor, and the DTS Package Migration Wizard