Delen via


Azure SQL Database configureren in een kopieeractiviteit

In dit artikel wordt beschreven hoe u de kopieeractiviteit in de gegevenspijplijn gebruikt om gegevens van en naar Azure SQL Database te kopiëren.

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 Azure SQL Database 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 Azure SQL Database-verbinding in de lijst met verbindingen. Als de verbinding niet bestaat, maakt u een nieuwe Azure SQL Database-verbinding door Nieuw te selecteren.
  • Verbinding maken iontype: Selecteer Azure SQL Database.
  • Tabel: Selecteer de tabel in uw database in de vervolgkeuzelijst. Of schakel Bewerken in om de tabelnaam handmatig in te voeren.
  • Voorbeeldgegevens: selecteer Voorbeeldgegevens om een voorbeeld van de gegevens in de tabel te bekijken.

Onder Geavanceerd kunt u de volgende velden opgeven:

  • Query gebruiken: u kunt de procedure Tabel, Query of Opgeslagen kiezen. In de volgende lijst wordt de configuratie van elke instelling beschreven:

    • Tabel: Gegevens lezen uit de tabel die u hebt opgegeven in Tabel als u deze knop selecteert.

    • 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 het kiezen van een query.

    • 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 bij het inschakelen van het vak Bewerken 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.

        Schermopname van opgeslagen procedure-instellingen.

  • 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).

    Schermopname van time-outinstellingen voor query's.

  • Isolatieniveau: hiermee geeft u het gedrag voor transactievergrendeling voor de SQL-bron op. De toegestane waarden zijn: None, ReadCommitted, ReadUncommitted, RepeatableRead, Serializable of Snapshot. Als dit niet is opgegeven, wordt geen isolatieniveau gebruikt. Raadpleeg IsolationLevel Enum voor meer informatie.

    Schermopname van instellingen op isolatieniveau.

  • Partitieoptie: Geef de opties voor gegevenspartitionering op die worden gebruikt om gegevens uit Azure SQL Database te laden. 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 uit een Azure SQL Database gelijktijdig te laden, bepaald door de instelling voor parallelle kopieerbewerkingen voor de kopieeractiviteit.

    Schermopname van de instellingen voor partitieopties.

    • 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 de definitie van uw fysieke tabel.

    • Dynamisch bereik: wanneer u een query gebruikt waarvoor parallel is ingeschakeld, is de bereikpartitieparameter(?DfDynamicRangePartitionCondition) 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 dit niet is opgegeven, wordt de index of de primaire sleutel van de tabel automatisch gedetecteerd en gebruikt als de partitiekolom.
      • 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.
      • 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.
  • Aanvullende kolommen: voeg meer gegevenskolommen toe om het relatieve pad of de statische waarde van bronbestanden op te slaan. Expressie wordt ondersteund voor de laatste. Ga naar Extra kolommen toevoegen tijdens het kopiëren voor meer informatie.

Doel

De volgende eigenschappen worden ondersteund voor Azure SQL Database op het tabblad Bestemming van een kopieeractiviteit.

Schermopname van het tabblad Bestemming.

De volgende eigenschappen zijn vereist:

  • Gegevensarchieftype: Selecteer Extern.
  • Verbinding maken ion: Selecteer een Azure SQL Database-verbinding in de lijst met verbindingen. Als de verbinding niet bestaat, maakt u een nieuwe Azure SQL Database-verbinding door Nieuw te selecteren.
  • Verbinding maken iontype: Selecteer Azure SQL Database.
  • Tabel: Selecteer de tabel in uw database in de vervolgkeuzelijst. Of schakel Bewerken in om de tabelnaam handmatig in te voeren.
  • Voorbeeldgegevens: selecteer Voorbeeldgegevens om een voorbeeld van de gegevens in de tabel te bekijken.

Onder Geavanceerd kunt u de volgende velden opgeven:

  • Schrijfgedrag: Definieert het schrijfgedrag wanneer de bron bestanden is uit een gegevensarchief op basis van bestanden. U kunt de procedure Invoegen, Upsert of Opgeslagen kiezen.

    Schermopname van het tabblad Schrijfgedrag.

    • Invoegen: Kies deze optie als de brongegevens worden ingevoegd.

    • Upsert: Kies deze optie als uw brongegevens zowel invoeg- als updates bevatten.

      • TempDB gebruiken: geef aan of u een globale tijdelijke tabel of fysieke tabel wilt gebruiken als tussentijdse tabel voor upsert. De service maakt standaard gebruik van een globale tijdelijke tabel als de tussentijdse tabel en dit selectievakje is ingeschakeld.

        Schermopname van de optie TempDB gebruiken.

      • Selecteer het db-schema van de gebruiker: wanneer het selectievakje TempDB gebruiken niet is ingeschakeld, geeft u het tussentijdse schema op voor het maken van een tussentijdse tabel als er een fysieke tabel wordt gebruikt.

        Notitie

        U moet over de machtiging beschikken voor het maken en verwijderen van tabellen. Een tussentijdse tabel deelt standaard hetzelfde schema als een doeltabel.

        Schermopname met de optie TempDB gebruiken niet selecteren.

      • Sleutelkolommen: geef de kolomnamen op voor unieke rijidentificatie. U kunt één sleutel of een reeks sleutels gebruiken. Als deze niet is opgegeven, wordt de primaire sleutel gebruikt.

    • Opgeslagen procedure: Gebruik de opgeslagen procedure waarmee wordt gedefinieerd hoe brongegevens in een doeltabel moeten worden toegepast. Deze opgeslagen procedure wordt per batch aangeroepen.

      • Naam van opgeslagen procedure: selecteer de opgeslagen procedure of geef de naam van de opgeslagen procedure handmatig op bij het inschakelen van het vak Bewerken 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.

        Schermopname van opgeslagen procedure-instellingen.

  • Tabelvergrendeling bulksgewijs invoegen: Kies Ja of Nee. Gebruik deze instelling om de kopieerprestaties te verbeteren tijdens een bulksgewijze invoegbewerking op een tabel zonder index van meerdere clients. Ga voor meer informatie naar BULK INSERT (Transact-SQL)

  • Tabeloptie: Hiermee geeft u op of de doeltabel automatisch moet worden gemaakt als de tabel niet bestaat op basis van het bronschema. Kies Geen of Automatisch tabel maken. Automatisch tabel maken wordt niet ondersteund wanneer de bestemming een opgeslagen procedure aangeeft.

  • Script vooraf kopiëren: geef een script op dat moet worden uitgevoerd voor kopieeractiviteit voordat u in elke uitvoering gegevens naar een doeltabel schrijft. U kunt deze eigenschap gebruiken om de vooraf geladen gegevens op te schonen.

  • Time-out voor schrijven van batch: geef de wachttijd op voordat de batchinvoegbewerking is voltooid voordat er een time-out optreedt. De toegestane waarde is tijdspanne. De standaardwaarde is '00:30:00' (30 minuten).

  • Batchgrootte schrijven: geef het aantal rijen op dat in de SQL-tabel per batch moet worden ingevoegd. De toegestane waarde is een geheel getal (aantal rijen). Standaard bepaalt de service dynamisch de juiste batchgrootte op basis van de rijgrootte.

  • Maximum aantal gelijktijdige verbindingen: geef de bovengrens op van gelijktijdige verbindingen die tijdens de uitvoering van de activiteit tot stand zijn gebracht met het gegevensarchief. Geef alleen een waarde op wanneer u gelijktijdige verbindingen wilt beperken.

  • Analyse van metrische gegevens voor prestaties uitschakelen: deze instelling wordt gebruikt voor het verzamelen van metrische gegevens, zoals DTU, DWU, RU, enzovoort, voor het optimaliseren en aanbevelingen van kopieerprestaties. Als u zich zorgen maakt over dit gedrag, schakelt u dit selectievakje in.

Toewijzing

Als u voor de configuratie van het tabblad Toewijzing geen Azure SQL Database met automatisch maken als bestemming toepast, gaat u naar Toewijzing.

Als u Azure SQL Database met automatisch maken als bestemming toepast, behalve de configuratie in Toewijzing, kunt u het type voor de doelkolommen bewerken. Nadat u Importschema's hebt geselecteerd, kunt u het kolomtype opgeven in uw bestemming.

Het type voor de id-kolom in de bron is bijvoorbeeld int en u kunt dit wijzigen in floattype bij het toewijzen aan de doelkolom.

Schermopname van het type doelkolom toewijzen.

Instellingen

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

Parallel kopiëren vanuit Azure SQL Database

De Azure SQL Database-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 Azure SQL Database-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 kopieerparallellisme instelt op vier, genereert en voert de service gelijktijdig vier query's uit op basis van de opgegeven partitieoptie en -instellingen, en haalt elke query een deel van de gegevens op uit uw Azure SQL Database.

U wordt aangeraden parallelle kopie met gegevenspartitionering in te schakelen, met name wanneer u grote hoeveelheden gegevens uit uw Azure SQL Database 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 deze niet is opgegeven, wordt de index- of 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, worden de waarden automatisch gedetecteerd door kopieeractiviteiten.

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:

  • Kies een onderscheidende kolom als partitiekolom (zoals primaire sleutel of unieke sleutel) om scheeftrekken van gegevens te voorkomen.
  • 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

De volgende tabellen bevatten meer informatie over de kopieeractiviteit in Azure SQL Database.

Bron

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 Azure SQL Database. Azure SQL-database Ja /
Tabel De brongegevenstabel. <naam van de doeltabel> Ja schema
table
Query gebruiken De aangepaste SQL-query voor het lezen van gegevens. •Geen
•Query
• Opgeslagen procedure
Nee

• sqlReaderQuery
• sqlReaderStoredProcedureName, storedProcedureParameters
Time-out van query De time-out voor het uitvoeren van queryopdrachten is standaard 120 minuten. tijdsbestek Nee queryTimeout
Isolatieniveau Hiermee geeft u het gedrag voor transactievergrendeling voor de SQL-bron op. •Geen
• ReadCommitted
• ReadUncommitted
• Herhaalbaar gelezen
•Serializable
•Momentopname
Nee isolationLevel
Partitieoptie De opties voor gegevenspartitionering die worden gebruikt voor het laden van gegevens uit Azure SQL Database. •Geen
• Fysieke partities van tabel
• Dynamisch bereik
Nee partitionOption:
• PhysicalPartitionsOfTable
• DynamicRange
Aanvullende kolommen Voeg meer 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

Doel

Name Beschrijving Waarde Vereist JSON-scripteigenschap
Gegevensarchieftype Het gegevensarchieftype. Extern Ja /
Verbinding Uw verbinding met het doelgegevensarchief. <uw verbinding > Ja verbinding
Verbindingstype Uw verbindingstype. Selecteer Azure SQL Database. Azure SQL-database Ja /
Tabel Uw doelgegevenstabel. <naam van de doeltabel> Ja schema
table
Schrijfgedrag Definieert het schrijfgedrag wanneer de bron bestanden is uit een bestandsgegevensarchief. •Invoegen
• Upsert
• Opgeslagen procedure
Nee writeBehavior:
•Invoegen
• upsert
• sqlWriterStoredProcedureName, sqlWriterTableType, storedProcedureParameters
Tabelvergrendeling bulksgewijs invoegen Gebruik deze instelling om de kopieerprestaties te verbeteren tijdens een bulksgewijze invoegbewerking op een tabel zonder index van meerdere clients. Ja of nee Nee sqlWriterUseTableLock:
waar of onwaar
Tabeloptie Hiermee geeft u op of de doeltabel automatisch moet worden gemaakt als deze niet bestaat op basis van het bronschema. •Geen
• Tabel automatisch maken
Nee tableOption:
• autoCreate
Script vooraf kopiëren Een script voor kopieeractiviteit dat moet worden uitgevoerd voordat gegevens in een doeltabel in elke uitvoering worden geschreven. U kunt deze eigenschap gebruiken om de vooraf geladen gegevens op te schonen. <script vooraf kopiëren>
(tekenreeks)
Nee preCopyScript
Time-out voor batchbewerkingen schrijven De wachttijd voordat de batchinvoegbewerking is voltooid voordat er een time-out optreedt. De toegestane waarde is tijdspanne. De standaardwaarde is '00:30:00' (30 minuten). tijdsbestek Nee writeBatchTimeout
Grootte van schrijfbatch Het aantal rijen dat moet worden ingevoegd in de SQL-tabel per batch. Standaard bepaalt de service dynamisch de juiste batchgrootte op basis van de rijgrootte. <aantal rijen>
(geheel getal)
Nee writeBatchSize
Maximum aantal gelijktijdige verbindingen De bovengrens van gelijktijdige verbindingen die tijdens de uitvoering van de activiteit tot stand zijn gebracht met het gegevensarchief. Geef alleen een waarde op wanneer u gelijktijdige verbindingen wilt beperken. <bovengrens van gelijktijdige verbindingen>
(geheel getal)
Nee maxConcurrent Verbinding maken ions
Analyse van metrische prestatiegegevens uitschakelen Deze instelling wordt gebruikt voor het verzamelen van metrische gegevens, zoals DTU, DWU, RU, enzovoort, voor het optimaliseren van kopieerprestaties en aanbevelingen. Als u zich zorgen maakt over dit gedrag, schakelt u dit selectievakje in. selecteren of de selectie opheffen Nee disableMetricsCollection:
waar of onwaar