sql >> Database >  >> RDS >> PostgreSQL

De beste ETL-tools voor migratie naar PostgreSQL

Wat is ETL?

ETL verwijst naar Extract, Transform and Load, het is een proces van drie stappen dat wordt toegepast om de gegevens uit verschillende bronnen (die in verschillende vormen kunnen bestaan) te extraheren, op te schonen en in een doeldatabase te laden voor analyse. ETL is een populair proces in de wereld van datawarehousing, waarbij gegevens uit verschillende gegevensbronnen worden geïntegreerd en in een doeldatabase worden geladen voor het uitvoeren van analyses en rapportage voor bedrijven. In eenvoudige kerntermen wordt ETL gebruikt om de gegevens uit een gegevensbron zoals een database of een bestand te extraheren en vervolgens opgeschoond, getransformeerd volgens de zakelijke vereisten en vervolgens in de doeldatabase te laden.

Het ETL-proces bestaat in de vorm van verschillende tools. Er zijn nogal wat populaire ETL-tools die op grote schaal door bedrijven worden gebruikt om aan verschillende vereisten voor gegevensmigratie te voldoen. Hoewel deze tools bestaan, is er geen garantie dat er meteen aan de vereisten voor gegevensmigratie wordt voldaan. Daarom kiezen DBA's en ontwikkelaars er vaak voor om aangepaste ETL's te bouwen om complexe uitdagingen op het gebied van gegevensmigratie in realtime aan te pakken.

Waarom ETL?

Wanneer gegevensmigratie vereist is, is het eerste waar DBA's of ontwikkelaars naar zoeken een ETL-tool. Gegevens kunnen in verschillende vormen voorkomen; in RDBMS-database, platte bestanden, CSV's enz., en de vereiste zou zijn om al deze gegevens te migreren, te integreren in een enkele database of als de doeldatabase anders is, zou het gegevenstransformatieproces van cruciaal belang worden. Deze uitdagingen kunnen worden aangepakt door ETL-tools die kosten en bedrijfstijd kunnen besparen. In de wereld van vandaag kan het ontbreken van ETL-specifieke tools organisaties aanzienlijke ontwikkelingsinspanningen en geld kosten om een ​​efficiënt geautomatiseerd proces voor gegevensmigratie te bouwen. Dankzij de open source-wereld zijn er enkele populaire open source ETL-tools die complexe uitdagingen op het gebied van realtime gegevensmigratie kunnen aanpakken.

Hoewel er verschillende redenen zijn om de gegevens te migreren, wil ik me concentreren op twee typische vereisten voor gegevensmigratie...

  • Migreer de gegevens uit verschillende bronnen (database, platte bestanden en CSV's) naar één enkele database in een datawarehousing-omgeving, vermoedelijk een open source-database die de TCO voor het bouwen van de DWH-omgevingen. Dit zou een haalbare optie zijn, aangezien de realtime-applicaties de bestaande commerciële databases zullen gebruiken en het DWH de gegevens zal hosten op een open-sourcedatabase
  • Migreer de real-time databases en applicaties van commerciële databases naar open source databases zoals PostgreSQL voor veel lagere kosten van gegevensbewerkingen voor bedrijven.

Mijn focus in deze blog zou zijn om ETL-tools te identificeren die kunnen helpen bij het uitvoeren van gegevensmigraties naar de PostgreSQL-database.

Waarom migreren naar PostgreSQL?

PostgreSQL is een feature-rijke, enterprise class, open source database. Dit is de eerste optie die bedrijven kiezen voor hun verschillende realtime dataverwerkingsvereisten en heeft implementaties in verschillende missiekritieke omgevingen. Na het realiseren van het potentieel van deze zeer betrouwbare en efficiënte RDBMS-database, kiezen steeds meer bedrijven ervoor om hun databases en applicaties ernaar te migreren. Het migreren van de bestaande databases naar PostgreSQL brengt aanzienlijke verlagingen van de IT-kosten met zich mee, waardoor "Migratie naar PostgreSQL" tegenwoordig een vrij veel voorkomende vereiste is en er de vereiste voor gegevensmigratie komt, en dat is waar de jacht naar een ETL-tool begint.

Zoals hierboven vermeld, bestaan ​​er nogal wat commerciële en open-source ETL-tools en vrijwel alle tools ondersteunen PostgreSQL.

Download de whitepaper vandaag PostgreSQL-beheer en -automatisering met ClusterControlLees wat u moet weten om PostgreSQL te implementeren, bewaken, beheren en schalenDownload de whitepaper

Wat zijn de beste ETL-tools?

Ora2pg

Ora2pg is DE OPTIE als u van plan bent de gegevens van de Oracle-database naar PostgreSQL te migreren. Het is een op Perl gebaseerde open source-tool die speciaal is ontwikkeld om schema's, gegevens van Oracle-databases naar PostgreSQL te migreren en begrijpt beide databases zeer goed en kan gegevens van elke grootte migreren. Het migreren van grotere objecten kan duur zijn in termen van tijd en hardware.

Pluspunten: Ora2pg is een zeer populaire tool die wordt gebruikt voor het specifiek migreren van Oracle-databases naar PostgreSQL. Ondersteunt Windows- en Linux-besturingssystemen en gebruikt een tekstuele interface. Deze tool begrijpt beide databases heel goed en is redelijk betrouwbaar vanuit functionaliteitsperspectief. Toen we gegevens migreerden in een productieomgeving, resulteerde de oefening in gegevensanalyse (of gegevenssanity) in "0" gegevensgebreken, wat vrij opmerkelijk is. Behoorlijk efficiënt bij het migreren van gegevenstypen zoals datum/tijdstempel en grote objecten. Eenvoudig taken plannen via shellscript op de achtergrond. De reactie van de ontwikkelaar op eventuele problemen met github is goed.

Nadelen: De installatieprocedure van Ora2pg, inclusief het installeren van Perl-modules, Oracle- en Postgres-clients, kan een complexe aangelegenheid worden, afhankelijk van de OS-versie en zelfs nog complexer wanneer hetzelfde wordt gedaan op Windows OS. Er kunnen aanzienlijke prestatie-uitdagingen zijn bij het migreren van grote tabellen met parallelle "grote objecten" (dit betekent één ora2pg-taak met meerdere threads), wat kan leiden tot een aanzienlijke wijziging van de strategie voor gegevensmigratie.

Talend

Talend is een zeer populaire ETL-tool die wordt gebruikt om gegevens van elke bron (database of bestand) naar elke database te migreren. Deze tool ondersteunt de PostgreSQL-database en veel bedrijven gebruiken deze tool om gegevens naar PostgreSQL te migreren. Er zijn zowel commerciële als open-sourceversies van deze tool en de open-sourceversie zou nuttig moeten zijn voor gegevensmigraties.

Pluspunten: Talend is een op Java gebaseerde ETL-tool die wordt gebruikt voor data-integraties en ondersteunt PostgreSQL. Een eenvoudig te installeren tool wordt geleverd met een GUI met zowel open-source als commerciële versies. Kan draaien op elk platform dat Java ondersteunt. Ontwikkelaars kunnen Java-code op maat schrijven die in Talend kan worden geïntegreerd. Het is niet erg als u een ontwikkelaar of een DBA moet instrueren om deze tool te gebruiken om de gegevens naar PostgreSQL te migreren. Kan gegevens uit meerdere bronnen migreren of integreren, zoals een database of een bestand.

Nadelen: Het plannen van taken kan een uitdaging zijn. Kan meestal worden gebruikt om tabellen van redelijke grootte te migreren met niet veel optimalisatie-opties voor prestatieverbetering. Het is misschien geen goede optie om tabellen van grote afmetingen met miljoenen rijen te migreren. Kan fundamentele operationele uitdagingen met zich meebrengen. Heeft Java-expertise nodig om met deze tool om te gaan, vooral bij het integreren van de aangepaste code. Het is niet gemakkelijk om binnen korte tijd comfortniveaus te bereiken op dit gereedschap. Het is niet mogelijk om de gegevensmigratietaken te scripten en te plannen.

SQLINES

Sqlines is een andere open-source ETL-tool die de gegevens van en naar elke database kan migreren. Dit is een andere goede optie om gegevens te migreren naar PostgreSQL-databases vanuit vrijwel elke commerciële of open source-database. Ik ben persoonlijk onder de indruk van deze tool. Het is ontwikkeld met behulp van C/C++ en is heel eenvoudig te gebruiken zonder ingewikkeldheden rond het installatieproces (download en untar het installatieprogramma en je bent klaar!). Aangezien dit een op C/C++ gebaseerde tool is, kunnen er grote prestatiewinsten zijn bij het migreren van grote databases. Ik zou zeggen dat deze tool in ontwikkeling is en dat de abonnementskosten voor de ondersteuning zeer redelijk zijn.

Pluspunten: Zoals hierboven vermeld, ben ik onder de indruk van het feit dat deze tool is gebouwd op basis van C/C++, wat een enorm pluspunt is. Vrij eenvoudig en eenvoudig te installeren en in te stellen. Gebruikt een tekstuele interface die het heel eenvoudig maakt om taken te plannen via bash-scripts. Kan grote datavolumes aan. Ondersteuning van de ontwikkelaars is goed tegen een zeer redelijke prijs. Ontwikkelaars staan ​​open om uw ideeën over te nemen en te implementeren, wat het een nog betere optie maakt.

Nadelen: Niet veel mensen kennen deze tool en het is in ontwikkeling. Er zijn niet veel configuratie-opties om te spelen. Er is een manier om deze tool concurrerend te maken, wat niet ver weg is. U kunt tegen elementaire operationele uitdagingen aanlopen.

Pentaho

Pentaho is een andere tool voor gegevensmigratie en -integratie die opnieuw commerciële en open-sourceversies heeft die gegevens van elke gegevensbron naar elke database kunnen migreren. Dit is ook een optie om gegevens naar PostgreSQL te migreren. Deze tool ondersteunt een breed scala aan databases en werkt ook op een grotere ruimte met mogelijkheden voor gegevensvisualisatie.

Pluspunten: Pentaho is een op Java gebaseerde tool, het werkt in GUI-modus en kan draaien op besturingssystemen zoals Windows, Unix en Linux. Werkt op een veel grotere ruimte en is erg goed in datatransformatie en visualisatiedoeleinden. Zoals hierboven vermeld, ondersteunt een breed scala aan gegevensopslag.

Nadelen: is geen eenvoudig hulpmiddel dat alleen gegevens kan extraheren en deze in de doeldatabase kan laden. Het gegevensmigratieproces kan complex en tijdrovend zijn. Veel aandacht voor datatransformatie, opschoning, integratie en visualisatie. De tool is geen goede keuze om alleen gegevens van de ene database naar de andere te migreren zonder enige gegevenstransformatie of opschoningsoefeningen. Prestaties kunnen een uitdaging zijn bij het migreren van grote datavolumes.

Op maat gemaakte ETL: Het is niet overdreven om te zeggen dat aangepaste ETL's een van de meest gebruikelijke manieren zijn om een ​​end-to-end efficiënt en zeer performant ETL-proces te realiseren. DBA's, ontwikkelaars die in deze situatie terechtkomen, is geen verrassing. Het zou voor een enkele ETL onmogelijk zijn om de gegevenscomplexiteit, gegevensvorm en milieu-uitdagingen te begrijpen. Voorbeeld:wanneer u gegevens uit meerdere verschillende databases in een datacenter met complexe gegevensmodellen migreert naar een PostgreSQL-database die wordt gehost in een ander datacenter of openbare cloud. In zo'n situatie kan de jacht op de beste ETL eindigen in een wilde achtervolging. Dus kiezen voor aangepaste ETL is de juiste keuze als u een omgevingsspecifiek en gegevensspecifiek ETL-proces wilt bouwen.

Pluspunten: Een zeer goed alternatief voor organisaties met complexe omgevingen en complexe data waarin het gewoonweg niet mogelijk is om een ​​ETL te vinden die al uw datamigratieproblemen aanpakt. Kan zeer gunstig zijn in termen van functionaliteit en prestaties. Kan tijd en kosten besparen als het gaat om het oplossen van bugs en defecten in de tool. Kritieke, complexe en zwaar gebonden ETL-bewerkingen kunnen zeer performant en betrouwbaar worden gemaakt, aangezien de ontwikkelaars volledige controle over de tool hebben. Flexibiliteit kent geen grenzen. Is een goede optie wanneer u naar mogelijkheden kijkt die verder gaan dan ETL-tools en elk niveau van complexiteit aankan. Als je technologieën zoals Java of Python hebt gekozen om aangepaste ETL te bouwen, passen ze heel goed bij PostgreSQL.

Nadelen: Het bouwen van een aangepaste ETL kan extreem tijdrovend zijn. Aanzienlijke ontwerp- en ontwikkelingsinspanningen zijn vereist om alle vereisten voor gegevensmigratie en andere gegevensuitdagingen aan te pakken. Hieronder vindt u enkele van de uitdagingen waarmee aangepaste ETL's het hoofd moeten bieden, en die aanzienlijke ontwikkelingsinspanningen en tijd voor verbeteringen kunnen vergen:

  • Omgevingsveranderingen
  • Infrastructuur- en databasearchitectuurwijzigingen die van invloed zijn op ETL-operaties
  • Gegevenstype wijzigingen
  • Gegevensvolumegroei die een aanzienlijke invloed heeft op de prestaties van gegevensmigratie
  • Schemastructuur of ontwerpwijzigingen
  • Elke kritieke codewijziging in de ETL moet worden onderworpen aan ontwikkeling en testen voordat deze in productie gaat, dit kan veel tijd in beslag nemen

Over het algemeen worden ETL-ontwikkelingen niet beschouwd als het kritieke onderdeel van het projectbudget, aangezien ze geen deel uitmaken van reguliere bedrijfsapplicaties of het ontwikkelingsproces van databases. Het is geen verrassing als bedrijven er niet voor kiezen om een ​​op maat gemaakte ETL te bouwen, aangezien er uitdagingen op het gebied van budget, middelen of tijd opduiken.

Wat is de beste ETL-tool?

Nou, er is geen eenduidig ​​antwoord. Het hangt allemaal af van uw wensen en de omgeving. Het kiezen van een ETL voor het migreren van gegevens naar PostgreSQL is afhankelijk van verschillende factoren. U moet de factoren begrijpen die van invloed zijn op gegevensmigratie. Hieronder staan ​​de meeste...

  • Begrijp je gegevens
  • Complexiteit van de gegevens
  • Gegevenstypen
  • Gegevensbron
  • Gegevensgrootte
  • Hoe zijn de brongegevens? in een databank? in een plat bestand? Gestructureerd of ongestructureerd? enz.. enz..
  • Welke stappen omvat uw datamigratie-oefening? Uw verwachtingen van de tool.

Als u het bovenstaande kent, zult u bijna in staat zijn om een ​​ETL-tool te kiezen. Door de bovenstaande factoren te analyseren, kunt u de kenmerken en mogelijkheden van elke ETL-tool evalueren. Technische experts die gegevensmigratie uitvoeren, kijken over het algemeen naar een ETL-tool die efficiënt, flexibel en zeer performant is.

Aan het eind van de dag is het geen verrassing als je uiteindelijk meerdere ETL-tools selecteert of zelfs zelf een aangepaste tool ontwikkelt.

Om eerlijk te zijn, is het moeilijk om slechts één ETL-tool aan te bevelen zonder uw gegevensvereisten te kennen. In plaats daarvan zou ik willen voorstellen dat een tool de volgende kenmerken moet hebben om een ​​efficiënt en goed presterend gegevensmigratieproces te ontwerpen...

  • Moet een tekstuele interface gebruiken met voldoende configuratie-opties
  • Moet grote hoeveelheden gegevens efficiënt kunnen migreren door effectief gebruik te maken van meerdere CPU's en het geheugen
  • Het zou goed zijn als de tool op meerdere besturingssystemen kan worden geïnstalleerd. Sommige PostgreSQL-specifieke tools ondersteunen alleen Windows, wat voor uitdagingen kan zorgen vanuit het oogpunt van kosten, efficiëntie en prestaties
  • Moet de brongegevens en de doeldatabase kunnen begrijpen
  • Moet flexibele configuratie-opties hebben met voldoende controle om de tool in een bash- of python-script te pluggen, meerdere taken tegelijk aan te passen en te plannen
  • Er moet een optimaal testproces worden ontworpen om de gegevensmigratiemogelijkheden van de tool te begrijpen

Er zijn GUI-tools die eenvoudig zijn in te stellen en de gegevens met één klik te migreren. Deze tools zijn goed voor het migreren van gegevens van redelijke omvang in een niet-cloudomgeving en zijn sterk afhankelijk van infrastructuur en hardwarecapaciteit. Er zullen niet veel andere opties zijn dan het vergroten van de infracapaciteit voor snellere gegevensmigratie en opties voor het uitvoeren van meerdere taken zijn ook somber.

Bij het migreren van data naar PostgreSQL zou ik gaan kijken naar Talend of SQLines. Als ik de gegevens van Oracle moet migreren, zou ik naar Ora2pg kijken.


  1. SQL:wat is de standaardvolgorde van query's?

  2. GROUP_CONCAT() Functie in MySQL

  3. SQL Server:Tabel Meta-Data extraheren (beschrijving, velden en hun datatypes)

  4. Diadekken en voorbeelden van #SQLintersection