Konfigurera Azure Database for PostgreSQL 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 Database for PostgreSQL.
Konfiguration som stöds
För konfigurationen av varje flik under kopieringsaktivitet går du till följande avsnitt.
Allmänt
Se vägledningen allmänna inställningar för att konfigurera fliken Allmänna inställningar.
Källa
Gå till fliken Källa för att konfigurera kopieringsaktivitetskällan. Se följande innehåll för den detaljerade konfigurationen.
Följande tre egenskaper krävs:
- Datalagertyp: Välj Extern.
- Anslut ion: Välj en Azure Database for PostgreSQL-anslutning i anslutningslistan. Om det inte finns någon anslutning skapar du en ny Azure Database for PostgreSQL-anslutning genom att välja Ny.
- Anslut ionstyp: Välj Azure Database for PostgreSQL.
- Använd fråga: Välj Tabell för att läsa data från den angivna tabellen eller välj Fråga för att läsa data med hjälp av frågor.
Om du väljer Tabell:
Tabell: Välj tabellen i listrutan eller välj Redigera för att manuellt ange den för att läsa data.
Om du väljer Fråga:
Fråga: Ange den anpassade SQL-frågan för att läsa data. Till exempel:
SELECT * FROM mytable
ellerSELECT * FROM "MyTable"
.Kommentar
I PostgreSQL behandlas entitetsnamnet som skiftlägesokänsligt om det inte anges.
Under Avancerat kan du ange följande fält:
Partitionsalternativ: Anger de datapartitioneringsalternativ som används för att läsa in data från Azure Database for PostgreSQL. När ett partitionsalternativ är aktiverat (dvs. inte Ingen) styrs graden av parallellitet för samtidig inläsning av data från en Azure Database for PostgreSQL av kopieringsparallellitetens grad på fliken inställningar för kopieringsaktivitet.
Om du väljer Ingen väljer du att inte använda partition.
Om du väljer Fysiska partitioner i tabellen:
Partitionsnamn: Ange listan över fysiska partitioner som måste kopieras.
Om du använder en fråga för att hämta källdata kopplar
?AdfTabularPartitionName
du in WHERE-satsen. Ett exempel finns i avsnittet Parallell kopia från Azure Database for PostgreSQL .
Om du väljer Dynamiskt intervall:
Partitionskolumnnamn: Ange namnet på källkolumnen i heltal eller datum/datetime-typ (
int
, ,smallint
bigint
,date
,timestamp with time zone
timestamp without time zone
ellertime without time zone
) som ska användas av intervallpartitionering för parallell kopiering. Om den inte anges identifieras den primära nyckeln i tabellen automatiskt och används som partitionskolumn.Om du använder en fråga för att hämta källdata kopplar
?AdfRangePartitionColumnName
du in WHERE-satsen. Ett exempel finns i avsnittet Parallell kopia från Azure Database for PostgreSQL .Partitionens övre gräns: Ange det maximala värdet för partitionskolumnen för att kopiera ut data.
Om du använder en fråga för att hämta källdata kopplar
?AdfRangePartitionUpbound
du in WHERE-satsen. Ett exempel finns i avsnittet Parallell kopia från Azure Database for PostgreSQL . .Partition med lägre gräns: Ange det lägsta värdet för partitionskolumnen för att kopiera ut data.
Om du använder en fråga för att hämta källdata kopplar
?AdfRangePartitionLowbound
du in WHERE-satsen. Ett exempel finns i avsnittet Parallell kopia från Azure Database for PostgreSQL .
Ytterligare kolumner: Lägg till ytterligare datakolumner för att lagra källfilernas relativa sökväg eller statiska värde. Uttrycket stöds för det senare.
Mål
Gå till fliken Mål för att konfigurera kopieringsaktivitetens mål. Se följande innehåll för den detaljerade konfigurationen.
Följande tre egenskaper krävs:
- Datalagertyp: Välj Extern.
- Anslut ion: Välj en Azure Database for PostgreSQL-anslutning i anslutningslistan. Om det inte finns någon anslutning skapar du en ny Azure Database for PostgreSQL-anslutning genom att välja Ny.
- Anslut ionstyp: Välj Azure Database for PostgreSQL.
- Tabell: Välj tabellen i listrutan eller välj Redigera för att manuellt ange den för att skriva data.
Under Avancerat kan du ange följande fält:
Skrivmetod: Välj den metod som används för att skriva data till Azure Database for PostgreSQL. Välj från Kommandot Kopiera (standard, vilket är mer högpresterande) och Massinfogning.
Förkopieringsskript: Ange en SQL-fråga för kopieringsaktiviteten som ska köras innan du skriver data till Azure Database for PostgreSQL i varje körning. Du kan använda den här egenskapen för att rensa inlästa data.
Tidsgräns för skrivning av batch: Ange väntetiden för batchinfogningsåtgärden som ska slutföras innan tidsgränsen uppnås. Det tillåtna värdet är tidsintervall. Standardvärdet är 00:30:00 (30 minuter).
Skriv batchstorlek: Ange antalet rader som läses in i Azure Database for PostgreSQL per batch. Tillåtet värde är ett heltal som representerar antalet rader. Standardvärdet är 1 000 000.
Mappning
Information om konfiguration av fliken Mappning finns i Konfigurera dina mappningar under mappningsfliken.
Inställningar
För Inställningar flikkonfiguration går du till Konfigurera dina andra inställningar under fliken Inställningar.
Parallell kopia från Azure Database for PostgreSQL
Azure Database for PostgreSQL-anslutningsappen i kopieringsaktiviteten tillhandahåller inbyggd datapartitionering för att kopiera data parallellt. Du hittar alternativ för datapartitionering på fliken Källa i kopieringsaktiviteten.
När du aktiverar partitionerad kopiering kör kopieringsaktiviteten parallella frågor mot din Azure Database for PostgreSQL-källa för att läsa in data efter partitioner. Parallellgraden styrs av grad av kopieringsparallellitet på fliken inställningar för kopieringsaktivitet. Om du till exempel anger 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 av data från Azure Database for PostgreSQL.
Du rekommenderas att aktivera parallell kopiering med datapartitionering, särskilt när du läser in stora mängder data från din Azure Database for PostgreSQL. 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 |
---|---|
Full 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 efter partitioner. |
Full belastning från stor tabell, utan fysiska partitioner, medan med en heltalskolumn för datapartitionering. | Partitionsalternativ: Dynamiskt intervall. Partitionskolumn: Ange den kolumn som används för att partitionera data. Om den inte anges används primärnyckelkolumnen. |
Läs in en stor mängd data med hjälp av en anpassad fråga med fysiska partitioner. | Partitionsalternativ: Fysiska partitioner i tabellen. Fråga: SELECT * FROM ?AdfTabularPartitionName WHERE <your_additional_where_clause> .Partitionsnamn: Ange partitionsnamnen som du vill kopiera data från. Om det inte anges identifierar tjänsten automatiskt de fysiska partitionerna i tabellen som du angav i PostgreSQL-datauppsättningen. Under körningen ersätter tjänsten med det faktiska partitionsnamnet ?AdfTabularPartitionName och skickar till Azure Database for PostgreSQL. |
Läs in en stor mängd data med hjälp av en anpassad fråga, utan fysiska partitioner, medan du har en heltalskolumn för datapartitionering. | Partitionsalternativ: Dynamiskt intervall. Fråga: SELECT * FROM ?AdfTabularPartitionName WHERE ?AdfRangePartitionColumnName <= ?AdfRangePartitionUpbound AND ?AdfRangePartitionColumnName >= ?AdfRangePartitionLowbound AND <your_additional_where_clause> .Partitionskolumn: Ange den kolumn som används för att partitionera data. Du kan partitionera mot kolumnen med heltal eller datatyp för datum/datetime. Partitionens övre gräns och partitionens nedre gräns: Ange om du vill filtrera mot partitionskolumnen för att endast hämta data mellan det nedre och det övre intervallet. Under körningen ersätter ?AdfRangePartitionColumnName tjänsten , ?AdfRangePartitionUpbound och ?AdfRangePartitionLowbound med det faktiska kolumnnamnet och värdeintervallen för varje partition och skickar till Azure Database for PostgreSQL. Om till exempel partitionskolumnen "ID" har angetts med den nedre gränsen som 1 och den övre gränsen som 80, med parallell kopiering inställd som 4, hämtar tjänsten data med 4 partitioner. Deras ID:n är mellan [1,20], [21, 40], [41, 60] respektive [61, 80]. |
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 av tabellen" för att få bättre prestanda.
Tabellsammanfattning
Följande tabell innehåller mer information om kopieringsaktiviteten i Azure Database for PostgreSQL.
Källinformation
Name | Beskrivning | Värde | Obligatoriskt | JSON-skriptegenskap |
---|---|---|---|---|
Typ av datalager | Din datalagertyp. | Externt | Ja | / |
Anslutning | Din anslutning till källdatalagret. | < din Azure Database for PostgreSQL-anslutning > | Ja | anslutning |
Anslutningstyp | Din källanslutningstyp. | Azure Database for PostgreSQL | Ja | / |
Använda fråga | Sättet att läsa data. Använd tabell för att läsa data från den angivna tabellen eller tillämpa Fråga för att läsa data med hjälp av frågor. | • Tabell • Fråga |
Ja | • typeProperties (under typeProperties ->source )-Schemat -Tabell •Fråga |
Partitionsnamn | Listan över fysiska partitioner som måste kopieras. Om du använder en fråga för att hämta källdata kopplar ?AdfTabularPartitionName du in WHERE-satsen. |
< dina partitionsnamn > | Nej | partitionNames |
Partitionskolumnnamn | Namnet på källkolumnen i heltal eller datum/datetime-typ (int , , bigint smallint , date , timestamp without time zone timestamp with time zone eller time without time zone ) som ska användas av intervallpartitionering för parallell kopiering. Om den inte anges identifieras den primära nyckeln i tabellen automatiskt och används som partitionskolumn. |
< dina partitionskolumnnamn > | Nej | partitionColumnName |
Partitionens övre gräns | Det maximala värdet för partitionskolumnen för att kopiera ut data. Om du använder en fråga för att hämta källdata kopplar ?AdfRangePartitionUpbound du in WHERE-satsen. |
< partitionens övre gräns > | Nej | partitionUpperBound |
Partition, nedre gräns | Det minsta värdet för partitionskolumnen för att kopiera ut data. Om du använder en fråga för att hämta källdata kopplar ?AdfRangePartitionLowbound du in WHERE-satsen. |
< partitionens nedre gräns > | Nej | partitionLowerBound |
Ytterligare kolumner | Lägg till ytterligare 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 | additionalColumns: •Namn •Värde |
Målinformation
Name | Beskrivning | Värde | Obligatoriskt | JSON-skriptegenskap |
---|---|---|---|---|
Typ av datalager | Din datalagertyp. | Externt | Ja | / |
Anslutning | Din anslutning till måldatalagret. | < din Azure Database for PostgreSQL-anslutning > | Ja | anslutning |
Anslutningstyp | Din målanslutningstyp. | Azure Database for PostgreSQL | Ja | / |
Tabell | Måldatatabellen för att skriva data. | < namn på måltabellen > | Ja | typeProperties (under typeProperties ->sink ):-Schemat -Tabell |
Skrivmetod | Den metod som används för att skriva data till Azure Database for PostgreSQL. | • Kopiera kommando (standard) • Massinfogning |
Nej | writeMethod: • CopyCommand • BulkInsert |
Förkopieringsskript | En SQL-fråga för kopieringsaktiviteten som ska köras innan du skriver data till Azure Database for PostgreSQL i varje körning. Du kan använda den här egenskapen för att rensa inlästa data. | < ditt förkopieringsskript > | Nej | preCopyScript |
Tidsgräns för skrivning av batch | Väntetiden för att batchinfogningsåtgärden ska slutföras innan tidsgränsen uppnås. | tidsintervall (standardvärdet är 00:30:00 –30 minuter) |
Nej | writeBatchTimeout |
Skriv batchstorlek | Antalet rader som läses in i Azure Database for PostgreSQL per batch. | integer (standardvärdet är 1 000 000) |
Nej | writeBatchSize |