Konfigurer Azure SQL Database i en kopiaktivitet

I denne artikel beskrives det, hvordan du bruger kopiaktiviteten i datapipeline til at kopiere data fra og til Azure SQL Database.

Understøttet konfiguration

Hvis du vil konfigurere hver fane under kopiaktivitet, skal du gå til henholdsvis følgende afsnit.

Generelt

Se vejledningen til generelle indstillinger for at konfigurere fanen Generelle indstillinger.

Kilde

Følgende egenskaber understøttes for Azure SQL Database under fanen Kilde for en kopiaktivitet.

Skærmbillede, der viser kildefanen og listen over egenskaber.

Følgende egenskaber er påkrævet:

  • Datalagertype: Vælg ekstern.
  • Forbind ion: Vælg en Azure SQL Database-forbindelse på forbindelseslisten. Hvis forbindelsen ikke findes, skal du oprette en ny Azure SQL Database-forbindelse ved at vælge Ny.
  • Forbind ionstype: Vælg Azure SQL Database.
  • Tabel: Vælg tabellen i databasen på rullelisten. Eller markér Rediger for at angive tabelnavnet manuelt.
  • Eksempeldata: Vælg Eksempeldata for at få vist dataene i tabellen.

Under Avanceret kan du angive følgende felter:

  • Brug forespørgsel: Du kan vælge Tabel, Forespørgsel eller Lagret procedure. På følgende liste beskrives konfigurationen af hver indstilling:

    • Tabel: Læs data fra den tabel, du har angivet i Tabel , hvis du vælger denne knap.

    • Forespørgsel: Angiv den brugerdefinerede SQL-forespørgsel for at læse data. Et eksempel er select * from MyTable. Eller vælg blyantsikonet for at redigere i kodeeditoren.

      Skærmbillede, der viser valg af forespørgsel.

    • Lagret procedure: Brug den lagrede procedure, der læser data fra kildetabellen. Den sidste SQL-sætning skal være en SELECT-sætning i den lagrede procedure.

      • Navn på lagret procedure: Vælg den lagrede procedure, eller angiv navnet på den lagrede procedure manuelt, når du markerer afkrydsningsfeltet Rediger for at læse data fra kildetabellen.

      • Lagrede procedureparametre: Angiv værdier for lagrede procedureparametre. Tilladte værdier er navne- eller værdipar. Navnene på og kabinettet for parametre skal stemme overens med navnene og kabinettet for parametrene for den lagrede procedure.

        Skærmbillede, der viser indstillinger for lagrede procedurer.

  • Timeout for forespørgsel (minutter): Angiv timeout for udførelse af forespørgselskommando. Standarden er 120 minutter. Hvis der er angivet en parameter for denne egenskab, er de tilladte værdier et tidsrum, f.eks. "02:00:00" (120 minutter).

    Skærmbillede, der viser indstillinger for timeout for forespørgsel.

  • Isolationsniveau: Angiver funktionsmåden for transaktionslåsning for SQL-kilden. De tilladte værdier er: None, ReadCommitted, ReadUncommitted, RepeatableRead, Serializable eller Snapshot. Hvis den ikke er angivet, bruges ingen isolationsniveau. Se IsolationLevel Enum for at få flere oplysninger.

    Skærmbillede, der viser indstillinger for isolationsniveau.

  • Partitionsindstilling: Angiv de indstillinger for datapartitionering, der bruges til at indlæse data fra Azure SQL Database. Tilladte værdier er: Ingen (standard), Fysiske partitioner i tabellen og Dynamisk område. Når en partitionsindstilling er aktiveret (dvs. ikke Ingen), styres graden af parallelitet med samtidig indlæsning af data fra en Azure SQL Database af indstillingen for parallel kopiering i kopiaktiviteten.

    Skærmbillede, der viser indstillinger for partitionsindstillinger.

    • Ingen: Vælg denne indstilling for ikke at bruge en partition.

    • Fysiske partitioner i tabellen: Når du bruger en fysisk partition, bestemmes partitionskolonnen og -mekanismen automatisk på baggrund af definitionen af den fysiske tabel.

    • Dynamisk område: Når du bruger en forespørgsel med parallel aktiveret, er områdepartitionsparameteren(?DfDynamicRangePartitionCondition) nødvendig. Eksempelforespørgsel: SELECT * FROM <TableName> WHERE ?DfDynamicRangePartitionCondition.

      • Navn på partitionskolonne: Angiv navnet på kildekolonnen i heltals- eller dato-/datetime-typen (int, smallint, bigint, datesmalldatetime, datetime, datetime2eller datetimeoffset), der bruges til områdepartitionering til parallel kopiering. Hvis den ikke er angivet, registreres indekset eller tabellens primære nøgle automatisk, og den bruges som partitionskolonne.
      • Øvre partitionsgrænse: Angiv den maksimale værdi for partitionskolonnen for opdeling af partitionsområdet. Denne værdi bruges til at bestemme partitionsskridtet, ikke til filtrering af rækkerne i tabellen. Alle rækker i tabellen eller forespørgselsresultatet partitioneres og kopieres.
      • Nedre grænse for partition: Angiv minimumværdien af partitionskolonnen for opdeling af partitionsområdet. Denne værdi bruges til at bestemme partitionsskridtet, ikke til filtrering af rækkerne i tabellen. Alle rækker i tabellen eller forespørgselsresultatet partitioneres og kopieres.
  • Flere kolonner: Tilføj flere datakolonner for at gemme kildefilernes relative sti eller statiske værdi. Udtrykket understøttes for sidstnævnte. Du kan finde flere oplysninger ved at gå til Tilføj flere kolonner under kopiering.

Destination

Følgende egenskaber understøttes for Azure SQL Database under fanen Destination for en kopiaktivitet.

Skærmbillede, der viser fanen Destination.

Følgende egenskaber er påkrævet:

  • Datalagertype: Vælg ekstern.
  • Forbind ion: Vælg en Azure SQL Database-forbindelse på forbindelseslisten. Hvis forbindelsen ikke findes, skal du oprette en ny Azure SQL Database-forbindelse ved at vælge Ny.
  • Forbind ionstype: Vælg Azure SQL Database.
  • Tabel: Vælg tabellen i databasen på rullelisten. Eller markér Rediger for at angive tabelnavnet manuelt.
  • Eksempeldata: Vælg Eksempeldata for at få vist dataene i tabellen.

Under Avanceret kan du angive følgende felter:

  • Skrivefunktion: Definerer skrivefunktionsmåden, når kilden er filer fra et filbaseret datalager. Du kan vælge Indsæt, Upsert eller Lagret procedure.

    Skærmbillede af fanen skrivefunktionsmåde.

    • Indsæt: Vælg denne indstilling, hvis kildedataene indeholder indsættelser.

    • Upsert: Vælg denne indstilling, hvis kildedataene indeholder både indsættelser og opdateringer.

      • Brug TempDB: Angiv, om du vil bruge en global midlertidig tabel eller en fysisk tabel som midlertidig tabel til upsert. Tjenesten bruger som standard global midlertidig tabel som midlertidig tabel, og dette afkrydsningsfelt er markeret.

        Skærmbillede, der viser vælg Brug TempDB.

      • Vælg bruger-DB-skema: Når afkrydsningsfeltet Brug TempDB ikke er markeret, skal du angive det midlertidige skema til oprettelse af en midlertidig tabel, hvis der bruges en fysisk tabel.

        Bemærk

        Du skal have tilladelse til at oprette og slette tabeller. En midlertidig tabel deler som standard det samme skema som en destinationstabel.

        Skærmbillede, der viser, at du ikke vælger Brug TempDB.

      • Nøglekolonner: Angiv kolonnenavnene for entydig rækkeidentifikation. Du kan enten bruge en enkelt nøgle eller en række taster. Hvis den ikke er angivet, bruges den primære nøgle.

    • Lagret procedure: Brug den lagrede procedure, der definerer, hvordan kildedata skal anvendes i en destinationstabel. Denne lagrede procedure aktiveres pr. batch.

      • Navn på lagret procedure: Vælg den lagrede procedure, eller angiv navnet på den lagrede procedure manuelt, når du markerer afkrydsningsfeltet Rediger for at læse data fra kildetabellen.

      • Lagrede procedureparametre: Angiv værdier for lagrede procedureparametre. Tilladte værdier er navne- eller værdipar. Navnene på og kabinettet for parametre skal stemme overens med navnene og kabinettet for parametrene for den lagrede procedure.

        Skærmbillede, der viser indstillinger for lagrede procedurer.

  • Lås til masseindsætning af tabel: Vælg Ja eller Nej. Brug denne indstilling til at forbedre kopiens ydeevne under en masseindsætningshandling i en tabel uden indeks fra flere klienter. Du kan få flere oplysninger ved at gå til BULK INSERT (Transact-SQL)

  • Tabelindstilling: Angiver, om destinationstabellen automatisk skal oprettes, hvis tabellen ikke findes baseret på kildeskemaet. Vælg Ingen eller Opret automatisk tabel. Oprettelse af automatisk tabel understøttes ikke, når destinationen angiver en lagret procedure.

  • Forudkopieringsscript: Angiv et script for Kopiér aktivitet, der skal udføres, før du skriver data til en destinationstabel i hver kørsel. Du kan bruge denne egenskab til at rydde op i forudindlæste data.

  • Timeout for skrivning af batch: Angiv ventetiden for batchindsætningshandlingen, før der opstår timeout. Den tilladte værdi er et tidsrum. Standardværdien er "00:30:00" (30 minutter).

  • Skriv batchstørrelse: Angiv det antal rækker, der skal indsættes i SQL-tabellen pr. batch. Den tilladte værdi er heltal (antal rækker). Tjenesten bestemmer som standard dynamisk den relevante batchstørrelse baseret på rækkestørrelsen.

  • Maksimalt antal samtidige forbindelser: Angiv den øvre grænse for samtidige forbindelser, der er oprettet til datalageret under aktivitetskørslen. Angiv kun en værdi, når du vil begrænse samtidige forbindelser.

  • Deaktiver analyse af målepunkter for ydeevne: Denne indstilling bruges til at indsamle målepunkter, f.eks. DTU, DWU, RU osv. til optimering af kopiydeevne og anbefalinger. Hvis du er bekymret for denne funktionsmåde, skal du markere dette afkrydsningsfelt.

Tilknytning

Hvis du ikke anvender Azure SQL Database med automatisk oprettelse af tabel som destination under fanen Tilknytning, skal du gå til Tilknytning.

Hvis du anvender Azure SQL Database med automatisk oprettelse af tabel som destination, bortset fra konfigurationen i Tilknytning, kan du redigere typen for dine destinationskolonner. Når du har valgt Importér skemaer, kan du angive kolonnetypen i destinationen.

Typen af id-kolonne i kilden er f.eks. int, og du kan ændre den til flydende type, når du tilknytter destinationskolonnen.

Skærmbillede af tilknytning af destinationskolonnetype.

Indstillinger

Hvis du vil have Indstillinger fanekonfiguration, skal du gå til Konfigurer dine andre indstillinger under fanen Indstillinger.

Parallel kopi fra Azure SQL Database

Azure SQL Database-connectoren i kopiaktivitet giver indbygget datapartitionering for at kopiere data parallelt. Du kan finde indstillinger for datapartitionering under fanen Kilde i kopiaktiviteten.

Når du aktiverer partitioneret kopiering, kører kopieringsaktivitet parallelle forespørgsler mod din Azure SQL Database-kilde for at indlæse data efter partitioner. Den parallelle grad styres af graden af kopi parallelitet under fanen indstillinger for kopiaktivitet. Hvis du f.eks. angiver Grad af kopi parallelitet til fire, genererer og kører tjenesten samtidig fire forespørgsler baseret på din angivne partitionsindstilling og dine angivne indstillinger, og hver forespørgsel henter en del af dataene fra din Azure SQL Database.

Det anbefales, at du aktiverer parallel kopiering med datapartitionering, især når du indlæser store mængder data fra din Azure SQL Database. Følgende er foreslåede konfigurationer til forskellige scenarier. Når du kopierer data til et filbaseret datalager, anbefales det at skrive til en mappe som flere filer (angiv kun mappenavn), i hvilket tilfælde ydeevnen er bedre end at skrive til en enkelt fil.

Scenarie Foreslåede indstillinger
Fuld belastning fra store tabeller med fysiske partitioner. Partitionsindstilling: Fysiske partitioner i tabellen.

Under udførelsen registrerer tjenesten automatisk de fysiske partitioner og kopierer data fra partitioner.

Hvis du vil kontrollere, om tabellen har en fysisk partition eller ej, kan du se denne forespørgsel.
Fuld belastning fra store tabeller uden fysiske partitioner, mens der er en heltals- eller datetime-kolonne til datapartitionering. Partitionsindstillinger: Partition med dynamisk område.
Partitionskolonne (valgfrit): Angiv den kolonne, der skal bruges til at partitionere data. Hvis den ikke er angivet, bruges kolonnen med indekset eller den primære nøgle.
Partition med øvre grænse og nedre partitionsgrænse (valgfri): Angiv, om du vil bestemme partitionens fremskridt. Dette er ikke til filtrering af rækkerne i tabellen. Alle rækker i tabellen partitioneres og kopieres. Hvis ikke angivet, skal du kopiere aktiviteter automatisk registrere værdierne.

Hvis partitionskolonnen "ID" f.eks. har værdier fra 1 til 100, og du angiver den nedre grænse som 20 og den øvre grænse som 80, med parallel kopi som 4, henter tjenesten data efter 4 partitioner – id'er i området <=20, [21, 50], [51, 80] og >=81.
Indlæs en stor mængde data ved hjælp af en brugerdefineret forespørgsel uden fysiske partitioner, mens du har et heltal eller en dato/datetime-kolonne til datapartitionering. Partitionsindstillinger: Partition med dynamisk område.
Forespørgsel: SELECT * FROM <TableName> WHERE ?DfDynamicRangePartitionCondition AND <your_additional_where_clause>.
Partitionskolonne: Angiv den kolonne, der skal bruges til at partitionere data.
Partition med øvre grænse og nedre partitionsgrænse (valgfri): Angiv, om du vil bestemme partitionens fremskridt. Dette er ikke til filtrering af rækkerne i tabellen. Alle rækker i forespørgselsresultatet partitioneres og kopieres. Hvis den ikke er angivet, skal du automatisk registrere værdien for kopiering af aktivitet.

Hvis partitionskolonnen "ID" f.eks. har værdier fra 1 til 100, og du angiver den nedre grænse som 20 og den øvre grænse som 80, med parallel kopi som 4, henter tjenesten data efter henholdsvis 4 partitioner - id'er i området <=20, [21, 50], [51, 80] og >=81.

Her er flere eksempelforespørgsler til forskellige scenarier:
• Forespørg hele tabellen:
SELECT * FROM <TableName> WHERE ?DfDynamicRangePartitionCondition
• Forespørg fra en tabel med valg af kolonne og yderligere where-clause-filtre:
SELECT <column_list> FROM <TableName> WHERE ?DfDynamicRangePartitionCondition AND <your_additional_where_clause>
• Forespørgsel med underforespørgsler:
SELECT <column_list> FROM (<your_sub_query>) AS T WHERE ?DfDynamicRangePartitionCondition AND <your_additional_where_clause>
• Forespørgsel med partition i underforespørgsel:
SELECT <column_list> FROM (SELECT <your_sub_query_column_list> FROM <TableName> WHERE ?DfDynamicRangePartitionCondition) AS T

Bedste fremgangsmåder til indlæsning af data med partitionsindstilling:

  • Vælg en karakteristisk kolonne som partitionskolonne (f.eks. primær nøgle eller entydig nøgle) for at undgå dataforvrængelse.
  • Hvis tabellen har en indbygget partition, skal du bruge partitionsindstillingen Fysiske partitioner i tabellen for at få en bedre ydeevne.

Eksempelforespørgsel til kontrol af fysisk partition

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 en fysisk partition, kan du se "HasPartition" som "ja" som følgende.

Sql-forespørgselsresultat.

Tabeloversigt

Følgende tabeller indeholder flere oplysninger om kopiaktiviteten i Azure SQL Database.

Kilde

Navn Beskrivelse Værdi Obligatorisk JSON-scriptegenskab
Datalagertype Datalagertypen. Eksternt Ja /
Forbind ion Din forbindelse til kildedatalageret. <din forbindelse> Ja Forbindelse
Forbind ionstype Din forbindelsestype. Vælg Azure SQL Database. Azure SQL-database Ja /
Tabel Din kildedatatabel. <navnet på destinationstabellen> Ja Skema
table
Brug forespørgsel Den brugerdefinerede SQL-forespørgsel til læsning af data. •Ingen
•Forespørgsel
• Lagret procedure
Nr.

• sqlReaderQuery
• sqlReaderStoredProcedureName, lagretProcedureParameters
Timeout for forespørgsel Timeout for udførelse af forespørgselskommando er som standard 120 minutter. Timespan Nr. queryTimeout
Isolationsniveau Angiver funktionsmåden for transaktionslåsning for SQL-kilden. •Ingen
• Skrivebeskyttet
• ReadUncommitted
• RepeatableRead
•Serialiserbar
•Snapshot
Nr. isolationLevel
Partitionsindstilling De indstillinger for datapartitionering, der bruges til at indlæse data fra Azure SQL Database. •Ingen
• Fysiske partitioner i tabellen
•Dynamikområde
Nr. partitionOption:
• PhysicalPartitionsOfTable
• Dynamisk rækkefølge
Flere kolonner Tilføj flere datakolonner for at gemme kildefilernes relative sti eller statiske værdi. Udtrykket understøttes for sidstnævnte. • Navn
•Værdi
Nr. additionalColumns:
•Navn
•Værdi

Destination

Navn Beskrivelse Værdi Obligatorisk JSON-scriptegenskab
Datalagertype Datalagertypen. Eksternt Ja /
Forbind ion Din forbindelse til destinationsdatalageret. <din forbindelse > Ja Forbindelse
Forbind ionstype Din forbindelsestype. Vælg Azure SQL Database. Azure SQL-database Ja /
Tabel Din destinationsdatatabel. <navnet på destinationstabellen> Ja Skema
table
Skrivefunktionsmåde Definerer skrivefunktionsmåden, når kilden er filer fra et filbaseret datalager. •Indsætte
• Upsert
• Lagret procedure
Nr. writeBehavior:
•Indsætte
• upsert
• sqlWriterStoredProcedureName, sqlWriterTableType, lagretProcedureParameters
Lås til masseindsætning af tabel Brug denne indstilling til at forbedre kopiens ydeevne under en masseindsætningshandling i en tabel uden indeks fra flere klienter. Ja eller nej Nr. sqlWriterUseTableLock:
true eller false
Tabelindstilling Angiver, om destinationstabellen automatisk skal oprettes, hvis den ikke findes baseret på kildeskemaet. •Ingen
• Opret tabel automatisk
Nr. tableOption:
• Opret automatisk
Forudkopieringsscript Et script til Kopier aktivitet, der skal udføres, før du skriver data til en destinationstabel i hver kørsel. Du kan bruge denne egenskab til at rydde op i forudindlæste data. <pre-copy script>
(streng)
Nr. preCopyScript
Timeout for skrivning af batch Ventetiden for, at batchindsætningshandlingen afsluttes, før der udløber timeout. Den tilladte værdi er et tidsrum. Standardværdien er "00:30:00" (30 minutter). Timespan Nr. writeBatchTimeout
Skriv batchstørrelse Det antal rækker, der skal indsættes i SQL-tabellen pr. batch. Tjenesten bestemmer som standard dynamisk den relevante batchstørrelse baseret på rækkestørrelsen. <antal rækker>
(heltal)
Nr. writeBatchSize
Maks. antal samtidige forbindelser Den øvre grænse for samtidige forbindelser, der er oprettet til datalageret under aktivitetskørslen. Angiv kun en værdi, når du vil begrænse samtidige forbindelser. <øvre grænse for samtidige forbindelser>
(heltal)
Nr. maxConcurrent Forbind ions
Deaktiver analyse af målepunkter for ydeevne Denne indstilling bruges til at indsamle målepunkter, f.eks. DTU, DWU, RU osv. til optimering af kopiydeevne og anbefalinger. Hvis du er bekymret for denne funktionsmåde, skal du markere dette afkrydsningsfelt. markér eller fjern markeringen Nr. disableMetricsCollection:
true eller false