Delen via


SQL-database configureren in een kopieeractiviteit (preview)

In dit artikel wordt beschreven hoe u de kopieeractiviteit in de gegevenspijplijn gebruikt om gegevens van en naar 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 Algemene-instellingen richtlijnen voor het configureren van het tabblad Algemeen instellingen.

Bron

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

Schermopname met het brontabblad en de lijst met eigenschappen.

De volgende eigenschappen zijn vereist:

  • Connection: Selecteer een bestaande SQL-database die verwijst naar de stap in dit artikel.

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

    • Tabel: geef de naam op van de SQL-database om gegevens te lezen. Kies een bestaande tabel in de vervolgkeuzelijst of selecteer Handmatig invoeren om de schema- en tabelnaam 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 waarin de query wordt gekozen.

    • opgeslagen procedure: selecteer de opgeslagen procedure in de vervolgkeuzelijst.

Onder Geavanceerdekunt u de volgende velden opgeven:

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

    schermopname met time-outinstellingen voor query's.

  • isolatieniveau: hiermee geeft u het gedrag voor transactievergrendeling voor de SQL-bron op. De toegestane waarden zijn: Gelezen vastgelegd, Gelezen niet-doorgevoerd, Herhaalbaar lezen, Serieus leesbaarof Momentopname. Raadpleeg IsolationLevel Enum voor meer informatie.

    schermopname met instellingen voor isolatieniveau.

  • Partitieoptie: geef de opties voor gegevenspartitionering op die worden gebruikt om gegevens uit sql-database te laden. Toegestane waarden zijn: Geen (standaard), Fysieke partities van tabelen dynamisch bereik. Wanneer een partitieoptie is ingeschakeld (dus niet Geen), wordt de mate van parallelle uitvoering om gegevens uit een SQL-database 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 de definitie van uw fysieke tabel.

    • dynamisch bereik: wanneer u een query gebruikt waarvoor parallel is ingeschakeld, is de parameter voor bereikpartitie(?DfDynamicRangePartitionCondition) nodig. Voorbeeldquery: SELECT * FROM <TableName> WHERE ?DfDynamicRangePartitionCondition.

      • partitiekolomnaam: geef de naam op van de bronkolom in integer of datum/datum-tijd type (int, smallint, bigint, date, smalldatetime, datetime, datetime2of datetimeoffset) dat wordt gebruikt door bereikpartitionering bij parallel kopiëren. 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 ?DfDynamicRangePartitionCondition in de WHERE-component. Zie de sectie Parallel kopiëren uit sql-database voor een voorbeeld.

      • Partitie bovengrens: Geef de maximumwaarde van de partitiekolom op voor het splitsen van partitiebereiken. Deze waarde wordt gebruikt om de partitie-stride te bepalen, niet om de rijen in de tabel te filteren. 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 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 partitiesprong 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 sql-database voor een voorbeeld.

  • 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ërenvoor meer informatie.

Bestemming

De volgende eigenschappen worden ondersteund voor SQL-database op het tabblad Bestemming van een kopieeractiviteit.

Schermopname van het tabblad Bestemming.

De volgende eigenschappen zijn vereist:

  • Connection: Selecteer een bestaande SQL-database die verwijst naar de stap in dit artikel.

  • Tabeloptie: Selecteer uit Bestaande gebruiken of Automatisch tabel maken.

    • Als u bestaandeselecteert gebruiken:

      • Tabel: geef de naam op van de SQL-database om gegevens te schrijven. Kies een bestaande tabel in de vervolgkeuzelijst of selecteer Handmatig invoeren om de schema- en tabelnaam in te voeren.
    • Als u automatisch tabel maken selecteert:

      • Tabel: de tabel wordt automatisch gemaakt (indien niet-bestaand) in het bronschema. Dit wordt niet ondersteund wanneer de opgeslagen procedure wordt gebruikt als schrijfgedrag.

Onder Geavanceerdekunt u de volgende velden opgeven:

  • schrijfgedrag: definieert het schrijfgedrag wanneer de bron bestanden uit een bestandgebaseerde gegevensopslag is. U kunt kiezen voor Invoegen, Upsert of Stored Procedure.

    Schermafbeelding van het tabblad Schrijfgedrag.

    • Invoegen: Kies deze optie als uw brongegevens invoegingen bevatten.

    • Upsert: Kies deze optie als uw brongegevens zowel invoegen als bijwerken 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.
        Als u een grote hoeveelheid gegevens naar een SQL-database schrijft, schakelt u dit uit en geeft u een schemanaam op waaronder Data Factory een faseringstabel maakt om upstreamgegevens te laden en automatisch op te schonen na voltooiing. Zorg ervoor dat de gebruiker een tabelmachtiging heeft gemaakt in de database en de machtiging voor het schema wijzigt. Als dit niet is opgegeven, wordt een globale tijdelijke tabel gebruikt als fasering.

        Schermopname waarin 'Selecteer TempDB gebruiken' wordt weergegeven.

      • Gebruikersdatabaseschema selecteren: Wanneer het TempDB- gebruiken niet is geselecteerd, geeft u een schemanaam op waaronder Data Factory een faseringstabel maakt om upstreamgegevens te laden en deze automatisch op te schonen na voltooiing. Zorg ervoor dat u een tabelmachtiging hebt gemaakt in de database en dat u de machtiging voor het schema wijzigt.

        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 waarin TempDB niet wordt geselecteerd.

      • sleutelkolommen: kies welke kolom wordt gebruikt om te bepalen of een rij uit de bron overeenkomt met een rij van het doel.

    • opgeslagen procedurenaam: selecteer de opgeslagen procedure in de vervolgkeuzelijst.

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

  • script vooraf kopiëren: geef een script op voor de kopieeractiviteit die moet worden uitgevoerd 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 schrijfbatch: Geef de wachttijd op voor de batchinvoegbewerking om te voltooien voordat er een time-out optreedt. De toegestane waarde is tijdsverloop. 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.

Kartering

Als u voor de configuratie van het tabblad Toewijzing geen SQL-database met automatisch tabel aanmaken als bestemming toepast, gaat u naar Toewijzing.

Als u een SQL-database gebruikt met de functie 'automatisch tabel maken' als bestemming, kunt u, met uitzondering van de configuratie in Toewijzing, het type voor de doelkolommen bewerken. Nadat u Schema's importerenhebt geselecteerd, kunt u het kolomtype opgeven in uw bestemming.

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

screenshot van doelkolomtype.

Instellingen

Ga voor instellingen tabbladconfiguratie naar Andere instellingen configureren op het tabblad Instellingen.

Parallel kopiëren uit SQL-database

De SQL Database-connector in de kopieeractiviteit biedt ingebouwde gegevenspartitionering om parallel gegevens 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 SQL-databasebron 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 parallelle kopieerbewerking instelt op vier, genereert de service gelijktijdig vier query's op basis van de opgegeven partitieoptie en -instellingen en haalt elke query een deel van de gegevens op uit uw SQL-database.

U wordt aangeraden om parallel kopiëren met gegevenspartitionering in te schakelen, met name wanneer u grote hoeveelheden gegevens uit uw 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 laad van grote tabel, 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 gebruik maken van deze query.
Volledige belasting van een grote tabel zonder fysieke partities, maar wel met een geheel getal- of datum/tijd-kolom voor gegevenspartitionering. Partitieopties: Dynamisch bereik partitie.
Kolom partitioneren (optioneel): Geef de kolom op die wordt gebruikt om gegevens te partitioneren. Als deze niet is opgegeven, wordt de index of primaire sleutelkolom gebruikt.
Partitie bovengrens en partitie ondergrens (optioneel): Geef op of u de partitie stride 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 het 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: dynamisch bereik partitie.
Query: SELECT * FROM <TableName> WHERE ?DfDynamicRangePartitionCondition AND <your_additional_where_clause>.
partitiekolom: Geef de kolom op die wordt gebruikt om gegevens te partitioneren.
Bovengrens voor partitie en ondergrens voor partitie (optioneel): Geef op of u de partitie stride 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, met parallelle kopie als 4, 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
• Queries uitvoeren op een tabel met kolomselectie en aanvullende where-clause filters:
SELECT <column_list> FROM <TableName> WHERE ?DfDynamicRangePartitionCondition AND <your_additional_where_clause>
• Queries uitvoeren met subqueries:
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 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.

schermopname van een SQL-queryresultaat.

Tabelsamenvatting

De volgende tabellen bevatten meer informatie over de kopieeractiviteit in sql-database.

Bron

Naam Beschrijving Waarde Vereist JSON-scripteigenschap
verbinding Uw verbinding met het brongegevensarchief. <jouw verbinding> Ja verbinding
Query gebruiken De manier om gegevens te lezen. Pas tabel toe om gegevens uit de opgegeven tabel te lezen of pas query- toe om gegevens te lezen met behulp van SQL-query's. tabel
Query
opgeslagen procedure
Ja /
Voor Tabel
schemanaam Naam van het schema. < de schemanaam > Nee schema
tabelnaam Naam van de tabel. < jouw tabelnaam > Nee tafel
Voor Query
Query Geef de aangepaste SQL-query op om gegevens te lezen. Bijvoorbeeld: SELECT * FROM MyTable. < SQL-queries > Nee sqlReaderQuery
Voor opgeslagen procedure
naam van opgeslagen procedure Naam van de opgeslagen procedure. < de naam van de opgeslagen procedure > Nee sqlReaderStoredProcedureName
time-out voor query (minuten) De time-out voor het uitvoeren van queryopdrachten is standaard 120 minuten. Als de parameter voor deze eigenschap is ingesteld, zijn toegestane waarden tijdspanne, zoals '02:00:00' (120 minuten). tijdspanne Nee queryTimeout
isolatieniveau Hiermee geeft u het gedrag voor transactievergrendeling voor de SQL-bron op. • Lees vastgelegd
Ongecommitteerd lezen
• Herhaalbare leesbewerking
• Serialiseerbaar
Momentopname
Nee isolatieniveau
• ReadCommitted
• ReadUncommitted
• Herhaalbaar gelezen
• Serializeerbaar
•Momentopname
partitieoptie De opties voor gegevenspartitionering die worden gebruikt voor het laden van gegevens uit sql-database. •Geen
• Fysieke partities van tabel
• Dynamisch bereik
Nee partitieOptie
• FysiekePartitiesVanTabel
• DynamicRange
Voor dynamisch bereik
partitie kolomnaam De naam van de bronkolom in geheel getal of datum/datum/tijd type (int, smallint, bigint, date, smalldatetime, datetime, datetime2of datetimeoffset) 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 ?DfDynamicRangePartitionCondition in de WHERE-component. < de namen van de partitiekolommen > Nee partitiekolomnaam
Bovengrens van partitie De maximumwaarde van de partitiekolom voor het splitsen van partitiebereiken. Deze waarde wordt gebruikt om de partitie-stride te bepalen, niet om de rijen van de tabel te filteren. Alle rijen in de tabel of het queryresultaat worden gepartitioneerd en gekopieerd. Als dit niet is opgegeven, detecteert kopieeractiviteit automatisch de waarde. < de bovengrens van de partitie > Nee partitionUpperBound
Partitie ondergrens De minimale waarde van de partitiekolom voor het splitsen van partitiebereiken. Deze waarde wordt gebruikt om de partitie-cyclus te bepalen, niet om de rijen in de tabel te filteren. Alle rijen in de tabel of het queryresultaat worden gepartitioneerd en gekopieerd. Als dit niet is opgegeven, detecteert kopieeractiviteit automatisch de waarde. < ondergrens van je partitie > Nee partitieondergrens
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 aanvullendeKolommen
•naam
• waarde

Bestemming

Naam Beschrijving Waarde Vereist JSON-scripteigenschap
verbinding Uw verbinding met de bestemmingsgegevensopslag. <uw verbinding > Ja verbinding
tabeloptie Uw bestemmingsgegevenstabel. Selecteer uit Gebruik bestaande of Automatisch tabel maken. • Bestaande gebruiken
• Tabel automatisch maken
Ja schema
tafel
Schrijfgedrag configureren Definieert het schrijfgedrag wanneer de bron bestanden is uit een bestandsgegevensarchief. •Invoegen
• Invoegen of bijwerken
• Opgeslagen procedure
Nee schrijfgedrag
•invoegen
• upsert (toevoegen of bijwerken)
• sqlWriterStoredProcedureName
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 (standaard) Nee sqlWriterUseTableLock: gebruik van tabelvergrendeling
waar of onwaar (standaard)
Voor Upsert-
TempDB- gebruiken Of u een globale tijdelijke tabel of fysieke tabel wilt gebruiken als de tussentijdse tabel voor upsert. geselecteerd (standaard) of niet geselecteerd Nee useTempDB:
waar (standaard) of onwaar
sleutelkolommen Kies welke kolom wordt gebruikt om te bepalen of een rij uit de bron overeenkomt met een rij van het doel. < jouw sleutelkolom> Nee Sleutels
Voor opgeslagen procedure
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. < opgeslagen procedurenaam > Nee sqlWriterStoredProcedureName
script vooraf kopiëren Een script voor de kopieeractiviteit dat moet worden uitgevoerd voordat gegevens bij elke uitvoering in een doeltabel 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 schrijfbatch 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). tijdspanne Nee writeBatchTimeout
Schrijf batchgrootte 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 maximaalGelijktijdigeVerbindingen