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 Algemene-instellingen richtlijnen voor het configureren van het tabblad Algemeen instellingen.
Bron
De volgende eigenschappen worden ondersteund voor Azure SQL Database op het tabblad Bron van een kopieeractiviteit.
De volgende eigenschappen zijn vereist:
- gegevensopslagtype: selecteer Extern.
- Connection: 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 Nieuwete selecteren.
- verbindingstype: selecteer Azure SQL Database-.
- Tabel: selecteer de tabel in de database in de vervolgkeuzelijst. Of controleer Bewerken om de tabelnaam handmatig in te voeren.
- Voorbeeld van gegevens: selecteer Voorbeeld van gegevens om een voorbeeld van de gegevens in de tabel te bekijken.
Onder Geavanceerdekunt u de volgende velden opgeven:
Querygebruiken: u kunt Tabel, Queryof Opgeslagen procedurekiezen. 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.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 het selectievakje Bewerken incheckt om gegevens uit de brontabel te lezen.
Opgeslagen procedureparameters: Specificeer waarden voor parameters van opgeslagen procedures. Toegestane waarden zijn naam- of waardeparen. De namen en hoofdletters van parameters moeten overeenkomen met de namen en hoofdletters van de opgeslagen procedureparameters.
time-out voor query's (minuten): geef de time-out op voor het uitvoeren van de queryopdracht. 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: None, ReadCommitted, ReadUncommitted, RepeatableRead, Serializableof Snapshot. Als dit niet is opgegeven, wordt het None isolatieniveau gebruikt. Raadpleeg IsolationLevel Enum voor meer informatie.
partitieoptie: geef de opties voor gegevenspartitionering op die worden gebruikt voor het laden van gegevens uit Azure SQL Database. 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 Azure SQL Database gelijktijdig te laden, beheerd door de parallelle kopie instelling voor de 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
.-
Partitionkolomnaam: Geef de naam op van de bronkolom in integertype of datum/datum-tijdtype (
int
,smallint
,bigint
,date
,smalldatetime
,datetime
,datetime2
ofdatetimeoffset
) dat wordt gebruikt voor bereikpartitionering bij parallelle kopieën. Als dit niet is opgegeven, wordt de index of de primaire sleutel van de tabel automatisch gedetecteerd en gebruikt als de partitiekolom. - 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 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 stapgrootte te bepalen, niet voor het filteren van de rijen in de tabel. Alle rijen in de tabel of het queryresultaat worden gepartitioneerd en gekopieerd.
-
Partitionkolomnaam: Geef de naam op van de bronkolom in integertype of datum/datum-tijdtype (
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 Azure SQL Database op het tabblad Bestemming van een kopieeractiviteit.
De volgende eigenschappen zijn vereist:
- gegevensarchieftype: selecteer Externe.
- Connection: 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 Nieuwete selecteren.
- verbindingstype: selecteer Azure SQL Database-.
- Tabel: selecteer de tabel in de database in de vervolgkeuzelijst. Of controleer Bewerken om de tabelnaam handmatig in te voeren.
- Voorbeeld van gegevens: selecteer Voorbeeld van gegevens om een voorbeeld van de gegevens in de tabel te bekijken.
Onder Geavanceerdekunt u de volgende velden opgeven:
schrijfgedrag: definieert het schrijfgedrag wanneer de bron bestanden uit een bestandsgebaseerde gegevensopslag is. U kunt kiezen voor Invoegen-, Upsert- of Opgeslagen-procedure-.
Invoegen: kies deze optie als uw brongegevens invoegingen bevatten.
Upsert-: kies deze optie als de 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.
Db-schema van gebruiker selecteren: 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.
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 die beschrijft hoe brongegevens in een doeltabel moeten worden toegepast. Deze opgeslagen procedure wordt aangeroepen per batch.
naam van opgeslagen procedure: selecteer de opgeslagen procedure of geef de naam van de opgeslagen procedure handmatig op wanneer u het selectievakje Bewerken incheckt om gegevens uit de brontabel te lezen.
Opgeslagen procedureparameters: 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.
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 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 schrijfbatch: Geef de wachttijd op voor de batchinvoegbewerking voordat er een time-out optreedt. De toegestane waarde is een tijdsspanne. 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 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.
Kartering
Als u voor de configuratie van het tabblad Mapping de Azure SQL Database niet toepast met automatisch creëren van tabellen als bestemming, gaat u naar Mapping.
Als u Azure SQL Database met automatisch tabel aanmaken als uw bestemming toepast, met uitzondering van de configuratie in Mapping, kunt u het type voor uw doelkolommen bewerken. Nadat u Schema's importerenhebt geselecteerd, kunt u het kolomtype opgeven in uw bestemming.
Het type voor ID kolom in de bronkolom is bijvoorbeeld int en u kunt dit wijzigen in float-type bij het toewijzen aan de doelkolom.
Instellingen
Ga voor instellingen tabbladconfiguratie naar 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 parallelle kopieerbewerking 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 lading 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 al dan niet een fysieke partitie heeft, kunt u gebruik maken van deze query. |
Volledige belasting van een grote tabel, zonder fysieke partities, maar met een geheel getal- of datum/tijd-kolom voor gegevenspartitionering. |
Partitieopties: Dynamische bereikspartitie. 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, 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 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> .Partition-kolom: Geef de kolom op die wordt gebruikt om gegevens te partitioneren. Partitie bovengrens en partitie ondergrens (optioneel): Geef op of u de partitiestride 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 • Query uitvoeren vanuit een tabel met kolomselectie en aanvullende where-filters: SELECT <column_list> FROM <TableName> WHERE ?DfDynamicRangePartitionCondition AND <your_additional_where_clause> • Queries met behulp van 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 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.
Tabelsamenvatting
De volgende tabellen bevatten meer informatie over de kopieeractiviteit in Azure SQL Database.
Bron
Naam | Beschrijving | Waarde | Vereist | JSON-scripteigenschap |
---|---|---|---|---|
gegevensopslagtype | Het gegevensarchieftype. | Externe | Ja | / |
verbinding | Uw verbinding met het brongegevensarchief. | <jouw verbinding> | Ja | verbinding |
verbindingstype | Uw verbindingstype. Selecteer Azure SQL Database-. | Azure SQL Database- | Ja | / |
Tabel | De brongegevenstabel. | <naam van je doeltabel> | Ja | schema tafel |
Query gebruiken | De aangepaste SQL-query voor het lezen van gegevens. | •Geen •Vraag • Opgeslagen procedure |
Nee | • sqlReaderQuery • sqlReaderStoredProcedureName, storedProcedureParameters |
query-time-out | De time-out voor het uitvoeren van queryopdrachten is standaard 120 minuten. | tijdspanne | Nee | queryTimeout |
isolatieniveau | Hiermee geeft u het gedrag voor transactievergrendeling voor de SQL-bron op. | •Geen • ReadCommitted • ReadUncommitted (Niet-gecommitteerd lezen) • Herhaalbaar gelezen •Serializable •Momentopname |
Nee | isolatieniveau |
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: • FysiekePartitiesVanTabel • 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 | extraKolommen •naam • waarde |
Bestemming
Naam | Beschrijving | Waarde | Vereist | JSON-scripteigenschap |
---|---|---|---|---|
gegevensopslagtype | Het gegevensarchieftype. | Externe | Ja | / |
verbinding | Uw verbinding met de doeldatastore. | <uw verbinding > | Ja | verbinding |
verbindingstype | Uw verbindingstype. Selecteer Azure SQL Database-. | Azure SQL Database | Ja | / |
Tabel | Uw bestemmingsgegevens tabel. | <naam van uw doeltabel> | Ja | schema tafel |
schrijfgedrag | Definieert het schrijfgedrag wanneer de bron bestanden is uit een bestandsgegevensarchief. | •Invoegen • Upsert (toevoegen of bijwerken) • Opgeslagen procedure |
Nee | schrijfGedrag: •invoegen • bijwerken/invoegen • 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 | tabelOptie: • autoCreate |
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 voor de batchinvoegbewerking totdat deze voltooid is voordat er een time-out optreedt. De toegestane waarde is tijdspanne. De standaardwaarde is '00:30:00' (30 minuten). | tijdspanne | Nee | writeBatchTimeout |
batchgrootte schrijven | 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 | maximale gelijktijdige verbindingen |
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 | metingenVerzamelingUitschakelen waar of onwaar |