Dela via


Konfigurera Azure SQL Database i en kopieringsaktivitet

Den här artikeln beskriver hur du använder kopieringsaktiviteten i datapipelinen för att kopiera data från och till Azure SQL Database.

Konfiguration som stöds

För konfigurationen av varje flik under kopieringsaktivitet går du till följande avsnitt.

Allmänt

Se Allmänna inställningar vägledning för att konfigurera fliken Allmänna inställningar.

Källa

Följande egenskaper stöds för Azure SQL Database under fliken Källa i en kopieringsaktivitet.

Skärmbild som visar källfliken och listan med egenskaper.

Följande egenskaper är nödvändiga:

  • datalagertyp: Välj extern.
  • Anslutning: Välj en Azure SQL Database-anslutning i anslutningslistan. Om anslutningen inte finns skapar du en ny Azure SQL Database-anslutning genom att välja Ny.
  • Anslutningstyp: Välj Azure SQL Database.
  • Tabell: Välj tabellen i databasen i listrutan. Eller kontrollera Redigera för att ange tabellnamnet manuellt.
  • Förhandsgranska data: Välj Förhandsgranska data för att se data i din tabell.

Under Advancedkan du ange följande fält:

  • Använd fråga: Du kan välja Tabell, Queryeller Lagrad procedur. I följande lista beskrivs konfigurationen för varje inställning:

    • Table: Läs data från den tabell du angav i Table om du väljer den här knappen.

    • Query: Ange den anpassade SQL-frågan för att läsa data. Ett exempel är select * from MyTable. Eller välj pennikonen som ska redigeras i kodredigeraren.

      Skärmbild som visar hur du väljer fråga.

    • Lagrad procedur: Använd den lagrade proceduren som läser data från källtabellen. Den sista SQL-instruktionen måste vara en SELECT-instruktion i den lagrade proceduren.

      • Namn på lagrad procedur: Välj den lagrade proceduren eller ange namnet på den lagrade proceduren manuellt när du kontrollerar rutan Redigera för att läsa data från källtabellen.

      • Parametrar för lagrad procedur: Ange värden för parametrar för lagrad procedur. Tillåtna värden är namn- eller värdepar. Parametrarnas namn och hölje måste matcha namnen och höljet för de lagrade procedureparametrarna.

        Skärmbild som visar inställningar för lagrad procedur.

  • Tidsgräns för frågor (minuter): Ange tidsgränsen för körning av frågekommandon är standardvärdet 120 minuter. Om en parameter anges för den här egenskapen är tillåtna värden tidsintervall, till exempel "02:00:00" (120 minuter).

    Skärmbild som visar inställningar för tidsgräns för frågor.

  • Isoleringsnivå: Anger transaktionslåsningsbeteendet för SQL-källan. De tillåtna värdena är: None, ReadCommitted, ReadUncommitted, RepeatableRead, Serializableeller Snapshot. Om inget anges används Ingen isoleringsnivå. Mer information finns i IsolationLevel Enum.

    Skärmbild som visar inställningar för isoleringsnivå.

  • partitionsalternativet: Ange de datapartitioneringsalternativ som används för att läsa in data från Azure SQL Database. Tillåtna värden är: Ingen (standard), fysiska partitioner av tabelloch dynamiskt intervall. När ett partitionsalternativ är aktiverat (dvs. inte Ingen) styrs graden av parallellitet för att samtidigt läsa in data från en Azure SQL Database av inställningen parallell kopiering på kopieringsaktiviteten.

    Skärmbild som visar inställningar för partitionsalternativ.

    • Ingen: Välj den här inställningen om du inte vill använda en partition.

    • Fysiska partitioner av tabell: När du använder en fysisk partition bestäms partitionskolumnen och mekanismen automatiskt baserat på din fysiska tabelldefinition.

    • Dynamiskt intervall: När du använder en fråga med parallellaktiverad krävs intervallpartitionsparametern(?DfDynamicRangePartitionCondition). Exempelfråga: SELECT * FROM <TableName> WHERE ?DfDynamicRangePartitionCondition.

      • Partitioneringskolumnnamn: Ange namnet på källkolumnen i heltal eller datum/datumtid typ (int, smallint, bigint, date, smalldatetime, datetime, datetime2eller datetimeoffset) som används av områdepartitionering för parallellkopiering. Om det inte anges identifieras indexet eller den primära nyckeln i tabellen automatiskt och används som partitionskolumn.
      • Partition övre gräns: Ange det maximala värdet för partitionskolumnen för delning av partitionsintervall. Det här värdet används för att bestämma partitionssteget, inte för att filtrera raderna i tabellen. Alla rader i tabellen eller frågeresultatet partitioneras och kopieras.
      • Partition med lägre bindning: Ange minimivärdet för partitionskolumnen för partitionsintervalldelning. Det här värdet används för att bestämma partitionssteget, inte för att filtrera raderna i tabellen. Alla rader i tabellen eller frågeresultatet partitioneras och kopieras.
  • Ytterligare kolumner: Lägg till fler datakolumner för att lagra källfilernas relativa sökväg eller statiska värde. Uttrycket stöds för det senare. För mer information, gå till Lägg till ytterligare kolumner under kopiering.

Destination

Följande egenskaper stöds för Azure SQL Database under fliken Mål i en kopieringsaktivitet.

Skärmbild som visar fliken Mål.

Följande egenskaper är nödvändiga:

  • datalagertyp: Välj extern.
  • Anslutning: Välj en Azure SQL Database-anslutning i anslutningslistan. Om anslutningen inte finns skapar du en ny Azure SQL Database-anslutning genom att välja Ny.
  • Anslutningstyp: Välj Azure SQL Database.
  • Tabell: Välj tabellen i databasen i listrutan. Eller kontrollera Redigera för att ange tabellnamnet manuellt.
  • Förhandsgranska data: Välj Förhandsgranska data för att förhandsgranska data i tabellen.

Under Advancedkan du ange följande fält:

  • Skrivbeteende: Definierar skrivbeteendet när källan är filer från ett filbaserat datalager. Du kan välja Infoga, Upsert eller Sparad procedur.

    Skärmbild av fliken skrivbeteende.

    • Infoga: Välj det här alternativet om källdata har infogats.

    • Upsert: Välj det här alternativet om dina källdata har både infogningar och uppdateringar.

      • Använd TempDB: Ange om du vill använda en global tillfällig tabell eller fysisk tabell som interimtabell för upsert. Som standard använder tjänsten global tillfällig tabell som interimtabell och den här kryssrutan är markerad.

        Skärmbild som visar hur du väljer Använd TempDB.

      • Select user DB schema: När kryssrutan Use TempDB inte är markerad anger du interimsschemat för att skapa en interimtabell om en fysisk tabell används.

        Notera

        Du måste ha behörighet att skapa och ta bort tabeller. Som standard delar en interimtabell samma schema som en måltabell.

        Skärmbild som visar att du inte väljer Använd TempDB.

      • Nyckelkolumner: Ange kolumnnamnen för unik radidentifiering. Antingen kan en enskild nyckel eller en serie nycklar användas. Om den inte anges används primärnyckeln.

    • Lagrad procedur: Använd den lagrade proceduren som definierar hur du använder källdata i en måltabell. Den här lagrade proceduren anropas per sats.

      • Namn på lagrad procedur: Välj den lagrade proceduren eller ange namnet på den lagrade proceduren manuellt när du kontrollerar rutan Redigera för att läsa data från källtabellen.

      • Parametrar för lagrad procedur: Ange värden för parametrar för lagrad procedur. Tillåtna värden är namn- eller värdepar. Parametrarnas namn och hölje måste matcha namnen och höljet för de lagrade procedureparametrarna.

        Skärmbild som visar inställningar för lagrad procedur.

  • Massinfoga tabellås: Välj Ja eller Nej. Använd den här inställningen för att förbättra kopieringsprestanda under en massinfogningsåtgärd i en tabell utan index från flera klienter. Mer information finns i BULK INSERT (Transact-SQL)

  • Tabellalternativ: Anger om du vill automatiskt skapa måltabellen om tabellen inte finns baserat på källschemat. Välj Ingen eller Skapa tabell automatiskt. Automatisk tabellskapande stöds inte när målet anger en lagrad procedur.

  • förkopieringsskript: Ange ett skript för Copy Activity som ska köras innan data skrivs till en måltabell vid varje körning. Du kan använda den här egenskapen för att rensa inlästa data.

  • Skrivbatchens tidsgräns: Ange väntetiden för batchinmatningsoperationen att slutföras innan den avbryts. Det tillåtna värdet är tidsperiod. Standardvärdet är "00:30:00" (30 minuter).

  • Skriv batchstorlek: Ange antalet rader som ska infogas i SQL-tabellen per batch. Det tillåtna värdet är heltal (antal rader). Som standard avgör tjänsten dynamiskt lämplig batchstorlek baserat på radstorleken.

  • Maximalt antal samtidiga anslutningar: Ange den övre gränsen för samtidiga anslutningar som upprättats till datalagret under aktivitetskörningen. Ange endast ett värde när du vill begränsa samtidiga anslutningar.

  • Inaktivera analys av prestandamått: Den här inställningen används för att samla in mått, till exempel DTU, DWU, RU och så vidare, för optimering och rekommendationer för kopieringsprestanda. Om du är intresserad av det här beteendet markerar du den här kryssrutan.

Kartläggning

För flikkonfigurationen Mappning går du till Mappningom du inte använder Azure SQL Database med tabell för automatisk skapande som mål.

Om du använder Azure SQL Database med automatisk tabellskapande som mål, kan du, förutom konfigurationen i Mappning, redigera datatypen för målkolumnerna. När du har valt Importera schemankan du ange kolumntypen i målet.

Till exempel är typen för ID kolumn i källan int, och du kan ändra den till flyttaltyp vid mappning till målkolumnen.

Skärmbild av mappad målkolumntyp.

Inställningar

För Inställningar flikkonfiguration går du till Konfigurera dina andra inställningar under fliken Inställningar.

Parallell kopiering från Azure SQL Database

Azure SQL Database-anslutningsappen i kopieringsaktiviteten tillhandahåller inbyggd datapartitionering för att kopiera data parallellt. Du hittar alternativ för datapartitionering på fliken Source i kopieringsaktiviteten.

När du aktiverar partitionerad kopiering kör kopieringsaktiviteten parallella frågor mot din Azure SQL Database-källa för att läsa in data efter partitioner. Den parallella graden styrs av grad av kopieringsparallellitet på fliken inställningar för kopieringsaktivitet. Om du till exempel ställer in Grad av kopieringsparallellitet till fyra, genererar och kör tjänsten samtidigt fyra frågor baserat på ditt angivna partitionsalternativ och inställningar, och varje fråga hämtar en del data från din Azure SQL Database.

Du rekommenderas att aktivera parallell kopiering med datapartitionering, särskilt när du läser in stora mängder data från din Azure SQL Database. Följande är föreslagna konfigurationer för olika scenarier. När du kopierar data till filbaserat datalager rekommenderar vi att du skriver till en mapp som flera filer (anger endast mappnamn), i vilket fall prestandan är bättre än att skriva till en enda fil.

Scenario Föreslagna inställningar
Fullständig belastning från en stor tabell med fysiska partitioner. partitionsalternativ: Fysiska partitioner i tabellen.

Under körningen identifierar tjänsten automatiskt de fysiska partitionerna och kopierar data per partition.

Om du vill kontrollera om tabellen har en fysisk partition eller inte kan du referera till den här frågan.
Fullständig belastning från en stor tabell, utan fysiska partitioner, med ett heltal eller en datetime-kolumn för datapartitionering. Partitionsalternativ: Partition med dynamiskt intervall.
partitionskolumn (valfritt): Ange den kolumn som används för att partitionera data. Om det inte anges används index- eller primärnyckelkolumnen.
Partitionens övre gräns och partitionens undre gräns (valfritt): Ange om du vill fastställa partitionens steg. Detta är inte för att filtrera raderna i tabellen, alla rader i tabellen partitioneras och kopieras. Om det inte anges identifierar kopieringsaktiviteter automatiskt värdena.

Om partitionskolumnen "ID" till exempel har värden mellan 1 och 100 och du anger den nedre gränsen som 20 och den övre gränsen som 80, med parallell kopia som 4, hämtar tjänsten data med 4 partitioner – ID:n i intervallet <=20, [21, 50], [51, 80] respektive >=81.
Läs in en stor mängd data med hjälp av en anpassad fråga, utan fysiska partitioner, med ett heltal eller en date/datetime-kolumn för datapartitionering. Partitionsalternativ: Partition med dynamiskt intervall.
Fråga: SELECT * FROM <TableName> WHERE ?DfDynamicRangePartitionCondition AND <your_additional_where_clause>.
partitionskolumn: Ange den kolumn som används för att partitionera data.
Partition, övre gräns och partition med lägre (valfritt): Ange om du vill fastställa partitionssteget. Detta är inte för att filtrera raderna i tabellen, alla rader i frågeresultatet partitioneras och kopieras. Om det inte anges identifierar kopieringsaktivitet automatiskt värdet.

Om partitionskolumnen "ID" till exempel har värden mellan 1 och 100 och du anger den nedre gränsen som 20 och den övre gränsen som 80, med parallell kopia som 4, hämtar tjänsten data med 4 partitioner – ID:n i intervallet <=20, [21, 50], [51, 80] respektive >=81.

Här är fler exempelfrågor för olika scenarier:
Hämta hela tabellen
SELECT * FROM <TableName> WHERE ?DfDynamicRangePartitionCondition
• Fråga från en tabell med kolumnval och ytterligare filter i WHERE-villkoret:
SELECT <column_list> FROM <TableName> WHERE ?DfDynamicRangePartitionCondition AND <your_additional_where_clause>
• Fråga med underfrågor:
SELECT <column_list> FROM (<your_sub_query>) AS T WHERE ?DfDynamicRangePartitionCondition AND <your_additional_where_clause>
• Fråga med partition i underfråga:
SELECT <column_list> FROM (SELECT <your_sub_query_column_list> FROM <TableName> WHERE ?DfDynamicRangePartitionCondition) AS T

Metodtips för att läsa in data med partitionsalternativet:

  • Välj distinkt kolumn som partitionskolumn (till exempel primärnyckel eller unik nyckel) för att undvika datasnedvridning.
  • Om tabellen har inbyggd partition använder du partitionsalternativet fysiska partitioner i tabellen för att få bättre prestanda.

Exempelfråga för att kontrollera 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]'

Om tabellen har en fysisk partition ser du "HasPartition" som "ja" som följande.

Sql-frågeresultat.

Tabellsammanfattning

Följande tabeller innehåller mer information om kopieringsaktiviteten i Azure SQL Database.

Källa

Namn Beskrivning Värde Krävs JSON-skriptegenskap
Datalager-typ Din datalagertyp. extern Ja /
Anslutning Din anslutning till källdatalagret. <din anslutning> Ja anslutning
Anslutningstyp Din anslutningstyp. Välj Azure SQL Database. Azure SQL Database Ja /
tabell Källdatatabellen. <namn på måltabellen> Ja Schemat
bord
Använd sökfråga Den anpassade SQL-frågan för att läsa data. •Ingen
•Fråga
• Sparad procedur
Nej

• sqlReaderQuery
• sqlReaderStoredProcedureName, storedProcedureParameters
Tidsgräns för frågor Tidsgränsen för körning av frågekommandon är standardvärdet 120 minuter. tidsintervall Nej queryTimeout
isoleringsnivå Anger transaktionslåsningsbeteendet för SQL-källan. •Ingen
• ReadCommitted
• ReadUncommitted
• Upprepningsbar Läsning
• Serialiserbar
•Ögonblicksbild
Nej isoleringsnivå
partitionsalternativ De datapartitioneringsalternativ som används för att läsa in data från Azure SQL Database. •Ingen
• Fysiska partitioner av tabellen
• Dynamiskt intervall
Nej partitioneringsalternativ
• Fysiska partitioner av tabell
• DynamicRange
Ytterligare kolumner Lägg till fler datakolumner för att lagra källfilernas relativa sökväg eller statiska värde. Uttrycket stöds för det senare. •Namn
•Värde
Nej ytterligareKolumner:
•Namn
• värde

Destination

Namn Beskrivning Värde Krävs JSON-skriptegenskap
datalagertyp Din datalagertyp. extern Ja /
Anslutning Din anslutning till måldatalagret. <din anslutning > Ja samband
Anslutningstyp Din anslutningstyp. Välj Azure SQL Database. Azure SQL Database Ja /
tabell Din måldatatabell. <namn på din måldestinationstabell> Ja Schemat
bord
Skrivbeteende Definierar skrivbeteendet när källan är filer från ett filbaserat datalager. •Infoga
• Uppdatera eller infoga
• Lagrad procedur
Nej writeBehavior:
• infoga
• infoga eller uppdatera
• sqlWriterStoredProcedureName, sqlWriterTableType, storedProcedureParameters
Bulkinfoga tabellås Använd den här inställningen för att förbättra kopieringsprestanda under en massinfogningsåtgärd i en tabell utan index från flera klienter. Ja eller nej Nej sqlWriterUseTableLock:
sant eller falskt
tabellalternativet Anger om måltabellen ska skapas automatiskt om den inte finns baserat på källschemat. •Ingen
• Skapa tabell automatiskt
Nej tabellalternativ:
• Skapa automatiskt
förkopieringsskript Ett skript för kopieringsaktivitet som ska köras innan data skrivs till en destinationstabell vid varje körning. Du kan använda den här egenskapen för att rensa inlästa data. <förkopieringsskript>
(sträng)
Nej preCopyScript
Tidsgräns för batchskrivning Väntetiden för att batchinfogningsåtgärden ska slutföras innan den når tidsgränsen. Det godkända värdet är tidsåtgång. Standardvärdet är "00:30:00" (30 minuter). tidsintervall Nej writeBatchTimeout
Skriv batchstorlek Antalet rader som ska infogas i SQL-tabellen per batch. Som standard avgör tjänsten dynamiskt lämplig batchstorlek baserat på radstorleken. <antal rader>
(heltal)
Nej writeBatchSize
Maximalt antal samtidiga anslutningar Den övre gränsen för samtidiga anslutningar som upprättats till datalagret under aktiviteten. Ange endast ett värde när du vill begränsa samtidiga anslutningar. <övre gränsen för samtidiga anslutningar>
(heltal)
Nej maximalaSamtidigaAnslutningar
Inaktivera analys av prestandamått Den här inställningen används för att samla in mått, till exempel DTU, DWU, RU och så vidare, för optimering och rekommendationer för kopieringsprestanda. Om du är intresserad av det här beteendet markerar du den här kryssrutan. markera eller avmarkera Nej avaktiveraMetrikinsamling:
sant eller falskt