Konfigurer Azure SQL Database i en kopiaktivitet
Denne artikkelen beskriver hvordan du bruker kopieringsaktiviteten i datasamlebånd til å kopiere data fra og til Azure SQL Database.
Støttet konfigurasjon
Hvis du vil ha konfigurasjonen av hver fane under kopieringsaktivitet, kan du gå til følgende inndelinger.
Generelt
Se veiledningen for generelle innstillinger for å konfigurere fanen Generelle innstillinger.
Kilde
Følgende egenskaper støttes for Azure SQL Database under Kilde-fanen for en kopiaktivitet.
Følgende egenskaper er nødvendige:
- Datalagertype: Velg ekstern.
- Koble til ion: Velg en Azure SQL Database-tilkobling fra tilkoblingslisten. Hvis tilkoblingen ikke finnes, oppretter du en ny Azure SQL Database-tilkobling ved å velge Ny.
- Koble til iontype: Velg Azure SQL Database.
- Tabell: Velg tabellen i databasen fra rullegardinlisten. Eller merk av for Rediger for å angi tabellnavnet manuelt.
- Forhåndsvise data: Velg Forhåndsvis data for å forhåndsvise dataene i tabellen.
Under Avansert kan du angi følgende felt:
Bruk spørring: Du kan velge tabell, spørring eller lagret prosedyre. Listen nedenfor beskriver konfigurasjonen av hver innstilling:
Tabell: Les data fra tabellen du angav i Tabellen hvis du velger denne knappen.
Spørring: Angi den egendefinerte SQL-spørringen som skal leses data. Et eksempel er
select * from MyTable
. Eller velg blyantikonet du vil redigere i koderedigeringsprogrammet.Lagret prosedyre: Bruk den lagrede prosedyren som leser data fra kildetabellen. Den siste SQL-setningen må være en SELECT-setning i den lagrede prosedyren.
Navn på lagret prosedyre: Velg den lagrede prosedyren, eller angi navnet på den lagrede prosedyren manuelt når du merker av for Rediger for å lese data fra kildetabellen.
Lagrede prosedyreparametere: Angi verdier for lagrede prosedyreparametere. Tillatte verdier er navn eller verdipar. Navnene og foringsrøret til parameterne må samsvare med navnene og foringsrøret til de lagrede prosedyreparameterne.
Tidsavbrudd for spørring (minutter): Angi tidsavbrudd for kjøring av spørringskommando, standard er 120 minutter. Hvis en parameter er angitt for denne egenskapen, er tillatte verdier tidsrom, for eksempel 02:00:00( 120 minutter).
Isolasjonsnivå: Angir virkemåten for transaksjonslåsing for SQL-kilden. De tillatte verdiene er: Ingen, ReadCommitted, ReadUncommitted, RepeatableRead, Serializable eller Snapshot. Hvis ikke angitt, brukes ingen isoleringsnivå . Se IsolationLevel-opplisting for mer informasjon.
Partisjonsalternativ: Angi alternativene for datapartisjonering som brukes til å laste inn data fra Azure SQL Database. Tillatte verdier er: Ingen (standard), fysiske partisjoner i tabellen og dynamisk område. Når et partisjonsalternativ er aktivert (det vil se ut som ingen), styres graden av parallellitet for samtidig innlasting av data fra en Azure SQL-database av innstillingen for parallell kopiering på kopiaktiviteten.
Ingen: Velg denne innstillingen for ikke å bruke en partisjon.
Fysiske partisjoner av tabellen: Når du bruker en fysisk partisjon, bestemmes partisjonskolonnen og mekanismen automatisk basert på den fysiske tabelldefinisjonen.
Dynamisk område: Når du bruker en spørring med parallellaktivert, er parameteren for områdepartisjonen(
?DfDynamicRangePartitionCondition
) nødvendig. Eksempelspørring:SELECT * FROM <TableName> WHERE ?DfDynamicRangePartitionCondition
.- Partisjonskolonnenavn: Angi navnet på kildekolonnen i heltall eller dato/klokkesletttype (
int
, ,smallint
,bigint
,date
,smalldatetime
,datetime
,datetime2
ellerdatetimeoffset
) som brukes av områdepartisjonering for parallell kopi. Hvis det ikke er angitt, oppdages indeksen eller primærnøkkelen for tabellen automatisk og brukes som partisjonskolonne. - Partisjonsgrense: Angi maksimumsverdien for partisjonskolonnen for deling av partisjonsområde. Denne verdien brukes til å bestemme partisjonssteget, ikke for filtrering av radene i tabellen. Alle rader i tabellen eller spørringsresultatet partisjoneres og kopieres.
- Partisjonsgrense: Angi minimumsverdien for partisjonskolonnen for deling av partisjonsområde. Denne verdien brukes til å bestemme partisjonssteget, ikke for filtrering av radene i tabellen. Alle rader i tabellen eller spørringsresultatet partisjoneres og kopieres.
- Partisjonskolonnenavn: Angi navnet på kildekolonnen i heltall eller dato/klokkesletttype (
Flere kolonner: Legg til flere datakolonner for å lagre kildefilens relative bane eller statiske verdi. Uttrykket støttes for sistnevnte. Hvis du vil ha mer informasjon, kan du gå til Legg til flere kolonner under kopieringen.
Mål
Følgende egenskaper støttes for Azure SQL Database under Mål-fanen for en kopiaktivitet.
Følgende egenskaper er nødvendige:
- Datalagertype: Velg ekstern.
- Koble til ion: Velg en Azure SQL Database-tilkobling fra tilkoblingslisten. Hvis tilkoblingen ikke finnes, oppretter du en ny Azure SQL Database-tilkobling ved å velge Ny.
- Koble til iontype: Velg Azure SQL Database.
- Tabell: Velg tabellen i databasen fra rullegardinlisten. Eller merk av for Rediger for å angi tabellnavnet manuelt.
- Forhåndsvise data: Velg Forhåndsvis data for å forhåndsvise dataene i tabellen.
Under Avansert kan du angi følgende felt:
Skrivevirkemåte: Definerer skrivevirkemåten når kilden er filer fra et filbasert datalager. Du kan velge Sett inn, Oppsert eller Lagret prosedyre.
Sett inn: Velg dette alternativet hvis kildedataene er satt inn.
Upsert: Velg dette alternativet hvis kildedataene har både innsettinger og oppdateringer.
Bruk TempDB: Angi om du vil bruke en global midlertidig tabell eller fysisk tabell som midlertidig tabell for upsert. Som standard bruker tjenesten den globale midlertidige tabellen som midlertidig tabell, og denne avmerkingsboksen er valgt.
Velg DB-skjema for bruker: Når det ikke er merket av for Bruk TempDB , angir du det midlertidige skjemaet for å opprette en midlertidig tabell hvis en fysisk tabell brukes.
Merk
Du må ha tillatelse til å opprette og slette tabeller. Som standard vil en midlertidig tabell dele samme skjema som en måltabell.
Nøkkelkolonner: Angi kolonnenavnene for unik radidentifikasjon. Du kan enten bruke én enkelt tast eller en rekke taster. Hvis ikke angitt, brukes primærnøkkelen.
Lagret prosedyre: Bruk den lagrede prosedyren som definerer hvordan du bruker kildedata i en måltabell. Denne lagrede prosedyren aktiveres per gruppe.
Navn på lagret prosedyre: Velg den lagrede prosedyren, eller angi navnet på den lagrede prosedyren manuelt når du merker av for Rediger for å lese data fra kildetabellen.
Lagrede prosedyreparametere: Angi verdier for lagrede prosedyreparametere. Tillatte verdier er navn eller verdipar. Navnene og foringsrøret til parameterne må samsvare med navnene og foringsrøret til de lagrede prosedyreparameterne.
Lås for masseinnlasting av tabell: Velg Ja eller Nei. Bruk denne innstillingen til å forbedre kopieringsytelsen under en masseinnsettingsoperasjon i en tabell uten indeks fra flere klienter. Hvis du vil ha mer informasjon, kan du gå til BULK INSERT (Transact-SQL)
Tabellalternativ: Angir om måltabellen skal opprettes automatisk hvis tabellen ikke finnes basert på kildeskjemaet. Velg Ingen eller Opprett tabell automatisk. Oppretting av automatisk tabell støttes ikke når målet angir en lagret prosedyre.
Forhåndskopier skript: Angi et skript for kopieringsaktivitet som skal utføres før du skriver data til en måltabell i hver kjøring. Du kan bruke denne egenskapen til å rydde opp i de forhåndslastede dataene.
Skriv tidsavbrudd for satsvis tidsavbrudd: Angi ventetiden for at den satsvise innsettingsoperasjonen skal fullføres før den blir tidsavbrutt. Den tillatte verdien er timespan. Standardverdien er 00:30:00 (30 minutter).
Skrive bunkestørrelse: Angi antall rader som skal settes inn i SQL-tabellen per bunke. Den tillatte verdien er heltall (antall rader). Som standard bestemmer tjenesten dynamisk riktig satsvis størrelse basert på radstørrelsen.
Maksimalt antall samtidige tilkoblinger: Angi den øvre grensen for samtidige tilkoblinger som ble opprettet i datalageret under aktivitetskjøringen. Angi en verdi bare når du vil begrense samtidige tilkoblinger.
Deaktiver analyse av ytelsesmåledata: Denne innstillingen brukes til å samle inn måledata, for eksempel DTU, DWU, RU og så videre, for kopiering av ytelsesoptimalisering og anbefalinger. Hvis du er opptatt av denne virkemåten, merker du av for dette alternativet.
Tilordning
Hvis du ikke bruker Azure SQL Database med automatisk oppretting av tabell som mål, går du til Tilordning for fanen Tilordning.
Hvis du bruker Azure SQL Database med automatisk oppretting av tabell som mål, bortsett fra konfigurasjonen i Tilordning, kan du redigere typen for målkolonnene. Når du har valgt Importer skjemaer, kan du angi kolonnetypen i målet.
Typen for ID-kolonne i kilde er for eksempel heltall, og du kan endre den til flyttype når du tilordner til målkolonnen.
Innstillinger
Hvis du vil ha Innstillinger fanekonfigurasjon, kan du gå til Konfigurer de andre innstillingene under innstillinger-fanen.
Parallell kopi fra Azure SQL Database
Azure SQL Database-koblingen i kopieringsaktivitet gir innebygd datapartisjonering for å kopiere data parallelt. Du finner alternativer for datapartisjonering på Kilde-fanen for kopiaktiviteten.
Når du aktiverer partisjonert kopi, kjører kopieringsaktivitet parallelle spørringer mot Azure SQL Database-kilden for å laste inn data etter partisjoner. Den parallelle graden styres av graden av kopi-parallellisme i fanen innstillinger for kopieringsaktivitet. Hvis du for eksempel angir grad av kopi parallellisme til fire, genererer og kjører tjenesten samtidig fire spørringer basert på det angitte partisjonsalternativet og innstillingene, og hver spørring henter en del av dataene fra Azure SQL Database.
Du foreslås å aktivere parallell kopi med datapartisjonering, spesielt når du laster inn store mengder data fra Azure SQL Database. Følgende er foreslåtte konfigurasjoner for ulike scenarioer. Når du kopierer data til filbasert datalager, anbefales det å skrive til en mappe som flere filer (bare angi mappenavn), i så fall er ytelsen bedre enn å skrive til én enkelt fil.
Scenario | Foreslåtte innstillinger |
---|---|
Full belastning fra store tabeller, med fysiske partisjoner. | Partisjonsalternativ: Fysiske partisjoner av tabellen. Under kjøringen oppdager tjenesten automatisk de fysiske partisjonene, og kopierer data etter partisjoner. Hvis du vil kontrollere om tabellen har fysisk partisjon eller ikke, kan du referere til denne spørringen. |
Full belastning fra store tabeller, uten fysiske partisjoner, mens med et heltall eller datetime-kolonne for datapartisjonering. | Partisjonsalternativer: Dynamisk områdepartisjon. Partisjonskolonne (valgfritt): Angi kolonnen som brukes til å partisjonere data. Hvis ikke angitt, brukes indeksen eller primærnøkkelkolonnen. Partisjon øvre grense og partisjon nedre grense (valgfritt): Angi om du vil bestemme partisjonssteget. Dette er ikke for filtrering av radene i tabellen, alle radene i tabellen blir partisjonert og kopiert. Hvis det ikke er angitt, kan du kopiere aktiviteter automatisk oppdage verdiene. Hvis for eksempel partisjonskolonnen «ID» har verdier fra 1 til 100, og du angir den nedre grensen som 20 og øvre grense som 80, med parallell kopi som 4, henter tjenesten data etter 4 partisjoner – ID-er i området <=20, [21, 50], [51, 80] og >=81, henholdsvis. |
Last inn en stor mengde data ved hjelp av en egendefinert spørring, uten fysiske partisjoner, mens med et heltall eller en date/datetime-kolonne for datapartisjonering. | Partisjonsalternativer: Dynamisk områdepartisjon. Spørring: SELECT * FROM <TableName> WHERE ?DfDynamicRangePartitionCondition AND <your_additional_where_clause> .Partisjonskolonne: Angi kolonnen som brukes til å partisjonere data. Partisjon øvre grense og partisjon nedre grense (valgfritt): Angi om du vil bestemme partisjonssteget. Dette er ikke for filtrering av radene i tabellen, alle radene i spørringsresultatet blir partisjonert og kopiert. Hvis det ikke er angitt, oppdager kopieringsaktivitet automatisk verdien. Hvis for eksempel partisjonskolonnen «ID» har verdier fra 1 til 100, og du angir den nedre grensen som 20 og øvre grense som 80, med parallell kopi som 4, henter tjenesten data etter henholdsvis 4 partisjoner- ID-er i området <=20, [21, 50], [51, 80] og >=81. Her er flere eksempelspørringer for ulike scenarioer: • Spør hele tabellen: SELECT * FROM <TableName> WHERE ?DfDynamicRangePartitionCondition • Spørring fra en tabell med kolonnevalg og flere der-setningsfiltre: SELECT <column_list> FROM <TableName> WHERE ?DfDynamicRangePartitionCondition AND <your_additional_where_clause> • Spørring med delspørringer: SELECT <column_list> FROM (<your_sub_query>) AS T WHERE ?DfDynamicRangePartitionCondition AND <your_additional_where_clause> • Spørring med partisjon i delspørring: SELECT <column_list> FROM (SELECT <your_sub_query_column_list> FROM <TableName> WHERE ?DfDynamicRangePartitionCondition) AS T |
Anbefalte fremgangsmåter for innlasting av data med partisjonsalternativ:
- Velg distinkt kolonne som partisjonskolonne (for eksempel primærnøkkel eller unik nøkkel) for å unngå dataskyvhet.
- Hvis tabellen har innebygd partisjon, kan du bruke partisjonsalternativet Fysiske partisjoner i tabellen for å få bedre ytelse.
Eksempelspørring for å kontrollere fysisk partisjon
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]'
Hvis tabellen har fysisk partisjon, vil du se «HasPartition» som «ja» som følgende.
Tabellsammendrag
Tabellene nedenfor inneholder mer informasjon om kopieringsaktiviteten i Azure SQL Database.
Kilde
Name | Beskrivelse | Verdi | Kreves | JSON-skriptegenskap |
---|---|---|---|---|
Datalagertype | Datalagertypen. | Ekstern | Ja | / |
Koble til ion | Tilkoblingen til kildedatalageret. | <tilkoblingen> | Ja | Tilkobling |
Koble til iontype | Tilkoblingstypen. Velg Azure SQL Database. | Azure SQL Database | Ja | / |
Tabell | Kildedatatabellen. | <navnet på måltabellen> | Ja | Skjemaet tabellen |
Bruk spørring | Den egendefinerte SQL-spørringen som skal leses data. | •Ingen •Spørring • Lagret prosedyre |
No | • sqlReaderQuery • sqlReaderStoredProcedureName, storedProcedureParameters |
Tidsavbrudd for spørring | Tidsavbruddet for kjøring av spørringskommando, standard er 120 minutter. | Tidsrom | No | queryTimeout |
Isolasjonsnivå | Angir virkemåten for transaksjonslås for SQL-kilden. | •Ingen • ReadCommitted • ReadUncommitted • RepeatableRead •Serialiseres •Øyeblikksbilde |
No | isolationLevel |
Partisjonsalternativ | Alternativene for datapartisjonering som brukes til å laste inn data fra Azure SQL Database. | •Ingen • Fysiske partisjoner av tabellen • Dynamisk område |
No | partitionOption: • PhysicalPartitionsOfTable • DynamicRange |
Flere kolonner | Legg til flere datakolonner for å lagre kildefilens relative bane eller statiske verdi. Uttrykket støttes for sistnevnte. | • Navn •Verdi |
No | additionalColumns: •navn •Verdi |
Mål
Name | Beskrivelse | Verdi | Kreves | JSON-skriptegenskap |
---|---|---|---|---|
Datalagertype | Datalagertypen. | Ekstern | Ja | / |
Koble til ion | Tilkoblingen til måldatalageret. | <tilkoblingen > | Ja | Tilkobling |
Koble til iontype | Tilkoblingstypen. Velg Azure SQL Database. | Azure SQL Database | Ja | / |
Tabell | Måldatatabellen. | <navnet på måltabellen> | Ja | Skjemaet tabellen |
Skrivevirkemåte | Definerer skrivevirkemåten når kilden er filer fra et filbasert datalager. | •Sette inn • Oppsett • Lagret prosedyre |
No | writeBehavior: •Sette inn • oppset • sqlWriterStoredProcedureName, sqlWriterTableType, storedProcedureParameters |
Lås for masseinnset tabell | Bruk denne innstillingen til å forbedre kopieringsytelsen under en masseinnsettingsoperasjon i en tabell uten indeks fra flere klienter. | Ja eller Nei | No | sqlWriterUseTableLock: sann eller usann |
Tabellalternativ | Angir om måltabellen skal opprettes automatisk hvis den ikke finnes basert på kildeskjemaet. | •Ingen • Opprett tabell automatisk |
No | tableOption: • autooppretting |
Forhåndskopier skript | Et skript for kopier aktivitet som skal utføres før du skriver data til en måltabell i hver kjøring. Du kan bruke denne egenskapen til å rydde opp i de forhåndslastede dataene. | <forhåndskopieringsskript> (streng) |
No | preCopyScript |
Tidsavbrudd for skrivegruppe | Ventetiden for at den satsvise innsettingsoperasjonen skal fullføres før den blir tidsavbrutt. Den tillatte verdien er timespan. Standardverdien er 00:30:00 (30 minutter). | Tidsrom | No | writeBatchTimeout |
Skrive bunkestørrelse | Antall rader som skal settes inn i SQL-tabellen per bunke. Som standard bestemmer tjenesten dynamisk riktig satsvis størrelse basert på radstørrelsen. | <antall rader> (heltall) |
No | writeBatchSize |
Maksimalt antall samtidige tilkoblinger | Den øvre grensen for samtidige tilkoblinger som ble opprettet i datalageret under aktivitetskjøringen. Angi en verdi bare når du vil begrense samtidige tilkoblinger. | <øvre grense for samtidige tilkoblinger> (heltall) |
No | maxConcurrent Koble til ions |
Deaktiver analyse av ytelsesmåledata | Denne innstillingen brukes til å samle inn måledata, for eksempel DTU, DWU, RU og så videre, for kopiering av ytelsesoptimalisering og anbefalinger. Hvis du er opptatt av denne virkemåten, merker du av for dette alternativet. | merke eller fjerne merkingen | No | disableMetricsCollection: sann eller usann |