sql >> Database teknologi >  >> RDS >> PostgreSQL

De bedste ETL-værktøjer til migrering til PostgreSQL

Hvad er ETL?

ETL refererer til Extract, Transform and Load, det er en 3-trins proces, der anvendes til at udtrække data fra forskellige kilder (som kan eksistere i forskellige former), rense og indlæse i en måldatabase til analyse. ETL er en populær proces i data warehousing-verdenen, hvor data fra forskellige datakilder integreres og indlæses i en måldatabase til udførelse af analyser og rapportering for erhvervslivet. I enkle kernetermer bruges ETL til at udtrække data fra en datakilde som en database eller en fil og derefter renset, transformeret i henhold til forretningskravene og derefter indlæst i måldatabasen.

ETL-processen eksisterer i form af forskellige værktøjer. Der er en del populære ETL-værktøjer derude, som er meget brugt af virksomheder til at imødekomme forskellige datamigreringskrav. Selvom disse værktøjer findes, er der ingen garanti for, at datamigreringskravene vil blive opfyldt med det samme, hvilket er grunden til, at DBA'er og udviklere ofte vælger at bygge tilpassede ETL'er for at klare komplekse datamigreringsudfordringer i realtid.

Hvorfor ETL?

Når der er et krav om datamigrering, er den første ting, som DBA'er eller udviklere kigger efter, et ETL-værktøj. Data kan eksistere i forskellige former; i RDBMS-database, flade filer, CSV'er osv., og kravet ville være at migrere, integrere alle disse data i en enkelt database, eller hvis måldatabasen er anderledes, ville datatransformationsprocessen blive kritisk. Disse udfordringer kan løses med ETL-værktøjer, som kan spare omkostninger og forretningstid. I dagens verden kan manglen på ETL-specifikke værktøjer koste organisationer betydelig udviklingsindsats og penge til at bygge en effektiv automatiseret proces til datamigrering. Takket være open source-verdenen er der nogle populære open source ETL-værktøjer, som kan løse komplekse datamigreringsudfordringer i realtid.

Selvom der er forskellige grunde til at migrere dataene, vil jeg gerne fokusere på to typiske krav til datamigrering...

  • Migrer dataene fra forskellige kilder (database, flade filer og CSV'er) til én enkelt database i et data warehousing-miljø, formentlig en open source-database, hvilket vil reducere TCO'en for opbygning af DWH-miljøer. Dette ville være en levedygtig mulighed, da realtidsapplikationerne vil bruge de eksisterende kommercielle databaser, og DWH vil være vært for dataene på en open source-database
  • Migrer realtidsdatabaserne og applikationerne fra kommercielle databaser til open source-databaser som PostgreSQL for meget lavere omkostninger til datadrift for virksomheder.

Mit fokus i denne blog vil være at identificere ETL-værktøjer, som kan hjælpe med at udføre datamigreringer til PostgreSQL-databasen.

Hvorfor migrere til PostgreSQL?

PostgreSQL er en funktionsrig, open source-database i virksomhedsklassen, som er den første mulighed, virksomheder vælger deres forskellige realtidsdatadriftskrav og har implementeringer på tværs af forskellige missionskritiske miljøer. Efter at have indset potentialet i denne yderst pålidelige og effektive RDBMS-database, vælger flere og flere virksomheder at migrere deres databaser og applikationer til den. Migrering af de eksisterende databaser til PostgreSQL medfører betydelige reduktioner i it-omkostninger på grund af, at "Migrationer til PostgreSQL" er et ganske almindeligt krav i disse dage, og der kommer kravet om datamigrering, hvilket er der, hvor jagten på et ETL-værktøj begynder.

Som nævnt ovenfor findes der en hel del kommercielle og open source ETL-værktøjer, og stort set alle værktøjerne understøtter PostgreSQL.

Download Whitepaper Today PostgreSQL Management &Automation med ClusterControlFå flere oplysninger om, hvad du skal vide for at implementere, overvåge, administrere og skalere PostgreSQLDownload Whitepaper

Hvad er de bedste ETL-værktøjer?

Ora2pg

Ora2pg er MULIGHEDEN, hvis du har til hensigt at migrere dataene fra Oracle-databasen til PostgreSQL. Det er et Perl-baseret open source-værktøj specielt udviklet til at migrere skema, data fra Oracle-databaser til PostgreSQL og forstår begge databaser meget godt og kan migrere data i enhver størrelse. Migrering af større objekter kan være dyrt med hensyn til tid og hardware.

Fordele: Ora2pg er et meget populært værktøj, der bruges til specifikt at migrere Oracle-databaser til PostgreSQL. Understøtter Windows- og Linux-operativsystemer og bruger tekstgrænseflade. Dette værktøj forstår begge databaser meget godt og er ret pålideligt set ud fra funktionalitetsperspektiv. Da vi migrerede data i et produktionsmiljø, resulterede dataanalysen (eller datasundhedsøvelsen) i "0" datafejl, hvilket er ret bemærkelsesværdigt. Temmelig effektiv til at migrere datatyper som dato/tidsstempel og store objekter. Nemt at planlægge jobs via shell-script i baggrunden. Udviklerens svar på eventuelle problemer på github er godt.

Udemper: Ora2pgs installationsprocedure, som inkluderer installation af Perl-moduler, Oracle- og Postgres-klienter, kan blive en kompleks affære afhængigt af OS-versionen og endnu mere kompleks, når man gør det samme på Windows OS. Der kan være betydelige ydeevneudfordringer ved migrering af store tabeller med "Store objekter" parallelt (dette betyder ét ora2pg-job med flere tråde), hvilket kan føre til betydelige datamigreringsstrategiændringer.

Talent

Talend er et meget populært ETL-værktøj, der bruges til at migrere data fra enhver kilde (database eller fil) til enhver database. Dette værktøj understøtter PostgreSQL-databasen, og mange virksomheder bruger dette værktøj til at migrere data til PostgreSQL. Der er både kommercielle og open source-versioner af dette værktøj, og open source-versionen burde være nyttig til datamigreringer.

Fordele: Talend er et java-baseret ETL-værktøj, der bruges til dataintegrationer og understøtter PostgreSQL. Et let at installere værktøj kommer med en GUI med både open source og kommercielle versioner. Kan køre på enhver platform, der understøtter Java. Udviklere kan skrive tilpasset Java-kode, som kan integreres i Talend. Det er ikke noget problem, hvis du skal instruere en udvikler eller en DBA i at bruge dette værktøj til at migrere dataene til PostgreSQL. Kan migrere eller integrere data fra flere kilder som en database eller en fil.

Udemper: At planlægge job kan være en udfordring. Kan for det meste bruges til at migrere tabeller af rimelig størrelse med ikke mange optimeringsmuligheder omkring ydeevneforbedring. Det er måske ikke en god mulighed for at migrere store tabeller med millioner af rækker. Kan medføre grundlæggende operationelle udfordringer. Har brug for Java-ekspertise til at håndtere dette værktøj, især når den tilpassede kode integreres. Ikke let at opnå komfortniveauer på dette værktøj på kort tid. Det er ikke muligt at scripte og planlægge datamigreringsopgaverne.

SQLINES

Sqlines er et andet open source ETL-værktøj, som kan migrere dataene til og fra enhver database. Dette er en anden god mulighed for at migrere data til PostgreSQL-databaser fra stort set enhver kommerciel eller open source-database. Jeg er personligt imponeret over dette værktøj. Den er udviklet ved hjælp af C/C++ og er meget enkel at bruge uden kompleksitet omkring installationsprocessen (bare download og fjern installationsprogrammet, og du er færdig!). Da dette er et C/C++-baseret værktøj, kan der være store præstationsgevinster ved migrering af store databaser. Jeg vil sige, at dette værktøj er under udvikling, og at abonnementsomkostningerne for supporten er meget rimelige.

Fordele: Som nævnt ovenfor er jeg imponeret over, at dette værktøj er bygget baseret på C/C++, hvilket er et kæmpe plus. Ganske nem og enkel at installere og sætte op. Bruger tekstgrænseflade, som gør det virkelig nemt at planlægge job via bash-scripts. Kan håndtere store datamængder. Support fra udviklerne er god til en meget rimelig pris. Udviklere er åbne for at tage dine ideer og implementere, hvilket gør det til en endnu bedre mulighed.

Udemper: Ikke mange mennesker kender til dette værktøj, og det er under udvikling. Der er ikke mange konfigurationsmuligheder at spille rundt. Der er et stykke vej at gå, før dette værktøj bliver konkurrencedygtigt, hvilket ikke er langt væk. Du kan løbe ind i grundlæggende operationelle udfordringer.

Pentaho

Pentaho er et andet datamigrerings- og integrationsværktøj, som igen har kommercielle og open source-versioner, som kan migrere data fra enhver datakilde til enhver database. Dette er også en mulighed for at migrere data til PostgreSQL. Dette værktøj understøtter en bred vifte af databaser og fungerer på et større område med datavisualiseringsfunktioner.

Fordele: Pentaho er et Java-baseret værktøj, det fungerer i GUI-tilstand og kan køre på operativsystemer som Windows, Unix og Linux. Fungerer på et meget større rum og er meget god til datatransformation og visualiseringsformål. Som nævnt ovenfor, understøtter en bred vifte af datalagre.

Udemper: er ikke et simpelt værktøj, som bare kan udtrække data og indlæse det samme i måldatabasen. Datamigreringsprocessen kan være kompleks og tidskrævende. Stærkt fokus på datatransformation, oprensning, integration og visualisering. Værktøjet er ikke et godt valg til bare at migrere data fra en database til en anden database uden nogen datatransformationer eller renseøvelser. Ydeevne kan være en udfordring ved migrering af store datamængder.

Tilpasset ETL: Det er ikke en overdrivelse at sige, at brugerdefinerede ETL'er er en af ​​de mest almindelige måder at opnå en end-to-end effektiv og højtydende ETL-proces på. DBA'er, udviklere, der lander i denne situation, er ikke en overraskelse. Det ville være umuligt for en enkelt ETL at forstå datakompleksiteten, dataformen og miljømæssige udfordringer. Eksempel:Når du migrerer data fra flere forskellige databaser i et datacenter med komplekse datamodeller til en PostgreSQL-database, der hostes i et andet datacenter eller offentlig sky. I en sådan situation kan bare jagten på den bedste ETL ende i en vild jagt. Så at gå efter tilpasset ETL er vejen at gå, hvis du skal bygge en miljøspecifik og dataspecifik ETL-proces.

Fordele: Et meget godt alternativ til organisationer med komplekse miljøer og komplekse data, hvor det bare ikke er muligt at finde en ETL, der adresserer alle dine datamigreringsproblemer. Kan være meget fordelagtig i forhold til funktionalitet og ydeevne. Kan reducere tid og omkostninger, når det kommer til at rette fejl og defekter i værktøjet. Kritiske, komplekse og tunge bundne ETL-operationer kan gøres yderst effektive og pålidelige, da udviklerne har fuld kontrol over værktøjet. Fleksibilitet har ingen grænser. Er en god mulighed, når du ser på muligheder ud over ETL-værktøjer og kan adressere ethvert kompleksitetsniveau. Hvis du vælger teknologier som Java eller Python til at bygge brugerdefineret ETL, passer de meget godt sammen med PostgreSQL.

Udemper: Det kan være ekstremt tidskrævende at bygge en brugerdefineret ETL. Der kræves en betydelig design- og udviklingsindsats for at løse alle datamigreringskrav og andre dataudfordringer. Nedenfor er nogle af de udfordringer, som tilpassede ETL'er skal holde trit med, hvilket kan kræve betydelig udviklingsindsats og tid til forbedringer:

  • Miljøændringer
  • Infrastruktur- og databasearkitektoniske ændringer, der påvirker ETL-drift
  • Datatypeændringer
  • Vækst i datavolumen, som markant påvirker datamigreringsydelsen
  • Skemastruktur eller designændringer
  • Enhver kritisk kodeændring til ETL'en skal underkastes udvikling og test, før den går i produktion, dette kan tage betydelig tid

Generelt betragtes ETL-udviklinger ikke som den kritiske del af projektbudgettet, da de ikke er en del af almindelige forretningsapplikationer eller databaseudviklingsprocesser. Det er ikke en overraskelse, hvis virksomheder ikke vælger at bygge en tilpasset ETL, da budget-, ressource- eller tidsudfordringer dukker op.

Hvad er det bedste ETL-værktøj?

Nå, der er ikke noget ligetil svar. Det hele afhænger af dine krav og miljøet. At vælge en ETL til migrering af data til PostgreSQL afhænger af forskellige faktorer, du bliver nødt til at forstå de faktorer, der påvirker datamigrering. Nedenfor er de fleste af dem...

  • Forstå dine data
  • Kompleksiteten af ​​dataene
  • Datatyper
  • Datakilde
  • Datastørrelse
  • Hvordan er kildedataene? i en database? i en flad fil? Struktureret eller ustruktureret? osv.. osv..
  • Hvilke trin vil din datamigreringsøvelse indebære? Dine forventninger til værktøjet.

Hvis du kender ovenstående, vil du næsten være i stand til at vælge et ETL-værktøj. At analysere ovenstående faktorer vil hjælpe dig med at evaluere egenskaberne og mulighederne for hvert ETL-værktøj. Tekniske eksperter, der udfører datamigrering, vil generelt se på et ETL-værktøj, som er effektivt, fleksibelt og yderst ydende.

I slutningen af ​​dagen er det ikke en overraskelse, hvis du ender med at vælge flere ETL-værktøjer eller endda ender med at udvikle et tilpasset værktøj selv.

For at være ærlig er det svært at anbefale kun ét ETL-værktøj uden at kende dine datakrav. I stedet vil jeg foreslå, at et værktøj skal have følgende egenskaber til at designe en effektiv og yderst ydende datamigreringsproces...

  • Skal bruge tekstgrænseflade med nok konfigurationsmuligheder
  • Skal være i stand til at migrere store mængder data effektivt ved effektivt at bruge flere CPU'er og hukommelsen
  • Det ville være godt, hvis værktøjet kan installeres på tværs af flere operativsystemer. Nogle PostgreSQL-specifikke værktøjer understøtter kun Windows, som kan udgøre udfordringer ud fra omkostninger, effektivitet og ydeevne
  • Skal kunne forstå kildedataene og måldatabasen
  • Skal have fleksible konfigurationsmuligheder med tilstrækkelig kontrol til at tilslutte værktøjet til et bash- eller python-script, tilpasse og planlægge flere job parallelt
  • Der skal designes en optimal testproces for at forstå værktøjets datamigreringsmuligheder

Der er GUI-værktøjer derude, som er nemme at konfigurere og migrere dataene med et enkelt klik. Disse værktøjer er gode til at migrere data af rimelig størrelse i et ikke-skymiljø og er meget afhængige af infrastruktur og hardwarekapacitet. Der vil ikke være mange andre muligheder end at øge infra-kapaciteten til hurtigere datamigrering, og mulighederne for at køre flere job er også dystre.

Når jeg migrerede data til PostgreSQL, ville jeg begynde at se på Talend eller SQLines. Hvis jeg har brug for at migrere dataene fra Oracle, så ville jeg se på Ora2pg.


  1. MySQL versus MariaDB

  2. Sådan overvåger du MySQL-containere med Prometheus - Implementering på Standalone og Swarm::Første del

  3. mySQL DataSource på Visual Studio 2012

  4. MySQL Indsæt fra en database i en anden