sql server - एक एसएसआईएस पैकेज का उपयोग कर डेटाबेस में XML फ़ाइल को कैसे लोड किया जाए?




sql-server ssis (2)

मैं विजुअल स्टूडियो 2008 में एसएसआईएस का उपयोग कर रहा हूं। मेरे पास बहुत से एक्सएमएल फाइल हैं जो मुझे प्रोसेस करने और मौजूदा डीबी संरचना (एसक्यूएल सर्वर 2005) में स्थानांतरित करने की आवश्यकता है। यह मेरा SSIS का उपयोग करने का पहला प्रयास है और मैं थोड़ी सी अटक गया हूं। मुझे एक्सएमएल डेटा फ्लो कार्य मिल गया है, इसे एक परीक्षण एक्सएमएल फ़ाइल सौंपा गया है और यह एक्सएसडी से जुड़ा है, और एक नोड को डेटाबेस तालिका में मैप किया गया है। मेरा प्रश्न यह है, कि मैं कई टेबलों के साथ कई एक्सएसडी नोड कैसे जोड़ूं? निश्चित रूप से मुझे प्रत्येक तालिका के लिए XML स्रोत सेट अप करने की आवश्यकता नहीं है?


यहां एक संभव विकल्प है जो एक SQL सर्वर तालिका में एक ही परिभाषा वाले एकाधिक XML फ़ाइलों को लोड करने का तरीका दिखाता है। उदाहरण SQL Server 2008 R2 और SSIS 2008 R2 का उपयोग करता है यहां दिखाया गया उदाहरण एसएमसी तालिका में XML Source घटक की मदद से एसएसआईएस Data Flow Task का उपयोग करके तीन एक्सएमएल फाइल लोड करता है।

चरण-दर-चरण प्रक्रिया:

  1. dbo.Items नामक तालिका बनाएँ। एसक्यूएल स्क्रिप्ट्स अनुभाग में दिए गए स्क्रिप्ट का उपयोग करते हुए dbo.Items
  2. XSD फ़ाइल अनुभाग के अंतर्गत प्रदान की गई सामग्री का उपयोग करके फ़ोल्डर पथ में Items.xsd नामक एक XSD फ़ाइल बनाएँ : C: \ temp \ xsd
  3. XML फ़ाइलें अनुभाग के अंतर्गत प्रदान की गई सामग्री का उपयोग करके फ़ोल्डर पथ C: \ temp \ xml में तीन XML फ़ाइलों को Items_1.xml , Items_2.xml और Items_3.xml बनाएँ।
  4. पैकेज पर, 3 चर बनायें, अर्थात् FileExtension , FilePath और FolderPath स्क्रीनशॉट # 1 में दिखाए गए अनुसार।
  5. पैकेज के कनेक्शंस मैनेजर्स पर, SQL सर्वर इंस्टेंस से जुड़ने के लिए SQL सर्वर नामक एक OLE DB कनेक्शन बनाएं, जैसा कि स्क्रीनशॉट # 2 में दिखाया गया है
  6. Control Flow टैब पर, Foreach loop container और Foreach loop container भीतर एक Data Flow Task को स्क्रीनशॉट # 3 में दिखाए अनुसार रखें।
  7. स्क्रीनशॉट # 4 और # 5 में दिखाए गए अनुसार Foreach Loop container को कॉन्फ़िगर करें
  8. Data Flow टैब पर नेविगेट करने के लिए Data Flow Task पर डबल-क्लिक करें। स्क्रीनशॉट # 6 में दिखाए अनुसार एक XML Source घटक और एक OLE DB Destination
  9. स्क्रीनशॉट # 7 और # 8 में दिखाए अनुसार XML Source को कॉन्फ़िगर करें एक्सएमएल फ़ाइल पथ चर FilePath से प्राप्त किया जाएगा यह चर Foreach Loop container द्वारा आबादी जाएगी
  10. स्क्रीनशॉट # 9 और # 10 में दिखाए अनुसार OLE DB Destination को कॉन्फ़िगर करें
  11. स्क्रीनशॉट # 11 और # 12 पैकेज निष्पादन दिखाते हैं
  12. स्क्रीनशॉट # 13 पैकेज निष्पादन से पहले तालिका डेटा दिखाता है। स्क्रीनशॉट # 14 पैकेज निष्पादन के बाद तालिका डेटा दिखाता है। तालिका में डेटा dbo.Items अब तीन XML फ़ाइलों में डेटा मौजूद है

उम्मीद है की वो मदद करदे।

SQL स्क्रिप्ट:

CREATE TABLE [dbo].[Items](
    [Id] [int] IDENTITY(1,1) NOT NULL,
    [ItemNumber] [nvarchar](50) NOT NULL,
    [ItemName] [nvarchar](60) NOT NULL,
    [Price] [numeric](18, 2) NOT NULL,
CONSTRAINT [PK_Items] PRIMARY KEY CLUSTERED ([Id] ASC)) ON [PRIMARY]
GO

एक्सएसडी फाइल

<xsd:schema xmlns:schema="ItemsXSDSchema" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:sqltypes="http://schemas.microsoft.com/sqlserver/2004/sqltypes" targetNamespace="ItemsXSDSchema" elementFormDefault="qualified">
    <xsd:import namespace="http://schemas.microsoft.com/sqlserver/2004/sqltypes" schemaLocation="http://schemas.microsoft.com/sqlserver/2004/sqltypes/sqltypes.xsd" />
    <xsd:element name="Items">
        <xsd:complexType>
            <xsd:sequence>
                <xsd:element minOccurs="0" maxOccurs="unbounded" name="Item">
                    <xsd:complexType>
                        <xsd:sequence>
                            <xsd:element name="Id" type="sqltypes:int" />
                            <xsd:element name="ItemNumber">
                                <xsd:simpleType>
                                    <xsd:restriction base="sqltypes:nvarchar" sqltypes:localeId="1033" sqltypes:sqlCompareOptions="IgnoreCase IgnoreKanaType IgnoreWidth" sqltypes:sqlSortId="52">
                                        <xsd:maxLength value="20" />
                                    </xsd:restriction>
                                </xsd:simpleType>
                            </xsd:element>
                            <xsd:element name="ItemName">
                                <xsd:simpleType>
                                    <xsd:restriction base="sqltypes:nvarchar" sqltypes:localeId="1033" sqltypes:sqlCompareOptions="IgnoreCase IgnoreKanaType IgnoreWidth" sqltypes:sqlSortId="52">
                                        <xsd:maxLength value="60" />
                                    </xsd:restriction>
                                </xsd:simpleType>
                            </xsd:element>
                            <xsd:element name="Price">
                                <xsd:simpleType>
                                    <xsd:restriction base="sqltypes:numeric">
                                        <xsd:totalDigits value="18" />
                                        <xsd:fractionDigits value="2" />
                                    </xsd:restriction>
                                </xsd:simpleType>
                            </xsd:element>
                        </xsd:sequence>
                    </xsd:complexType>
                </xsd:element>
            </xsd:sequence>
        </xsd:complexType>
    </xsd:element>
</xsd:schema>

एक्सएमएल फ़ाइलें

Items_1.xml

<?xml version="1.0"?>
<Items xmlns="ItemsXSDSchema">  
    <Item>
        <Id>1</Id>
        <ItemNumber>I2345343</ItemNumber>
        <ItemName>Monitor</ItemName>
        <Price>299.99</Price>
    </Item>
</Items>

Items_2.xml

<?xml version="1.0"?>
<Items xmlns="ItemsXSDSchema">  
    <Item>
        <Id>1</Id>
        <ItemNumber>J1231231</ItemNumber>
        <ItemName>Mouse</ItemName>
        <Price>29.99</Price>
    </Item>
</Items>

Items_3.xml

<?xml version="1.0"?>
<Items xmlns="ItemsXSDSchema">  
    <Item>
        <Id>1</Id>
        <ItemNumber>K0456212</ItemNumber>
        <ItemName>Keyboard</ItemName>
        <Price>49.99</Price>
    </Item>
</Items>

स्क्रीनशॉट # 1:

स्क्रीनशॉट # 2:

स्क्रीनशॉट # 3:

स्क्रीनशॉट # 4:

स्क्रीनशॉट # 5:

स्क्रीनशॉट # 6:

स्क्रीनशॉट # 7:

स्क्रीनशॉट # 8:

स्क्रीनशॉट # 9:

स्क्रीनशॉट # 10:

स्क्रीनशॉट # 11:

स्क्रीनशॉट # 12:

स्क्रीनशॉट # 13:

स्क्रीनशॉट # 14:


आपको [XML Source].[XMLData] में [XML Source].[XMLData] @[user::FilePath] [XML Source].[XMLData] को [XML Source].[XMLData] डेटा प्रवाह कार्य या पैकेज में [XML Source].[XMLData] पैकेज निष्पादन के बाद कोई स्रोत फ़ाइल नहीं मिली





business-intelligence