Konfigurer Oracle-database i en kopiaktivitet
I denne artikel beskrives det, hvordan du bruger kopiaktiviteten i datapipeline til at kopiere data fra og til Oracle-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 Oracle-database under fanen Kilde for en kopiaktivitet.
Følgende egenskaber er påkrævet:
- Forbindelse: Vælg en Oracle-databaseforbindelse på forbindelseslisten. Hvis der ikke findes nogen forbindelse, skal du oprette en ny Oracle-databaseforbindelse ved at vælge Mere nederst på forbindelseslisten.
- Brug forespørgsel: Vælg fra tabel eller forespørgsel.
Hvis du vælger Tabel:
Tabel: Angiv navnet på tabellen i Oracle-databasen for at læse data. Vælg tabellen på rullelisten, eller vælg Angiv manuelt for at angive skemaet og tabelnavnet.
Hvis du vælger Forespørgsel:
Forespørgsel: Angiv den brugerdefinerede SQL-forespørgsel for at læse data. Eksempel:
SELECT * FROM MyTable
.Når du aktiverer partitioneret belastning, skal du tilslutte eventuelle tilsvarende indbyggede partitionsparametre i forespørgslen. Du kan se eksempler i afsnittet Parallel kopi fra Oracle-database .
Under Avanceret kan du angive følgende felter:
Partitionsindstilling: Angiver de indstillinger for datapartitionering, der bruges til at indlæse data fra Oracle-databasen. Når en partitionsindstilling er aktiveret (dvs. ikke Ingen), styres graden af parallelitet med samtidig indlæsning af data fra en Oracle-database af graden af kopi parallelitet under fanen indstillinger for kopiaktivitet.
Hvis du vælger Ingen, vælger du ikke at bruge partitionen.
Hvis du vælger Fysiske partitioner i tabellen:
Partitionsnavne: Angiv listen over fysiske partitioner, der skal kopieres.
Hvis du bruger en forespørgsel til at hente kildedataene, skal du koble
?DfTabularPartitionName
til WHERE-delsætningen. Du kan se et eksempel i afsnittet Parallel kopi fra Oracle-database .
Hvis du vælger Dynamisk område:
Navn på partitionskolonne: Angiv navnet på kildekolonnen i heltalstypen , der skal bruges til områdepartitionering til parallel kopiering. Hvis den ikke er angivet, registreres tabellens primære nøgle automatisk, og den bruges som partitionskolonne.
Hvis du bruger en forespørgsel til at hente kildedataene, skal du koble
?DfRangePartitionColumnName
til WHERE-delsætningen. Du kan se et eksempel i afsnittet Parallel kopi fra Oracle-database .Øvre partitionsgrænse: Angiv den maksimale værdi for partitionskolonnen for at kopiere data ud.
Hvis du bruger en forespørgsel til at hente kildedataene, skal du koble
?DfRangePartitionUpbound
til WHERE-delsætningen. Du kan se et eksempel i afsnittet Parallel kopi fra parallel kopi fra Oracle-database .Nedre partitionsgrænse: Angiv minimumværdien for den partitionskolonne, der skal kopieres data ud.
Hvis du bruger en forespørgsel til at hente kildedataene, skal du koble
?DfRangePartitionLowbound
til WHERE-delsætningen. Du kan se et eksempel i afsnittet Parallel kopi fra parallel kopi fra Oracle-database .
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).
Flere kolonner: Tilføj flere datakolonner for at gemme kildefilernes relative sti eller statiske værdi. Udtrykket understøttes for sidstnævnte.
Destination
Følgende egenskaber understøttes for Oracle-database under fanen Destination for en kopiaktivitet.
Følgende egenskaber er påkrævet:
- Forbindelse: Vælg en Oracle-databaseforbindelse på forbindelseslisten. Hvis forbindelsen ikke findes, skal du oprette en ny Oracle-databaseforbindelse ved at vælge Mere nederst på forbindelseslisten.
- Tabel: Vælg tabellen i databasen på rullelisten. Eller markér Enter manuelt for at angive skemaet og tabelnavnet.
Under Avanceret kan du angive følgende felter:
- Script før kopiering: Angiv en SQL-forespørgsel for den kopiaktivitet, der skal udføres, før du skriver data til Oracle-databasen i hver kørsel. Du kan bruge denne egenskab til at rydde op i forudindlæste data.
- Timeout for skrivning af batch: Ventetiden for batchindsætningen skal fuldføres, før der opstår timeout. Den tilladte værdi er et tidsrum. Et eksempel er 00:30:00 (30 minutter).
- Skriv batchstørrelse: Angiv det antal rækker, der skal indsættes i Oracle-databasetabellen pr. batch. Den tilladte værdi er heltal (antal rækker). Standardværdien er 10.000.
- Maksimalt 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.
Tilknytning
For Konfiguration af fanen Tilknytning skal du gå til Konfigurer dine tilknytninger under fanen Tilknytning.
Indstillinger
Hvis du vil have mere at vide om konfiguration af fanen Indstillinger , skal du se Konfigurer dine andre indstillinger under fanen Indstillinger.
Parallel kopi fra Oracle-database
Oracle-databaseconnectoren leverer indbygget datapartitionering for at kopiere data fra Oracle-databasen parallelt. Du kan finde indstillinger for datapartitionering under fanen Kilde i kopiaktiviteten.
Når du aktiverer partitioneret kopi, kører tjenesten parallelle forespørgsler mod Oracle-databasekilden for at indlæse data fra partitioner. Den parallelle grad styres af indstillingen Grad 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 Oracle-databasen.
Det anbefales, at du aktiverer parallel kopiering med datapartitionering, især når du indlæser store mængder data fra Oracle-databasen. 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. |
Fuld indlæsning fra store tabeller uden fysiske partitioner, mens der er en heltalskolonne til datapartitionering. | Partitionsindstillinger: Partition med dynamisk område. Partitionskolonne: Angiv den kolonne, der skal bruges til at partitionere data. Hvis den ikke er angivet, bruges kolonnen med den primære nøgle. |
Indlæs en stor mængde data ved hjælp af en brugerdefineret forespørgsel med fysiske partitioner. | Partitionsindstillinger: Fysiske partitioner i tabellen. Forespørgsel: SELECT * FROM <TABLENAME> PARTITION("?DfTabularPartitionName") WHERE <your_additional_where_clause> . Partitionsnavn: Angiv det eller de partitionsnavne, der skal kopieres data fra. Hvis den ikke er angivet, registrerer tjenesten automatisk de fysiske partitioner i den tabel, du angav i Oracle-databasedataene. Under udførelsen erstattes tjenesten med det faktiske partitionsnavn ?DfTabularPartitionName og sendes til Oracle-databasen. |
Indlæs en stor mængde data ved hjælp af en brugerdefineret forespørgsel uden fysiske partitioner, mens der er en heltalskolonne til datapartitionering. | Partitionsindstillinger: Partition med dynamisk område. Forespørgsel: SELECT * FROM <TABLENAME> WHERE ?DfRangePartitionColumnName <= ?DfRangePartitionUpbound AND ?DfRangePartitionColumnName >= ?DfRangePartitionLowbound AND <your_additional_where_clause> .Partitionskolonne: Angiv den kolonne, der skal bruges til at partitionere data. Du kan partitionere i kolonnen med datatypen Heltal. Partition med øvre grænse og nedre partitionsgrænse: Angiv, om du vil filtrere efter partitionskolonnen for kun at hente data mellem det nederste og det øverste område. Under udførelsen erstatter ?DfRangePartitionColumnName tjenesten , ?DfRangePartitionUpbound og ?DfRangePartitionLowbound med det faktiske kolonnenavn og de faktiske værdiintervaller for hver partition og sender til Oracle-databasen. Hvis partitionskolonnen "ID" f.eks. er angivet med den nedre grænse som 1 og den øvre grænse som 80, hvor parallel kopi er angivet som 4, henter tjenesten data efter 4 partitioner. Deres id'er er henholdsvis [1,20], [21, 40], [41, 60] og [61, 80]. |
Tip
Når du kopierer data fra en tabel, der ikke er partitioneret, kan du bruge partitionsindstillingen "Dynamisk område" til at partitionere mod en heltalskolonne. Hvis dine kildedata ikke har en sådan type kolonne, kan du udnytte ORA_HASH funktion i kildeforespørgslen til at generere en kolonne og bruge den som partitionskolonne.
Tabeloversigt
Følgende tabeller indeholder flere oplysninger om kopiaktiviteten i Oracle-databasen.
Kildeoplysninger
Navn | Beskrivelse | Værdi | Obligatorisk | JSON-scriptegenskab |
---|---|---|---|---|
Forbindelse | Din forbindelse til kildedatalageret. | <din Oracle-databaseforbindelse> | Ja | forbindelse |
Brug forespørgsel | Måden at læse data fra Oracle-database på. Anvend tabel til at læse data fra den angivne tabel, eller anvend Forespørgsel på at læse data ved hjælp af SQL-forespørgsler. | • Tabel • Forespørgsel |
Ja | / |
For tabel | ||||
skemanavn | Navnet på skemaet. | < dit skemanavn > | Nr. | skema |
tabelnavn | Navnet på tabellen. | < dit tabelnavn > | Nr. | table |
Til forespørgsel | ||||
Forespørgsel | Brug den brugerdefinerede SQL-forespørgsel til at læse data. Et eksempel er SELECT * FROM MyTable . Når du aktiverer partitioneret belastning, skal du tilslutte eventuelle tilsvarende indbyggede partitionsparametre i forespørgslen. Du kan se eksempler i afsnittet Parallel kopi fra Oracle-database . |
< SQL-forespørgsler > | Nr. | oracleReaderQuery |
Partitionsindstilling | De indstillinger for datapartitionering, der bruges til at indlæse data fra Oracle-database. | • Ingen (standard) • Fysiske partitioner i tabellen • Dynamisk område |
Nr. | / |
Til fysiske partitioner i tabellen | ||||
Partitionsnavne | Listen over fysiske partitioner, der skal kopieres. Hvis du bruger en forespørgsel til at hente kildedataene, skal du koble ?DfTabularPartitionName til WHERE-delsætningen. |
< dine partitionsnavne > | Nr. | partitionNames |
For Dynamisk område | ||||
Navn på partitionskolonne | Angiv navnet på kildekolonnen i heltalstypen , der skal bruges til områdepartitionering til parallel kopiering. Hvis den ikke er angivet, registreres tabellens primære nøgle automatisk, og den bruges som partitionskolonne. Hvis du bruger en forespørgsel til at hente kildedataene, skal du koble ?DfRangePartitionColumnName til WHERE-delsætningen. Du kan se et eksempel i afsnittet Parallel kopi fra Oracle-database . |
< navne på partitionskolonner > | Nr. | partitionColumnName |
Partition, øvre grænse | Angiv den maksimale værdi for den partitionskolonne, der skal kopieres data ud. Hvis du bruger en forespørgsel til at hente kildedataene, skal du koble ?DfRangePartitionUpbound til WHERE-delsætningen. Du kan se et eksempel i afsnittet Parallel kopi fra parallel kopi fra Oracle-database . |
< overbunden partition > | Nr. | partitionUpperBound |
Partition med nedre grænse | Angiv minimumværdien for den partitionskolonne, der skal kopieres data ud. Hvis du bruger en forespørgsel til at hente kildedataene, skal du koble ?DfRangePartitionLowbound til WHERE-delsætningen. Du kan se et eksempel i afsnittet Parallel kopi fra parallel kopi fra Oracle-database . |
< din nedre grænse for partition > | Nr. | partitionLowerBound |
Timeout for forespørgsel | Timeout for udførelse af forespørgselskommando er som standard 120 minutter. | timespan | Nr. | queryTimeout |
Flere kolonner | Tilføj yderligere 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 |
Destinationsoplysninger
Navn | Beskrivelse | Værdi | Obligatorisk | JSON-scriptegenskab |
---|---|---|---|---|
Forbindelse | Din forbindelse til destinationsdatalageret. | <din Oracle-databaseforbindelse> | Ja | forbindelse |
Tabel | Din destinationsdatatabel. | <navnet på destinationstabellen> | Ja | / |
skemanavn | Navnet på skemaet. | < dit skemanavn > | Ja | skema |
tabelnavn | Navnet på tabellen. | < dit tabelnavn > | Ja | table |
Forudkopieringsscript | En SQL-forespørgsel for den kopiaktivitet, der skal udføres, før du skriver data til Oracle-databasen i hver kørsel. Du kan bruge denne egenskab til at rydde op i forudindlæste data. | < dit script til forhåndskopiering > | Nr. | preCopyScript |
Timeout for skrivning af batch | Ventetiden for, at batchindsætningshandlingen fuldføres, før der udløber timeout. | timespan | Nr. | writeBatchTimeout |
Skriv batchstørrelse | Det antal rækker, der skal indsættes i SQL-tabellen pr. batch. | integer (standarden er 10.000) |
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. | < maks. antal samtidige forbindelser > | Nr. | maxConcurrentConnections |