Share via


Amazon RDS configureren voor SQL Server in kopieeractiviteit

In dit artikel wordt beschreven hoe u de kopieeractiviteit in een gegevenspijplijn gebruikt om gegevens te kopiëren van Amazon RDS voor SQL Server.

Ondersteunde configuratie

Voor de configuratie van elk tabblad onder kopieeractiviteit gaat u respectievelijk naar de volgende secties.

Algemeen

Raadpleeg de richtlijnen voor algemene instellingen voor het configureren van het tabblad Algemene instellingen.

Bron

De volgende eigenschappen worden ondersteund voor Amazon RDS voor SQL Server op het tabblad Bron van een kopieeractiviteit.

Schermopname van het brontabblad en de lijst met eigenschappen.

De volgende eigenschappen zijn vereist:

  • Gegevensarchieftype: Selecteer Extern.

  • Verbinding maken ion: Selecteer een Amazon RDS voor SQL Server-verbinding in de lijst met verbindingen. Als de verbinding niet bestaat, maakt u een nieuwe Amazon RDS voor SQL Server-verbinding door Nieuw te selecteren.

  • Verbinding maken iontype: Selecteer Amazon RDS voor SQL Server.

  • Query gebruiken: geef de manier op om gegevens te lezen. U kunt de procedure Tabel, Query of Opgeslagen kiezen. In de volgende lijst wordt de configuratie van elke instelling beschreven:

    • Tabel: Gegevens uit de opgegeven tabel lezen. Selecteer de brontabel in de vervolgkeuzelijst of selecteer Bewerken om deze handmatig in te voeren.

    • Query: Geef de aangepaste SQL-query op om gegevens te lezen. Een voorbeeld is select * from MyTable. Of selecteer het potloodpictogram dat u wilt bewerken in de code-editor.

      Schermopname van query-instellingen.

    • Opgeslagen procedure: gebruik de opgeslagen procedure waarmee gegevens uit de brontabel worden gelezen. De laatste SQL-instructie moet een SELECT-instructie zijn in de opgeslagen procedure.

      • Naam van opgeslagen procedure: selecteer de opgeslagen procedure of geef de naam van de opgeslagen procedure handmatig op wanneer u bewerken selecteert om gegevens uit de brontabel te lezen.

      • Parameters voor opgeslagen procedures: geef waarden op voor opgeslagen procedureparameters. Toegestane waarden zijn naam- of waardeparen. De namen en hoofdletters van parameters moeten overeenkomen met de namen en hoofdletters van de opgeslagen procedureparameters. U kunt importparameters selecteren om de opgeslagen procedureparameters op te halen.

        Schermopname van opgeslagen procedure-instellingen.

Onder Geavanceerd kunt u de volgende velden opgeven:

  • Time-out voor query 's (minuten):geef de time-out op voor het uitvoeren van queryopdrachten. De standaardwaarde is 120 minuten. Als een parameter voor deze eigenschap is ingesteld, zijn toegestane waarden tijdspanne, zoals '02:00:00' (120 minuten).

  • Isolatieniveau: hiermee geeft u het gedrag voor transactievergrendeling voor de SQL-bron op. De toegestane waarden zijn: Vastgelegd lezen, Niet-verzonden lezen, Herhaalbaar lezen, Serializeerbaar, Momentopname. Als dit niet is opgegeven, wordt het standaardisolatieniveau van de database gebruikt. Raadpleeg IsolationLevel Enum voor meer informatie.

    Schermopname van instellingen op isolatieniveau.

  • Partitieoptie: Geef de opties voor gegevenspartitionering op die worden gebruikt voor het laden van gegevens uit Amazon RDS voor SQL Server. Toegestane waarden zijn: Geen (standaard), Fysieke partities van tabel en Dynamisch bereik. Wanneer een partitieoptie is ingeschakeld (dat wil niet geen), wordt de mate van parallelle uitvoering om gegevens van Amazon RDS voor SQL Server gelijktijdig te laden, beheerd door mate van kopieerparallelisme op het tabblad Instellingen voor kopieeractiviteit.

    • Geen: kies deze instelling om geen partitie te gebruiken.

    • Fysieke partities van tabel: Wanneer u een fysieke partitie gebruikt, worden de partitiekolom en het mechanisme automatisch bepaald op basis van uw fysieke tabeldefinitie.

    • Dynamisch bereik: wanneer u een query gebruikt waarvoor parallel is ingeschakeld, is de partitieparameter(?DfDynamicRangePartitionCondition) van het bereik nodig. Voorbeeldquery: SELECT * FROM <TableName> WHERE ?DfDynamicRangePartitionCondition.

      • Naam van partitiekolom: geef de naam op van de bronkolom in geheel getal of datum/datum/tijd -type (int, bigintsmallint, date, smalldatetime, , datetimeof datetime2datetimeoffset) dat wordt gebruikt door bereikpartitionering voor parallelle kopie. Als deze niet is opgegeven, wordt de index of de primaire sleutel van de tabel automatisch gedetecteerd en gebruikt als partitiekolom.

        Als u een query gebruikt om de brongegevens op te halen, koppelt u deze ?DfDynamicRangePartitionCondition aan de WHERE-component. Zie de sectie Parallel kopiëren uit de SQL-database voor een voorbeeld.

      • Bovengrens partitie: geef de maximumwaarde van de partitiekolom op voor het splitsen van partitiebereiken. Deze waarde wordt gebruikt om de partitie-onderdrukking te bepalen, niet voor het filteren van de rijen in de tabel. Alle rijen in de tabel of het queryresultaat worden gepartitioneerd en gekopieerd. Als dit niet is opgegeven, detecteert kopieeractiviteit automatisch de waarde. Zie de sectie Parallel kopiëren uit de SQL-database voor een voorbeeld.

      • Partitie ondergrens: Geef de minimumwaarde van de partitiekolom op voor het splitsen van partitiebereiken. Deze waarde wordt gebruikt om de partitie-onderdrukking te bepalen, niet voor het filteren van de rijen in de tabel. Alle rijen in de tabel of het queryresultaat worden gepartitioneerd en gekopieerd. Als dit niet is opgegeven, detecteert kopieeractiviteit automatisch de waarde. Zie de sectie Parallel kopiëren uit de SQL-database voor een voorbeeld.

  • Aanvullende kolommen: voeg extra gegevenskolommen toe om het relatieve pad of de statische waarde van bronbestanden op te slaan. Expressie wordt ondersteund voor de laatste.

Let op de volgende punten:

  • Als Query is opgegeven voor de bron, voert de kopieeractiviteit deze query uit op de Amazon RDS voor SQL Server-bron om de gegevens op te halen. U kunt ook een opgeslagen procedure opgeven door opgeslagen procedurenaam en opgeslagen procedureparameters op te geven als de opgeslagen procedure parameters gebruikt.
  • Wanneer u opgeslagen procedure in de bron gebruikt om gegevens op te halen, moet u er rekening mee houden dat uw opgeslagen procedure is ontworpen als het retourneren van een ander schema wanneer een andere parameterwaarde wordt doorgegeven, mogelijk een fout optreedt of onverwacht resultaat ziet bij het importeren van het schema uit de gebruikersinterface of bij het kopiëren van gegevens naar sql-database met automatisch maken van tabellen.

Toewijzing

Voor de configuratie van het tabblad Toewijzing gaat u naar De toewijzingen configureren onder het tabblad Toewijzing.

Instellingen

Ga voor Instellingen tabbladconfiguratie naar Uw andere instellingen configureren op het tabblad Instellingen.

Parallel kopiëren uit SQL-database

De Amazon RDS voor SQL Server-connector in kopieeractiviteit biedt ingebouwde gegevenspartitionering om gegevens parallel te kopiëren. U vindt opties voor gegevenspartitionering op het tabblad Bron van de kopieeractiviteit.

Wanneer u gepartitioneerde kopie inschakelt, voert de kopieeractiviteit parallelle query's uit op uw Amazon RDS voor SQL Server-bron om gegevens te laden op partities. De parallelle graad wordt bepaald door de mate van kopieerparallelisme op het tabblad Instellingen voor kopieeractiviteit. Als u bijvoorbeeld Mate van kopieerparallelisme instelt op vier, genereert en voert de service gelijktijdig vier query's uit op basis van uw opgegeven partitieoptie en -instellingen, en haalt elke query een deel van de gegevens op uit uw Amazon RDS voor SQL Server.

U wordt aangeraden om parallel kopiëren met gegevenspartitionering in te schakelen, met name wanneer u grote hoeveelheden gegevens uit uw Amazon RDS voor SQL Server laadt. Hier volgen voorgestelde configuraties voor verschillende scenario's. Wanneer u gegevens kopieert naar een bestandsgegevensarchief, is het raadzaam om naar een map te schrijven als meerdere bestanden (alleen mapnaam opgeven), in welk geval de prestaties beter zijn dan schrijven naar één bestand.

Scenario Voorgestelde instellingen
Volledige belasting van grote tabellen, met fysieke partities. Partitieoptie: fysieke partities van de tabel.

Tijdens de uitvoering detecteert de service automatisch de fysieke partities en kopieert de gegevens per partitie.

Als u wilt controleren of uw tabel een fysieke partitie heeft of niet, kunt u naar deze query verwijzen.
Volledige belasting van grote tabellen, zonder fysieke partities, terwijl met een geheel getal of datum/tijd-kolom voor gegevenspartitionering. Partitieopties: partitie dynamisch bereik.
Partitiekolom (optioneel): Geef de kolom op die wordt gebruikt om gegevens te partitioneren. Als dit niet is opgegeven, wordt de primaire-sleutelkolom gebruikt.
Bovengrens en partitieondergrens partitioneren (optioneel): Geef op of u de partitie-onderdrukking wilt bepalen. Dit is niet voor het filteren van de rijen in de tabel, alle rijen in de tabel worden gepartitioneerd en gekopieerd. Als dit niet is opgegeven, detecteert kopieeractiviteit automatisch de waarden en kan het lang duren, afhankelijk van MIN- en MAX-waarden. Het wordt aanbevolen om bovengrens en ondergrens op te geven.

Als de partitiekolom 'ID' bijvoorbeeld waarden heeft tussen 1 en 100 en u de ondergrens instelt op 20 en de bovengrens als 80, met parallelle kopie als 4, haalt de service gegevens op met 4 partities - id's in bereik <=20, [21, 50], [51, 80] en >=81.
Laad een grote hoeveelheid gegevens met behulp van een aangepaste query, zonder fysieke partities, terwijl u een geheel getal of een datum/datum/tijd-kolom gebruikt voor gegevenspartitionering. Partitieopties: partitie dynamisch bereik.
Query: SELECT * FROM <TableName> WHERE ?DfDynamicRangePartitionCondition AND <your_additional_where_clause>.
Partitiekolom: Geef de kolom op die wordt gebruikt om gegevens te partitioneren.
Bovengrens en partitieondergrens partitioneren (optioneel): Geef op of u de partitie-onderdrukking wilt bepalen. Dit is niet voor het filteren van de rijen in de tabel, alle rijen in het queryresultaat worden gepartitioneerd en gekopieerd. Als dit niet is opgegeven, detecteert kopieeractiviteit automatisch de waarde.

Als de partitiekolom 'ID' bijvoorbeeld waarden heeft tussen 1 en 100 en u de ondergrens instelt op 20 en de bovengrens als 80, waarbij de parallelle kopie als 4 is, haalt de service gegevens op met 4 partities- id's in het bereik <=20, [21, 50], [51, 80] en >=81.

Hier volgen meer voorbeeldquery's voor verschillende scenario's:
• Voer een query uit op de hele tabel:
SELECT * FROM <TableName> WHERE ?DfDynamicRangePartitionCondition
• Query's uitvoeren vanuit een tabel met kolomselectie en aanvullende where-componentfilters:
SELECT <column_list> FROM <TableName> WHERE ?DfDynamicRangePartitionCondition AND <your_additional_where_clause>
• Query's uitvoeren met subquery's:
SELECT <column_list> FROM (<your_sub_query>) AS T WHERE ?DfDynamicRangePartitionCondition AND <your_additional_where_clause>
• Query uitvoeren met partitie in subquery:
SELECT <column_list> FROM (SELECT <your_sub_query_column_list> FROM <TableName> WHERE ?DfDynamicRangePartitionCondition) AS T

Aanbevolen procedures voor het laden van gegevens met partitieoptie:

  1. Kies een onderscheidende kolom als partitiekolom (zoals primaire sleutel of unieke sleutel) om scheeftrekken van gegevens te voorkomen.
  2. Als de tabel een ingebouwde partitie heeft, gebruikt u de partitieoptie Fysieke partities van de tabel om betere prestaties te krijgen.

Voorbeeldquery om fysieke partitie te controleren

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

Als de tabel een fysieke partitie heeft, ziet u HasPartition als ja, zoals hieronder.

Sql-queryresultaat

Tabelsamenvatting

Zie de volgende tabel voor de samenvatting en meer informatie voor de Amazon RDS voor SQL Server-kopieeractiviteit.

Brongegevens

Name Beschrijving Waarde Vereist JSON-scripteigenschap
Gegevensarchieftype Het gegevensarchieftype. Extern Ja /
Verbinding Uw verbinding met het brongegevensarchief. < uw verbinding > Ja verbinding
Verbindingstype Uw verbindingstype. Selecteer Amazon RDS voor SQL Server. Amazon RDS voor SQL Server Ja /
Query gebruiken De aangepaste SQL-query voor het lezen van gegevens. •Tabel
•Query
• Opgeslagen procedure
Ja /
Tabel De brongegevenstabel. < naam van de doeltabel> Nee schema
table
Query De aangepaste SQL-query voor het lezen van gegevens. < uw query > Nee sqlReaderQuery
Naam van opgeslagen procedure Deze eigenschap is de naam van de opgeslagen procedure waarmee gegevens uit de brontabel worden gelezen. De laatste SQL-instructie moet een SELECT-instructie zijn in de opgeslagen procedure. < naam van opgeslagen procedure > Nee sqlReaderStoredProcedureName
Parameter voor opgeslagen procedure Deze parameters zijn voor de opgeslagen procedure. Toegestane waarden zijn naam- of waardeparen. De namen en hoofdletters van parameters moeten overeenkomen met de namen en hoofdletters van de opgeslagen procedureparameters. < naam- of waardeparen > Nee storedProcedureParameters
Time-out van query De time-out voor het uitvoeren van queryopdrachten. tijdsbestek
(de standaardwaarde is 120 minuten)
Nee queryTimeout
Isolatieniveau Hiermee geeft u het gedrag voor transactievergrendeling voor de SQL-bron op. • Lees vastgelegd
• Niet-verzonden lezen
• Herhaalbare leesbewerking
•Serializable
•Momentopname
Nee Isolationlevel:
• ReadCommitted
• ReadUncommitted
• Herhaalbaar gelezen
•Serializable
•Momentopname
Partitieoptie De opties voor gegevenspartitionering die worden gebruikt voor het laden van gegevens uit Amazon RDS voor SQL Server. • Geen (standaard)
• Fysieke partities van tabel
• Dynamisch bereik
Nee partitionOption:
• Geen (standaard)
• PhysicalPartitionsOfTable
• DynamicRange
Naam van partitiekolom De naam van de bronkolom in geheel getal of datum/datum/tijd(int, bigintdatesmalldatetimesmallint, datetimeof datetime2datetimeoffset) die wordt gebruikt door bereikpartitionering voor parallelle kopie. Als deze niet is opgegeven, wordt de index of de primaire sleutel van de tabel automatisch gedetecteerd en gebruikt als partitiekolom. Als u een query gebruikt om de brongegevens op te halen, koppelt u deze ?DfDynamicRangePartitionCondition aan de WHERE-component. < namen van partitiekolommen > Nee partitionColumnName
Bovengrens partitioneren De maximumwaarde van de partitiekolom voor het splitsen van partitiebereiken. Deze waarde wordt gebruikt om de partitie-onderdrukking te bepalen, niet voor het filteren van de rijen in de tabel. Alle rijen in de tabel of het queryresultaat worden gepartitioneerd en gekopieerd. Als dit niet is opgegeven, detecteert kopieeractiviteit automatisch de waarde. < uw partitie bovengrens > Nee partitionUpperBound
Ondergrens van partitie De minimale waarde van de partitiekolom voor het splitsen van partitiebereiken. Deze waarde wordt gebruikt om de partitie-onderdrukking te bepalen, niet voor het filteren van de rijen in de tabel. Alle rijen in de tabel of het queryresultaat worden gepartitioneerd en gekopieerd. Als dit niet is opgegeven, detecteert kopieeractiviteit automatisch de waarde. < uw partitie ondergrens > Nee partitionLowerBound
Aanvullende kolommen Voeg extra gegevenskolommen toe om het relatieve pad of de statische waarde van bronbestanden op te slaan. Expressie wordt ondersteund voor de laatste. • Naam
•Waarde
Nee additionalColumns:
•Naam
•Waarde