Adatok másolása és átalakítása Azure SQL Database a Azure Data Factory vagy Azure Synapse Analytics

A KÖVETKEZŐKRE VONATKOZIK: Azure Data Factory Azure Synapse Analytics

Ez a cikk bemutatja, hogyan használhatja a másolási tevékenységet Azure Data Factory- vagy Azure Synapse-folyamatokban az adatok Azure SQL Database-ból és Azure SQL Database-be való másolására, és hogyan használhatja a Data Flow-t a Azure SQL Database. További tudnivalókért olvassa el a Azure Data Factory vagy Azure Synapse Analytics bevezető cikket.

Támogatott képességek

Ez Azure SQL Database összekötő a következő tevékenységekhez támogatott:

A Copy tevékenység összekötő a következő Azure SQL Database támogatja:

  • Adatok másolása SQL és Azure Active Directory (Azure AD) alkalmazás jogkivonat-hitelesítéssel szolgáltatásnévvel vagy az Azure-erőforrások felügyelt identitásával.
  • Forrásként lekérdezheti az adatokat egy SQL lekérdezéssel vagy tárolt eljárással. Másik lehetőségként párhuzamos másolást is választhat egy Azure SQL Database forrásból. További részletekért tekintse meg a Párhuzamos másolás SQL adatbázisból című szakaszt.
  • Fogadóként automatikusan létrehozza a céltáblát, 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 egyéni logikával való meghozása a másolás során.

Ha kiszolgáló nélküli Azure SQL Database használ,vegye figyelembe, hogy ha a kiszolgáló szüneteltetve van, a tevékenység futtatása meghiúsul ahelyett, hogy megvárja, amíg az automatikus folytatás készen áll. Hozzáadhat tevékenység-újrapróbálkozási műveletet, vagy láncolhat további tevékenységeket, hogy a kiszolgáló a tényleges végrehajtásnak megfelelő legyen.

Fontos

Ha az Azure integration Runtime használatával másol adatokat, konfigurálnia kell egy kiszolgálószintű tűzfalszabályt, hogy az Azure-szolgáltatások hozzáférjenek a kiszolgálóhoz. Ha helyi integrációs környezetben másol adatokat, konfigurálja a tűzfalat úgy, hogy engedélyezze a megfelelő IP-címtartományt. Ez a tartomány tartalmazza a gép IP-címét, amely a virtuális gépekhez való Azure SQL Database.

Bevezetés

A Copy tevékenység folyamatokkal való végrehajtásához a következő eszközök vagy AZDK-k egyikét használhatja:

Összekapcsolt Azure SQL Database létrehozása felhasználói felület használatával

A következő lépésekkel hozhat létre egy Azure SQL Database szolgáltatást a Azure Portal felhasználói felületén.

  1. Nyissa meg a Kezelés lapot a Azure Data Factory Synapse-munkaterületen, és válassza a Csatolt szolgáltatások lehetőséget, majd kattintson az Új elemre:

  2. Keressen rá a SQL, és válassza ki a Azure SQL Database összekötőt.

    Válassza Azure SQL Database összekötő lehetőséget.

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

    Képernyőkép az összekapcsolt Azure SQL Database konfigurálásról.

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

A következő szakaszok részletesen ismertetik azokat a tulajdonságokat, amelyek a Azure Data Factory-összekötőkhöz Azure SQL Database Synapse-folyamatentitások meghatározásához használhatók.

Csatolt szolgáltatás tulajdonságai

Ezek a tulajdonságok támogatottak egy Azure SQL Database szolgáltatás esetén:

Tulajdonság Leírás Kötelező
típus A type (típus) tulajdonságot AzureSqlDatabase (AzureSqlDatabase) tulajdonságra kell állítani. Yes
connectionString (kapcsolati karakterlánc) Adja meg a connectionString tulajdonsághoz Azure SQL Database kapcsolatpéldányhoz való csatlakozáshoz szükséges adatokat.
Jelszót vagy egyszerű szolgáltatáskulcsot is Azure Key Vault. Ha nem SQL hitelesítést, húzza ki a password konfigurációt a kapcsolati sztringből. További információért tekintse meg a JSON-példát a táblázatot és a Hitelesítőadatok tárolása a Azure Key Vault.
Yes
servicePrincipalId Adja meg az alkalmazás ügyfél-azonosítóját. Igen, ha Azure AD-hitelesítést használ szolgáltatásnévvel
servicePrincipalKey Adja meg az alkalmazás kulcsát. Jelölje meg ezt a mezőt SecureString-ként a biztonságos tároláshoz, vagy hivatkozhat egy, akövetkezőben Azure Key Vault. Igen, ha Azure AD-hitelesítést használ szolgáltatásnévvel
Bérlő Adja meg a bérlő adatait, például azt a tartománynevet vagy bérlőazonosítót, amelyben az alkalmazás található. A lekéréshez vigye az egérmutatót a képernyő jobb felső sarkában Azure Portal. Igen, ha Azure AD-hitelesítést használ szolgáltatásnévvel
azureCloudType Egyszerű szolgáltatás hitelesítéséhez adja meg az Azure-felhőkörnyezet típusát, amelyben az Azure AD-alkalmazás regisztrálva van.
Megengedett é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.
No
alwaysEncryptedSettings Adja meg az alwaysencryptedsettings adatokat, amelyek ahhoz szükségesek, hogy Always Encrypted SQL-kiszolgálón tárolt bizalmas adatok védelme felügyelt identitással vagy szolgáltatásnévvel védhető. További információért tekintse meg a táblázatot követő JSON-példát és a Always Encrypted szakaszt. Ha nincs megadva, az alapértelmezett Always Encrypted beállítás le van tiltva. No
connectVia Ez az integrációskörnyezet az adattárhoz való csatlakozásra használható. Használhatja az Azure-beli integrációs és helyi integrációskörnyezetet, ha az adattár egy magánhálózatban található. Ha nincs megadva, a rendszer az alapértelmezett Azure integration Runtime-t használja. No

Megjegyzés

Azure SQL Database Always Encrypted nem támogatott az adatfolyamban.

A különböző hitelesítési típusok esetében tekintse meg az előfeltételekről és JSON-mintákról a következő szakaszokat:

Tipp

Ha a "UserErrorFailedToConnectToSqlServer" hibakóddal és "Az adatbázis munkamenet-korlátja XXX, és el lett érve" hibaüzenet jelenik meg, adja hozzá a következőt a kapcsolati sztringhez, és próbálkozzon Pooling=false újra. Pooling=false az SHIR (saját üzemeltetett Integration Runtime) típusú összekapcsolt szolgáltatás beállításához is ajánlott. A készletezés és más kapcsolati paraméterek új paraméternevekként és -értékekként hozzáadhatók a csatolt szolgáltatás létrehozási űrlap további kapcsolati tulajdonságainak szakaszában.

SQL-hitelesítés

Példa: SQL használata

{
    "name": "AzureSqlDbLinkedService",
    "properties": {
        "type": "AzureSqlDatabase",
        "typeProperties": {
            "connectionString": "Data Source=tcp:<servername>.database.windows.net,1433;Initial Catalog=<databasename>;User ID=<username>@<servername>;Password=<password>;Trusted_Connection=False;Encrypt=True;Connection Timeout=30"
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

Példa: jelszó Azure Key Vault

{
    "name": "AzureSqlDbLinkedService",
    "properties": {
        "type": "AzureSqlDatabase",
        "typeProperties": {
            "connectionString": "Data Source=tcp:<servername>.database.windows.net,1433;Initial Catalog=<databasename>;User ID=<username>@<servername>;Trusted_Connection=False;Encrypt=True;Connection Timeout=30",
            "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: A Always Encrypted

{
    "name": "AzureSqlDbLinkedService",
    "properties": {
        "type": "AzureSqlDatabase",
        "typeProperties": {
            "connectionString": "Data Source=tcp:<servername>.database.windows.net,1433;Initial Catalog=<databasename>;User ID=<username>@<servername>;Password=<password>;Trusted_Connection=False;Encrypt=True;Connection Timeout=30"
        },
        "alwaysEncryptedSettings": {
            "alwaysEncryptedAkvAuthType": "ServicePrincipal",
            "servicePrincipalId": "<service principal id>",
            "servicePrincipalKey": {
                "type": "SecureString",
                "value": "<service principal key>"
            }
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

Egyszerű szolgáltatásnév hitelesítése

Szolgáltatásnév-alapú Azure AD-alkalmazás jogkivonat-hitelesítéséhez kövesse az alábbi lépéseket:

  1. Hozzon létre egy Azure Active Directory alkalmazást a Azure Portal. Jegyezze fel az alkalmazás nevét és a csatolt szolgáltatást meghatározó alábbi értékeket:

    • Alkalmazásazonosító
    • Alkalmazáskulcs
    • Bérlőazonosító
  2. Ha még Azure Active Directory, Azure Portal ki a kiszolgálón egy rendszergazdai rendszergazdát. Az Azure AD-rendszergazdának Azure AD-felhasználónak vagy Azure AD-csoportnak kell lennie, de nem lehet egyszerű szolgáltatás. Ezt a lépést úgy kell tenni, hogy a következő lépésben egy Azure AD-identitással létrehoz egy tartalmazottadatbázis-felhasználót a szolgáltatásnévhez.

  3. Hozzon létre tartalmazottadatbázis-felhasználókat a szolgáltatásnévhez. Csatlakozás adatbázisba, amelyről vagy amelybe adatokat szeretne másolni az SQL Server Management Studio és hasonló eszközökkel, legalább ALTER ANY USER engedéllyel rendelkező Azure AD-identitással. Futtassa a következő T-SQL:

    CREATE USER [your application name] FROM EXTERNAL PROVIDER;
    
  4. Adja meg a szolgáltatásnévhez a szokásos módon szükséges engedélyeket a SQL vagy más felhasználók számára. Futtassa az alábbi kódot. További beállításokért tekintse meg ezt a dokumentumot.

    ALTER ROLE [role name] ADD MEMBER [your application name];
    
  5. Konfiguráljon egy Azure SQL Database szolgáltatást egy Azure Data Factory Synapse-munkaterületen.

Szolgáltatásnév-hitelesítést használó csatolt szolgáltatás példája

{
    "name": "AzureSqlDbLinkedService",
    "properties": {
        "type": "AzureSqlDatabase",
        "typeProperties": {
            "connectionString": "Data Source=tcp:<servername>.database.windows.net,1433;Initial Catalog=<databasename>;Connection Timeout=30",
            "servicePrincipalId": "<service principal id>",
            "servicePrincipalKey": {
                "type": "SecureString",
                "value": "<service principal key>"
            },
            "tenant": "<tenant info, e.g. microsoft.onmicrosoft.com>"
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

Felügyelt identitások az Azure-erőforrások hitelesítéséhez

Az adat-előállítók vagy Synapse-munkaterületek társíthatóak az Azure-erőforrások felügyelt identitásához, amelyek a szolgáltatást jelölik az Azure-beli más erőforrásokon való hitelesítéskor. Ezt a felügyelt identitást használhatja a Azure SQL Database hitelesítéshez. A kijelölt gyár vagy Synapse-munkaterület ezzel az identitással férhet hozzá és másolhat adatokat az adatbázisból vagy az adatbázisba.

A felügyelt identitások hitelesítésének használatával kapcsolatban kövesse az alábbi lépéseket.

  1. Ha még Azure Active Directory, Azure Portal ki a kiszolgálón egy rendszergazdai rendszergazdát. Az Azure AD-rendszergazda lehet Azure AD-felhasználó vagy Azure AD-csoport. Ha rendszergazdai szerepkört ad a csoportnak a felügyelt identitással, hagyja ki a 3. és a 4. lépést. A rendszergazda teljes hozzáféréssel rendelkezik az adatbázishoz.

  2. Hozzon létre tartalmazottadatbázis-felhasználókat a felügyelt identitáshoz. Csatlakozás adatbázisba, amelyről vagy amelybe adatokat szeretne másolni az SQL Server Management Studio és hasonló eszközökkel, legalább ALTER ANY USER engedéllyel rendelkező Azure AD-identitással. Futtassa a következő T-SQL:

    CREATE USER [your_resource_name] FROM EXTERNAL PROVIDER;
    
  3. Adja meg a felügyelt identitáshoz a szokásos módon szükséges engedélyeket a SQL és mások számára. Futtassa az alábbi kódot. További beállításokért tekintse meg ezt a dokumentumot.

    ALTER ROLE [role name] ADD MEMBER [your_resource_name];
    
  4. Konfigurál egy Azure SQL Database szolgáltatást.

Példa

{
    "name": "AzureSqlDbLinkedService",
    "properties": {
        "type": "AzureSqlDatabase",
        "typeProperties": {
            "connectionString": "Data Source=tcp:<servername>.database.windows.net,1433;Initial Catalog=<databasename>;Connection Timeout=30"
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

Adatkészlet tulajdonságai

Az adatkészletek meghatározásához rendelkezésre álló szakaszok és tulajdonságok teljes listáját lásd: Adatkészletek.

A következő tulajdonságok támogatottak Azure SQL Database adatkészlethez:

Tulajdonság Leírás Kötelező
típus Az adatkészlet type (típus) tulajdonságát AzureSqlTable (AzureSqlTable) beállításra kell állítani. Yes
schema A séma neve. Nem a forráshoz, az Igen a fogadóhoz
tábla A tábla/nézet neve. Nem a forráshoz, az Igen a fogadóhoz
tableName A tábla/nézet neve sémával. Ez a tulajdonság a visszamenőleges kompatibilitás érdekében támogatott. Új számítási feladatokhoz használja a és schema a table et. Nem a forráshoz, az Igen a fogadóhoz

Példa adatkészlet-tulajdonságokra

{
    "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>"
        }
    }
}

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

A tevékenységek meghatározásához elérhető szakaszok és tulajdonságok teljes listáját a Pipelines (Folyamatok) szakaszban láthatja. Ez a szakasz a forrás és a fogadó által Azure SQL Database listáját tartalmazza.

Azure SQL Database forrásként

Tipp

Ha hatékonyan szeretne adatokat betölteni Azure SQL Database adatok particionálásával, olvassa el a párhuzamos másolással kapcsolatos SQL adatbázisból.

Az adatok másolása Azure SQL Database következő tulajdonságokat támogatja a másolási tevékenység forrása szakaszban:

Tulajdonság Leírás Kötelező
típus A másolási tevékenység forrásának type tulajdonságát AzureSqlSource-ba kell állítani. Az "SqlSource" típus továbbra is támogatott a visszamenőleges kompatibilitás érdekében. Yes
sqlReaderQuery Ez a tulajdonság az egyéni lekérdezési SQL használja az adatok beolvassa. Például: select * from MyTable. No
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. No
storedProcedureParameters 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 kis- és nagy nevének egyeznie kell a tárolt eljárás paramétereinek neveivel és kis- és nagyszaját.
No
isolationLevel (elkülönítési szint) A tranzakciózárolási viselkedést adja meg a SQL forráshoz. Az engedélyezett értékek aek: 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. No
partitionOptions (partíciólehetőségek) Az adatoknak a rendszerből való betöltéséhez használt adatpartíciós Azure SQL Database.
Megengedett értékek: Nincs (alapértelmezett), PhysicalPartitionsOfTable, és DynamicRange.
Ha engedélyezve van egy partíciós beállítás (azaz nem ), akkor a másolási tevékenység beállítása Azure SQL Database egyidejűleg betölti az adatokat a Azure SQL Database None parallelCopies párhuzamosság mértékét.
No
partitionSettings Adja meg az adatpartíció beállításainak csoportját.
Akkor alkalmazza, ha a partíciós beállítás nem None .
No
A partitionSettings alatt:
partitionColumnName Adja meg a forrásoszlop nevét egész számban vagy dátum/dátum/idő típusban ( , , , , , , vagy ) a tartomány particionálásának párhuzamos int smallint bigint date smalldatetime datetime datetime2 datetimeoffset másoláshoz való használatakor. Ha nincs megadva, a rendszer automatikusan a tábla indexét vagy elsődleges kulcsát használja partícióoszlopként.
Akkor alkalmazza, ha a partíciós beállítás DynamicRange . Ha lekérdezést használ a forrásadatok lekéréséhez, a WHERE záradékban használja a ?AdfDynamicRangePartitionCondition hookot. Példaként tekintse meg a Párhuzamos másolás az adatbázisból SQL szakaszt.
No
partitionUpperBound A partíciótartomány-felosztás partícióoszlopának maximális értéke. Ezzel az értékkel határozható meg a partíciók hossza, nem pedig a tábla sorai szűréséhez. A tábla vagy a lekérdezés eredményének összes sora particionálva és másolható. Ha nincs megadva, a másolási tevékenység automatikusan észleli az értéket.
Akkor alkalmazza, ha a partíciós beállítás DynamicRange . Példaként tekintse meg a Párhuzamos másolás az adatbázisból SQL szakaszt.
No
partitionLowerBound A partíciótartomány-felosztás partícióoszlopának minimális értéke. Ezzel az értékkel határozható meg a partíciók hossza, nem pedig a tábla sorai szűréséhez. A tábla vagy a lekérdezés eredményének összes sora particionálva és másolható. Ha nincs megadva, a másolási tevékenység automatikusan észleli az értéket.
Akkor alkalmazza, ha a partíciós beállítás DynamicRange . Példaként tekintse meg a Párhuzamos másolás az adatbázisból SQL szakaszt.
No

Vegye figyelembe a következő szempontokat:

  • Ha az sqlReaderQuery meg van adva az AzureSqlSource-hoz, a másolási tevékenység ezt a lekérdezést Azure SQL Database a forráson az adatok lekérdezése érdekében. Tárolt eljárást az sqlReaderStoredProcedureName és a storedProcedureParameters megadásával is megadhat, ha a tárolt eljárás paramétereket használ.
  • Ha a forrásban tárolt eljárást használ az adatok lekérésére, vegye figyelembe, hogy ha a tárolt eljárás más sémát ad vissza, amikor más paraméterértéket ad át SQL, akkor a séma felhasználói felületről való importálásakor vagy az adatok automatikus tábla létrehozásakor váratlan eredményt láthat.

SQL példa 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 mint fogadó

Tipp

A támogatott írási viselkedésekkel, konfigurációval és ajánlott eljárásokkal kapcsolatos további információkért olvassa el az Adatok a következőbe való betöltésének ajánlott eljárását: Azure SQL Database.

Az adatok másolása Azure SQL Database következő tulajdonságokat támogatja a másolási tevékenység fogadója szakaszban:

Tulajdonság Leírás Kötelező
típus A másolási tevékenység fogadó type (típus) tulajdonságát AzureSqlSink (AzureSqlSink) beállításra kell állítani. Az "SqlSink" típus továbbra is támogatott a visszamenőleges kompatibilitás érdekében. Yes
preCopyScript Adjon meg SQL lekérdezést, hogy a másolási tevékenység fusson, mielőtt adatokat ír a Azure SQL Database. Másolási futtatásonként csak egyszer lesz meghívva. Ezzel a tulajdonságkal tisztítja meg az előre betöltött adatokat. No
tableOption (táblalehetőség) Megadja, hogy a rendszer automatikusan hozza-e létre a fogadó táblát, ha nem létezik a forrásséma alapján.
Az automatikus táblakészítés nem támogatott, ha a fogadó a tárolt eljárást határozza meg.
Megengedett értékek: none (alapértelmezett), autoCreate .
No
sqlWriterStoredProcedureName A tárolt eljárás neve, amely meghatározza, hogyan kell a forrásadatokat a céltáblára alkalmazni.
A tárolt eljárás kötegenként lesz meghívva. Az olyan műveletek esetében, amelyek csak egyszer futnak, és nincs köze a forrásadatokhoz, például törlés vagy csonkálás, használja a preCopyScript tulajdonságot.
Tekintse meg a tárolt eljárás meghívásaegy SQL példát.
No
storedProcedureTableTypeParameterName A tárolt eljárásban megadott táblatípus paraméterneve. No
sqlWriterTableType A tárolt eljárásban használt táblatípus neve. A másolási tevékenység elérhetővé teszi az áthelyezni szükséges adatokat egy ideiglenes táblában ezzel a táblatípussal. A tárolt eljáráskód ezután egyesítheti a másolt adatokat a meglévő adatokkal. No
storedProcedureParameters A tárolt eljárás paraméterei.
Az engedélyezett értékek név-érték párok. A paraméterek neveinek és kis- és kisajátításának meg kell egyeznie a tárolt eljárás paramétereinek nevével és kis- és kis- és kis- és nagy nevével.
No
writeBatchSize A táblába beszúrt sorok száma SQL kötegenként.
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.
No
writeBatchTimeout A várakozási idő, amíg a kötegelt beszúrási művelet befejeződik, mielőtt az időkorrekció befejeződik.
Az engedélyezett érték az időkorrekta. Ilyen például a "00:30:00" (30 perc).
No
disableMetricsCollection (MetricsCollection letiltása) A szolgáltatás olyan metrikákat gyűjt, Azure SQL Database DKU-k másolási teljesítményoptimalizáláshoz és javaslatokhoz, amelyek további fő adatbázis-hozzáférést vezetnek be. Ha ezzel a viselkedéssel kell kapcsolatban aggódnia, kapcsolja ki true a következőt: . Nem (az alapértelmezett érték false )
maxConcurrentConnections 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. No

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

További információ: Tárolt eljárás meghívása egy SQL fogadóbó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" }
                }
            }
        }
    }
]

Párhuzamos másolás SQL adatbázisból

A Azure SQL Database összekötő a másolási tevékenységben beépített adatpartíciót biztosít az adatok párhuzamos másolása érdekében. Az adatpartíciós beállításokat a másolási tevékenység Forrás lapján találja.

Képernyőkép a partíciós 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 Azure SQL Database a forráson az adatok partíciók szerint való betöltéséhez. A párhuzamos fokot a parallelCopies másolási tevékenység beállítása vezérli. Ha például négyre van állítva, a szolgáltatás egyidejűleg generál és futtat négy lekérdezést a megadott partíciós beállítás és beállítások alapján, és minden lekérdezés lekéri az adatok egy részét parallelCopies a Azure SQL Database.

Ajánlott engedélyezni a párhuzamos másolást adat particionálással, különösen akkor, ha nagy mennyiségű adatot tölt be a Azure SQL Database. Az alábbiakban a különböző forgatókönyvekhez javasolt konfigurációkat íme. Amikor fájlalapú adattárba másol adatokat, ajánlott több fájlként írni egy mappába (csak a mappa nevét adja meg), ebben az esetben a teljesítmény jobb, mint az egyetlen fájlba való írás.

Eset Javasolt beállítások
Teljes betöltés nagy táblából, fizikai partícióval. 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 szerint másolja az adatokat.

Annak ellenőrzéséhez, hogy a tábla rendelkezik-e fizikai partícióval vagy sem, tekintse meg ezt a lekérdezést.
Teljes betöltés nagy táblából, fizikai partíciók nélkül, egész számmal vagy dátum/idő oszloppal az adat particionáláshoz. Partíciós beállítások: Dinamikustartomány-partíció.
Partícióoszlop (nem kötelező): Adja meg az adatok particionálására használt oszlopot. Ha nincs megadva, a rendszer az index vagy az elsődleges kulcs oszlopot használja.
Particionálás felső határa és a partíció alsó határa (nem kötelező): Adja meg, hogy meg szeretné-e határozni a partíciók hosszúságát. Ez nem a tábla sorai szűréséhez szükséges, a tábla összes sora particionálva és másolható. 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, az alsó korlátot pedig 20-ra, a felső korlátot pedig 80-ra, a párhuzamos másolást 4-re, a szolgáltatás 4 partícióval olvassa be az adatokat – az <=20, [21, 50], [51, 80] és >=81 tartományba tartozó azonosítókat.
Nagy mennyiségű adat betöltése egyéni lekérdezéssel, fizikai partíciók nélkül, valamint egész számmal, dátum/dátum/idő oszloppal az adat particionáláshoz. Partíciós beállítások: Dinamikustartomány-partíció.
Lekérdezés: SELECT * FROM <TableName> WHERE ?AdfDynamicRangePartitionCondition AND <your_additional_where_clause> .
Partícióoszlop: Adja meg az adatok particionálhoz használt oszlopát.
Particionálás felső határa és a partíció alsó határa (nem kötelező): Adja meg, hogy meg szeretné-e határozni a partíciók hosszúságát. Ez nem a tábla sorait szűri, a lekérdezés eredményének minden sora particionálva lesz és másolható. Ha nincs megadva, a másolási tevékenység automatikusan észleli az értéket.

A végrehajtás során a szolgáltatás lecseréli a helyére az egyes partíciók tényleges oszlopnevét és értéktartományát, és elküldi őket a ?AdfRangePartitionColumnName Azure SQL Database.
Ha például az "ID" partícióoszlop értéke 1 és 100 között van, és az alsó korlátot 20-ra, a felső korlátot pedig 80-ra, a párhuzamos másolást 4-re, akkor a szolgáltatás 4 partícióval olvassa be az adatokat – az <=20, [21, 50], [51, 80] és >=81 tartományba tartozó azonosítókat.

Az alábbi példalekérdezések különböző forgatókönyvekhez használhatók:
1. A teljes tábla lekérdezése:
SELECT * FROM <TableName> WHERE ?AdfDynamicRangePartitionCondition
2. Lekérdezés oszlopkijelölést és további where-clause szűrőket tartalmazó táblából:
SELECT <column_list> FROM <TableName> WHERE ?AdfDynamicRangePartitionCondition AND <your_additional_where_clause>
3. Lekérdezés segédlekérdezésekkel:
SELECT <column_list> FROM (<your_sub_query>) AS T WHERE ?AdfDynamicRangePartitionCondition AND <your_additional_where_clause>
4. Lekérdezés a partícióval a segédlekérdezésben:
SELECT <column_list> FROM (SELECT <your_sub_query_column_list> FROM <TableName> WHERE ?AdfDynamicRangePartitionCondition) AS T

Ajánlott eljárások az adatok partíciós beállítással való betöltéséhez:

  1. Válasszon oszlopot partícióoszlopként (például elsődleges kulcsként vagy egyedi kulcsként) az adatdeduklálás elkerülése érdekében.
  2. Ha a tábla beépített partícióval rendelkezik, használja a "Tábla fizikai partíciói" partíciós beállítást a jobb teljesítmény érdekében.
  3. Ha adatmásoló Azure Integration Runtime használ, nagyobb " Adatintegrációs egységek(DIU)" (>4) beállítással több számítási erőforrást használhat. Ellenőrizze az itt alkalmazható forgatókönyveket.
  4. "A másoláspárhuzamosságának mértéke" a partíciószámokat szabályozhatja, és ha ezt a számot túl nagyra állítva túl nagy a teljesítmény, javasoljuk, hogy ezt a számot a következőként kell megszabadulni: (DIU vagy helyi integrációspont-csomópontok száma) * (2–4).

Példa: teljes betöltés nagy méretű táblából fizikai partícióval

"source": {
    "type": "AzureSqlSource",
    "partitionOption": "PhysicalPartitionsOfTable"
}

Példa: lekérdezés dinamikustartomány-partícióval

"source": {
    "type": "AzureSqlSource",
    "query": "SELECT * FROM <TableName> WHERE ?AdfDynamicRangePartitionCondition 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>"
    }
}

Mintaleké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ó "igen" lesz.

SQL-lekérdezés eredménye

Ajánlott eljárás az adatok Azure SQL Database

Amikor adatokat másol a Azure SQL Database, más írási viselkedésre lehet szüksége:

  • Hozzáfűzés:A forrásadatok csak új rekordokat tartalmaznak.
  • Upsert: A forrásadatok beszúrásokat és frissítéseket is tartalmaznak.
  • Felülírás:Minden alkalommal egy teljes dimenziótáblát szeretnék újratöltésre.
  • Írás egyéni logikával:További feldolgozásra van szükségem a céltáblába való utolsó beszúrás előtt.

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 a fogadó-összekötő alapértelmezett Azure SQL Database viselkedése. A szolgáltatás tömeges beszúrással hatékonyan ír a táblába. A forrást és a fogadót ennek megfelelően konfigurálhatja a másolási tevékenységben.

Adatok beszúrása és frissítése (upsert)

1. lehetőség: Ha nagy mennyiségű adatot kell másolnia, a másolási tevékenységgel az összes rekordot tömegesen betöltheti egy előkészítési táblába, majd futtathat egy tárolt eljárási tevékenységet egy MERGE vagy INSERT/UPDATE utasítás alkalmazásához.

Copy tevékenység jelenleg nem támogatja natív módon az adatok ideiglenes adatbázistáblába való betöltését. Ennek több tevékenység kombinációjával való beállításának speciális módját lásd: Optimize Azure SQL Database Bulk Upsert scenarios (Az Azure SQL Database upsert forgatókönyvek optimalizálása). Az alábbiakban egy állandó tábla átmenetiként való használatának mintáját mutatjuk be.

Létrehozhat például egy olyan folyamatot, amely Copy tevékenység tárolt eljárási tevékenységgel van összefűve. Az előbbi adatokat másol a forrástárból egy Azure SQL Database előkészítési táblába, például UpsertStagingTable táblába az adatkészlet táblaneveként. Ezután az utóbbi egy tárolt eljárást hív meg, amely egyesíti az előkészítési táblából származó forrásadatokat a céltáblával, és megtisztítja az előkészítési táblát.

Beszúrás és frissítés

Az adatbázisban határozzon meg egy tárolt eljárást MERGE logikával, az alábbi példához hasonlóan, amelyre az előző tárolt eljárási tevékenység mutat. Tegyük fel, hogy a cél a Marketing tábla három oszloppal: ProfileID, State, és Category. Az upsert (upsert) et a ProfileID oszlop alapján kell megtenni.

CREATE PROCEDURE [dbo].[spMergeData]
AS
BEGIN
   MERGE TargetTable AS target
   USING UpsertStagingTable AS source
   ON (target.[ProfileID] = source.[ProfileID])
   WHEN MATCHED THEN
      UPDATE SET State = source.State
    WHEN NOT matched THEN
       INSERT ([ProfileID], [State], [Category])
      VALUES (source.ProfileID, source.State, source.Category);
    TRUNCATE TABLE UpsertStagingTable
END

2. lehetőség: A másolási tevékenységben meghívhategy tárolt eljárást. Ez a módszer (a tulajdonság által szabályozott) kötegeket futtat a forrástáblában ahelyett, hogy tömeges beszúrást használ a másolási tevékenység alapértelmezett writeBatchSize megközelítéseként.

3. lehetőség: A Mapping Data Flow, amely beépített beszúrási/upsert/update metódusokat kínál.

A teljes tábla felülírása

A preCopyScript tulajdonságot a másolási tevékenység fogadóban konfigurálhatja. Ebben az esetben minden futó másolási tevékenységnél a szolgáltatás először a szkriptet futtatja. Ezután futtatja a másolatot az adatok beszúrása érdekében. Ha például felül szeretné írni a teljes táblát a legújabb adatokkal, adjon meg egy parancsfájlt, amely először törli az összes rekordot, mielőtt tömegesen betölti az új adatokat a forrásból.

Adatok írása egyéni logikával

Az adatok egyéni logikával való írásának lépései hasonlóak az Upsert-adatok szakaszban leírtakhoz. Ha további feldolgozást kell alkalmaznia a forrásadatok céltáblába való utolsó beillesztése előtt, betölthet egy előkészítési táblába, majd meghívhatja a tárolt eljárási tevé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 adatok Flow.

Tárolt eljárás meghívása egy 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 további paraméterekkel a forrástábla minden kötegéhez. A tárolt eljárás funkció tábla értékű paramétereket használ.

Tárolt eljárásokat akkor használhat, ha a beépített másolási mechanizmusok nem szolgálják ezt a célt. Ilyen például, ha további feldolgozást szeretne alkalmazni a forrásadatok céltáblába való végleges beszúrása előtt. Néhány további feldolgozási példa, ha oszlopokat szeretne egyesíteni, további értékeket szeretne keresni, és egynél több táblába szeretné beszúrni őket.

Az alábbi minta bemutatja, hogyan használható egy tárolt eljárás egy upsert művelet egy táblába való Azure SQL Database. Tegyük fel, hogy a bemeneti adatok és a fogadó Marketing tábla mind három oszlopot tartalmaz: ProfileID, State és Category. Az upsert (upsert) et a ProfileID oszlop alapján kell megtenni, és csak egy "ProductA" nevű adott kategóriára alkalmazni.

  1. Az adatbázisban definiálja a tábla típusát az sqlWriterTableType típussal azonos névvel. 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
    )
    
  2. Az adatbázisban adja meg a tárolt eljárást az sqlWriterStoredProcedureName névvel azonos néven. Kezeli a megadott forrásból származó bemeneti adatokat, és egyesíti őket a kimeneti táblával. A tárolt eljárásban a táblatípus paraméterneve megegyezik az adatkészletben definiált tableName paraméter nevével.

    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);
    END
    
  3. A Azure Data Factory Synapse-folyamatban definiálja a SQL fogadó szakaszát a másolási tevékenységben a következőképpen:

    "sink": {
        "type": "AzureSqlSink",
        "sqlWriterStoredProcedureName": "spOverwriteMarketing",
        "storedProcedureTableTypeParameterName": "Marketing",
        "sqlWriterTableType": "MarketingType",
        "storedProcedureParameters": {
            "category": {
                "value": "ProductA"
            }
        }
    }
    

Adatfolyam-tulajdonságok leképezése

A leképezési adatfolyamban lévő adatok átalakításakor a táblákból olvashat és írhat a Azure SQL Database. További információért tekintse meg a forrás-átalakítást és a fogadóátalakítást a leképezési adatfolyamok között.

Forrásátalakítás

Gépház-specifikus Azure SQL Database a forrásátalakítás Forrásbeállítások lapján érhetők el.

Bemenet: Válassza ki, hogy a forrást egy táblára (egyenértékű) mutasson, vagy adjon meg egy egyéni SQL Select * from <table-name> lekérdezést.

Lekérdezés: Ha a beviteli mezőben a Lekérdezés lehetőséget választja, adjon meg SQL lekérdezést a forráshoz. Ez a beállítás felülírja az adatkészletben kiválasztott összes táblát. Az Order By záradékok itt nem támogatottak, de teljes SELECT FROM utasítást állíthat be. Felhasználó által definiált táblafunkciókat is használhat. Select * from udfGetData() is a UDF in SQL that returns a table. Ez a lekérdezés egy forrástáblát hoz létre, amely használható az adatfolyamban. A lekérdezések használatával emellett a tesztelési és keresési sorok is csökkenthetők.

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 leképezés- és forrásadatokat létrehozni. Begépelheti 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 derítse fel a sémákat és az eljárásneveket. Ezután az Importálás elemre kattintva importálhatja az összes eljárásparamétert a űrlap @paraName használatával.

Tárolt eljárás

  • SQL Példa:Select * from MyTable where customerId > 1000 and customerId < 2000
  • Paraméteres SQL példa:"select * from {$tablename} where orderyear > {$year}"

Köteg mérete: Adja meg a köteg méretét, hogy a nagy adatokat olvasásra darabolja.

Elkülönítési szint: A leképezési adatfolyamban SQL adatforrások alapértelmezett beolvasott nem véglegesített. Az elkülönítési szintet itt az alábbi értékek egyikére módosíthatja:

  • Read Committed
  • Olvasás Nincs megadva
  • Ismételhető olvasás
  • Szerializálható
  • Nincs (hagyja figyelmen kívül az elkülönítési szintet)

Elkülönítési szint

Fogadóátalakítás

Gépház adott Azure SQL Database a fogadó átalakítás Gépház lapján érhetők el.

Update metódus: Meghatározza, hogy milyen műveletek engedélyezettek az adatbázis célhelyen. Alapértelmezés szerint csak a beszúrásokat engedélyezi. A sorok frissítéséhez, upsert műveletéhez vagy törléséhez egy alter-row átalakítás szükséges ezen műveletek sorai címkézéséhez. A frissítésekhez, upserts és deletes oszlopokhoz be kell állítani egy kulcsoszlopot vagy -oszlopokat annak meghatározásához, hogy melyik sort kell módosítani.

Kulcsoszlopok

Az itt kulcsként használt oszlopnevet a szolgáltatás a következő frissítés , upsert és delete részeként fogja használni. Ezért olyan oszlopot kell választania, amely létezik a Fogadó leképezésben. Ha nem szeretné ebbe a kulcsoszlopba írni az értéket, kattintson a "Kulcsoszlopok írásának kihagyása" lehetőségre.

A céltábla frissítéséhez használt kulcsoszlopot paraméteresre Azure SQL Database. Ha több oszlopa is van egy összetett kulcshoz, kattintson a "Custom Expression" (Egyéni kifejezés) elemre, és dinamikus tartalmat adhat hozzá az adatfolyam-kifejezés nyelvhasználatával, amely sztringek tömbjeként összetett kulcs oszlopnevét tartalmazhatja.

Tábla művelet: Meghatározza, hogy az összes sort újra létre kell-e hozni vagy el kell-e távolítani a céltáblából az írás előtt.

  • Nincs: A táblán nem történik művelet.
  • Újbóli: A tábla el lesz dobva, majd újra létre lesz hozva. Kötelező, ha dinamikusan hoz létre új táblát.
  • Csonkálás: A céltábla összes sorát eltávolítja a rendszer.

Köteg mérete: Azt szabályozza, hogy hány sor van megírva az egyes gyűjtőkben. A nagyobb kötegméretek javítják a tömörítést és a memóriaoptimalizálást, de fennáll a memória-kivételek kockázata az adatok gyorsítótárazása során.

A TempDB használata: Alapértelmezés szerint a szolgáltatás egy globális ideiglenes táblát használ az adatok tárolására a betöltési folyamat részeként. Másik lehetőségként törölje a "TempDB használata" jelölőnégyzet jelölését, és megkérheti a szolgáltatást, hogy az ideiglenes holding táblát egy olyan felhasználói adatbázisban tárolja, amely a fogadóhoz használt adatbázisban található.

Ideiglenes adatbázis használata

Előzetes és utólagos SQL: Adja meg a többsoros SQL-szkripteket, amelyek végrehajtása (előfeldolgozás) előtt és után (utófeldolgozás) az adatok a fogadó adatbázisba lesznek írva

előzetes és utólagos SQL szkriptek feldolgozása

Hibát tartalmazó sorok kezelése

Az Azure SQL adatbázisba való íráskor bizonyos adatsorok meghiúsulhatnak a célhely által beállított korlátozások miatt. Néhány gyakori hiba:

  • Sztring- vagy bináris adatok csonkolva lesznek a táblában
  • A NULL érték nem szúrható be az oszlopba
  • Az INSERT utasítás ütközött a CHECK megkötéssel

Alapértelmezés szerint az adatfolyam-futtatás az első hibán sikertelen lesz. Választhatja a Folytatás hiba esetén lehetőséget, amely akkor is lehetővé teszi az adatfolyam befejezését, ha az egyes sorok hibásak. A szolgáltatás különböző lehetőségeket kínál a hibasorok kezeléshez.

Tranzakció véglegesítése: Válassza ki, hogy az adatok egyetlen tranzakcióban vagy kötegben vannak-e megírva. Egyetlen tranzakció rosszabb teljesítményt nyújt, de a tranzakció befejezéséig mások nem fogják látni az adatokat.

Elutasított adatok kimenete: Ha engedélyezve van, a hibasorokat kiírhatja egy CSV-fájlba az Azure Blob Storage vagy egy Ön által választott Azure Data Lake Storage Gen2-fiókban. Ez három további oszloppal írja meg a hibasorokat: a SQL művelet, például az INSERT vagy az UPDATE, az adatfolyam hibakódja és a sorban lévő hibaüzenet.

Jelentés sikerességről hiba esetén: Ha engedélyezve van, az adatfolyam akkor is sikeresként lesz megjelölve, ha hibasorokat talál.

Hibát tartalmazó sorok kezelése

Adattípus-leképezés Azure SQL Database

Amikor adatokat másol vagy másol Azure SQL Database, a rendszer a következő leképezéseket használja Azure SQL Database és köztes adattípusok Azure Data Factory között. Ugyanezeket a leképezéseket használja a Synapse-folyamat funkció, amely közvetlenül implementálja Azure Data Factory leképezéseket. A másolási tevékenység a forrássémát és az adattípust a fogadóhoz való leképezésével kapcsolatos információkért lásd: Séma- és adattípus-leképezések.

Azure SQL Database adattípus Data Factory adattípusok
bigint Int64
binary Bájt[]
bit Logikai
Char Sztring, Karakter[]
dátum DateTime
Datetime DateTime
datetime2 DateTime
Datetimeoffset (Dátum és idő között) DateTimeOffset (Dátum és idő lefolyása)
Tizedesjegy Tizedesjegy
FILESTREAM attribútum (varbinary(max)) Bájt[]
Float Dupla
image Bájt[]
int Int32
Pénzt Tizedesjegy
nchar Sztring, Karakter[]
ntext (szöveg) Sztring, Karakter[]
numerikus Tizedesjegy
nvarchar Sztring, Karakter[]
valós szám Egyirányú
rowversion (sorverzió) Bájt[]
smalldatetime DateTime
smallint Int16
smallmoney Tizedesjegy
sql_variant Objektum
szöveg Sztring, Karakter[]
time időtartam
időbélyeg Bájt[]
tinyint Bájt
uniqueidentifier Guid
varbinary Bájt[]
varchar Sztring, Karakter[]
xml Sztring

Megjegyzés

A tizedes tört köztes típusra leképező adattípusok esetében a Copy tevékenység legfeljebb 28 pontosságot támogat. Ha 28-asnál nagyobb pontosságú adatokat tartalmaz, fontolja meg a sztringgé konvertálást a SQL lekérdezésben.

Keresési tevékenység tulajdonságai

A tulajdonságokkal kapcsolatos részletekért tekintse meg a keresési tevékenységet.

A GetMetadata tevékenység tulajdonságai

A tulajdonságok részleteinek megismerése érdekében tekintse meg a GetMetadata-tevékenységet

A Always Encrypted

Ha adatokat másol a(SQL Server) Always Encrypted,kövesse az alábbi lépéseket:

  1. Tárolja az oszlop főkulcsát (CMK) egy Azure Key Vault. További információ az Always Encrypted konfigurálásról a Azure Key Vault

  2. Győződjön meg arról, hogy nagyszerűen hozzáfér ahhoz a kulcstartóhoz, amelyben az oszlop főkulcsa (CMK) található. A szükséges engedélyekért tekintse meg ezt a cikket.

  3. Hozzon létre egy összekapcsolt szolgáltatást a SQL-adatbázishoz való csatlakozáshoz, és engedélyezze a "Always Encrypted" függvényt felügyelt identitás vagy szolgáltatásnév használatával.

Megjegyzés

SQL Server Always Encrypted az alábbi forgatókönyveket támogatja:

  1. A forrás- vagy fogadó-adattárak felügyelt identitást vagy egyszerű szolgáltatást használ kulcsszolgáltatói hitelesítési típusként.
  2. A forrás és a fogadó adattár is felügyelt identitást használ kulcsszolgáltatói hitelesítési típusként.
  3. A forrás és a fogadó adattár is ugyanazt a szolgáltatásnévvel használja, mint a kulcsszolgáltató hitelesítési típusa.

Következő lépések

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.