Adatok másolása az Sql Serverhez készült Amazon RDS-ből az Azure Data Factory vagy az Azure Synapse Analytics használatával

Ez a cikk azt ismerteti, hogyan használhatja a másolási tevékenységet az Azure Data Factoryben és az Azure Synapse-folyamatokban adatok másolásához az SQL Server-adatbázishoz készült Amazon RDS-ből. További információért olvassa el az Azure Data Factory vagy az Azure Synapse Analytics bevezető cikkét.

Támogatott képességek

Ez az SQL Server-összekötőhöz készült Amazon RDS a következő képességeket támogatja:

Támogatott képességek integrációs modul
Másolási tevékenység (forrás/-) (1) (2)
Keresési tevékenység (1) (2)
GetMetadata-tevé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 másolási tevékenység által forrásként vagy fogadóként támogatott adattárak listáját a Támogatott adattárak táblában találja.

Ez az SQL Server-összekötőhöz készült Amazon RDS a következőket támogatja:

  • Az SQL Server 2005-ös vagy újabb verziója.
  • Adatok másolása SQL- vagy Windows-hitelesítéssel.
  • Forrásként az adatok lekérése SQL-lekérdezéssel vagy tárolt eljárással. Az SQL Server-forráshoz készült Amazon RDS-ből történő párhuzamos másolást is választhatja, a részletekért tekintse meg az SQL-adatbázis párhuzamos példányát ismertető szakaszt.

Az SQL Server Express LocalDB nem támogatott.

Előfeltételek

Ha az adattár helyszíni hálózaton, Azure-beli virtuális hálózaton vagy Amazon Virtual Private Cloudon belül található, konfigurálnia kell egy saját üzemeltetésű integrációs modult a csatlakozáshoz.

Ha az adattár felügyelt felhőalapú adatszolgáltatás, használhatja az Azure Integration Runtime-ot. Ha a hozzáférés a tűzfalszabályokban jóváhagyott IP-címekre korlátozódik, hozzáadhat azure integration runtime IP-eket az engedélyezési listához.

Az Azure Data Factory felügyelt virtuális hálózati integrációs moduljával is elérheti a helyszíni hálózatot anélkül, hogy saját üzemeltetésű integrációs modult telepítene és konfigurálna.

A Data Factory által támogatott hálózati biztonsági mechanizmusokkal és lehetőségekkel kapcsolatos további információkért lásd az adathozzáférési stratégiákat.

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:

Amazon RDS létrehozása SQL Serverhez társított szolgáltatáshoz felhasználói felületen

Az alábbi lépésekkel létrehozhat egy Amazon RDS-t az SQL Serverhez társított szolgáltatáshoz az Azure Portal felhasználói felületén.

  1. Keresse meg az Azure Data Factory vagy a 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:

  2. Keresse meg az SQL Serverhez készült Amazon RDS-t, és válassza ki az SQL Server-összekötőhöz készült Amazon RDS-t.

    Képernyőkép az SQL Server-összekötőhöz készült Amazon RDS-ről.

  3. Konfigurálja a szolgáltatás részleteit, tesztelje a kapcsolatot, és hozza létre az új társított szolgáltatást.

    Képernyőkép az Sql Serverhez társított Amazon RDS konfigurációjáról.

Az összekötő konfigurációjának részletei

A következő szakaszok részletesen ismertetik a Data Factory és a Synapse-folyamat entitásainak az SQL Server-adatbázis-összekötőhöz készült Amazon RDS-hez való definiálásához használt tulajdonságokat.

Társított szolgáltatás tulajdonságai

Az SQL Server-összekötőhöz készült Amazon RDS ajánlott verziója támogatja a TLS 1.3-at. Az Amazon RDS for SQL Server-összekötő verzióját frissítheti az örökölt verzióról ebben a szakaszban. A tulajdonság részleteiért tekintse meg a megfelelő szakaszokat.

Feljegyzés

Az SQL Server Always Encrypted szolgáltatástól elérhető Amazon RDS nem támogatott az adatfolyamatokban.

Tipp.

Ha "UserErrorFailedToConnectToSqlServer" hibakóddal és "Az adatbázis munkamenetkorlátja XXX és el lett érve" hibaüzenettel találkozik, adja hozzá a Pooling=false elemet a kapcsolati sztringhez, majd próbálkozzon újra.

Az ajánlott verzió alkalmazásakor ezek az általános tulajdonságok támogatottak az SQL Serverhez társított Amazon RDS-szolgáltatások esetében:

Tulajdonság Leírás Kötelező
típus A típustulajdonságot AmazonRdsForSqlServer é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 az SQL (alapértelmezett), a Windows. 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-információkat az Amazon RDS for SQL Serverben tárolt bizalmas adatok felügyelt identitás vagy szolgáltatásnév használatával történő védelméhez. 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. További információ az Előfeltételek szakaszból. 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 beállításnál trueazt 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. Hivatkozhat az Azure Key Vaultban tárolt titkos kódokra is. Igen

Példa: SQL-hitelesítés használata

{
    "name": "AmazonSqlLinkedService",
    "properties": {
        "type": "AmazonRdsForSqlServer",
        "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: SQL-hitelesítés használata jelszóval az Azure Key Vaultban

{
    "name": "AmazonSqlLinkedService",
    "properties": {
        "type": "AmazonRdsForSqlServer",
        "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": "AmazonSqlLinkedService",
    "properties": {
        "type": "AmazonRdsForSqlServer",
        "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"
        }
    }
}

Windows-hitelesítés

A Windows-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 Adjon meg egy felhasználónevet. Ilyen például a tartománynév\felhasználónév. Igen
jelszó Adja meg a felhasználónévhez megadott felhasználói fiók jelszavát. Jelölje meg ezt a mezőt SecureStringként a biztonságos tároláshoz. Hivatkozhat az Azure Key Vaultban tárolt titkos kódokra is. Igen

Példa: Windows-hitelesítés használata

{
    "name": "AmazonSqlLinkedService",
    "properties": {
        "type": "AmazonRdsForSqlServer",
        "typeProperties": {
            "server": "<name or network address of the SQL server instance>",
            "database": "<database name>",
            "encrypt": "<encrypt>",
            "trustServerCertificate": false,
            "authenticationType": "Windows",
            "userName": "<domain\\username>",
            "password": {
                "type": "SecureString",
                "value": "<password>"
            }
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

Régi verzió

Az SQL Serverhez társított Amazon RDS-szolgáltatások esetében ezek az általános tulajdonságok támogatottak, amikor a örökölt verziót alkalmazza.

Tulajdonság Leírás Kötelező
típus A típustulajdonságot AmazonRdsForSqlServer értékre kell állítani. Igen
alwaysEncryptedBeállítások Adja meg az Always Encrypted engedélyezéséhez szükséges alwaysencryptedsettings-információkat az Amazon RDS for SQL Serverben tárolt bizalmas adatok felügyelt identitás vagy szolgáltatásnév használatával történő védelméhez. 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. További információ az Előfeltételek szakaszból. Ha nincs megadva, a rendszer az alapértelmezett Azure-integrációs modult használja. Nem

Ez az SQL Server-összekötőhöz készült Amazon RDS a következő hitelesítési típusokat támogatja. Részletekért tekintse meg a megfelelő szakaszokat.

SQL-hitelesítés az örökölt verzióhoz

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ő
connectionString Adja meg az SQL Server-adatbázishoz készült Amazon RDS-hez való csatlakozáshoz szükséges connectionString-adatokat . Adja meg a felhasználónévként a bejelentkezési nevet, és győződjön meg arról, hogy a csatlakozni kívánt adatbázis megfeleltetve van ehhez a bejelentkezéshez. Igen
jelszó Ha egy jelszót szeretne elhelyezni az Azure Key Vaultban, távolítsa el a password konfigurációt a kapcsolati karakterláncból. További információ: Hitelesítő adatok tárolása az Azure Key Vaultban. Nem

Windows-hitelesítés az örökölt verzióhoz

A Windows-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ő
connectionString Adja meg az Sql Server-adatbázishoz készült Amazon RDS-hez való csatlakozáshoz szükséges connectionString-adatokat . Igen
Felhasználónév Adjon meg egy felhasználónevet. Ilyen például a tartománynév\felhasználónév. Igen
jelszó Adja meg a felhasználónévhez megadott felhasználói fiók jelszavát. Jelölje meg ezt a mezőt SecureStringként a biztonságos tároláshoz. Hivatkozhat az Azure Key Vaultban tárolt titkos kódokra is. Igen

Adathalmaz tulajdonságai

Az adathalmazok meghatározásához elérhető szakaszok és tulajdonságok teljes listáját az adathalmazokról szóló cikkben találja. Ez a szakasz az SQL Server-adatkészlethez készült Amazon RDS által támogatott tulajdonságok listáját tartalmazza.

Ha adatokat szeretne másolni egy SQL Server-adatbázishoz készült Amazon RDS-ből, a következő tulajdonságok támogatottak:

Tulajdonság Leírás Kötelező
típus Az adathalmaz típustulajdonságának AmazonRdsForSqlServerTable értékre kell állítania. Igen
séma A séma neve. Nem
tábla A tábla/nézet neve. Nem
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

Példa

{
    "name": "AmazonRdsForSQLServerDataset",
    "properties":
    {
        "type": "AmazonRdsForSqlServerTable",
        "linkedServiceName": {
            "referenceName": "<Amazon RDS for SQL Server linked service name>",
            "type": "LinkedServiceReference"
        },
        "schema": [ < physical schema, optional, retrievable during authoring > ],
        "typeProperties": {
            "schema": "<schema_name>",
            "table": "<table_name>"
        }
    }
}

Másolási tevékenység tulajdonságai

A tevékenységek definiálásához használható szakaszok és tulajdonságok teljes listáját a Folyamatok című cikkben találja. Ez a szakasz az SQL Server-forráshoz készült Amazon RDS által támogatott tulajdonságok listáját tartalmazza.

Az Amazon RDS az SQL Serverhez mint forrás

Tipp.

Ha hatékonyan szeretne adatokat betölteni az SQL Serverhez készült Amazon RDS-ből adatparticionálással, további információt az SQL Database párhuzamos másolásáról tudhat meg.

Ha adatokat szeretne másolni az SQL Serverhez készült Amazon RDS-ből, állítsa be a másolási tevékenység forrástípusát az AmazonRdsForSqlServerSource-ra. A másolási tevékenység forrás szakaszában a következő tulajdonságok támogatottak:

Tulajdonság Leírás Kötelező
típus A másolási tevékenység forrásának típustulajdonságát AmazonRdsForSqlServerSource értékre kell állítani. Igen
sqlReaderQuery Az adatok olvasásához használja az egyéni SQL-lekérdezést. Például: select * from MyTable. Nem
sqlReaderStoredProcedureName Ez a tulajdonság 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 Ezek a paraméterek a tárolt eljáráshoz tartoznak.
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 az sql serverhez készült Amazon RDS-ből való 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ós beállítás engedélyezve van (vagyis nem None), a párhuzamos adatbetöltés mértékét az Amazon RDS-ből az SQL Serverbe a másolási tevékenység parallelCopies beállítása ellenőrzi.
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 és partícióoszlopként használja a tábla indexét vagy elsődleges kulcsát.
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 a sqlReaderQuery meg van adva az AmazonRdsForSqlServerSource számára, a másolási tevékenység ezt a lekérdezést az Amazon RDS for SQL Server 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és használata

"activities":[
    {
        "name": "CopyFromAmazonRdsForSQLServer",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "<Amazon RDS for SQL Server input dataset name>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<output dataset name>",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "AmazonRdsForSqlServerSource",
                "sqlReaderQuery": "SELECT * FROM MyTable"
            },
            "sink": {
                "type": "<sink type>"
            }
        }
    }
]

Példa: Tárolt eljárás használata

"activities":[
    {
        "name": "CopyFromAmazonRdsForSQLServer",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "<Amazon RDS for SQL Server input dataset name>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<output dataset name>",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "AmazonRdsForSqlServerSource",
                "sqlReaderStoredProcedureName": "CopyTestSrcStoredProcedureWithParameters",
                "storedProcedureParameters": {
                    "stringData": { "value": "str3" },
                    "identifier": { "value": "$$Text.Format('{0:yyyy}', <datetime parameter>)", "type": "Int"}
                }
            },
            "sink": {
                "type": "<sink type>"
            }
        }
    }
]

A 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

Párhuzamos másolás AZ SQL Database-ből

Az SQL Server-összekötőhöz készült Amazon RDS másolási tevékenységben 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.

Képernyőkép a partícióbeállításokról

Ha engedélyezi a particionált másolást, a másolási tevékenység párhuzamos lekérdezéseket futtat az Amazon RDS for SQL Server-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 van állítva parallelCopies , 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 mindegyik lekérdezés lekéri az adatok egy részét az Sql Serverhez készült Amazon RDS-ből.

Javasoljuk, hogy engedélyezze a párhuzamos másolást adatparticionálással, különösen akkor, ha nagy mennyiségű adatot tölt be az Sql Serverhez készült Amazon RDS-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 elsődleges kulcs oszlopát 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, és a MIN és a MAX értékektől függően hosszú időt vehet igénybe. Javasoljuk, hogy felső és alsó határt adjon meg.

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 ?DfDynamicRangePartitionCondition
2. 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:

  1. 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.
  2. 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.
  3. Ha az Azure Integration Runtime-t használja az adatok másolásához, nagyobb "adatintegráció egységeket (DIU)" (>4) állíthat be a nagyobb számítási erőforrások használatához. Ellenőrizze a vonatkozó forgatókönyveket.
  4. 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": "AmazonRdsForSqlServerSource",
    "partitionOption": "PhysicalPartitionsOfTable"
}

Példa: lekérdezés dinamikus tartománypartícióval

"source": {
    "type": "AmazonRdsForSqlServerSource",
    "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.

Sql-lekérdezés eredménye

Adattípus-leképezés az SQL Serverhez készült Amazon RDS-hez

Ha adatokat másol az SQL Serverhez készült Amazon RDS-ből, az alábbi leképezéseket használja az Amazon RDS az SQL Server-adattípusokhoz a szolgáltatás által belsőleg használt köztes adattípusokra. Tekintse meg a séma- és adattípus-leképezéseket, hogy megismerje, hogyan térképezi fel a másolási tevékenység a forrássémát és az adattípust a célhelyre.

Amazon RDS SQL Server-adattípushoz Köztes szolgáltatás adattípusa
bigint Int64
bináris Byte[]
bit logikai
char Sztring, Karakter[]
date DateTime
Dátum és idő DateTime
datetime2 DateTime
Dátum és idő eltérés DateTimeOffset
Decimal Decimal
FILESTREAM attribútum (varbinary(max)) Byte[]
Lebegés Double
kép Byte[]
int Int32
pénz Decimal
nchar Sztring, Karakter[]
ntext Sztring, Karakter[]
Numerikus Decimal
nvarchar Sztring, Karakter[]
valódi Single
sorszámverzió Byte[]
smalldatetime DateTime
smallint Int16
aprópénz Decimal
sql_variant Objektum
SMS Sztring, Karakter[]
time TimeSpan
timestamp Byte[]
tinyint Int16
uniqueidentifier GUID
varbinary Byte[]
varchar Sztring, Karakter[]
xml Lánc

Feljegyzés

A decimális köztes típusra leképezhető adattípusok esetében jelenleg Copy tevékenység legfeljebb 28 pontosságot támogat. Ha 28-nál nagyobb pontosságot igénylő adatokkal rendelkezik, fontolja meg az SQL-lekérdezések sztringgé alakítását.

Amikor adatokat másol az Sql Serverhez készült Amazon RDS-ből az Azure Data Factory használatával, a bit adattípusa a logikai köztes adattípusra van leképezve. Ha olyan adatokkal rendelkezik, amelyeket bit adattípusként kell tárolni, használjon lekérdezéseket a T-SQL CAST vagy a CONVERT használatával.

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 adatokat másol az Amazon RDS for SQL Server-ből vagy -ba a Always Encrypted használatával, kövesse az alábbi lépéseket:

  1. Tárolja az oszlop főkulcsát (CMK) egy Azure Key Vault tárolóban. További információ az Always Encrypted Azure Key Vault használatával történő konfigurálásáról

  2. Győződjön meg arról, hogy hozzáférést biztosít ahhoz a kulcstárhoz, ahol az oszlop főkulcsa (CMK) található. A szükséges engedélyekért tekintse meg ezt a cikket .

  3. 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.

Kapcsolati problémák hibaelhárítása

  1. Konfigurálja az Sql Server-példányhoz készült Amazon RDS-t távoli kapcsolatok elfogadásához. Indítsa el az SQL Server Management Studióhoz készült Amazon RDS-t, kattintson a jobb gombbal a kiszolgálóra, és válassza a Tulajdonságok lehetőséget. Válassza a Kapcsolatok lehetőséget a listából, és jelölje be a Kiszolgáló távoli kapcsolatainak engedélyezése jelölőnégyzetet.

    Távoli kapcsolatok engedélyezése

    Részletes lépésekért lásd a távelérési kiszolgáló konfigurációs beállításának konfigurálását ismertető cikket.

  2. Indítsa el az Amazon RDS for SQL Server Konfigurációkezelőt. Nyissa meg a kívánt példányhoz tartozó Amazon RDS SQL Server hálózati konfigurációját, és válassza ki a MSSQLSERVER protokollokat. A protokollok a jobb oldali panelen jelennek meg. A TCP/IP engedélyezéséhez kattintson a jobb gombbal a TCP/IP elemre , és válassza az Engedélyezés lehetőséget.

    TCP/IP engedélyezése

    További információ és a TCP/IP protokoll engedélyezésének alternatív módjai: Kiszolgálói hálózati protokoll engedélyezése vagy letiltása.

  3. Ugyanabban az ablakban kattintson duplán a TCP/IP elemre a TCP/IP-tulajdonságok ablak elindításához.

  4. Váltson az IP-címek lapra. Görgessen le az IPAll szakasz megtekintéséhez. Írja le a TCP-portot. Az alapértelmezett érték 1433.

  5. Hozzon létre egy szabályt a windowsos tűzfalhoz a gépen, amely engedélyezi a bejövő forgalmat ezen a porton keresztül.

  6. Kapcsolat ellenőrzése: Ahhoz, hogy teljesen minősített névvel csatlakozzon az Amazon RDS SQL Serverhez, használja az SQL Server Management Studiót egy másik gépről. Például: "<machine>.<domain>.corp.<company>.com,1433".

Az SQL Serverhez készült Amazon RDS frissítése

Az Amazon RDS SQL Server verzió frissítéséhez, a Csatolt szolgáltatás szerkesztése lapon válassza az Ajánlott lehetőséget a Verzió alatt, és konfigurálja a társított szolgáltatást a Ajánlott verzióhoz tartozó társított szolgáltatás tulajdonságaira hivatkozva.

Az alábbi táblázat az ajánlott és az örökölt verziót használó, AZ SQL Serverhez készült Amazon RDS 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.

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.