Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Vonatkozik:
Azure Data Factory
Azure Synapse Analytics
Tipp.
Ez a cikk bemutatja, hogyan használható a Másolási tevékenység az Azure Data Factory vagy Azure Synapse folyamatokban adatok másolására az Azure SQL Database-ből és az Azure SQL Database-be, valamint hogyan használható a Data Flow az adatok átalakítására az Azure SQL Database-ben. További információ: Azure Data Factory vagy Azure Synapse Analytics bevezető cikk.
Támogatott képességek
Ez a Azure SQL Database-összekötő a következő képességeket támogatja:
| Támogatott képességek | integrációs modul | Felügyelt privát végpont |
|---|---|---|
| Copy activity (forrás/fogadó) | (1) (2) | ✓ |
| Adatfolyam leképezése (forrás/fogadó) | ① | ✓ |
| Keresési tevékenység | (1) (2) | ✓ |
| GetMetadata-tevékenység | (1) (2) | ✓ |
| Szkripttevékenység | (1) (2) | ✓ |
| Tárolt eljárástevékenység | (1) (2) | ✓ |
(1) Azure integrációs modul (2) Saját üzemeltetésű integrációs modul
A Copy activity esetében ez a Azure SQL Database-összekötő az alábbi függvényeket támogatja:
- Adata másolása SQL-hitelesítéssel és Microsoft Entra alkalmazás token hitelesítéssel szolgáltatásnévvel vagy felügyelt identitással Azure erőforrásokhoz.
- Forrásként az adatok lekérése SQL-lekérdezéssel vagy tárolt eljárással. Egy Azure SQL Database forrásból párhuzamos másolást is választhat, a részletekért tekintse meg a Párhuzamos másolás SQL Database-ből szakaszát.
- Adatfogadóként a céltábla automatikus létrehozása, ha nem létezik, a forrásséma alapján; adatok hozzáfűzése egy táblához, vagy tárolt eljárás meghívása egyedi logikával a másolás során.
Ha Azure SQL Database kiszolgáló nélküli szintet használ, vegye figyelembe, hogy a kiszolgáló szüneteltetésekor a tevékenységfuttatás meghiúsul ahelyett, hogy az automatikus folytatásra várna. Hozzáadhat tevékenység-újrapróbálkozást, vagy további tevékenységeket láncolva biztosíthatja, hogy a kiszolgáló a tényleges végrehajtás után is működőképes legyen.
Fontos
Ha az Azure integrációs modullal másol adatokat, konfiguráljon egy kiszolgálószintű tűzfalszabályt, hogy Azure szolgáltatások hozzáférhessenek a kiszolgálóhoz. Ha egy saját üzemeltetésű integrációs futtatókörnyezettel másol adatokat, konfigurálja a tűzfalat a megfelelő IP-címtartomány engedélyezéséhez. Ez a tartomány tartalmazza a gép IP-címét, amely a Azure SQL Database való csatlakozáshoz használatos.
Első lépések
A másolási tevékenység végrehajtásához egy folyamattal használhatja az alábbi eszközök vagy SDK-k egyikét:
- Adatok másolása eszköz
- Azure portál
- .NET SDK
- Python SDK
- Azure PowerShell
- REST API
- Azure Resource Manager sablon
Azure SQL Database társított szolgáltatás létrehozása felhasználói felületen
Az alábbi lépésekkel létrehozhat egy Azure SQL Database társított szolgáltatást a Azure portál felhasználói felületén.
Keresse meg a Azure Data Factory vagy Synapse-munkaterület Kezelés lapját, és válassza a Társított szolgáltatások lehetőséget, majd kattintson az Új gombra:
Keresse meg az SQL-t, és válassza ki a Azure SQL Database összekötőt.
Konfigurálja a szolgáltatás részleteit, tesztelje a kapcsolatot, és hozza létre az új társított szolgáltatást.
Az összekötő konfigurációjának részletei
Az alábbi szakaszok részletesen ismertetik a Azure Data Factory vagy a Synapse-folyamat entitásainak Azure SQL Database-összekötőkre vonatkozó definiálásához használt tulajdonságokat.
Társított szolgáltatás tulajdonságai
A Azure SQL Database összekötő Recommended verziója támogatja a TLS 1.3-at. Tekintse meg ezt a section a Azure SQL Database-összekötő Legacy verzióról való frissítéséhez. A tulajdonság részleteiért tekintse meg a megfelelő szakaszokat.
Tipp.
Ha a "UserErrorFailedToConnectToSqlServer" hibakóddal és az "Az adatbázis maximális munkamenetszáma XXX, és elérték" hibaüzenettel találkozik, adjon hozzá Pooling=false-t a kapcsolati karakterlánchoz, és próbálkozzon újra.
Pooling=false A SHIR (saját üzemeltetésű Integration Runtime) típusú társított szolgáltatás beállításához is ajánlott. A készletezés és más kapcsolati paraméterek új paraméternévként és értékként is hozzáadhatók a társított szolgáltatás létrehozási űrlapJának További kapcsolattulajdonságok szakaszában.
Ajánlott verzió
Ezeket az általános tulajdonságokat Azure SQL Database társított szolgáltatások támogatják a Recommended verzió alkalmazásakor:
| Tulajdonság | Leírás | Kötelező |
|---|---|---|
| típus | A típustulajdonságot az AzureSqlDatabase értékre kell állítani. | Igen |
| kiszolgáló | Annak az SQL Server-példánynak a neve vagy hálózati címe, amelyhez csatlakozni szeretne. | Igen |
| adatbázis | Az adatbázis neve. | Igen |
| hitelesítésTípus | A hitelesítéshez használt típus. Az engedélyezett értékek: SQL (alapértelmezett), ServicePrincipal, SystemAssignedManagedIdentity, UserAssignedManagedIdentity. Lépjen az adott tulajdonságokra és előfeltételekre vonatkozó hitelesítési szakaszra. | Igen |
| alwaysEncryptedBeállítások | Adja meg az Always Encrypted engedélyezéséhez szükséges Alwaysencryptedsettings-adatokat , amelyek felügyelt identitással vagy szolgáltatásnévvel védik az SQL Serveren tárolt bizalmas adatokat. További információ: A táblázatot és az Always Encrypted használata szakaszt követő JSON-példa. Ha nincs megadva, az alapértelmezett mindig titkosított beállítás le van tiltva. | Nem |
| titkosít | Adja meg, hogy szükség van-e TLS-titkosításra az ügyfél és a kiszolgáló között küldött összes adathoz. Beállítások: kötelező (igaz, alapértelmezett)/nem kötelező (hamis esetén)/szigorú. | Nem |
| trustServerCertificate | Adja meg, hogy a csatorna titkosítva lesz-e a tanúsítványlánc megkerülése közben a megbízhatóság ellenőrzéséhez. | Nem |
| hostNameInCertificate (hosztnév a tanúsítványban) | A kapcsolat kiszolgálótanúsítványának ellenőrzésekor használandó állomásnév. Ha nincs megadva, a rendszer a kiszolgáló nevét használja a tanúsítvány érvényesítéséhez. | Nem |
| connectVia | Ez az integrációs modul az adattárhoz való csatlakozásra szolgál. Használhatja a Azure integrációs modult vagy egy saját üzemeltetésű integrációs modult, ha az adattár privát hálózaton található. Ha nincs megadva, a rendszer az alapértelmezett Azure integrációs modult használja. | Nem |
További kapcsolati tulajdonságokért tekintse meg az alábbi táblázatot:
| Tulajdonság | Leírás | Kötelező |
|---|---|---|
| applicationIntent | Az alkalmazás számítási feladatainak típusa kiszolgálóhoz való csatlakozáskor. Az engedélyezett értékek a ReadOnly és a ReadWrite. |
Nem |
| connectTimeout | A kiszolgálóval való kapcsolat várakozási ideje (másodpercben), mielőtt megszakítja a kísérletet, és hibát okozna. | Nem |
| kapcsolódásiKísérletekSzáma | Az inaktív kapcsolati hiba azonosítása után megkísérelt újracsatlakozások száma. Az értéknek 0 és 255 közötti egész számnak kell lennie. | Nem |
| connectRetryInterval | Az inaktív kapcsolati hiba azonosítása után az egyes újracsatlakozási kísérletek között eltelt idő (másodpercben). Az értéknek 1 és 60 közötti egész számnak kell lennie. | Nem |
| loadBalanceTimeout | A kapcsolat minimális időtartama (másodpercben) ahhoz, hogy a kapcsolat a kapcsolat megszakadása előtt a kapcsolatkészletben éljen. | Nem |
| parancshatáridő | Az alapértelmezett várakozási idő (másodpercben), mielőtt befejezi a parancs végrehajtására tett kísérletet, és hibát okozna. | Nem |
| integrált biztonság | Az engedélyezett értékek a következők: true vagy false. Amikor beállítja a false-t, jelezze, hogy a felhasználónév és a jelszó meg van-e adva a kapcsolatban. A true megadásakor azt jelzi, hogy a rendszer az aktuális Windows fiók hitelesítő adatait használja-e a hitelesítéshez. |
Nem |
| feladatátvételi partner | Annak a partnerkiszolgálónak a neve vagy címe, amelyhez csatlakozni szeretne, ha az elsődleges kiszolgáló nem működik. | Nem |
| maxPoolSize | Az adott kapcsolat kapcsolatkészletében engedélyezett kapcsolatok maximális száma. | Nem |
| minimális fürdő méret | Az adott kapcsolat kapcsolatkészletében engedélyezett kapcsolatok minimális száma. | Nem |
| multipleActiveResultSets | Az engedélyezett értékek a következők: true vagy false. Ha megadja true, egy alkalmazás több aktív eredményhalmazt (MARS) is képes fenntartani. Ha megadja false, az alkalmazásnak egy kötegből kell feldolgoznia vagy megszakítania az összes eredményhalmazt, mielőtt bármilyen más köteget végrehajthat az adott kapcsolaton. |
Nem |
| multiSubnetFailover | Az engedélyezett értékek a következők: true vagy false. Ha az alkalmazás egy AlwaysOn rendelkezésre állási csoporthoz (AG) csatlakozik különböző alhálózatokon, a tulajdonság true beállítása gyorsabb észlelést és kapcsolatot biztosít az aktuálisan aktív kiszolgálóval. |
Nem |
| csomagméret | A kiszolgálópéldányokkal való kommunikációhoz használt hálózati csomagok bájtban megadott mérete. | Nem |
| Erőforrás-konszolidáció | Az engedélyezett értékek a következők: true vagy false. Amikor megadja true, a kapcsolat csoportosítva lesz. Amikor megadja a false paramétert, a kapcsolat minden kérésnél explicit módon kerül megnyitásra. |
Nem |
SQL-hitelesítés
Az SQL-hitelesítés használatához az előző szakaszban ismertetett általános tulajdonságok mellett adja meg a következő tulajdonságokat:
| Tulajdonság | Leírás | Kötelező |
|---|---|---|
| Felhasználónév | A kiszolgálóhoz való csatlakozáshoz használt felhasználónév. | Igen |
| jelszó | A felhasználónév jelszava. Jelölje meg ezt a mezőt SecureStringként a biztonságos tároláshoz. Vagy az Azure Key Vaultban tárolt titkot is használhatja. | Igen |
Példa: SQL-hitelesítés használata
{
"name": "AzureSqlDbLinkedService",
"properties": {
"type": "AzureSqlDatabase",
"typeProperties": {
"server": "<name or network address of the SQL server instance>",
"database": "<database name>",
"encrypt": "<encrypt>",
"trustServerCertificate": false,
"authenticationType": "SQL",
"userName": "<user name>",
"password": {
"type": "SecureString",
"value": "<password>"
}
},
"connectVia": {
"referenceName": "<name of Integration Runtime>",
"type": "IntegrationRuntimeReference"
}
}
}
Példa: jelszó az Azure Key Vaultban
{
"name": "AzureSqlDbLinkedService",
"properties": {
"type": "AzureSqlDatabase",
"typeProperties": {
"server": "<name or network address of the SQL server instance>",
"database": "<database name>",
"encrypt": "<encrypt>",
"trustServerCertificate": false,
"authenticationType": "SQL",
"userName": "<user name>",
"password": {
"type": "AzureKeyVaultSecret",
"store": {
"referenceName": "<Azure Key Vault linked service name>",
"type": "LinkedServiceReference"
},
"secretName": "<secretName>"
}
},
"connectVia": {
"referenceName": "<name of Integration Runtime>",
"type": "IntegrationRuntimeReference"
}
}
}
Példa: Mindig titkosított használata
{
"name": "AzureSqlDbLinkedService",
"properties": {
"type": "AzureSqlDatabase",
"typeProperties": {
"server": "<name or network address of the SQL server instance>",
"database": "<database name>",
"encrypt": "<encrypt>",
"trustServerCertificate": false,
"authenticationType": "SQL",
"userName": "<user name>",
"password": {
"type": "SecureString",
"value": "<password>"
},
"alwaysEncryptedSettings": {
"alwaysEncryptedAkvAuthType": "ServicePrincipal",
"servicePrincipalId": "<service principal id>",
"servicePrincipalKey": {
"type": "SecureString",
"value": "<service principal key>"
}
}
},
"connectVia": {
"referenceName": "<name of Integration Runtime>",
"type": "IntegrationRuntimeReference"
}
}
}
Szolgáltatási főazonosító hitelesítése
A szolgáltatásnév-hitelesítés használatához az előző szakaszban ismertetett általános tulajdonságok mellett adja meg a következő tulajdonságokat:
| Tulajdonság | Leírás | Kötelező |
|---|---|---|
| servicePrincipalId | Adja meg az alkalmazás ügyfél-azonosítóját. | Igen |
| servicePrincipalCredential | A szolgáltatási főszereplő hitelesítő adatai. Adja meg az alkalmazás kulcsát. Jelölje meg ezt a mezőt SecureStringként, hogy biztonságosan tárolja, vagy referensként a Azure Key Vault-ben tárolt titkos kulcsokat. | Igen |
| bérlő | Adja meg a bérlő adatait, például azt a tartománynevet vagy bérlőazonosítót, amely alatt az alkalmazás található. A lekéréshez vigye az egérmutatót a Azure portál jobb felső sarkában. | Igen |
| Azure felhőtípus | A szolgáltatásnév-hitelesítéshez adja meg az Azure felhőkörnyezet típusát, amelyre a Microsoft Entra alkalmazás regisztrálva van. Az engedélyezett értékek: AzurePublic, AzureChina, AzureUsGovernment és AzureGermany. Alapértelmezés szerint a rendszer az adat-előállítót vagy a Synapse-folyamat felhőkörnyezetét használja. |
Nem |
Az alábbi lépéseket is követnie kell:
A Microsoft Entra alkalmazás létrehozása a Azure portálról. Jegyezze fel az alkalmazás nevét és a társított szolgáltatást meghatározó alábbi értékeket:
- Pályázat azonosítója
- Alkalmazáskulcs
- Bérlőazonosító
Adjon meg egy Microsoft Entra rendszergazdát a kiszolgálóra az Azure portálon, ha még nem tette meg. A Microsoft Entra rendszergazdának Microsoft Entra felhasználónak vagy Microsoft Entra csoportnak kell lennie, de nem lehet szolgáltatási főszereplő. Ezt a lépést azért tesszük meg, hogy a következő lépésben egy Microsoft Entra identitással létrehozhasson egy tartalmazott adatbázis-felhasználót a szolgáltatásnévhez tartozó főszolgáltató számára.
Adatbázis-felhasználók létrehozása egy elkülönített adatbázisban a szolgáltatási főfiókhoz. Csatlakozzon ahhoz az adatbázishoz, amelyhez vagy amelyből adatokat szeretne másolni az olyan eszközökkel, mint a SQL Server Management Studio, olyan Microsoft Entra identitással, amely legalább ALTER ANY USER jogosultsággal rendelkezik. Futtassa a következő T-SQL-t:
CREATE USER [your application name] FROM EXTERNAL PROVIDER;Adja meg a szolgáltatásobjektumnak a szükséges engedélyeket, ahogyan azt az SQL-felhasználók vagy mások esetében általában teszi. Futtassa a következő kódot. További lehetőségekért tekintse meg ezt a dokumentumot.
ALTER ROLE [role name] ADD MEMBER [your application name];Azure SQL Database társított szolgáltatás konfigurálása Azure Data Factory vagy Synapse-munkaterületen.
Kapcsolt szolgáltatás példája, amely szolgáltatás felelős hitelesítést használ
{
"name": "AzureSqlDbLinkedService",
"properties": {
"type": "AzureSqlDatabase",
"typeProperties": {
"server": "<name or network address of the SQL server instance>",
"database": "<database name>",
"encrypt": "<encrypt>",
"trustServerCertificate": false,
"hostNameInCertificate": "<host name>",
"authenticationType": "ServicePrincipal",
"servicePrincipalId": "<service principal id>",
"servicePrincipalCredential": {
"type": "SecureString",
"value": "<application key>"
},
"tenant": "<tenant info, e.g. microsoft.onmicrosoft.com>"
},
"connectVia": {
"referenceName": "<name of Integration Runtime>",
"type": "IntegrationRuntimeReference"
}
}
}
Rendszer által hozzárendelt felügyelt identitás hitelesítése
Egy adat-előállító vagy Synapse-munkaterület társítható rendszer által hozzárendelt felügyelt identitással Azure erőforrásokhoz amely a szolgáltatást jelöli a Azure más erőforrásaihoz való hitelesítéskor. Ezt a felügyelt identitást használhatja Azure SQL Database hitelesítéshez. Az adott üzem vagy a Synapse munkaterület ezzel az azonosítóval férhet hozzá, és másolhat adatokat az adatbázisból vagy az adatbázisba.
A rendszer által hozzárendelt felügyelt identitáshitelesítés használatához adja meg az előző szakaszban ismertetett általános tulajdonságokat, és kövesse az alábbi lépéseket.
Adjon meg egy Microsoft Entra rendszergazdát a kiszolgálóra az Azure portálon, ha még nem tette meg. A Microsoft Entra rendszergazda lehet Microsoft Entra felhasználó vagy Microsoft Entra csoport. Ha rendszergazdai szerepkört ad a felügyelt identitással rendelkező csoportnak, hagyja ki a 3. és a 4. lépést. A rendszergazda teljes hozzáféréssel rendelkezik az adatbázishoz.
Tartalmazott adatbázis-felhasználók létrehozása a felügyelt identitáshoz. Csatlakozzon ahhoz az adatbázishoz, amelyhez vagy amelyből adatokat szeretne másolni az olyan eszközökkel, mint a SQL Server Management Studio, olyan Microsoft Entra identitással, amely legalább ALTER ANY USER jogosultsággal rendelkezik. Futtassa a következő T-SQL-t:
CREATE USER [your_resource_name] FROM EXTERNAL PROVIDER;Adja meg a felügyelt identitáshoz szükséges engedélyeket, ahogyan az SQL-felhasználók és mások esetében általában. Futtassa a következő kódot. További lehetőségekért tekintse meg ezt a dokumentumot.
ALTER ROLE [role name] ADD MEMBER [your_resource_name];Azure SQL Database társított szolgáltatás konfigurálása.
Példa
{
"name": "AzureSqlDbLinkedService",
"properties": {
"type": "AzureSqlDatabase",
"typeProperties": {
"server": "<name or network address of the SQL server instance>",
"database": "<database name>",
"encrypt": "<encrypt>",
"trustServerCertificate": false,
"authenticationType": "SystemAssignedManagedIdentity"
},
"connectVia": {
"referenceName": "<name of Integration Runtime>",
"type": "IntegrationRuntimeReference"
}
}
}
Felhasználó által hozzárendelt felügyelt identitás hitelesítése
Adat-előállító vagy Synapse-munkaterület társítható egy user által hozzárendelt felügyelt identitással amely a szolgáltatást jelöli a Azure más erőforrásaihoz való hitelesítéskor. Ezt a felügyelt identitást használhatja Azure SQL Database hitelesítéshez. Az adott üzem vagy a Synapse munkaterület ezzel az azonosítóval férhet hozzá, és másolhat adatokat az adatbázisból vagy az adatbázisba.
A felhasználó által hozzárendelt felügyelt identitáshitelesítés használatához az előző szakaszban ismertetett általános tulajdonságok mellett adja meg a következő tulajdonságokat:
| Tulajdonság | Leírás | Kötelező |
|---|---|---|
| azonosító adatok | Adja meg a felhasználó által hozzárendelt felügyelt identitást hitelesítő objektumként. | Igen |
Az alábbi lépéseket is követnie kell:
Adjon meg egy Microsoft Entra rendszergazdát a kiszolgálóra az Azure portálon, ha még nem tette meg. A Microsoft Entra rendszergazda lehet Microsoft Entra felhasználó vagy Microsoft Entra csoport. Ha rendszergazdai szerepkört ad a csoportnak a felhasználó által hozzárendelt felügyelt identitással, hagyja ki a 3. lépést. A rendszergazda teljes hozzáféréssel rendelkezik az adatbázishoz.
Tartalmazott adatbázis-felhasználók létrehozása a felhasználó által hozzárendelt felügyelt identitáshoz. Csatlakozzon ahhoz az adatbázishoz, amelyhez vagy amelyből adatokat szeretne másolni az olyan eszközökkel, mint a SQL Server Management Studio, olyan Microsoft Entra identitással, amely legalább ALTER ANY USER jogosultsággal rendelkezik. Futtassa a következő T-SQL-t:
CREATE USER [your_resource_name] FROM EXTERNAL PROVIDER;Hozzon létre egy vagy több felhasználó által hozzárendelt felügyelt identitást , és adja meg a felhasználó által hozzárendelt felügyelt identitásnak a szükséges engedélyeket, ahogyan azt az SQL-felhasználók és mások esetében általában teszi. Futtassa a következő kódot. További lehetőségekért tekintse meg ezt a dokumentumot.
ALTER ROLE [role name] ADD MEMBER [your_resource_name];Rendeljen hozzá egy vagy több felhasználó által hozzárendelt felügyelt identitást az adat-előállítóhoz, és hozzon létre hitelesítő adatokat minden felhasználó által hozzárendelt felügyelt identitáshoz.
Azure SQL Database társított szolgáltatás konfigurálása.
Példa
{
"name": "AzureSqlDbLinkedService",
"properties": {
"type": "AzureSqlDatabase",
"typeProperties": {
"server": "<name or network address of the SQL server instance>",
"database": "<database name>",
"encrypt": "<encrypt>",
"trustServerCertificate": false,
"authenticationType": "UserAssignedManagedIdentity",
"credential": {
"referenceName": "credential1",
"type": "CredentialReference"
}
},
"connectVia": {
"referenceName": "<name of Integration Runtime>",
"type": "IntegrationRuntimeReference"
}
}
}
Régi verzió
A Legacy verzió alkalmazásakor ezek az általános tulajdonságok támogatottak egy Azure SQL Database társított szolgáltatás esetében:
| Tulajdonság | Leírás | Kötelező |
|---|---|---|
| típus | A típustulajdonságot az AzureSqlDatabase értékre kell állítani. | Igen |
| connectionString | Adja meg a connectionString tulajdonság Azure SQL Database példányához való csatlakozáshoz szükséges információkat. Egy jelszót vagy szolgáltatásnév-hitelesítő kulcsot is elhelyezhet az Azure Key Vaultban. Ha SQL-hitelesítésről van szó, vegye ki a password konfigurációt a kapcsolati karakterláncból. További információért lásd: Hitelesítő adatok tárolása az Azure Key Vaultban. |
Igen |
| alwaysEncryptedBeállítások | Adja meg az Always Encrypted engedélyezéséhez szükséges Alwaysencryptedsettings-adatokat , amelyek felügyelt identitással vagy szolgáltatásnévvel védik az SQL Serveren tárolt bizalmas adatokat. További információ: Az Always Encrypted használata szakasz. Ha nincs megadva, az alapértelmezett mindig titkosított beállítás le van tiltva. | Nem |
| connectVia | Ez az integrációs modul az adattárhoz való csatlakozásra szolgál. Használhatja a Azure integrációs modult vagy egy saját üzemeltetésű integrációs modult, ha az adattár privát hálózaton található. Ha nincs megadva, a rendszer az alapértelmezett Azure integrációs modult használja. | Nem |
A különböző hitelesítési típusok esetében tekintse meg az egyes tulajdonságokra és előfeltételekre vonatkozó alábbi szakaszokat:
- SQL-hitelesítés az örökölt verzióhoz
- Szolgáltatásnév hitelesítése az örökölt verzióhoz
- Rendszer által hozzárendelt kezelt identitás hitelesítése a régi verzióhoz
- Felhasználó által hozzárendelt felügyelt identitás hitelesítése az örökölt verzióhoz
SQL-hitelesítés az örökölt verzióhoz
Az SQL-hitelesítés használatához adja meg az előző szakaszban ismertetett általános tulajdonságokat.
Szolgáltatásfelelős hitelesítése az örökölt verzióhoz
A szolgáltatásnév-hitelesítés használatához az előző szakaszban ismertetett általános tulajdonságok mellett adja meg a következő tulajdonságokat:
| Tulajdonság | Leírás | Kötelező |
|---|---|---|
| servicePrincipalId | Adja meg az alkalmazás ügyfél-azonosítóját. | Igen |
| szolgáltatásFőKulcs | Adja meg az alkalmazás kulcsát. Jelölje meg ezt a mezőt SecureStringként, hogy biztonságosan tárolja, vagy referensként egy Azure Key Vault-ben tárolt titkos kulcsot. | Igen |
| bérlő | Adja meg a bérlő adatait, például azt a tartománynevet vagy bérlőazonosítót, amely alatt az alkalmazás található. A lekéréshez vigye az egérmutatót a Azure portál jobb felső sarkában. | Igen |
| Azure felhőtípus | A szolgáltatásnév-hitelesítéshez adja meg az Azure felhőkörnyezet típusát, amelyre a Microsoft Entra alkalmazás regisztrálva van. Az engedélyezett értékek: AzurePublic, AzureChina, AzureUsGovernment és AzureGermany. Alapértelmezés szerint a rendszer az adat-előállítót vagy a Synapse-folyamat felhőkörnyezetét használja. |
Nem |
A szolgáltatásnév-hitelesítés lépéseit is követnie kell a megfelelő engedély megadásához.
Rendszer által hozzárendelt felügyelt identitás hitelesítése az örökölt verzióhoz
A rendszer által hozzárendelt felügyelt identitás hitelesítésének használatához kövesse ugyanazt a lépést a rendszer által hozzárendelt felügyelt identitáshitelesítés ajánlott verziójához.
Felhasználó által hozzárendelt felügyelt identitás hitelesítése az öröklött verzióhoz
A felhasználó által hozzárendelt felügyelt identitáshitelesítés használatához kövesse ugyanazt a lépést a felhasználó által hozzárendelt felügyelt identitáshitelesítés ajánlott verziójához.
Adathalmaz tulajdonságai
Az adathalmazok definiálásához elérhető szakaszok és tulajdonságok teljes listáját az Adathalmazok című témakörben találja.
A következő tulajdonságok támogatottak Azure SQL Database adathalmaz esetében:
| Tulajdonság | Leírás | Kötelező |
|---|---|---|
| típus | Az adathalmaz típustulajdonságának AzureSqlTable értékre kell állítania. | Igen |
| séma | A séma neve. | Nem a forrásra, igen a bemenetre |
| tábla | A tábla/nézet neve. | Nem a forrásra, igen a bemenetre |
| tableName | A táblázat/nézet neve sémával. Ez a tulajdonság támogatja a visszamenőleges kompatibilitást. Új számítási feladatokhoz használja schema és table. |
Nem a forrásra, igen a bemenetre |
Adathalmaz-tulajdonságok példa
{
"name": "AzureSQLDbDataset",
"properties":
{
"type": "AzureSqlTable",
"linkedServiceName": {
"referenceName": "<Azure SQL Database linked service name>",
"type": "LinkedServiceReference"
},
"schema": [ < physical schema, optional, retrievable during authoring > ],
"typeProperties": {
"schema": "<schema_name>",
"table": "<table_name>"
}
}
}
Copy activity tulajdonságok
A tevékenységek meghatározásához elérhető szakaszok és tulajdonságok teljes listáját a Folyamatok című témakörben találja. Ez a szakasz a Azure SQL Database forrás és fogadó által támogatott tulajdonságok listáját tartalmazza.
Azure SQL Database forrásként
Tipp.
Ha hatékonyan szeretne adatokat betölteni Azure SQL Database adatparticionálással, további információt az SQL Database Parallel példányáról olvashat.
Az adatok Azure SQL Database való másolásához a másolási tevékenység source szakasz a következő tulajdonságokat támogatja:
| Tulajdonság | Leírás | Kötelező |
|---|---|---|
| típus | A másolási tevékenység forrásának típustulajdonságát az AzureSqlSource-ra kell állítani. Az "SqlSource" típus továbbra is támogatott a visszamenőleges kompatibilitás érdekében. | Igen |
| sqlReaderQuery | Ez a tulajdonság az egyéni SQL-lekérdezést használja az adatok olvasásához. Például: select * from MyTable. |
Nem |
| sqlReaderStoredProcedureName | Annak a tárolt eljárásnak a neve, amely adatokat olvas be a forrástáblából. Az utolsó SQL-utasításnak SELECT utasításnak kell lennie a tárolt eljárásban. | Nem |
| tárolt eljárás paraméterei | A tárolt eljárás paraméterei. Az engedélyezett értékek név- vagy értékpárok. A paraméterek nevének és burkolatának meg kell egyeznie a tárolt eljárásparaméterek nevével és burkolatával. |
Nem |
| izolációs szint | Az SQL-forrás tranzakciózárolási viselkedését adja meg. Az engedélyezett értékek a következők: ReadCommitted, ReadUncommitted, RepeatableRead, Serializable, Snapshot. Ha nincs megadva, a rendszer az adatbázis alapértelmezett elkülönítési szintjét használja. További részletekért tekintse meg ezt a dokumentumot. | Nem |
| partícióopciók | Megadja a Azure SQL Database adatok betöltéséhez használt adatparticionálási beállításokat. Az engedélyezett értékek a következők: Nincs (alapértelmezett), PhysicalPartitionsOfTable és DynamicRange. Ha egy partícióbeállítás engedélyezve van (azaz nem None), az egyidejű betöltés párhuzamosságát egy Azure SQL-adatbázisból a másolási tevékenység parallelCopies beállítása által szabályozza. |
Nem |
| partíciós beállítások | Adja meg az adatparticionálás beállításainak csoportját. Akkor alkalmazható, ha a partíciós beállítás nem None. |
Nem |
A következő alatt partitionSettings: |
||
| partitionColumnName | Adja meg annak a forrásoszlopnak a nevét egész számban vagy dátum/dátum/idő típusban (int, , smallint, bigint, datesmalldatetime, datetime, , datetime2) , datetimeoffsetamelyet a tartomány particionálása használ a párhuzamos másoláshoz. Ha nincs megadva, a rendszer automatikusan észleli a tábla indexét vagy elsődleges kulcsát, és partícióoszlopként használja.Akkor alkalmazható, ha a partíció beállítása DynamicRange. Ha lekérdezést használ a forrásadatok lekéréséhez, a WHERE záradékban kapcsoljon ?DfDynamicRangePartitionCondition be. Példaként tekintse meg a párhuzamos másolat készítése az SQL-adatbázisból című részt. |
Nem |
| partitionUpperBound | A partíciótartomány felosztásához használt partícióoszlop maximális értéke. Ez az érték a partíciós léptetés meghatározására szolgál, nem a tábla sorai szűrésére. A tábla vagy lekérdezés eredményének összes sora particionálásra és másolásra kerül. Ha nincs megadva, a másolási tevékenység automatikusan észleli az értéket. Akkor alkalmazható, ha a partíció beállítása DynamicRange. Példaként tekintse meg a párhuzamos másolat készítése az SQL-adatbázisból című részt. |
Nem |
| partitionLowerBound | A partíciótartományok felosztásához használt partícióoszlop minimális értéke. Ez az érték a partíciós léptetés meghatározására szolgál, nem a tábla sorai szűrésére. A tábla vagy lekérdezés eredményének összes sora particionálásra és másolásra kerül. Ha nincs megadva, a másolási tevékenység automatikusan észleli az értéket. Akkor alkalmazható, ha a partíció beállítása DynamicRange. Példaként tekintse meg a párhuzamos másolat készítése az SQL-adatbázisból című részt. |
Nem |
Vegye figyelembe a következő szempontokat:
- Ha sqlReaderQuery van megadva a AzureSqlSource esetében, a másolási tevékenység a lekérdezést a Azure SQL Database forráson futtatja az adatok lekéréséhez. Tárolt eljárást is megadhat az sqlReaderStoredProcedureName és a storedProcedureParameters megadásával, ha a tárolt eljárás paramétereket vesz fel.
- Ha tárolt eljárást használ a forrásban az adatok lekéréséhez, vegye figyelembe, hogy a tárolt eljárás más sémát ad vissza, amikor különböző paraméterértéket ad át, akkor előfordulhat, hogy a séma felhasználói felületről történő importálásakor vagy az adatok sql-adatbázisba való automatikus létrehozásakor hiba vagy váratlan eredmény jelenik meg.
PÉLDA SQL-lekérdezésre
"activities":[
{
"name": "CopyFromAzureSQLDatabase",
"type": "Copy",
"inputs": [
{
"referenceName": "<Azure SQL Database input dataset name>",
"type": "DatasetReference"
}
],
"outputs": [
{
"referenceName": "<output dataset name>",
"type": "DatasetReference"
}
],
"typeProperties": {
"source": {
"type": "AzureSqlSource",
"sqlReaderQuery": "SELECT * FROM MyTable"
},
"sink": {
"type": "<sink type>"
}
}
}
]
Példa tárolt eljárásra
"activities":[
{
"name": "CopyFromAzureSQLDatabase",
"type": "Copy",
"inputs": [
{
"referenceName": "<Azure SQL Database input dataset name>",
"type": "DatasetReference"
}
],
"outputs": [
{
"referenceName": "<output dataset name>",
"type": "DatasetReference"
}
],
"typeProperties": {
"source": {
"type": "AzureSqlSource",
"sqlReaderStoredProcedureName": "CopyTestSrcStoredProcedureWithParameters",
"storedProcedureParameters": {
"stringData": { "value": "str3" },
"identifier": { "value": "$$Text.Format('{0:yyyy}', <datetime parameter>)", "type": "Int"}
}
},
"sink": {
"type": "<sink type>"
}
}
}
]
Tárolt eljárás definíciója
CREATE PROCEDURE CopyTestSrcStoredProcedureWithParameters
(
@stringData varchar(20),
@identifier int
)
AS
SET NOCOUNT ON;
BEGIN
select *
from dbo.UnitTestSrcTable
where dbo.UnitTestSrcTable.stringData != stringData
and dbo.UnitTestSrcTable.identifier != identifier
END
GO
Azure SQL Database fogadóként
Tipp.
További információ a támogatott írási viselkedésekről, konfigurációkról és ajánlott eljárásokról az Ajánlott gyakorlat az adatok Azure SQL Database-be történő betöltéséhez.
Az adatok Azure SQL Database való másolásához a másolási tevékenység sink szakasz a következő tulajdonságokat támogatja:
| Tulajdonság | Leírás | Kötelező |
|---|---|---|
| típus | A másolási tevékenység fogadójának típustulajdonságát az AzureSqlSink értékre kell állítani. Az "SqlSink" típus továbbra is támogatott a visszamenőleges kompatibilitás érdekében. | Igen |
| preCopyScript | Adjon meg egy SQL-lekérdezést a másolási tevékenységhez, mielőtt adatokat írna Azure SQL Database. Másolat készítésekor csak egyszer lesz meghívva. Ezzel a tulajdonságkal törölheti az előre betöltött adatokat. | Nem |
| táblázatOpció | Meghatározza, hogy automatikusan létrehozza-e a fogadótáblát, ha még nem létezik a forrásséma alapján. Az automatikus táblalétrehozás nem támogatott, ha a fogadó a tárolt eljárást határozza meg. Az engedélyezett értékek a következők: none (alapértelmezett), autoCreate. |
Nem |
| sqlWriterStoredProcedureName | A tárolt eljárás neve, amely meghatározza a forrásadatok céltáblába való alkalmazását. Ezt a tárolt eljárást kötegenként hívja meg a rendszer. Olyan műveletek esetén, amelyek csak egyszer futnak, és nincs köze a forrásadatokhoz, például törléshez vagy csonkolási műveletekhez, használja a tulajdonságot preCopyScript .Tekintse meg az SQL-fogadó tárolt eljárásának meghívására vonatkozó példát. |
Nem |
| tároltEljárásTáblatípusParaméternév | A tárolt eljárásban megadott táblatípus paraméterneve. | Nem |
| sqlWriterTableType | A tárolt eljárásban használandó táblatípus neve. A másolási tevékenység elérhetővé teszi az áthelyezett adatokat egy ilyen típusú ideiglenes táblában. A tárolt eljáráskód ezután egyesítheti a másolt adatokat a meglévő adatokkal. | Nem |
| tárolt eljárás paraméterei | A tárolt eljárás paraméterei. Az engedélyezett értékek név- és értékpárok. A paraméterek nevének és burkolatának meg kell egyeznie a tárolt eljárásparaméterek nevével és burkolatával. |
Nem |
| writeBatchSize | Az SQL-táblába kötegenként beszúrandó sorok száma. Az engedélyezett érték egész szám (sorok száma). Alapértelmezés szerint a szolgáltatás dinamikusan határozza meg a megfelelő kötegméretet a sorméret alapján. |
Nem |
| writeBatchTimeout | Az időkorlát elérése előtti beszúrási, upsert és tárolt eljárás művelet befejezésének várakozási ideje. Az engedélyezett értékek az időtartamra vonatkoznak. Ilyen például a "00:30:00" 30 percig. Ha nincs megadva érték, az időtúllépés alapértelmezés szerint "00:30:00". |
Nem |
| disableMetricsCollection (teljesítménymérési gyűjtés kikapcsolása) | A szolgáltatás olyan metrikákat gyűjt, mint a Azure SQL Database DTU-k a másolási teljesítmény optimalizálásához és a javaslatokhoz, amelyek további főadatbázis-hozzáférést vezetnek be. Ha aggódik emiatt a viselkedés miatt, adja meg true , hogy kikapcsolja. |
Nem (alapértelmezett érték false) |
| maximális egyidejű kapcsolatok száma | Az adattárhoz a tevékenység futtatása során létrehozott egyidejű kapcsolatok felső korlátja. Csak akkor adjon meg értéket, ha korlátozni szeretné az egyidejű kapcsolatokat. | Nem |
| WriteBehavior | Adja meg a másolási tevékenység írási viselkedését az adatok Azure SQL Database való betöltéséhez. Az engedélyezett értékek: Beszúrás és Upsert. Alapértelmezés szerint a szolgáltatás beszúrással tölti be az adatokat. |
Nem |
| upsertSettings | Adja meg az írási viselkedés beállításainak csoportját. Alkalmazza, ha a WriteBehavior beállítás a következő Upsert: . |
Nem |
A következő alatt upsertSettings: |
||
| useTempDB | Adja meg, hogy a globális ideiglenes táblát vagy a fizikai táblát használja-e köztes táblaként az upserthez. Alapértelmezés szerint a szolgáltatás globális ideiglenes táblát használ köztes táblaként. Az érték true. |
Nem |
| interimSchemaName | Adja meg a köztes sémát a köztes tábla létrehozásához fizikai tábla használata esetén. Megjegyzés: a felhasználónak rendelkeznie kell a tábla létrehozására és törlésére vonatkozó engedéllyel. Alapértelmezés szerint a köztes tábla ugyanazt a sémát fogja megosztani, mint a fogadó táblát. Akkor alkalmazandó, ha a useTempDB opció False. |
Nem |
| kulcsok | Adja meg az egyedi sorazonosításhoz szükséges oszlopneveket. Egy vagy több kulcs használható. Ha nincs megadva, a rendszer az elsődleges kulcsot használja. | Nem |
1. példa: Adatok hozzáfűzése
"activities":[
{
"name": "CopyToAzureSQLDatabase",
"type": "Copy",
"inputs": [
{
"referenceName": "<input dataset name>",
"type": "DatasetReference"
}
],
"outputs": [
{
"referenceName": "<Azure SQL Database output dataset name>",
"type": "DatasetReference"
}
],
"typeProperties": {
"source": {
"type": "<source type>"
},
"sink": {
"type": "AzureSqlSink",
"tableOption": "autoCreate",
"writeBatchSize": 100000
}
}
}
]
2. példa: Tárolt eljárás meghívása másolás közben
Tudjon meg többet az SQL-kimenetből indított tárolt eljárásról.
"activities":[
{
"name": "CopyToAzureSQLDatabase",
"type": "Copy",
"inputs": [
{
"referenceName": "<input dataset name>",
"type": "DatasetReference"
}
],
"outputs": [
{
"referenceName": "<Azure SQL Database output dataset name>",
"type": "DatasetReference"
}
],
"typeProperties": {
"source": {
"type": "<source type>"
},
"sink": {
"type": "AzureSqlSink",
"sqlWriterStoredProcedureName": "CopyTestStoredProcedureWithParameters",
"storedProcedureTableTypeParameterName": "MyTable",
"sqlWriterTableType": "MyTableType",
"storedProcedureParameters": {
"identifier": { "value": "1", "type": "Int" },
"stringData": { "value": "str1" }
}
}
}
}
]
3. példa: Adatok beszúrása vagy frissítése
"activities":[
{
"name": "CopyToAzureSQLDatabase",
"type": "Copy",
"inputs": [
{
"referenceName": "<input dataset name>",
"type": "DatasetReference"
}
],
"outputs": [
{
"referenceName": "<Azure SQL Database output dataset name>",
"type": "DatasetReference"
}
],
"typeProperties": {
"source": {
"type": "<source type>"
},
"sink": {
"type": "AzureSqlSink",
"tableOption": "autoCreate",
"writeBehavior": "upsert",
"upsertSettings": {
"useTempDB": true,
"keys": [
"<column name>"
]
},
}
}
}
]
Párhuzamos másolás AZ SQL Database-ből
A másolási tevékenység Azure SQL Database összekötője beépített adatparticionálást biztosít az adatok párhuzamos másolásához. Az adatparticionálási beállításokat a másolási tevékenység Forrás lapján találja.
Ha engedélyezi a particionált másolást, a másolási tevékenység párhuzamos lekérdezéseket futtat a Azure SQL Database forráson az adatok partíciók szerinti betöltéséhez. A párhuzamossági fokot a másolási tevékenység parallelCopies beállítása vezérli. Ha például négyre állítja a parallelCopies beállítást, a szolgáltatás egyszerre négy lekérdezést hoz létre és futtat a megadott partícióbeállítás és beállítások alapján, és minden lekérdezés lekéri az adatok egy részét a Azure SQL Database.
Javasoljuk, hogy különösen akkor engedélyezze az adatparticionálásos párhuzamos másolást, amikor nagy mennyiségű adatot tölt be az Azure SQL Database-ból. A következő javasolt konfigurációk különböző forgatókönyvekhez. Ha fájlalapú adattárba másol adatokat, ajánlott több fájlként írni egy mappába (csak a mappa nevét kell megadni), ebben az esetben a teljesítmény jobb, mint egyetlen fájlba írni.
| Szcenárió | Javasolt beállítások |
|---|---|
| Teljes terhelés nagy táblából, fizikai partíciókkal. |
Partíciós beállítás: A tábla fizikai partíciói. A végrehajtás során a szolgáltatás automatikusan észleli a fizikai partíciókat, és partíciók alapján másolja az adatokat. Ha ellenőrizni szeretné, hogy a tábla rendelkezik-e fizikai partícióval, tekintse meg ezt a lekérdezést. |
| Teljes terhelés nagy táblából fizikai partíciók nélkül, egész számmal vagy datetime oszlopmal az adatparticionáláshoz. |
Partícióbeállítások: Dinamikus tartomány partíciója. Partícióoszlop (nem kötelező): Adja meg az adatok particionálásához használt oszlopot. Ha nincs megadva, a rendszer az indexet vagy az elsődleges kulcs oszlopot használja. A partíció felső határa és a partíció alsó határa (nem kötelező): Adja meg, hogy meg szeretné-e határozni a partíciós lépést. Ez nem a táblázat sorainak szűrésére, hanem a tábla összes sorának particionálása és másolása történik. Ha nincs megadva, a másolási tevékenység automatikusan észleli az értékeket. Ha például az "ID" partícióoszlop értéke 1 és 100 között van, és az alsó kötést 20-ra, a felső kötést pedig 80-ra állítja be, a párhuzamos másolás 4-zel történik, a szolgáltatás 4 partícióval kéri le az adatokat – azonosítók az =20, [21, 50], [51, 80] és <=81 tartományban>. |
| Nagy mennyiségű adat betöltése személyre szabott lekérdezéssel fizikai partíciók nélkül, az adat partícionáláshoz egész vagy dátum/dátum-idő oszloppal. |
Partícióbeállítások: Dinamikus tartomány partíciója. Lekérdezés: SELECT * FROM <TableName> WHERE ?DfDynamicRangePartitionCondition AND <your_additional_where_clause>.Partícióoszlop: Adja meg az adatok particionálásához használt oszlopot. A partíció felső határa és a partíció alsó határa (nem kötelező): Adja meg, hogy meg szeretné-e határozni a partíciós lépést. Ez nem a tábla sorainak szűrésére használható, a lekérdezés eredményének összes sora particionálásra és másolásra kerül. Ha nincs megadva, a másolási tevékenység automatikusan észleli az értéket. Ha például az "ID" partícióoszlop értéke 1 és 100 között van, és az alsó kötést 20-ra, a felső kötést pedig 80-ra állítja be, a párhuzamos másolás 4-zel, akkor a szolgáltatás 4 partícióazonosítóval kéri le az adatokat az =20, [21, 50], [51, 80] és <=81 tartományban>. Az alábbiakban további minta lekérdezéseket talál a különböző forgatókönyvekhez: 1. A teljes tábla lekérdezése: SELECT * FROM <TableName> WHERE ?DfDynamicRangePartitionCondition2. Lekérdezés oszlopkijelöléssel és további where-clause szűrőkkel rendelkező táblából: SELECT <column_list> FROM <TableName> WHERE ?DfDynamicRangePartitionCondition AND <your_additional_where_clause>3. Lekérdezés allekérdezésekkel: SELECT <column_list> FROM (<your_sub_query>) AS T WHERE ?DfDynamicRangePartitionCondition AND <your_additional_where_clause>4. Lekérdezés a partícióval az alkérdezésben: SELECT <column_list> FROM (SELECT <your_sub_query_column_list> FROM <TableName> WHERE ?DfDynamicRangePartitionCondition) AS T |
Ajánlott eljárások az adatok partíciós beállítással való betöltéséhez:
- Válassza a megkülönböztető oszlopot partícióoszlopként (például elsődleges kulcs vagy egyedi kulcs) az adateltérés elkerülése érdekében.
- Ha a tábla beépített partícióval rendelkezik, a jobb teljesítmény érdekében használja a "Tábla fizikai partíciói" partícióbeállítást.
- Ha Azure Integration Runtime használ adatok másolásához, nagyobb "Data integration Units (DIU)" (>4) beállítással több számítási erőforrást használhat. Ellenőrizze a vonatkozó forgatókönyveket.
- A "másolási párhuzamosság foka" szabályozza a partíciószámokat, a túl nagy szám beállítása néha rontja a teljesítményt, javasoljuk, hogy állítsa be ezt a számot (DIU vagy a saját üzemeltetésű INTEGRÁCIÓs csomópontok száma) * (2–4).
Példa: teljes terhelés fizikai partíciókkal rendelkező nagy táblából
"source": {
"type": "AzureSqlSource",
"partitionOption": "PhysicalPartitionsOfTable"
}
Példa: lekérdezés dinamikus tartománypartícióval
"source": {
"type": "AzureSqlSource",
"query": "SELECT * FROM <TableName> WHERE ?DfDynamicRangePartitionCondition AND <your_additional_where_clause>",
"partitionOption": "DynamicRange",
"partitionSettings": {
"partitionColumnName": "<partition_column_name>",
"partitionUpperBound": "<upper_value_of_partition_column (optional) to decide the partition stride, not as data filter>",
"partitionLowerBound": "<lower_value_of_partition_column (optional) to decide the partition stride, not as data filter>"
}
}
Minta lekérdezés a fizikai partíció ellenőrzéséhez
SELECT DISTINCT s.name AS SchemaName, t.name AS TableName, pf.name AS PartitionFunctionName, c.name AS ColumnName, iif(pf.name is null, 'no', 'yes') AS HasPartition
FROM sys.tables AS t
LEFT JOIN sys.objects AS o ON t.object_id = o.object_id
LEFT JOIN sys.schemas AS s ON o.schema_id = s.schema_id
LEFT JOIN sys.indexes AS i ON t.object_id = i.object_id
LEFT JOIN sys.index_columns AS ic ON ic.partition_ordinal > 0 AND ic.index_id = i.index_id AND ic.object_id = t.object_id
LEFT JOIN sys.columns AS c ON c.object_id = ic.object_id AND c.column_id = ic.column_id
LEFT JOIN sys.partition_schemes ps ON i.data_space_id = ps.data_space_id
LEFT JOIN sys.partition_functions pf ON pf.function_id = ps.function_id
WHERE s.name='[your schema]' AND t.name = '[your table name]'
Ha a tábla fizikai partícióval rendelkezik, a "HasPartition" az alábbihoz hasonlóan "igen" értékként jelenik meg.
Legjobb gyakorlat az adatok betöltésére az Azure SQL Database-be
Ha adatokat másol Azure SQL Database, eltérő írási viselkedésre lehet szükség:
- Hozzáfűzés: A forrásadatok csak új rekordokat tartalmaznak.
- Upsert: A forrásadatok beszúrásokkal és frissítésekkel is rendelkeznek.
- Felülírás: Minden alkalommal egy teljes dimenziótáblát szeretnék újra betölteni.
- Írás egyéni logikával: További feldolgozásra van szükségem a végső beszúrás előtt a céltáblába.
Tekintse meg a megfelelő szakaszokat a szolgáltatásban való konfigurálásról és az ajánlott eljárásokról.
Adatok hozzáfűzése
Az adatok hozzáfűzése az Azure SQL Database fogadó-összekötő alapértelmezett viselkedése. A szolgáltatás tömeges beszúrással hatékonyan ír a táblába. Ennek megfelelően konfigurálhatja a forrást és a fogadót a másolási tevékenységben.
Adatok beszúrása és frissítése (upsert)
A Copy tevékenység mostantól támogatja az adatok natív módon történő betöltését egy adatbázis ideiglenes táblájába, majd frissíti a fogadó táblában lévő adatokat, ha létezik a kulcs, ellenkező esetben új adatokat szúr be. A másolási tevékenységek upsert beállításairól további információt a Azure SQL Database mint fogadó részben talál.
A teljes táblázat felülírása
A másolási tevékenység célhelyén konfigurálhatja a preCopyScript tulajdonságot. Ebben az esetben minden futtatott másolási tevékenységnél először a szolgáltatás futtatja a szkriptet. Ezután futtatja a másolatot az adatok beszúrásához. Ha például felül szeretné írni a teljes táblát a legújabb adatokkal, adjon meg egy szkriptet, amely először törli az összes rekordot, mielőtt tömegesen betöltené az új adatokat a forrásból.
Adatok írása egyéni logikával
Az adatok egyéni logikával történő írásának lépései hasonlóak az Upsert adatszakaszban leírtakhoz. Ha a forrásadatok végső beszúrása előtt további feldolgozást kell alkalmaznia a céltáblába, betölthet egy átmeneti táblába, majd meghívhatja a tárolt eljárástevékenységet, vagy meghívhat egy tárolt eljárást a másolási tevékenység fogadójában az adatok alkalmazásához, vagy használhatja a Leképezési Data Flow.
Tárolt eljárás meghívása SQL-fogadóból
Amikor adatokat másol a Azure SQL Database, konfigurálhat és meghívhat egy felhasználó által megadott tárolt eljárást a forrástábla minden kötegén további paraméterekkel. A tárolt eljárás funkció kihasználja a táblaértékű paraméterek előnyeit.
Tárolt eljárást akkor használhat, ha a beépített másolási mechanizmusok nem felelnek meg a célnak. Ilyen például, ha a forrásadatok végső beszúrása előtt további feldolgozást szeretne alkalmazni a céltáblába. További feldolgozási példák az oszlopok egyesítése, további értékek keresése és több táblába való beszúrás.
Az alábbi minta bemutatja, hogyan használható tárolt eljárás egy tábla upsertra az Azure SQL-adatbázisban. Tegyük fel, hogy a bemeneti adatok és a fogadó marketingtáblája három oszlopból áll: ProfileID, State és Category. Végezze el az upsertet a ProfileID oszlop alapján, és csak a "ProductA" nevű adott kategóriára alkalmazza.
Az adatbázisban adja meg az sqlWriterTableType nevével megegyező nevű táblatípust. A táblatípus sémája megegyezik a bemeneti adatok által visszaadott sémával.
CREATE TYPE [dbo].[MarketingType] AS TABLE( [ProfileID] [varchar](256) NOT NULL, [State] [varchar](256) NOT NULL, [Category] [varchar](256) NOT NULL )Az adatbázisban adja meg a tárolt eljárást az sqlWriterStoredProcedureName névvel megegyező néven. Kezeli a megadott forrásból származó bemeneti adatokat, és egyesül a kimeneti táblában. A tárolt eljárásban a táblatípus paraméterneve megegyezik az adathalmazban definiált TableName paraméternévvel .
CREATE PROCEDURE spOverwriteMarketing @Marketing [dbo].[MarketingType] READONLY, @category varchar(256) AS BEGIN MERGE [dbo].[Marketing] AS target USING @Marketing AS source ON (target.ProfileID = source.ProfileID and target.Category = @category) WHEN MATCHED THEN UPDATE SET State = source.State WHEN NOT MATCHED THEN INSERT (ProfileID, State, Category) VALUES (source.ProfileID, source.State, source.Category); ENDAz Azure Data Factory vagy a Synapse-folyamatban adja meg a SQL-lekérdező szakaszt a másolási tevékenységben az alábbiak szerint:
"sink": { "type": "AzureSqlSink", "sqlWriterStoredProcedureName": "spOverwriteMarketing", "storedProcedureTableTypeParameterName": "Marketing", "sqlWriterTableType": "MarketingType", "storedProcedureParameters": { "category": { "value": "ProductA" } } }
Amikor tárolt eljárással adatokat ír az Azure SQL Database-be, a fogadó az adatforrást mini kötegekre osztja, majd végrehajtja a beszúrást, így a tárolt eljárásban lévő extra lekérdezés többször is végrehajtható. Ha rendelkezik a másolási tevékenység futtatásához szükséges lekérdezéssel, mielőtt adatokat írna az Azure SQL Database-be, nem ajánlott azt a tárolt eljáráshoz adni, hanem a Pre-copy szkript mezőbe.
Adatfolyam-tulajdonságok leképezése
A leképezési adatfolyam adatainak átalakításakor Azure SQL Database táblázatokat olvashat és írhat. További információkért tekintse meg a forrásátalakítást, és a fogadóátalakítást a leképezési adatfolyamokban.
Forrásátalakítás
A Azure SQL Database vonatkozó beállítások a forrásátalakítás Forrás beállításai lapján érhetők el.
Bemenet: Válassza ki, hogy a forrást egy Select * from <table-name> táblára mutatja-e, vagy egyéni SQL-lekérdezést visz be.
Lekérdezés: Ha a bemeneti mezőben a Lekérdezés lehetőséget választja, adjon meg egy SQL-lekérdezést a forráshoz. Ez a beállítás felülírja az adathalmazban kiválasztott táblákat. Az Order By záradékok itt nem támogatottak, de beállíthatja a teljes SELECT FROM utasítást. Felhasználó által definiált táblafüggvényeket is használhat. select * from udfGetData() egy olyan UDF az SQL-ben, amely egy táblát ad vissza. Ez a lekérdezés létrehoz egy forrástáblát, amelyet használhat az adatfolyamban. A lekérdezések használatával is csökkenthetők a tesztelési és keresési sorok.
Tipp.
Az SQL-ben használt közös táblakifejezés (CTE) nem támogatott a leképezési adatfolyam lekérdezési módjában, mivel ennek a módnak az előfeltétele, hogy a lekérdezések használhatók legyenek az SQL-lekérdezés FROM záradékában, de a CTE-k ezt nem tehetik meg. A CTE-k használatához létre kell hoznia egy tárolt eljárást a következő lekérdezéssel:
CREATE PROC CTESP @query nvarchar(max)
AS
BEGIN
EXECUTE sp_executesql @query;
END
Ezután használja a Tárolt eljárás módot a leképezési adatfolyam forrásátalakításában, és állítsa be a @query hasonló példát with CTE as (select 'test' as a) select * from CTE. Ezután használhatja a CT-eket a várt módon.
Tárolt eljárás: Akkor válassza ezt a lehetőséget, ha a forrásadatbázisból végrehajtott tárolt eljárásból szeretne előrejelzési és forrásadatokat létrehozni. Beírhatja a sémát, az eljárás nevét és a paramétereket, vagy a Frissítés gombra kattintva megkérheti a szolgáltatást, hogy felderítse a sémákat és az eljárásneveket. Ezután az Importálás gombra kattintva importálhatja az összes eljárásparamétert az űrlap @paraNamehasználatával.
- SQL-példa:
Select * from MyTable where customerId > 1000 and customerId < 2000 - Paraméteres SQL-példa:
"select * from {$tablename} where orderyear > {$year}"
Kötegméret: Adjon meg egy kötegméretet, hogy nagy adatokat olvasson be.
Elkülönítési szint: A leképezési adatfolyamban az SQL-források alapértelmezettje a nem elkötelezett olvasás. Az elkülönítési szintet itt az alábbi értékek egyikére módosíthatja:
- Lekötött olvasás
- Olvasás elkötelezetlenül
- Ismétlődő olvashatóság
- Szerializálható
- Nincs (az elkülönítési szint figyelmen kívül hagyása)
Növekményes kinyerés engedélyezése: Ezzel a beállítással tudathatja az ADF-sel, hogy csak azokat a sorokat dolgozza fel, amelyek a folyamat legutóbbi végrehajtása óta megváltoztak. Ha sémaeltolódással szeretné engedélyezni a növekményes kivonatot, a natív változásadat-rögzítéshez engedélyezett táblák helyett válassza a növekményes/vízjeles oszlopokon alapuló táblákat.
Növekményes oszlop: A növekményes kinyerési funkció használatakor ki kell választania a forrástáblában vízjelként használni kívánt dátum/idő vagy numerikus oszlopot.
Natív módosítási adatrögzítés engedélyezése (előzetes verzió): Ezzel a beállítással tudathatja az ADF-sel, hogy a folyamat legutóbbi végrehajtása óta csak az SQL-változási adatrögzítési technológia által rögzített változásadatokat dolgozza fel. Ezzel a beállítással a rendszer automatikusan betölti a deltaadatokat, beleértve a sor beszúrását, frissítését és törlését anélkül, hogy növekményes oszlopra lenne szükség. A change data capture funkciót engedélyezni kell az Azure SQL DB-n, mielőtt az ADF-ben használná ezt a beállítást. Az ADF-ben elérhető beállítással kapcsolatos további információkért lásd a natív változásadatok rögzítését.
Kezdje el az olvasást az elejétől: Ha ezt a beállítást növekményes kivonattal állítja be, az ADF arra utasítja az ADF-et, hogy olvassa be az összes sort egy folyamat első végrehajtásakor, és be van kapcsolva a növekményes kivonat.
Fogadó átalakítása
A Azure SQL Database vonatkozó beállítások a fogadóátalakítás Settings lapján érhetők el.
Frissítési módszer: Meghatározza, hogy milyen műveletek engedélyezettek az adatbázis célhelyén. Az alapértelmezett beállítás csak a beszúrások engedélyezése. A sorok frissítéséhez, beszúráshoz vagy törléséhez módosított sor átalakításra van szükség az adott műveletek sorainak címkézéséhez. Frissítések, beszúrások és törlések esetén egy kulcsoszlopot vagy oszlopokat kell beállítani annak meghatározásához, hogy melyik sort kell módosítani.
Az itt kulcsként megadott oszlopnevet a szolgáltatás a következő frissítés, a upsert és a törlés részeként fogja használni. Ezért ki kell választania egy olyan oszlopot, amely a fogadóleképezésben található. Ha nem szeretné ebbe a kulcsoszlopba írni az értéket, kattintson a "Kulcsoszlopok írásának kihagyása" elemre.
Paraméterezheti az itt használt kulcsoszlopot a cél Azure SQL Database tábla frissítéséhez. Ha több oszlopa van egy összetett kulcshoz, kattintson az "Egyéni kifejezés" elemre, és dinamikus tartalmat adhat hozzá az adatfolyam-kifejezés nyelvével, amely tartalmazhatja az összetett kulcs oszlopneveit tartalmazó sztringeket tartalmazó tömböt.
Táblaművelet: Meghatározza, hogy az írás előtt újra létre kell-e hozni vagy eltávolítani az összes sort a céltáblából.
- Nincs: A rendszer nem hajt végre műveletet a táblán.
- Újrateremtés: A tábla le fog törlődni és újra létre fog jönni. Új tábla dinamikus létrehozása esetén kötelező.
- Truncálás: A cél tábla összes sora el lesz távolítva.
Kötegméret: Azt szabályozza, hogy hány sor legyen megírva az egyes rekeszekbe. A nagyobb kötegméretek javítják a tömörítést és a memóriaoptimalizálást, de adatok gyorsítótárazása esetén fennáll a memóriakivétel kockázata.
TempDB használata: Alapértelmezés szerint a szolgáltatás egy globális ideiglenes táblával tárolja az adatokat a betöltési folyamat részeként. Másik lehetőségként törölheti a "TempDB használata" jelölőnégyzet jelölését, és ehelyett kérje meg a szolgáltatást, hogy tárolja az ideiglenes tárolótáblát a fogadóhoz használt adatbázisban található felhasználói adatbázisban.
Elő- és utáni SQL-szkriptek: Adja meg azokat a többsoros SQL-szkripteket, amelyeket az adatok írása előtt (előfeldolgozás) és után (utófeldolgozás) hajtanak végre a céladatbázisban.
Tipp.
Hibát tartalmazó sorok kezelése
Ha Azure SQL ADATBÁZISba ír, bizonyos adatsorok meghiúsulhatnak a cél által beállított korlátozások miatt. Néhány gyakori hiba:
- A sztring- vagy bináris adatok csonkulnak a táblában
- A NULL értéket nem lehet beszúrni az oszlopba
- Az INSERT utasítás ütközött a CHECK korlátozással
Alapértelmezés szerint az adatfolyam-futtatás az első hibánál meghiúsul. Választhatja a Folytatás hibaüzenetet , amely lehetővé teszi az adatfolyam befejezését még akkor is, ha az egyes sorok hibásak. A szolgáltatás különböző lehetőségeket kínál a hibasorok kezelésére.
Tranzakció véglegesítése: Adja meg, hogy az adatok egyetlen tranzakcióban vagy kötegekben lesznek-e megírva. Az egyetlen tranzakció rosszabb teljesítményt nyújt, de a tranzakció befejezéséig nem jelennek meg mások számára megírt adatok.
Elutasított adatok kimenete: Ha engedélyezve van, a hibasorokat csv-fájlba mentheti az Azure Blob Storage-ba vagy egy Ön által választott Azure Data Lake Storage Gen2-fiókba. Ez megírja a hibasorokat három további oszlopmal: az SQL-művelettel( például INSERT vagy UPDATE), az adatfolyam hibakódjával és a sor hibaüzenetével.
Hibajelentés sikerességéről: Ha engedélyezve van, az adatfolyam akkor is sikeresként lesz megjelölve, ha hibasorok találhatók.
Azure SQL Database adattípus-leképezés
Amikor adatokat másolnak az Azure SQL Database-ből az Azure SQL Database-be, a rendszer az alábbi leképezéseket használja az Azure SQL Database adattípusai és az Azure Data Factory köztes adattípusai között. Ugyanezeket a leképezéseket használja a Synapse-pipeline funkció, amely közvetlenül implementálja az Azure Data Factory-t. Ha tudni szeretné, hogy a másolási művelet hogyan képezi le a forrássémát és az adattípust a célhoz, tekintse meg a séma- és adattípus-leképezéseket.
| Azure SQL Database adattípus | A Data Factory köztes adattípusa |
|---|---|
| bigint | Int64 |
| bináris | Bájt[] |
| bit | logikai |
| char | Sztring, Karakter[] |
| dátum: | Dátum/idő |
| Dátum és idő | Dátum/idő |
| datetime2 | Dátum/idő |
| Dátum és idő eltérés | DateTimeOffset |
| Decimális | Decimális |
| FILESTREAM attribútum (varbinary(max)) | Bájt[] |
| Lebegőpontos típus | Kétszeres |
| kép | Bájt[] |
| int | Int32 |
| pénz | Decimális |
| nchar | Sztring, Karakter[] |
| ntext | Sztring, Karakter[] |
| Numerikus | Decimális |
| nvarchar | Sztring, Karakter[] |
| valós | Egyszeres |
| sor verzió | Bájt[] |
| smalldatetime | Dátum/idő |
| smallint | Int16 |
| smallmoney | Decimális |
| sql_variant | Objektum |
| SMS | Sztring, Karakter[] |
| idő | TimeSpan |
| timestamp | Bájt[] |
| tinyint | Bájt |
| egyediazonosító | GUID |
| varbinary | Bájt[] |
| varchar | Sztring, Karakter[] |
| xml | Sztring |
Feljegyzés
A decimális köztes típusra leképezhető adattípusok esetében jelenleg Copy activity legfeljebb 28 pontosságot támogat. Ha 28-nál nagyobb pontosságú adatokkal rendelkezik, fontolja meg az SQL-lekérdezések sztringgé alakítását.
Keresési tevékenység tulajdonságai
A tulajdonságok részleteinek megismeréséhez tekintse meg a keresési tevékenységet.
GetMetadata tevékenység tulajdonságai
A tulajdonságok részleteinek megismeréséhez ellenőrizze a GetMetadata-tevékenységet
Always Encrypted használata
Amikor az Azure SQL Database-ből/-ba másol adatokat az Always Encrypted használatával, kövesse az alábbi lépéseket:
Tárolja az oszlop főkulcsot (CMK) egy Azure Key Vault-ban. További információ arról, hogyan konfigurálható az Always Encrypted az Azure Key Vault használatával.
Biztosítsa a hozzáférést ahhoz a kulcstárhoz, amelyben az oszlop főkulcsa (CMK) található. A szükséges engedélyekért tekintse meg ezt a cikket .
Hozzon létre társított szolgáltatást az SQL-adatbázishoz való csatlakozáshoz, és engedélyezze az "Always Encrypted" függvényt felügyelt identitás vagy szolgáltatásnév használatával.
Feljegyzés
Azure SQL Database Always Encrypted az alábbi forgatókönyveket támogatja:
- A forrás- vagy fogadóadattárak a felügyelt identitást vagy a szolgáltatásnevet használják kulcsszolgáltatói hitelesítési típusként.
- A forrás- és fogadóadattárak is a felügyelt identitást használják kulcsszolgáltatói hitelesítési típusként.
- A forrás- és fogadóadattárak ugyanazt a szolgáltatásnevet használják, mint a kulcsszolgáltatói hitelesítés típusát.
Feljegyzés
A Azure SQL Database Always Encrypted jelenleg nem támogatott a fogadó átalakítása a leképezési adatfolyamokban.
Natív változásadat-rögzítés
Azure Data Factory támogathatja a natív változásadat-rögzítési képességeket SQL Server, Azure SQL adatbázishoz és Azure SQL MI-hez. Az ADF-leképezési adatfolyam automatikusan észlelheti és kinyerheti a módosított adatokat, beleértve a sor beszúrását, frissítését és törlését az SQL-tárolókban. Mivel nincs kódélmény az adatfolyam leképezésében, a felhasználók egyszerűen elérhetik az SQL-tárolókból származó adatreplikációs forgatókönyvet úgy, hogy céltárolóként hozzáfűznek egy adatbázist. Ráadásul a felhasználók bármilyen adatátalakítási logikát is megírhatnak az SQL-tárolók növekményes ETL-forgatókönyvének elérése érdekében.
Győződjön meg arról, hogy a pipeline és a tevékenység neve változatlan marad, hogy az ADF rögzíthesse az ellenőrzőpontot, így automatikusan megkaphatja a legutóbbi futtatás óta megváltozott adatokat. Ha módosítja a feldolgozási sor nevét vagy a tevékenység nevét, az ellenőrzőpont alaphelyzetbe lesz állítva, ami azt eredményezi, hogy Ön elölről kezdi vagy mostantól kapja a változásokat a következő futtatásban. Ha módosítani szeretné a folyamat nevét vagy tevékenységnevét, de továbbra is megtartja az ellenőrzőpontot, hogy az utolsó futtatásból származó módosított adatokat automatikusan megkapja, használja a saját Ellenőrzőpont-kulcsát az adatfolyam-tevékenységben ennek eléréséhez.
A folyamat hibakeresésekor ez a funkció ugyanúgy működik. Vegye figyelembe, hogy az ellenőrzőpont alaphelyzetbe áll, amikor frissíti a böngészőt a hibakeresési futtatás során. Miután elégedett a hibakeresési futtatás folyamatának eredményével, közzéteheti és aktiválhatja a folyamatot. Abban a pillanatban, amikor először aktiválja a közzétett folyamatot, az automatikusan újraindul az elejétől, vagy mostantól módosításokat kap.
A felügyeleti szakaszban mindig lehetősége van egy folyamat újrafuttatására. Ha így tesz, a módosított adatok mindig a kiválasztott folyamatfuttatás előző ellenőrzőpontjáról lesznek rögzítve.
1. példa:
Ha közvetlenül összekapcsol egy forrásátalakítást, amely egy SQL CDC-kompatibilis adatkészletre hivatkozik, egy adatbázisra hivatkozó célelőállító átalakítással egy leképezési adatfolyamban, az SQL-forráson történt változtatásokat a rendszer automatikusan alkalmazza a céladatbázisra, amely megkönnyíti az adatbázisok közötti adatreplikációs forgatókönyv megvalósítását. A fogadóátalakítás frissítési metódusával kiválaszthatja, hogy engedélyezi-e a beszúrást, engedélyezi a frissítést vagy engedélyezi a törlést a céladatbázison. A leképezési adatfolyam példaszkriptje az alábbi módon érhető el.
source(output(
id as integer,
name as string
),
allowSchemaDrift: true,
validateSchema: false,
enableNativeCdc: true,
netChanges: true,
skipInitialLoad: false,
isolationLevel: 'READ_UNCOMMITTED',
format: 'table') ~> source1
source1 sink(allowSchemaDrift: true,
validateSchema: false,
deletable:true,
insertable:true,
updateable:true,
upsertable:true,
keys:['id'],
format: 'table',
skipDuplicateMapInputs: true,
skipDuplicateMapOutputs: true,
errorHandlingOption: 'stopOnFirstError') ~> sink1
2. példa:
Ha az sql CDC-n keresztüli adatreplikáció helyett az ETL-forgatókönyvet szeretné engedélyezni az adatbázis között, kifejezéseket használhat az adatfolyam leképezésében, beleértve az isInsert(1), az isUpdate(1) és az isDelete(1) függvényt a sorok különböző művelettípusokkal való megkülönböztetéséhez. Az alábbi példaszkriptek egyike az adatfolyamok leképezésére egy oszlopból származó érték alapján: 1 a beszúrt sorok jelzésére, 2 a frissített sorok jelzésére, 3 pedig a törölt sorok jelzésére az alsóbb rétegbeli átalakításokhoz a deltaadatok feldolgozásához.
source(output(
id as integer,
name as string
),
allowSchemaDrift: true,
validateSchema: false,
enableNativeCdc: true,
netChanges: true,
skipInitialLoad: false,
isolationLevel: 'READ_UNCOMMITTED',
format: 'table') ~> source1
source1 derive(operationType = iif(isInsert(1), 1, iif(isUpdate(1), 2, 3))) ~> derivedColumn1
derivedColumn1 sink(allowSchemaDrift: true,
validateSchema: false,
skipDuplicateMapInputs: true,
skipDuplicateMapOutputs: true) ~> sink1
Ismert korlátozás:
- Az ADF csak az SQL CDC nettó módosításait tölti be cdc.fn_cdc_get_net_changes_ keresztül.
A Azure SQL Database verzió frissítése
A Azure SQL Database verzió frissítéséhez a Szerkesztési társított szolgáltatás lapon válassza a Recommended lehetőséget a Version területen, és konfigurálja a társított szolgáltatást az ajánlott verzióhoz tartozó Linked szolgáltatástulajdonságokra hivatkozva.
Az ajánlott és az örökölt verzió közötti különbségek
Az alábbi táblázat az ajánlott és az örökölt verziót használó Azure SQL Database közötti különbségeket mutatja be.
| Ajánlott verzió | Régi verzió |
|---|---|
TLS 1.3 támogatása a következőképpenencrypt: strict . |
A TLS 1.3 nem támogatott. |
Kapcsolódó tartalom
A másolási tevékenység által forrásként és fogadóként támogatott adattárak listáját lásd : Támogatott adattárak és formátumok.