Sqlserver
 sql >> डेटाबेस >  >> RDS >> Sqlserver

क्या आप SSIS पैकेज के निष्पादन की निगरानी BIDS में कर सकते हैं, क्योंकि यह सर्वर पर चलता है?

संभावित विकल्प:

आपको Logging . का उपयोग करना होगा एसएसआईएस में सुविधा। यह आपको उन ईवेंट को कॉन्फ़िगर करने की अनुमति देता है जिनके लिए आप संदेशों को कैप्चर करना चाहते हैं। मैं आमतौर पर लॉग पसंद करता हूँ OnWarning और OnError पैकेज में होने वाली सभी चेतावनी और त्रुटि संदेशों का ट्रैक रखने के लिए। लॉगिंग डेटा को बचाने के लिए आपके पास विभिन्न प्रदाता हैं। मैं SQL सर्वर का उपयोग करना पसंद करता हूं ताकि मैं लॉगिंग जानकारी को क्वेरी कर सकूं।

एसएसआईएस 2012 से दिखाए गए लॉगिंग विकल्प:

पैकेज में लॉगिंग सक्षम करने के लिए, आपको पैकेज Business Intelligence Development Studio (BIDS) पर क्लिक करना होगा। यदि आप SSIS 2005 - 2008 R2 या SQL Server Data Tools (SSDT) में पैकेज विकसित कर रहे हैं यदि आप SSIS 2012 में पैकेज विकसित कर रहे हैं।

SSIS पर क्लिक करें मेनू पर क्लिक करें और फिर Logging... . पर क्लिक करें

आप SSIS लॉग कॉन्फ़िगर करें संवाद देखेंगे।

बाईं ओर, आप ईवेंट डेटा लॉग करने के लिए पैकेज या व्यक्तिगत कार्यों की जांच कर सकते हैं।

प्रदाताओं और लॉग्स . पर टैब में, आप एक उपयुक्त प्रदाता का चयन कर सकते हैं जिसमें आप लॉग जानकारी सहेज सकते हैं। नीचे दिए गए स्क्रीनशॉट से पता चलता है कि कनेक्शन प्रबंधक OLEDB_PracticeDB का उपयोग करके घटना की जानकारी SQL सर्वर डेटाबेस में कैप्चर की गई है।

विवरण पर टैब में, आप चुन सकते हैं कि आप किन घटनाओं को कैप्चर करना चाहते हैं। नीचे दिया गया स्क्रीनशॉट दिखाता है कि मैं निम्नलिखित घटनाओं को कैप्चर कर रहा हूं।

  • त्रुटि पर
  • सूचना पर
  • ऑनटास्कविफल
  • चेतावनी

@William Todd Salzman को धन्यवाद OnTaskFailed . की अनुशंसा करने के लिए घटना

नमूना पैकेज चित्रण:

मान लें कि हमारे पास SO_15004109.dtsx . नाम का एक पैकेज है डेटा प्रवाह कार्य . के साथ और स्क्रिप्ट कार्य . डेटा प्रवाह कार्य केवल एक डमी है जिसमें कोई घटक नहीं है।

कस्टम जानकारी, चेतावनी और त्रुटि संदेशों को सक्रिय करने के लिए स्क्रिप्ट कार्य में मुख्य विधि में निम्न कोड है ताकि हम देख सकें कि यह लॉगिंग डेटा स्रोत में कैसे कैप्चर किया जाता है। कोड SSIS 2012 के लिए लिखा गया है, इसलिए आपको इसे SSIS 2005 के लिए बदलना पड़ सकता है। मैंने VB.NET चुना है। C# . के बजाय क्योंकि आपने इस प्रश्न को और SSIS 2005 केवल VB.NET का समर्थन करता है।

SSIS 2005 और इसके बाद के संस्करण के लिए VB.NET में स्क्रिप्ट टास्क कोड।

#Region "Imports"
Imports System
Imports System.Data
Imports System.Math
Imports Microsoft.SqlServer.Dts.Runtime
#End Region

<Microsoft.SqlServer.Dts.Tasks.ScriptTask.SSISScriptTaskEntryPointAttribute()> _
<System.CLSCompliantAttribute(False)> _
Partial Public Class ScriptMain
    Inherits Microsoft.SqlServer.Dts.Tasks.ScriptTask.VSTARTScriptObjectModelBase

    Public Sub Main()

        Dim fireAgain As Boolean = False
        Dts.Events.FireInformation(101, "Custom Script Information", "This is a test information message.", String.Empty, 0, fireAgain)
        Dts.Events.FireWarning(201, "Custom Script Warning", "This is a test warning message.", String.Empty, 0)
        Dts.Events.FireError(201, "Custom Script Error", "This is a test error message.", String.Empty, 0)

        Dts.TaskResult = ScriptResults.Success
    End Sub

#Region "ScriptResults declaration"
   
    Enum ScriptResults
        Success = Microsoft.SqlServer.Dts.Runtime.DTSExecResult.Success
        Failure = Microsoft.SqlServer.Dts.Runtime.DTSExecResult.Failure
    End Enum

#End Region

End Class

यदि हम पैकेज को निष्पादित करते हैं, तो यह विफल हो जाएगा क्योंकि हमने स्क्रिप्ट कार्य . में एक त्रुटि उठाई है ।

यदि आप डेटा स्रोत पर नेविगेट करते हैं जहां आपने त्रुटियां लॉग की हैं, तो आप देखेंगे कि यदि आपने SQL सर्वर लॉगिंग प्रदाता चुना है तो SSIS जानकारी लॉग करने के लिए एक तालिका बनाता है। नीचे दी गई तालिका में लॉग प्रदाता के रूप में चुने गए SQL सर्वर डेटाबेस में SSIS द्वारा बनाई गई लॉगिंग तालिका को सूचीबद्ध किया गया है।

SSIS Version   Log table name    Table type
-------------- ----------------  ----------
SSIS 2005      dbo.sysdtslog90   User
SSIS 2008      dbo.sysdtslog100  User
SSIS 2008 R2   dbo.sysssislog    System
SSIS 2012      dbo.sysssislog    System

इस नमूना पैकेज द्वारा कैप्चर की गई घटनाओं को देखने के लिए डेटाबेस में क्वेरी के नीचे निष्पादित किया गया था। आपको कुछ संदेश दो बार दिखाई देंगे क्योंकि प्रत्येक कंटेनर और कार्यों के लिए ईवेंट लॉग होते हैं। तालिका का नाम है dbo.sysssislog क्योंकि पैकेज SSIS 2012 में बनाया गया था।

select id, event, source, message from dbo.sysssislog;

लॉगिंग के साथ व्यक्तिगत अनुभव:

क्या गलत हुआ यह समझने के लिए लॉगिंग त्रुटि संदेशों को देखने में मुझे काफी अच्छी सफलता मिली है। मेरी राय में, उत्पादन वातावरण में डिबगिंग पैकेज उचित नहीं है। हालांकि, लॉग इवेंट को कैप्चर करना बेहतर होता है।

जब मैंने एसएसआईएस 2005 और 2008 में काम किया, तो मैंने एसएसआरएस आधारित रिपोर्टें बनाई हैं जो नौकरी के निष्पादन की दैनिक रिपोर्ट तैयार करने के लिए लॉग टेबल पर सवाल उठाती हैं और रुचि के व्यक्तियों को एक पीडीएफ अटैचमेंट भेजती हैं।

SSIS 2012 में स्थिति में सुधार हुआ है कि यह टूल के साथ इन-बिल्ट रिपोर्टिंग क्षमताओं के साथ आता है। एकीकरण सेवा कैटलॉग जो SSIDB . नाम का एक डेटाबेस बनाता है



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Vbscript का उपयोग करके SQL सर्वर पर एक बड़े csv (500k रिकॉर्ड) को संसाधित करने और आयात करने का सबसे अच्छा तरीका क्या है?

  2. Sql में नई xml नोड प्रविष्टि को अद्यतन करने या बनाने के लिए IF/ELSE कथन का उपयोग कैसे करें

  3. एक डेटाबेस मेल प्रोफाइल बनाएं (SSMS)

  4. टीएसक्यूएल फॉर फिल्टर एक्सपीरियंस फ्रॉम रेंज मल्टीसेलेक्ट

  5. SQL सर्वर 2008 - संख्या के साथ तार द्वारा क्रम संख्यात्मक रूप से