Konfigurera Oracle-databas i en kopieringsaktivitet
Den här artikeln beskriver hur du använder kopieringsaktiviteten i datapipelinen för att kopiera data från och till Oracle-databasen.
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
Följande egenskaper stöds för Oracle-databasen under fliken Källa i en kopieringsaktivitet.
Följande egenskaper krävs:
- Anslutning: Välj en Oracle-databasanslutning i anslutningslistan. Om det inte finns någon anslutning skapar du en ny Oracle-databasanslutning genom att välja Mer längst ned i anslutningslistan.
- Använd fråga: Välj från tabell eller fråga.
Om du väljer Tabell:
Tabell: Ange namnet på tabellen i Oracle-databasen för att läsa data. Välj tabellen i listrutan eller välj Retur manuellt för att ange schemat och tabellnamnet.
Om du väljer Fråga:
Fråga: Ange den anpassade SQL-frågan för att läsa data. Exempel:
SELECT * FROM MyTable
.När du aktiverar partitionerad belastning måste du koppla motsvarande inbyggda partitionsparametrar i frågan. Exempel finns i avsnittet Parallellkopiering från Oracle-databas .
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 Oracle-databasen. När ett partitionsalternativ är aktiverat (dvs. inte Ingen) styrs graden av parallellitet för att samtidigt läsa in data från en Oracle-databas av grad av kopieringsparallellitet 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
?DfTabularPartitionName
du in WHERE-satsen. Ett exempel finns i avsnittet Parallellkopiering från Oracle-databas .
Om du väljer Dynamiskt intervall:
Partitionskolumnnamn: Ange namnet på källkolumnen i heltalstyp 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
?DfRangePartitionColumnName
du in WHERE-satsen. Ett exempel finns i avsnittet Parallellkopiering från Oracle-databas .Partitionens övre gräns: Ange maximalt värde för partitionskolumnen för att kopiera ut data.
Om du använder en fråga för att hämta källdata kopplar
?DfRangePartitionUpbound
du in WHERE-satsen. Ett exempel finns i avsnittet Parallell kopia från parallell kopia från Oracle-databas .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
?DfRangePartitionLowbound
du in WHERE-satsen. Ett exempel finns i avsnittet Parallell kopia från parallell kopia från Oracle-databas .
Tidsgräns för frågor (minuter): Ange tidsgränsen för körning av frågekommandon, standardvärdet är 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).
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
Följande egenskaper stöds för Oracle-databasen under fliken Mål för en kopieringsaktivitet.
Följande egenskaper krävs:
- Anslutning: Välj en Oracle-databasanslutning i anslutningslistan. Om anslutningen inte finns skapar du en ny Oracle-databasanslutning genom att välja Mer längst ned i anslutningslistan.
- Tabell: Välj tabellen i databasen i listrutan. Eller markera Ange manuellt för att ange schemat och tabellnamnet.
Under Avancerat kan du ange följande fält:
- Förkopieringsskript: Ange en SQL-fråga för kopieringsaktiviteten som ska köras innan du skriver data till Oracle-databasen vid 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: Väntetiden för att batchinfogningsåtgärden ska slutföras innan tidsgränsen uppnås. Det tillåtna värdet är tidsintervall. Ett exempel är 00:30:00 (30 minuter).
- Skriv batchstorlek: Ange antalet rader som ska infogas i Oracle-databastabellen per batch. Det tillåtna värdet är heltal (antal rader). Standardvärdet är 10 000.
- Maximalt antal samtidiga anslutningar: 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.
Mappning
För Konfiguration av fliken Mappning går du till Konfigurera dina mappningar under mappningsfliken.
Inställningar
Information om konfiguration av fliken Inställningar finns i Konfigurera dina andra inställningar under fliken Inställningar.
Parallellkopiering från Oracle-databas
Oracle-databasanslutningsappen tillhandahåller inbyggd datapartitionering för att kopiera data från Oracle-databasen parallellt. Du hittar alternativ för datapartitionering på fliken Källa i kopieringsaktiviteten.
När du aktiverar partitionerad kopia kör tjänsten parallella frågor mot Oracle-databaskällan för att läsa in data efter partitioner. Den parallella graden styrs av inställningen 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 Oracle-databasen.
Du rekommenderas att aktivera parallell kopiering med datapartitionering, särskilt när du läser in stora mängder data från Oracle-databasen. 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: Partition med 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 <TABLENAME> PARTITION("?DfTabularPartitionName") 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 Oracle-databasdata. Under körningen ersätter tjänsten med det faktiska partitionsnamnet ?DfTabularPartitionName och skickar till Oracle-databasen. |
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: Partition med dynamiskt intervall. Fråga: SELECT * FROM <TABLENAME> WHERE ?DfRangePartitionColumnName <= ?DfRangePartitionUpbound AND ?DfRangePartitionColumnName >= ?DfRangePartitionLowbound AND <your_additional_where_clause> .Partitionskolumn: Ange den kolumn som används för att partitionera data. Du kan partitionera mot kolumnen med heltalsdatatypen. Partitionens övre gräns och partitionens nedre gräns: Ange om du vill filtrera mot partitionskolumnen för att hämta data endast mellan det nedre och det övre intervallet. Under körningen ersätter ?DfRangePartitionColumnName tjänsten , ?DfRangePartitionUpbound och ?DfRangePartitionLowbound med det faktiska kolumnnamnet och värdeintervallen för varje partition och skickar till Oracle-databasen. 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 är mellan [1,20], [21, 40], [41, 60] respektive [61, 80]. |
Dricks
När du kopierar data från en icke-partitionerad tabell kan du använda partitionsalternativet "Dynamiskt intervall" för att partitionera mot en heltalskolumn. Om dina källdata inte har en sådan typ av kolumn kan du använda ORA_HASH funktion i källfrågan för att generera en kolumn och använda den som partitionskolumn.
Tabellsammanfattning
Följande tabeller innehåller mer information om kopieringsaktiviteten i Oracle-databasen.
Källinformation
Name | Beskrivning | Värde | Obligatoriskt | JSON-skriptegenskap |
---|---|---|---|---|
Anslutning | Din anslutning till källdatalagret. | <din Oracle-databasanslutning> | Ja | anslutning |
Använda fråga | Sättet att läsa data från Oracle-databasen. 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 SQL-frågor. | • Tabell • Fråga |
Ja | / |
För tabell | ||||
schemanamn | Namnet på schemat. | < ditt schemanamn > | Nej | schema |
tabellnamn | Tabellens namn. | < ditt tabellnamn > | Nej | table |
För fråga | ||||
Fråga | Använd den anpassade SQL-frågan för att läsa data. Ett exempel är SELECT * FROM MyTable . När du aktiverar partitionerad belastning måste du koppla motsvarande inbyggda partitionsparametrar i frågan. Exempel finns i avsnittet Parallellkopiering från Oracle-databas . |
< SQL-frågor > | Nej | oracleReaderQuery |
Partitionsalternativ | De datapartitioneringsalternativ som används för att läsa in data från Oracle-databasen. | • Ingen (standard) • Fysiska partitioner av tabellen • Dynamiskt intervall |
Nej | / |
För fysiska partitioner i tabellen | ||||
Partitionsnamn | Listan över fysiska partitioner som måste kopieras. Om du använder en fråga för att hämta källdata kopplar ?DfTabularPartitionName du in WHERE-satsen. |
< dina partitionsnamn > | Nej | partitionNames |
För dynamiskt intervall | ||||
Partitionskolumnnamn | Ange namnet på källkolumnen i heltalstyp 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 ?DfRangePartitionColumnName du in WHERE-satsen. Ett exempel finns i avsnittet Parallellkopiering från Oracle-databas . |
< dina partitionskolumnnamn > | Nej | partitionColumnName |
Partitionens övre gräns | Ange maximalt värde för partitionskolumnen för att kopiera ut data. Om du använder en fråga för att hämta källdata kopplar ?DfRangePartitionUpbound du in WHERE-satsen. Ett exempel finns i avsnittet Parallell kopia från parallell kopia från Oracle-databas . |
< partitionens övre gräns > | Nej | partitionUpperBound |
Partition, nedre gräns | Ange 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 ?DfRangePartitionLowbound du in WHERE-satsen. Ett exempel finns i avsnittet Parallell kopia från parallell kopia från Oracle-databas . |
< partitionens nedre gräns > | Nej | partitionLowerBound |
Tidsgräns för frågor | Tidsgränsen för körning av frågekommandon är standardvärdet 120 minuter. | tidsintervall | Nej | queryTimeout |
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 |
---|---|---|---|---|
Anslutning | Din anslutning till måldatalagret. | <din Oracle-databasanslutning> | Ja | anslutning |
Tabell | Måldatatabellen. | <namn på måltabellen> | Ja | / |
schemanamn | Namnet på schemat. | < ditt schemanamn > | Ja | schema |
tabellnamn | Tabellens namn. | < ditt tabellnamn > | Ja | table |
Förkopieringsskript | En SQL-fråga för kopieringsaktiviteten som ska köras innan du skriver data till Oracle-databasen 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 | Nej | writeBatchTimeout |
Skriv batchstorlek | Antalet rader som ska infogas i SQL-tabellen per batch. | integer (standardvärdet är 10 000) |
Nej | writeBatchSize |
Maximalt antal samtidiga anslutningar | 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. | < maximalt antal samtidiga anslutningar > | Nej | maxConcurrentConnections |