Welcome to Sign in | Help
in Search

SSIS Quick Start

Last post 12-10-2006, 8:47 PM by crestinul. 24 replies.
Page 1 of 2 (25 items)   1 2 Next >
Sort Posts: Previous Next
  •  09-18-2006, 9:05 PM 101

    SSIS Quick Start

    Puteti crea pachetele SSIS programatic (folosind namespace-ul Microsoft.SqlServer.Dts.Runtime), din VS 2005, pornind de la template-ul Business Intelligence Projects ---> Integration Services Projects sau accesand All Programs ---> Microsoft SQL Server 2005 ---> SQL Server Business Intelligence Development Studio.
    In exemplul de fata veti crea un pachet SSIS folosind VS.
    1. Template-ul "Integration Services Projects" este instalat odata cu SQL Server 2005 - cand ajungeti la Components to install ---> Advanced selectati "Business Intelligence Development Studio" din "Client Components". Cand veti crea un nou proiect in VS 2005, veti observa in sectiunea "Project types" grupul de tempalates "Business Intelligence Projects".
    New SSISP ackage - img1
    2. Spre deosebire de DTS din SQL 2000, succesiunea task-urilor de procesare din pachet ("control flow") este separata de transformarea propriu-zisa a datelor de la sursa la destinatie ("data flow"). Conexiunile cu diverse surse de date (de exemplu tabele dintr-o baza de date sau fisiere text) se definesc in tab-ul "Connection Managers" din partea de jos a ecranului. "Connection manager" este un obiect care reprezinta o conexiune - una dintre proprietatile sale este "connection string". Odata definit, un "connection manager" poate fi asociat cu un task din "control flow" sau cu transformarile din "data flow".
    Tab-ul "event handlers" contine task-uri corespunzatoare evenimentelor produse de pachet (de exemplu "OnError" se produce daca in cursul executiei pachetului apar erori)
    "Package explorer" listeaza continutul pachetului - task-uri, "connection managers", variabile, etc.
    New SSIS Package - img2
    3. Pentru a adauga un prim "connection manager" dati un "right click" pe aria "Connection Managers" si alegeti "ADO.NET Connection". * Aveti nevoie de acest tip de conexiune pentru script task-ul din pasul 4. Gasiti o explicatie amanuntita in Books Online ---> Using Connections in the Script Task. Apasati butonul "New" si specificati serverul si baza de date.
     Specificati in connection string "MultipleActiveResultSets=True" daca vreti sa profitati de "MARS" - vezi imaginea
    4. Alegeti din Toolbox un "script task"
    * Gasiti o lista completa de task-uri in Books Online --->Integration Services Tasks.
    Din meniul "right click" selectati "Edit" ---> Script ---> Design Script.
    Editorul Script Task
    *Din pacate, nu puteti programa decat in VB...
    * Scriptul din acest exemplu selecteaza o coloana de tip "string" dintr-un tabel; sirul este prelucrat iar rezultatul final este inserat in tabelul "Category"
    De exemplu sirul initial este de forma "/Imported Wine/France/Burgundy/Meursault". Scriptul va "sparge" sirul dupa "/" si va crea in tabelul "Category" inregistrarile:
    CategoryID    Name                                ParentCategoryID
    1                    Imported Wine                    0
    2                    France                                1
    3                    Burgundy                            2
    4                    Meursault                            3
    Transact SQL nu este "expert" in job-uri precum prelucrarea de siruri sau "regular expressions"; folositi .NET in aceste cazuri.
    5. Pentru cazul in care apar erori in executie, puteti trimite un mesaj de e-mail folosind un "Send mail task". In cazul de fata veti folosi "Send mail task" intr-un "event handler" corespunzator evenimentului "on error" la nivel de pachet.
    *Lista completa de evenimente: Books Online ---> Integration Services Event Handlers
    Mai intai veti crea un "SMTP connection manager", care conecteaza pachetul la un server SMTP (selectati meniul SSIS ---> New connection).
    6. Puteti configura "Send mail task" folosind variabile. Variabilele pot fi incluse intr-un fisier de configurare care va fi actualizat la o eventuala portare a pachetului pe o alta masina. Variabilele definite de catre utilizator se adauga folosind tab-ul "Variables" din partea dreapta a ecranului. Domeniul ("scope") variabilei poate fi pachetul SSIS, un task, un container sau un event handler (ca in cazul de fata).
    Task-ul se configureaza din editor (accesat cu un "right click"). Incepeti cu sectiunea "Expressions" - click pe butonul "..." si din drop-down-ul "Property" alegeti "FromLine" si expandati "Expression Builder". Nodul "Variables" listeaza variabilele sistem si "user defined" . Asociati urmatoarele proprietati cu variabile:
        FromLine ---> User::sender_mail
        ToLine   ---> User::recipient_mail
        Subject  ---> System::TaskName
    * Lista completa de variabile sistem: Books Online ---> System Variables
    7. Rulati pachetul ca pe orice proiect de VS - apasati "start debugging"
  •  11-05-2006, 10:13 PM 755 in reply to 101

    Re: SSIS Quick Start

    Vrei sa spui ca nu pot programa projecte de genu asta im c#?
    Secolul XXI ori va fi religios ori nu va fi deloc
  •  11-16-2006, 9:44 PM 898 in reply to 101

    Re: SSIS Quick Start

    templeatul asta de unde-l iau e cumva in partea de client de sql?
    Secolul XXI ori va fi religios ori nu va fi deloc
  •  11-21-2006, 7:43 PM 963 in reply to 898

    Re: SSIS Quick Start

    Imi cer scuze pentru intarzierea cu care raspund. Promit sa imi "revin"...deci:

    1. In "script task" nu poti deocamdata sa programezi decat in VB (for applications)

    2. Instalezi template-ul de VS odata cu SQL Server 2005 - vezi punctul 1 din textul pe care l-am postat...

  •  11-21-2006, 8:57 PM 964 in reply to 963

    Re: SSIS Quick Start

    sarumana o sa ma apuc sa sap si eu la problema asta .o sa te mai sacai daca o sa am neclaritatiSmile sper sa nu te superi
    Secolul XXI ori va fi religios ori nu va fi deloc
  •  11-21-2006, 9:26 PM 965 in reply to 964

    Re: SSIS Quick Start

    Nici o problema...oricum voi fi mai des pe sqlserver.ro...
  •  12-01-2006, 2:29 PM 1150 in reply to 965

    Re: SSIS Quick Start

    Sunt un pic confuz dacavrei sa ma lamuresti plsz.AM creat un nou project package ot ssia.LA connections am pus o conexiune via odbc pt dbase files.AM pus si un object script manager problema e ca de ex nush cum sa refer din acerl script sursa datelor coloanele dbf,ul si destinatia care e serverul sql ca sa scriu prelucarile care vreua sa le fac asupra sursei mele de date ,ce sintaxa folosesc pentru asta de object model am la dispozitie?

    Eventual daca ai un exemplu de project de tipu asta,unul simplu.

    MUltumesc


    Secolul XXI ori va fi religios ori nu va fi deloc
  •  12-01-2006, 8:25 PM 1156 in reply to 1150

    Re: SSIS Quick Start

    Intr-o oarecare masura, mi-ai "transmis" confuzia...ce are dbase-ul cu vreun "server sql"? Deci, sperand ca te-am inteles, merg mai departe...

    Nu am lucrat niciodata cu dbase, deci cu un exemplu "fix pentru tine" nu te pot ajuta, din pacate...

    Din cate imi dau seama, problema ta ar fi referirea elementelor pachetului SSIS din script task. Poti face asta prin intermediul "Dts object". De exemplu, definesti un "connection manager" astfel:

    Dim conmgr As ConnectionManager = Dts.Connections("nume_connection_manager")

     Conexiunea propriu-zisa va fi:

    conn = CType(conmgr.AcquireConnection(Nothing), SqlConnection) 

    "Dts object" este descris destul de in amanunt in BOL (da o cautare dupa "Dts object")

    Uite si cam cum lucrezi cu o baza SQL:

     Public Sub Main()
            Dim conmgr As ConnectionManager = Dts.Connections("nume_connection_manager")
            Dim r As SqlDataReader
            Dim conn1 As SqlConnection, conn2 As SqlConnection, conn3 As SqlConnection
            Dim s As String, p As String
            Dim arr As String()
            conn1 = CType(conmgr.AcquireConnection(Nothing), SqlConnection)
            Try
                Using (conn1)
                    Dim cmd1 As New SqlCommand("SELECT DISTINCT col1 FROM Tab1 WHERE col1 IS NOT NULL", conn1)
                    Dim cmd2 As New SqlCommand("SELECT DISTINCT col2 FROM  Tab2 WHERE col2 IS NOT NULL", conn1)
                    Using (cmd1)
                        r = cmd1.ExecuteReader
                        Using (r)
                            While r.Read
                               ...your code here...

                           End While
                        End Using
                    End Using
                    Using (cmd2)
                        r = cmd2.ExecuteReader
                        Using (r)
                            While r.Read
                               ...your code here...
                            End While
                        End Using
                    End Using
                End Using
            Catch
                Dts.Events.FireError(0, "Script Task", "Unexpected error occured", String.Empty, 0)
            End Try
            Dts.TaskResult = Dts.Results.Success
        End Sub

     

  •  12-01-2006, 9:38 PM 1158 in reply to 1156

    Re: SSIS Quick Start

    SArumana pt deranj.

    EU am inceput aici un proiect d etest ca sa -mi dau seama cum lucreaza SSIS asta.

    Am creat doua connection manager sursa care bate catre un dbf si destinatia care e sql expres2005.Si vreau ca datelor din sursa sale fac prelucrari inaite de a le pune pe serverul sql.O sa ma uit in msdn la objectu ala DTS sa vad care e treaba cu el

    Multumesc


    Secolul XXI ori va fi religios ori nu va fi deloc
  •  12-02-2006, 6:04 PM 1169 in reply to 1158

    Re: SSIS Quick Start

    In cazul asta e bine sa explorezi si lucrul cu "data flow". In "data flow" poti extrage datele dintr-o sursa, le poti transforma (eventual cu un "script component") si le poti importa intr-o baza SQL ("destinatie"). Amanunte tot in BOL (SSIS ---> Integration Services Objects and Concepts)
  •  12-04-2006, 7:49 AM 1187 in reply to 1169

    Re: SSIS Quick Start

    AM pus doua dataflow source una pt sursa care e dbf si alata pt destinatie care e un server sql.Problema e ca nu stiu da le asignez connection manageri definitiSad
    Secolul XXI ori va fi religios ori nu va fi deloc
  •  12-04-2006, 5:34 PM 1192 in reply to 1187

    Re: SSIS Quick Start

    Da un "right click" pe obiectul adaugat si selecteaza "Edit"...
  •  12-05-2006, 12:00 PM 1201 in reply to 1192

    Re: SSIS Quick Start

    Merci

    AM facut asta da mi se pare ciudat ca nu vad acolo connecion manageri definit de mine si tb sa definesc altii in cadrul unei datasources asta odata.

    Iar pt destination datasource nush ce tip de sursa sa aleg sa ma pot conecta la dbf-uri

     


    Secolul XXI ori va fi religios ori nu va fi deloc
  •  12-05-2006, 9:19 PM 1220 in reply to 1201

    Re: SSIS Quick Start

    In editorul sursei apar numai acei connection manageri care corespund tipului acesteia. De exemplu, daca adaugi in "data flow" un obiect "OLE DB source", in "Edit" --- > Connection Manager vor aparea numai connection managerii care au ConnectionManagerType =OLEDB (asta vezi in proprietatile connection managerului).

    Pentru dbase  incearca "OLE DB source"...

  •  12-05-2006, 10:41 PM 1222 in reply to 1220

    Re: SSIS Quick Start

    Multumesc.Din cunostintele mele nu cred ca ma pot conecta cu oledb la dbf.Cum as putea face totusi asta ce provider de oledb sa aleg cand imi defiesc conexiunea?
    Secolul XXI ori va fi religios ori nu va fi deloc
Page 1 of 2 (25 items)   1 2 Next >
View as RSS news feed in XML
Powered by Community Server (Commercial Edition), by Telligent Systems