Dela via


Kopiera data från Amazon RDS för SQL Server med hjälp av Azure Data Factory eller Azure Synapse Analytics

Den här artikeln beskriver hur du använder kopieringsaktiviteten i Azure Data Factory- och Azure Synapse-pipelines för att kopiera data från Amazon RDS för SQL Server-databasen. Mer information finns i introduktionsartikeln för Azure Data Factory eller Azure Synapse Analytics.

Funktioner som stöds

Den här Amazon RDS för SQL Server-anslutningsprogrammet stöds för följande funktioner:

Funktioner som stöds IR
Kopieringsaktivitet (källa/-) (1) (2)
Sökningsaktivitet (1) (2)
GetMetadata-aktivitet (1) (2)
Lagrad proceduraktivitet (1) (2)

(1) Azure Integration Runtime (2) Lokalt installerad integrationskörning

En lista över datalager som stöds som källor eller mottagare av kopieringsaktiviteten finns i tabellen Datalager som stöds.

Mer specifikt stöder den här Amazon RDS för SQL Server-anslutningsappen:

  • SQL Server version 2005 och senare.
  • Kopiera data med hjälp av SQL- eller Windows-autentisering.
  • Som källa hämtar du data med hjälp av en SQL-fråga eller en lagrad procedur. Du kan också välja att kopiera parallellt från Amazon RDS för SQL Server-källa. Mer information finns i avsnittet Parallellkopia från SQL-databas .

SQL Server Express LocalDB stöds inte.

Förutsättningar

Om ditt datalager finns i ett lokalt nätverk, ett virtuellt Azure-nätverk eller Amazon Virtual Private Cloud måste du konfigurera en lokalt installerad integrationskörning för att ansluta till det.

Om ditt datalager är en hanterad molndatatjänst kan du använda Azure Integration Runtime. Om åtkomsten är begränsad till IP-adresser som är godkända i brandväggsreglerna kan du lägga till Azure Integration Runtime-IP-adresser i listan över tillåtna.

Du kan också använda funktionen för integrering av hanterade virtuella nätverk i Azure Data Factory för att få åtkomst till det lokala nätverket utan att installera och konfigurera en lokalt installerad integrationskörning.

Mer information om de nätverkssäkerhetsmekanismer och alternativ som stöds av Data Factory finns i Strategier för dataåtkomst.

Kom igång

Om du vill utföra kopieringsaktiviteten med en pipeline kan du använda något av följande verktyg eller SDK:er:

Skapa en Amazon RDS för en länkad SQL Server-tjänst med hjälp av användargränssnittet

Använd följande steg för att skapa en länkad Amazon RDS för SQL Server-länkad tjänst i azure-portalens användargränssnitt.

  1. Bläddra till fliken Hantera i Din Azure Data Factory- eller Synapse-arbetsyta och välj Länkade tjänster och klicka sedan på Ny:

  2. Sök efter Amazon RDS för SQL Server och välj Amazon RDS för SQL Server-anslutningsprogrammet.

    Skärmbild av Amazon RDS för SQL Server-anslutningsprogrammet.

  3. Konfigurera tjänstinformationen, testa anslutningen och skapa den nya länkade tjänsten.

    Skärmbild av konfigurationen för Amazon RDS för den länkade SQL Server-tjänsten.

Konfigurationsinformation för anslutningsprogram

Följande avsnitt innehåller information om egenskaper som används för att definiera Data Factory- och Synapse-pipelineentiteter som är specifika för Amazon RDS för SQL Server-databasanslutningen.

Länkade tjänstegenskaper

Amazon RDS för SQL Server-anslutningsappen Rekommenderad version stöder TLS 1.3. Se det här avsnittet om du vill uppgradera amazon RDS för SQL Server-anslutningsversionen från äldre . Information om egenskapen finns i motsvarande avsnitt.

Kommentar

Amazon RDS för SQL Server Always Encrypted stöds inte i dataflödet.

Dricks

Om du stöter på ett fel med felkoden "UserErrorFailedToConnectToSqlServer" och ett meddelande som "Sessionsgränsen för databasen är XXX och har nåtts", lägger du till Pooling=false i niska veze och försöker igen.

Dessa allmänna egenskaper stöds för en amazon RDS för en länkad SQL Server-tjänst när du tillämpar rekommenderad version:

Property Beskrivning Obligatoriskt
type Typegenskapen måste anges till AmazonRdsForSqlServer. Ja
server Namnet eller nätverksadressen för den SQL Server-instans som du vill ansluta till. Ja
database Namnet på databasen. Ja
authenticationType Den typ som används för autentisering. Tillåtna värden är SQL (standard), Windows. Gå till relevant autentiseringsavsnitt om specifika egenskaper och förutsättningar. Ja
alwaysEncryptedSettings Ange alwaysencryptedsettings-information som behövs för att aktivera Always Encrypted för att skydda känsliga data som lagras i Amazon RDS för SQL Server med hjälp av antingen hanterad identitet eller tjänstens huvudnamn. Mer information finns i JSON-exemplet som följer tabellen och avsnittet Using Always Encrypted (Använda Always Encrypted ). Om den inte anges inaktiveras standardinställningen alltid krypterad. Nej
kryptera Ange om TLS-kryptering krävs för alla data som skickas mellan klienten och servern. Alternativ: obligatoriskt (för sant, standard)/valfritt (för falskt)/strikt. Nej
trustServerCertificate Ange om kanalen ska krypteras när certifikatkedjan kringgås för att verifiera förtroende. Nej
hostNameInCertificate Det värdnamn som ska användas när du verifierar servercertifikatet för anslutningen. När det inte anges används servernamnet för certifikatverifiering. Nej
connectVia Den här integreringskörningen används för att ansluta till datalagret. Läs mer i avsnittet Förutsättningar . Om det inte anges används standardkörningen för Azure-integrering. Nej

Ytterligare anslutningsegenskaper finns i tabellen nedan:

Property Beskrivning Obligatoriskt
applicationIntent Programmets arbetsbelastningstyp när du ansluter till en server. Tillåtna värden är ReadOnly och ReadWrite. Nej
connectTimeout Hur lång tid (i sekunder) det tar att vänta på en anslutning till servern innan försöket avslutas och ett fel genereras. Nej
connectRetryCount Antalet återanslutningsförsök efter identifiering av ett inaktivt anslutningsfel. Värdet ska vara ett heltal mellan 0 och 255. Nej
connectRetryInterval Hur lång tid (i sekunder) mellan varje återanslutningsförsök efter att ett inaktivt anslutningsfel har identifierats. Värdet ska vara ett heltal mellan 1 och 60. Nej
loadBalanceTimeout Den minsta tiden (i sekunder) för anslutningen att finnas i anslutningspoolen innan anslutningen förstörs. Nej
commandTimeout Standardväntetiden (i sekunder) innan du avslutar försöket att köra ett kommando och generera ett fel. Nej
integratedSecurity De tillåtna värdena är true eller false. När du falseanger anger du om userName och lösenord har angetts i anslutningen. När du trueanger anger anger du om de aktuella autentiseringsuppgifterna för Windows-kontot används för autentisering. Nej
failoverPartner Namnet eller adressen på partnerservern som ska anslutas till om den primära servern är nere. Nej
maxPoolSize Det maximala antalet anslutningar som tillåts i anslutningspoolen för den specifika anslutningen. Nej
minPoolSize Det minsta antalet anslutningar som tillåts i anslutningspoolen för den specifika anslutningen. Nej
multipleActiveResultSets De tillåtna värdena är true eller false. När du anger truekan ett program underhålla flera aktiva resultatuppsättningar (MARS). När du anger falsemåste ett program bearbeta eller avbryta alla resultatuppsättningar från en batch innan det kan köra andra batchar på den anslutningen. Nej
multiSubnetFailover De tillåtna värdena är true eller false. Om ditt program ansluter till en AlwaysOn-tillgänglighetsgrupp (AG) i olika undernät kan du ange att true den här egenskapen ska ge snabbare identifiering av och anslutning till den aktiva servern. Nej
packetSize Storleken i byte för de nätverkspaket som används för att kommunicera med en serverinstans. Nej
poolning De tillåtna värdena är true eller false. När du anger truekommer anslutningen att poolas. När du anger falseöppnas anslutningen explicit varje gång anslutningen begärs. Nej

SQL-autentisering

Om du vill använda SQL-autentisering anger du, förutom de allmänna egenskaper som beskrivs i föregående avsnitt, följande egenskaper:

Property Beskrivning Obligatoriskt
userName Användarnamnet som används för att ansluta till servern. Ja
password Lösenordet för användarnamnet. Markera det här fältet som SecureString för att lagra det på ett säkert sätt. Eller så kan du referera till en hemlighet som lagras i Azure Key Vault. Ja

Exempel: Använda SQL-autentisering

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

Exempel: Använda SQL-autentisering med ett lösenord i Azure Key Vault

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

Exempel: Använd Always Encrypted

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

Om du vill använda Windows-autentisering anger du, förutom de allmänna egenskaper som beskrivs i föregående avsnitt, följande egenskaper:

Property Beskrivning Obligatoriskt
userName Ange ett användarnamn. Ett exempel är domännamn\användarnamn. Ja
password Ange ett lösenord för det användarkonto som du angav för användarnamnet. Markera det här fältet som SecureString för att lagra det på ett säkert sätt. Eller så kan du referera till en hemlighet som lagras i Azure Key Vault. Ja

Exempel: Använda Windows-autentisering

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

Äldre version

Dessa allmänna egenskaper stöds för en Amazon RDS för en länkad SQL Server-tjänst när du använder äldre version:

Property Beskrivning Obligatoriskt
type Typegenskapen måste anges till AmazonRdsForSqlServer. Ja
alwaysEncryptedSettings Ange alwaysencryptedsettings-information som behövs för att aktivera Always Encrypted för att skydda känsliga data som lagras i Amazon RDS för SQL Server med hjälp av antingen hanterad identitet eller tjänstens huvudnamn. Mer information finns i avsnittet Använda Always Encrypted . Om den inte anges inaktiveras standardinställningen alltid krypterad. Nej
connectVia Den här integreringskörningen används för att ansluta till datalagret. Läs mer i avsnittet Förutsättningar . Om det inte anges används standardkörningen för Azure-integrering. Nej

Den här Amazon RDS för SQL Server-anslutningsappen stöder följande autentiseringstyper. Mer information finns i motsvarande avsnitt.

SQL-autentisering för den äldre versionen

Om du vill använda SQL-autentisering anger du, förutom de allmänna egenskaper som beskrivs i föregående avsnitt, följande egenskaper:

Property Beskrivning Obligatoriskt
connectionString Ange connectionString-information som behövs för att ansluta till Amazon RDS för SQL Server-databasen. Ange ett inloggningsnamn som användarnamn och se till att databasen som du vill ansluta är mappad till den här inloggningen. Ja
password Om du vill lägga till ett lösenord i Azure Key Vault kan du hämta konfigurationen password från niska veze. Mer information finns i Lagra autentiseringsuppgifter i Azure Key Vault. Nej

Windows-autentisering för den äldre versionen

Om du vill använda Windows-autentisering anger du, förutom de allmänna egenskaper som beskrivs i föregående avsnitt, följande egenskaper:

Property Beskrivning Obligatoriskt
connectionString Ange connectionString-information som behövs för att ansluta till Amazon RDS för SQL Server-databasen. Ja
userName Ange ett användarnamn. Ett exempel är domännamn\användarnamn. Ja
password Ange ett lösenord för det användarkonto som du angav för användarnamnet. Markera det här fältet som SecureString för att lagra det på ett säkert sätt. Eller så kan du referera till en hemlighet som lagras i Azure Key Vault. Ja

Egenskaper för datauppsättning

En fullständig lista över avsnitt och egenskaper som är tillgängliga för att definiera datauppsättningar finns i artikeln datauppsättningar . Det här avsnittet innehåller en lista över egenskaper som stöds av Amazon RDS för SQL Server-datauppsättningen.

Följande egenskaper stöds för att kopiera data från en Amazon RDS för SQL Server-databas:

Property Beskrivning Obligatoriskt
type Typegenskapen för datamängden måste anges till AmazonRdsForSqlServerTable. Ja
schema Namnet på schemat. Nej
table Namnet på tabellen/vyn. Nej
tableName Namnet på tabellen/vyn med schemat. Den här egenskapen stöds för bakåtkompatibilitet. För ny arbetsbelastning använder du schema och table. Nej

Exempel

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

Kopiera egenskaper för aktivitet

En fullständig lista över avsnitt och egenskaper som är tillgängliga för användning för att definiera aktiviteter finns i artikeln Pipelines . Det här avsnittet innehåller en lista över egenskaper som stöds av Amazon RDS för SQL Server-källan.

Amazon RDS för SQL Server som källa

Dricks

Om du vill läsa in data från Amazon RDS för SQL Server effektivt med hjälp av datapartitionering kan du läsa mer från Parallell kopiering från SQL-databas.

Om du vill kopiera data från Amazon RDS för SQL Server anger du källtypen i kopieringsaktiviteten till AmazonRdsForSqlServerSource. Följande egenskaper stöds i avsnittet kopieringsaktivitetskälla:

Property Beskrivning Obligatoriskt
type Typegenskapen för kopieringsaktivitetskällan måste anges till AmazonRdsForSqlServerSource. Ja
sqlReaderQuery Använd den anpassade SQL-frågan för att läsa data. Ett exempel är select * from MyTable. Nej
sqlReaderStoredProcedureName Den här egenskapen är namnet på den lagrade proceduren som läser data från källtabellen. Den sista SQL-instruktionen måste vara en SELECT-instruktion i den lagrade proceduren. Nej
storedProcedureParameters Dessa parametrar är för den lagrade proceduren.
Tillåtna värden är namn- eller värdepar. Parametrarnas namn och hölje måste matcha namnen och höljet för de lagrade procedureparametrarna.
Nej
isolationLevel Anger transaktionslåsningsbeteendet för SQL-källan. De tillåtna värdena är: ReadCommitted, ReadUncommitted, RepeatableRead, Serializable, Snapshot. Om den inte anges används databasens standardisoleringsnivå. Mer information finns i det här dokumentet. Nej
partitionOptions Anger de datapartitioneringsalternativ som används för att läsa in data från Amazon RDS för SQL Server.
Tillåtna värden är: Ingen (standard), PhysicalPartitionsOfTable och DynamicRange.
När ett partitionsalternativ är aktiverat (dvs. inte None) styrs graden av parallellitet för samtidig inläsning av data från Amazon RDS för SQL Server av inställningen för kopieringsaktiviteten parallelCopies .
Nej
partitionSettings Ange gruppen med inställningarna för datapartitionering.
Använd när partitionsalternativet inte Noneär .
Nej
Under partitionSettings:
partitionColumnName Ange namnet på källkolumnen i heltal eller datum/datetime-typ (int, , bigintsmallint, date, smalldatetime, datetime, datetime2eller datetimeoffset) som ska användas av intervallpartitionering för parallell kopiering. Om det inte anges identifieras indexet eller den primära nyckeln i tabellen automatiskt och används som partitionskolumn.
Använd när partitionsalternativet är DynamicRange. Om du använder en fråga för att hämta källdata kopplar ?DfDynamicRangePartitionCondition du in WHERE-satsen. Ett exempel finns i avsnittet Parallellkopiering från SQL-databas .
Nej
partitionUpperBound Det maximala värdet för partitionskolumnen för partitionsintervalldelning. Det här värdet används för att bestämma partitionssteget, inte för att filtrera raderna i tabellen. Alla rader i tabellen eller frågeresultatet partitioneras och kopieras. Om det inte anges identifierar kopieringsaktivitet automatiskt värdet.
Använd när partitionsalternativet är DynamicRange. Ett exempel finns i avsnittet Parallellkopiering från SQL-databas .
Nej
partitionLowerBound Minimivärdet för partitionskolumnen för partitionsintervalldelning. Det här värdet används för att bestämma partitionssteget, inte för att filtrera raderna i tabellen. Alla rader i tabellen eller frågeresultatet partitioneras och kopieras. Om det inte anges identifierar kopieringsaktivitet automatiskt värdet.
Använd när partitionsalternativet är DynamicRange. Ett exempel finns i avsnittet Parallellkopiering från SQL-databas .
Nej

Observera följande:

  • Om sqlReaderQuery har angetts för AmazonRdsForSqlServerSource kör kopieringsaktiviteten den här frågan mot Amazon RDS för SQL Server-källan för att hämta data. Du kan också ange en lagrad procedur genom att ange sqlReaderStoredProcedureName och storedProcedureParameters om den lagrade proceduren tar parametrar.
  • När du använder lagrad procedur i källan för att hämta data bör du tänka på att om den lagrade proceduren är utformad som att returnera ett annat schema när ett annat parametervärde skickas in, kan det uppstå ett fel eller ett oväntat resultat när du importerar schemat från användargränssnittet eller när du kopierar data till SQL Database med automatisk tabellskapande.

Exempel: Använda SQL-fråga

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

Exempel: Använd en lagrad procedur

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

Definitionen för lagrad procedur

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

Parallellkopiering från SQL-databas

Amazon RDS för SQL Server-anslutningsprogrammet i kopieringsaktivitet ger inbyggd datapartitionering för att kopiera data parallellt. Du hittar alternativ för datapartitionering på fliken Källa i kopieringsaktiviteten.

Skärmbild av partitionsalternativ

När du aktiverar partitionerad kopiering kör kopieringsaktiviteten parallella frågor mot din Amazon RDS för SQL Server-källan för att läsa in data efter partitioner. Den parallella graden styrs av parallelCopies inställningen för kopieringsaktiviteten. Om du till exempel anger parallelCopies till fyra genererar och kör tjänsten samtidigt fyra frågor baserat på det angivna partitionsalternativet och inställningarna, och varje fråga hämtar en del av data från Amazon RDS för SQL Server.

Du rekommenderas att aktivera parallell kopiering med datapartitionering, särskilt när du läser in stora mängder data från Amazon RDS för SQL Server. Följande är föreslagna konfigurationer för olika scenarier. När du kopierar data till filbaserat datalager rekommenderar vi att du skriver till en mapp som flera filer (anger endast mappnamn), i vilket fall prestandan är bättre än att skriva till en enda fil.

Scenario Föreslagna inställningar
Full belastning från en stor tabell med fysiska partitioner. Partitionsalternativ: Fysiska partitioner i tabellen.

Under körningen identifierar tjänsten automatiskt de fysiska partitionerna och kopierar data efter partitioner.

Om du vill kontrollera om tabellen har fysisk partition eller inte kan du läsa den här frågan.
Fullständig belastning från en stor tabell, utan fysiska partitioner, med ett heltal eller en datetime-kolumn för datapartitionering. Partitionsalternativ: Partition med dynamiskt intervall.
Partitionskolumn (valfritt): Ange den kolumn som används för att partitionera data. Om den inte anges används primärnyckelkolumnen.
Partitionens övre gräns och partitionens nedre gräns (valfritt): Ange om du vill fastställa partitionssteget. Detta är inte för att filtrera raderna i tabellen, alla rader i tabellen partitioneras och kopieras. Om det inte anges identifierar kopieringsaktiviteten automatiskt värdena och det kan ta lång tid beroende på MIN- och MAX-värden. Vi rekommenderar att du anger övre och nedre gräns.

Om partitionskolumnen "ID" till exempel har värden mellan 1 och 100 och du anger den nedre gränsen som 20 och den övre gränsen som 80, med parallell kopia som 4, hämtar tjänsten data med 4 partitioner – ID:n i intervallet <=20, [21, 50], [51, 80] >respektive =81.
Läs in en stor mängd data med hjälp av en anpassad fråga, utan fysiska partitioner, med ett heltal eller en date/datetime-kolumn för datapartitionering. Partitionsalternativ: Partition med dynamiskt intervall.
Fråga: SELECT * FROM <TableName> WHERE ?DfDynamicRangePartitionCondition AND <your_additional_where_clause>.
Partitionskolumn: Ange den kolumn som används för att partitionera data.
Partitionens övre gräns och partitionens nedre gräns (valfritt): Ange om du vill fastställa partitionssteget. Detta är inte för att filtrera raderna i tabellen, alla rader i frågeresultatet partitioneras och kopieras. Om det inte anges identifierar kopieringsaktivitet automatiskt värdet.

Om partitionskolumnen "ID" till exempel har värden mellan 1 och 100 och du anger den nedre gränsen som 20 och den övre gränsen som 80, med parallell kopia som 4, hämtar tjänsten data med 4 partitioner – ID:n i intervallet <=20, [21, 50], [51, 80] >respektive =81.

Här är fler exempelfrågor för olika scenarier:
1. Fråga hela tabellen:
SELECT * FROM <TableName> WHERE ?DfDynamicRangePartitionCondition
2. Fråga från en tabell med kolumnval och ytterligare where-clause-filter:
SELECT <column_list> FROM <TableName> WHERE ?DfDynamicRangePartitionCondition AND <your_additional_where_clause>
3. Fråga med underfrågor:
SELECT <column_list> FROM (<your_sub_query>) AS T WHERE ?DfDynamicRangePartitionCondition AND <your_additional_where_clause>
4. Fråga med partition i underfrågor:
SELECT <column_list> FROM (SELECT <your_sub_query_column_list> FROM <TableName> WHERE ?DfDynamicRangePartitionCondition) AS T

Metodtips för att läsa in data med partitionsalternativet:

  1. Välj distinkt kolumn som partitionskolumn (till exempel primärnyckel eller unik nyckel) för att undvika datasnedvridning.
  2. Om tabellen har inbyggd partition använder du partitionsalternativet "Fysiska partitioner av tabellen" för att få bättre prestanda.
  3. Om du använder Azure Integration Runtime för att kopiera data kan du ange större "Data Integration Units (DIU)" (>4) för att använda mer databehandlingsresurser. Kontrollera tillämpliga scenarier där.
  4. "Grad av kopieringsparallellitet" styr partitionsnumren, anger det här talet för stort ibland skadar prestandan, rekommenderar att du anger det här talet som (DIU eller antalet lokalt installerade IR-noder) * (2 till 4).

Exempel: fullständig belastning från en stor tabell med fysiska partitioner

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

Exempel: fråga med partition för dynamiskt intervall

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

Exempelfråga för att kontrollera fysisk partition

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]'

Om tabellen har en fysisk partition ser du "HasPartition" som "ja" som följande.

Sql-frågeresultat

Egenskaper för uppslagsaktivitet

Mer information om egenskaperna finns i Sökningsaktivitet.

Egenskaper för GetMetadata-aktivitet

Mer information om egenskaperna finns i GetMetadata-aktivitet

Använda Always Encrypted

När du kopierar data från/till Amazon RDS för SQL Server med Always Encrypted följer du stegen nedan:

  1. Lagra kolumnhuvudnyckeln (CMK) i ett Azure Key Vault. Läs mer om hur du konfigurerar Always Encrypted med hjälp av Azure Key Vault

  2. Se till att ge åtkomst till nyckelvalvet där kolumnhuvudnyckeln (CMK) lagras. I den här artikeln finns nödvändiga behörigheter.

  3. Skapa en länkad tjänst för att ansluta till din SQL-databas och aktivera funktionen Always Encrypted med hjälp av antingen hanterad identitet eller tjänstens huvudnamn.

Felsöka anslutningsproblem

  1. Konfigurera amazon RDS för SQL Server-instansen så att den accepterar fjärranslutningar. Starta Amazon RDS för SQL Server Management Studio, högerklicka på servern och välj Egenskaper. Välj Anslutningar i listan och markera kryssrutan Tillåt fjärranslutningar till den här servern .

    Aktivera fjärranslutningar

    Detaljerade steg finns i Konfigurera konfigurationsalternativet för fjärråtkomstservern.

  2. Starta Amazon RDS för Upravljač SQL Server konfiguracijom. Expandera Amazon RDS för SQL Server Network Configuration för den instans du vill använda och välj Protokoll för MSSQLSERVER. Protokoll visas i den högra rutan. Aktivera TCP/IP genom att högerklicka på TCP/IP och välja Aktivera.

    Aktivera TCP/IP

    Mer information och alternativa sätt att aktivera TCP/IP-protokoll finns i Aktivera eller inaktivera ett servernätverksprotokoll.

  3. I samma fönster dubbelklickar du på TCP/IP för att starta fönstret TCP/IP-egenskaper .

  4. Växla till fliken IP-adresser . Rulla nedåt för att se avsnittet IPAll . Skriv ned TCP-porten. Standardvärdet är 1433.

  5. Skapa en regel för Windows-brandväggen på datorn för att tillåta inkommande trafik via den här porten.

  6. Verifiera anslutningen: Om du vill ansluta till Amazon RDS för SQL Server med ett fullständigt kvalificerat namn använder du Amazon RDS för SQL Server Management Studio från en annan dator. Ett exempel är "<machine>.<domain>.corp.<company>.com,1433".

Uppgradera Amazon RDS för SQL Server-versionen

Om du vill uppgradera Amazon RDS för SQL Server-versionen går du till sidan Redigera länkad tjänst och väljer Rekommenderas under Version och konfigurerar den länkade tjänsten genom att referera till länkade tjänstegenskaper för den rekommenderade versionen.

Tabellen nedan visar skillnaderna mellan Amazon RDS för SQL Server med hjälp av den rekommenderade och äldre versionen.

Rekommenderad version Äldre version
Stöd för TLS 1.3 via encrypt som strict. TLS 1.3 stöds inte.

En lista över datalager som stöds som källor och mottagare av kopieringsaktiviteten finns i Datalager som stöds.