2018년 9월 29일 토요일

[SSIS] Script Task로 mysql server 연결하기

SSIS를 통해 데이터를 가지고 올 때 여러 대의 mysql 서버를 접속해서 데이터를 가지고 오는 경우가 있다. 예를 들면 게임DB가 여러 대 있을 경우 DB만 여러 개이고, 스키마 정보는 동일할 때 사용하기 좋은 방법이다.

여러 방법이 있지만 내가 아는 방법은 foreach문에 script task로 접속 정보 변경을 통해 접근하는 방법이다.

아래 코드에서 __v_dbname, __v_ip, __v_port, userid, password, connection 부분은 자신에게 맞게 수정해야 한다.

SSIS Script Task 
언어: Visual Basic

public sub Main()
        Dim db_connection As String
        Dim strdb_name As String
        Dim strsvr_ip As String
        Dim strsvr_port As String
        Dim FailConn As Boolean
        Dim FireAgain As Boolean
        Dim conn As New MySqlConnection
        FailConn = False
        FireAgain = True
        strdb_name = Dts.Variables("__v_dbname").Value.ToString           'ssis변수에서 받아오는 부분
        strsvr_ip = Dts.Variables("__v_ip").Value.ToString                        'ssis변수에서 받아오는 부분
        Strsvr_port = Dts.Variables("__v_port").Value.ToString                  'ssis변수에서 받아오는 부분
        db_connection = "server =" & strsvr_ip & ";user id=userid;password=password;port=" & Strsvr_port & ";database=" & strdb_name & ";"
        If Not conn Is Nothing Then conn.Close()
        conn.ConnectionString = db_connection
        Try
            Dts.Connections("connection").ConnectionString = db_connection
            conn.Open()
            Dts.TaskResult = ScriptResults.Success
            'MsgBox(db_connection, MsgBoxStyle.Information, db_connection)
        Catch ex As Exception
            'Dts.Events.FireError(0, "My Script Task", "An error occured:" + ex.Message.ToString(), "", 0)
            Dts.TaskResult = ScriptResults.Failure
        End Try
End sub


댓글 없음:

댓글 쓰기