Jegyzet
Az oldalhoz való hozzáférés engedélyezést igényel. Próbálhatod be jelentkezni vagy könyvtárat váltani.
Az oldalhoz való hozzáférés engedélyezést igényel. Megpróbálhatod a könyvtár váltását.
A következőkre vonatkozik:SQL Server
SSIS integrációs modul az Azure Data Factoryben
A Rekordhalmaz célhelye nem menti az adatokat külső adatforrásba. Ehelyett a Rekordhalmaz célhelye a memóriába menti az adatokat egy olyan rekordhalmazba, amely az Objektum adattípus egy Integration Services-csomagváltozójában van tárolva. Miután a Rekordhalmaz célhely mentette az adatokat, általában egy Foreach Loop-tárolót használ a Foreach ADO enumerátorral a rekordhalmaz egy sorának feldolgozásához egyszerre. A Foreach ADO enumerátor az aktuális sor minden oszlopából egy külön csomagváltozóba menti az értéket. Ezután a Foreach Loop-tárolóban konfigurált feladatok beolvassák ezeket az értékeket a változókból, és végrehajtanak velük valamilyen műveletet.
A Rekordhalmaz célhelyét számos különböző forgatókönyvben használhatja. Íme néhány példa:
A Levelek küldése feladat és az Integration Services kifejezésnyelv használatával testre szabott e-mail üzenetet küldhet a rekordhalmaz minden sorához.
Egy adatforrásként konfigurált szkriptösszetevővel egy adatfolyam-feladaton belül beolvashatja az oszlopértékeket az adatfolyam oszlopaiba. Ezután átalakításokat alkalmazva és célhelyeket használva alakíthatja át és mentheti a sort. Ebben a példában az adatfolyam-feladat minden sorhoz egyszer fut.
A következő szakaszok először a Rekordhalmaz célhelyének használatának általános folyamatát ismertetik, majd egy konkrét példát mutatnak a célhely használatára.
A rekordhalmaz célhelyének használatának általános lépései
Az alábbi eljárás összefoglalja azokat a lépéseket, amelyek szükségesek ahhoz, hogy adatokat mentsen egy Rekordhalmaz-célhelyre, majd a Foreach Loop-tárolóval dolgozza fel az egyes sorokat.
Adatok mentése a Rekordhalmaz célhelyére, és az egyes sorok feldolgozása a Foreach Hurok tárolóval
Az SQL Server Data Tools (SSDT) alkalmazásban hozzon létre vagy nyisson meg egy Integration Services-csomagot.
Hozzon létre egy változót, amely tartalmazza a Rekordhalmaz célhelye által a memóriába mentett rekordhalmazt, és állítsa a változó típusát Objektum.
Hozzon létre további változókat a megfelelő típusok közül, amelyek tartalmazzák a használni kívánt rekordhalmaz egyes oszlopainak értékeit.
Adja hozzá és konfigurálja az adatfolyamban használni kívánt adatforráshoz szükséges kapcsolatkezelőt.
Adjon hozzá egy adatfolyam-feladatot a csomaghoz, és az SSIS Designer Adatfolyam lapján konfiguráljon forrásokat és átalakításokat az adatok betöltéséhez és átalakításához.
Adjon hozzá egy Rekordhalmaz-célhelyet az adatfolyamhoz, és csatlakoztassa az átalakításokhoz. A rekordhalmaz célhelyének VariableName tulajdonságához adja meg annak a változónak a nevét, amelyet a rekordhalmaz tárolásához hozott létre.
Az SSIS Designer Control Flow lapján adjon hozzá egy Foreach Loop-tárolót, és csatlakoztassa ezt a tárolót az adatfolyam-feladat után. Ezután nyissa meg a Foreach Hurokszerkesztő a tároló konfigurálásához a következő beállításokkal:
A Gyűjtemény lapon válassza ki a Foreach ADO Enumerator lehetőséget. Ezután ADO objektumforrás változójánakesetében válassza ki a rekordhalmazt tartalmazó változót.
A változóleképezések lapon képezheti le a megfelelő változóhoz használni kívánt oszlopok nullaalapú indexét.
A ciklus minden iterációján az enumerátor feltölti ezeket a változókat az aktuális sor oszlopértékeivel.
A Foreach Loop-tárolóban adjon hozzá és konfiguráljon feladatokat a rekordhalmaz egy sorának egyszerre történő feldolgozásához a változók értékeinek beolvasásával.
Példa a Rekordhalmaz célhelyének használatára
Az alábbi példában az adatfolyam-feladat betölti az AdventureWorks2025-alkalmazottak adatait a Sales.SalesPerson táblából egy Rekordhalmaz-célhelyre. Ezután egy Foreach Loop-tároló egyszerre egy adatsort olvas be, és meghív egy Küldési e-mail feladatot. A Levelek küldése feladat kifejezésekkel testre szabott e-mailt küld minden értékesítőnek a bónusz összegéről.
A projekt létrehozása és a változók konfigurálása
Az SQL Server Data Toolsban hozzon létre egy új Integration Services-projektet.
Az SSIS menüben válassza Változóklehetőséget.
A Változók ablakban hozza létre a rekordhalmazt és az aktuális sor oszlopértékeit tartalmazó változókat:
Hozzon létre egy BonusRecordsetnevű változót, és állítsa be a típusát Objektum.
A BonusRecordset változó tartalmazza a rekordhalmazt.
Hozzon létre egy EmailAddressnevű változót, és állítsa be a típusát Karakterlánc.
A EmailAddress változó tartalmazza az értékesítő e-mail-címét.
Hozzon létre egy névvel ellátott, FirstNamenevű változót, és állítsa be a típusát Sztring.
A FirstName változó az értékesítő utónevét tartalmazza.
Hozzon létre egy változót, Bónusz, és állítsa be a típusát a Dupla.
A Bónusz változó az értékesítő bónuszának összegét tartalmazza.
A kapcsolatkezelők konfigurálása
Az SSIS Designer Kapcsolatkezelő területén adjon hozzá és konfiguráljon egy új OLE DB kapcsolatkezelőt, amely csatlakozik az AdventureWorks2025 mintaadatbázishoz.
Az adatfolyam-feladat OLE DB-forrása ezt a kapcsolatkezelőt fogja használni az adatok lekéréséhez.
A Kapcsolatkezelők területen adjon hozzá és konfiguráljon egy új SMTP-kapcsolatkezelőt, amely egy elérhető SMTP-kiszolgálóhoz csatlakozik.
A Foreach Loop tárolóban található Levelek küldése feladat ezt a kapcsolatkezelőt fogja használni az e-mailek küldéséhez.
Az adatfolyam és a rekordhalmaz célhelyének konfigurálása
Az SSIS Designer Control Flow lapján adjon hozzá egy adatfolyam-feladatot a tervezőfelülethez.
Az Adatfolyam lapon adjon hozzá egy OLE DB-forrást az adatfolyam-feladathoz, majd nyissa meg az OLE DB-forrásszerkesztőt.
A szerkesztő Connection Manager lapján konfigurálja a forrást a következő beállításokkal:
Az OLE DB kapcsolatkezelőesetében válassza ki a korábban létrehozott OLE DB kapcsolatkezelőt.
Adatelérési módesetén válassza SQL-parancslehetőséget.
A SQL parancsszöveghez, írja be a következő lekérdezést:
SELECT Person.Contact.EmailAddress, Person.Contact.FirstName, CONVERT(float, Sales.SalesPerson.Bonus) AS Bonus FROM Sales.SalesPerson INNER JOIN Person.Contact ON Sales.SalesPerson.SalesPersonID = Person.Contact.ContactIDJegyzet
A bónusz oszlopban lévő pénznem értékét át kell alakítania egy lebegőpontos, mielőtt betöltené az értéket egy olyan csomagváltozóba, amelynek típusa Dupla.
Az Adatfolyam lapon adjon hozzá egy Rekordhalmaz-célhelyet, és csatlakoztassa a célhelyet az OLE DB-forrás után.
Nyissa meg a Rekordhalmaz célszerkesztő, és konfigurálja a célhelyet a következő beállításokkal:
Az Összetevő tulajdonságai lapon a VariableName tulajdonsághoz válassza ki a Felhasználó::BonusRecordsetelemet.
A Beviteli oszlopok lapon jelölje ki mind a három elérhető oszlopot.
A Foreach Loop-tároló konfigurálása és a csomag futtatása
Az SSIS Designer Control Flow lapján vegyen fel egy Foreach Loop-tárolót, és csatlakoztassa a tárolót az adatfolyam-feladat után.
Nyissa meg a Foreach Hurokszerkesztő, és konfigurálja a tárolót a következő beállításokkal:
A Gyűjtemény lapon Enumeratoresetében válassza a Foreach ADO Enumeratorlehetőséget, ADO-objektum forrásváltozójánakesetében pedig válassza Felhasználó::BonusRecordsetlehetőséget.
A Változóleképezések lapon képezze le a Felhasználó::EmailAddress-t az 0 index értékre, a Felhasználó::FirstName-t az 1 index értékre, és a Felhasználó::Bónusz-t az 2 index értékre.
A Control Flow lapon, a Foreach Loop tárolóban adjon hozzá egy Küldési e-mail feladatot.
Nyissa meg a Küldési feladatszerkesztő, majd a Posta lapon konfigurálja a feladatot az alábbi beállításokkal:
SmtpConnectionesetében válassza ki a korábban konfigurált SMTP-kapcsolatkezelőt.
A Feladómezőben adja meg a megfelelő e-mail-címet.
Ha saját e-mail-címét használja, ellenőrizheti, hogy a csomag sikeresen fut-e. Ön kézbesíthetetlen visszaigazolásokat fog kapni az AdventureWorks2025 fiktív értékesítőinek a Levelek küldése feladat által küldött üzenetekről.
A mezőben adja meg az alapértelmezett e-mail-címet.
Ez az érték nem kerül felhasználásra, hanem futásidőben az egyes értékesítők e-mail-címére lesz lecserélve.
Az Tárgymezőbe írja be az "Éves bónusz" kifejezést.
MessageSourceTypeesetében válassza a Közvetlen bevitelilehetőséget.
A KifejezésekKüldési feladatszerkesztőlapján kattintson a három pontra (...) a Tulajdonságkifejezések szerkesztőmegnyitásához.
A Tulajdonságkifejezések szerkesztőadja meg a következő adatokat:
ToLineesetén adja hozzá a következő kifejezést:
@[User::EmailAddress]A MessageSource tulajdonsághoz adja hozzá a következő kifejezést:
"Dear " + @[User::FirstName] + ": The amount of your bonus for this year is $" + (DT_WSTR, 12) @[User::Bonus] + ". Thank you!"
Futtassa a csomagot.
Ha egy érvényes SMTP-kiszolgálót adott meg, és megadta a saját e-mail-címét, kézbesíthetetlen visszaigazolásokat fog kapni azokról az üzenetekről, amelyeket a Levelek küldése feladat az AdventureWorks2025 fiktív értékesítőinek küld.