Vad är ETL?
ETL hänvisar till extrahera, transformera och ladda, det är en 3-stegsprocess som används för att extrahera data från olika källor (som kan existera i olika former), rensa och ladda in i en måldatabas för analys. ETL är en populär process inom datalagervärlden där data från olika datakällor integreras och laddas in i en måldatabas för att utföra analyser och rapportering för företag. Enkelt uttryckt används ETL för att extrahera data från en datakälla som en databas eller en fil och sedan rengöras, transformeras enligt affärskraven och sedan laddas in i måldatabasen.
ETL-processen finns i form av olika verktyg. Det finns en hel del populära ETL-verktyg där ute som ofta används av företag för att hantera olika datamigreringskrav. Även om dessa verktyg finns finns det ingen garanti för att datamigreringskraven kommer att uppfyllas direkt, vilket är anledningen till att DBA:er och utvecklare ofta väljer att bygga anpassade ETL:er för att klara komplexa datamigreringsutmaningar i realtid.
Varför ETL?
Närhelst det finns ett krav på datamigrering är det första som DBA:er eller utvecklare letar efter ett ETL-verktyg. Data kan finnas i olika former; i RDBMS-databas, platta filer, CSV:er etc., och kravet skulle vara att migrera, integrera all denna data i en enda databas eller om måldatabasen är annorlunda, skulle datatransformationsprocessen bli kritisk. Dessa utmaningar kan lösas med ETL-verktyg som kan spara kostnader och affärstid. I dagens värld kan bristen på ETL-specifika verktyg kosta organisationer betydande utvecklingsansträngningar och pengar för att bygga en effektiv automatiserad process för datamigrering. Tack vare världen med öppen källkod finns det några populära ETL-verktyg med öppen källkod som kan hantera komplexa datamigreringsutmaningar i realtid.
Även om det finns olika anledningar till att migrera data, skulle jag vilja fokusera på två typiska krav för datamigrering...
- Migrera data från olika källor (databas, platta filer och CSV:er) till en enda databas i en datalagermiljö, förmodligen en databas med öppen källkod, vilket avsevärt skulle minska TCO:n för att bygga DWH-miljöer. Detta skulle vara ett genomförbart alternativ eftersom realtidsapplikationerna kommer att använda de befintliga kommersiella databaserna och DWH kommer att vara värd för data i en öppen källkodsdatabas
- Migrera bort realtidsdatabaserna och applikationerna från kommersiella databaser till databaser med öppen källkod som PostgreSQL för mycket lägre kostnad för datadrift för företag.
Mitt fokus i den här bloggen skulle vara att identifiera ETL-verktyg som kan hjälpa till att utföra datamigreringar till PostgreSQL-databasen.
Varför migrera till PostgreSQL?
PostgreSQL är en funktionsrik, företagsklass, öppen källkodsdatabas som är det första alternativet som företag väljer sina olika realtidsdatadriftskrav och har implementeringar i olika uppdragskritiska miljöer. Efter att ha insett potentialen i denna mycket pålitliga och effektiva RDBMS-databas, väljer fler och fler företag att migrera sina databaser och applikationer till den. Att migrera de befintliga databaserna till PostgreSQL ger avsevärda minskningar av IT-kostnader på grund av vilket "Migrationer till PostgreSQL" är ett ganska vanligt krav nuförtiden och det kommer kravet på datamigrering, vilket är där jakten på ett ETL-verktyg börjar.
Som nämnts ovan finns det ett stort antal kommersiella och öppen källkod ETL-verktyg som finns och i stort sett alla verktyg stöder PostgreSQL.
Ladda ner Whitepaper Today PostgreSQL Management &Automation med ClusterControlLäs om vad du behöver veta för att distribuera, övervaka, hantera och skala PostgreSQLDladda WhitepaperVilka är de bästa ETL-verktygen?
Ora2pg
Ora2pg är ALTERNATIVT om du tänker migrera data från Oracle-databasen till PostgreSQL. Det är ett Perl-baserat open source-verktyg speciellt utvecklat för att migrera schema, data från Oracle-databaser till PostgreSQL och förstår båda databaserna mycket väl och kan migrera data i alla storlekar. Att migrera större objekt kan vara dyrt i termer av tid och hårdvara.
Proffs: Ora2pg är ett mycket populärt verktyg som används för att specifikt migrera Oracle-databaser till PostgreSQL. Stöder Windows och Linux operativsystem och använder textgränssnitt. Detta verktyg förstår båda databaserna mycket väl och är ganska tillförlitligt ur funktionalitetsperspektiv. När vi migrerade data i en produktionsmiljö resulterade övningen för dataanalys (eller datasanity) i "0" datadefekter, vilket är ganska anmärkningsvärt. Ganska effektiv för att migrera datatyper som datum/tidsstämpel och stora objekt. Lätt att schemalägga jobb via skalskript i bakgrunden. Utvecklarens svar för eventuella problem på github är bra.
Nackdelar: Ora2pgs installationsprocedur, som inkluderar installation av Perl-moduler, Oracle- och Postgres-klienter, kan bli en komplex affär beroende på OS-versionen och ännu mer komplex när man gör samma sak på Windows OS. Det kan finnas betydande prestandautmaningar när man migrerar stora tabeller med "Stora objekt" parallellt (detta innebär ett ora2pg-jobb med flera trådar) vilket kan leda till betydande förändringar i datamigreringsstrategin.
Talang
Talend är ett mycket populärt ETL-verktyg som används för att migrera data från valfri källa (databas eller fil) till vilken databas som helst. Det här verktyget stöder PostgreSQL-databas och många företag använder det här verktyget för att migrera data till PostgreSQL. Det finns både kommersiella och öppen källkodsversioner av detta verktyg och den öppna källkodsversionen bör vara till hjälp för datamigreringar.
Proffs: Talend är ett javabaserat ETL-verktyg som används för dataintegrationer och stöder PostgreSQL. Ett lättinstallerat verktyg kommer med ett GUI med både öppen källkod och kommersiella versioner. Kan köras på vilken plattform som helst som stöder Java. Utvecklare kan skriva anpassad Java-kod som kan integreras i Talend. Det är ingen stor sak om du måste instruera en utvecklare eller en DBA att använda detta verktyg för att migrera data till PostgreSQL. Kan migrera eller integrera data från flera källor som en databas eller en fil.
Nackdelar: Att schemalägga jobb kan vara en utmaning. Kan mestadels användas för att migrera tabeller av rimlig storlek med inte många optimeringsalternativ kring prestandaförbättring. Kanske inte är ett bra alternativ för att migrera stora tabeller med miljontals rader. Kan ge grundläggande operativa utmaningar. Behöver Java-expertis för att hantera det här verktyget, särskilt när man integrerar den anpassade koden. Inte lätt att få komfortnivåer på detta verktyg på kort tid. Det är inte möjligt att skripta och schemalägga datamigreringsjobben.
SQLINES
Sqlines är ett annat ETL-verktyg med öppen källkod som kan migrera data till och från vilken databas som helst. Detta är ett annat bra alternativ för att migrera data till PostgreSQL-databaser från i stort sett vilken kommersiell eller öppen källkodsdatabas som helst. Jag är personligen imponerad av detta verktyg. Den är utvecklad med C/C++ och är mycket enkel att använda utan komplexitet kring installationsprocessen (bara ladda ner och ta bort installationsprogrammet och du är klar!). Eftersom detta är ett C/C++-baserat verktyg kan det bli stora prestandavinster vid migrering av stora databaser. Jag skulle säga att det här verktyget utvecklas och prenumerationskostnaderna för supporten är mycket rimliga.
Proffs: Som nämnt ovan är jag imponerad av det faktum att detta verktyg är byggt baserat på C/C++ vilket är ett stort plus. Ganska enkel och enkel att installera och ställa in. Använder textgränssnitt som gör det väldigt enkelt att schemalägga jobb via bash-skript. Kan hantera stora datamängder. Support från utvecklarna är bra till en mycket rimlig kostnad. Utvecklare är öppna för att ta dina idéer och implementera vilket gör det till ett ännu bättre alternativ.
Nackdelar: Det är inte många som känner till detta verktyg och det utvecklas. Det finns inte många konfigurationsalternativ att spela runt. Det finns en bit kvar för att detta verktyg ska bli konkurrenskraftigt, vilket inte är långt borta. Du kan stöta på grundläggande operativa utmaningar.
Pentaho
Pentaho är ett annat verktyg för datamigrering och integration som återigen har kommersiella och öppen källkodsversioner som kan migrera data från vilken datakälla som helst till vilken databas som helst. Detta är också ett alternativ för att migrera data till PostgreSQL. Det här verktyget stöder ett brett utbud av databaser och fungerar på ett större utrymme med datavisualiseringsmöjligheter.
Proffs: Pentaho är ett Java-baserat verktyg, det fungerar i GUI-läge och kan köras på operativsystem som Windows, Unix och Linux. Fungerar på ett mycket större utrymme och är mycket bra på datatransformation och visualiseringsändamål. Som nämnts ovan, stöder ett brett utbud av datalagringar.
Nackdelar: är inte ett enkelt verktyg som bara kan extrahera data och ladda densamma i måldatabasen. Datamigreringsprocessen kan vara komplex och tidskrävande. Stort fokus på datatransformation, rensning, integration och visualisering. Verktyget är inte ett bra val för att bara migrera data från en databas till en annan databas utan några datatransformationer eller rensningsövningar. Prestanda kan vara en utmaning vid migrering av stora datamängder.
Anpassad ETL: Det är inte en överdrift att säga att anpassade ETL:er är ett av de vanligaste sätten att åstadkomma en end-to-end effektiv och högpresterande ETL-process. DBA:er, utvecklare som hamnar i denna situation är inte en överraskning. Det skulle vara omöjligt för en enda ETL att förstå datakomplexiteten, dataformen och miljöutmaningarna. Exempel:När du migrerar data från flera olika databaser i ett datacenter med komplexa datamodeller till en PostgreSQL-databas som är värd i ett annat datacenter eller offentligt moln. I en sådan situation kan bara jakten på den bästa ETL hamna i en vild jakt. Så att välja anpassad ETL är vägen att gå om du ska bygga en miljöspecifik och dataspecifik ETL-process.
Proffs: Ett mycket bra alternativ för organisationer med komplexa miljöer och komplexa data där det helt enkelt inte är möjligt att hitta en ETL som löser alla dina datamigreringsproblem. Kan vara mycket fördelaktigt vad gäller funktionalitet och prestanda. Kan minska tid och kostnader när det gäller att fixa buggar och defekter i verktyget. Kritiska, komplexa och tunga bundna ETL-operationer kan göras högpresterande och tillförlitliga eftersom utvecklarna har full kontroll över verktyget. Flexibiliteten har inga gränser. Är ett bra alternativ när du tittar på funktioner utöver ETL-verktyg och kan hantera alla nivåer av komplexitet. Om du valde teknologier som Java eller Python för att bygga anpassade ETL, smälter de mycket bra med PostgreSQL.
Nackdelar: Att bygga en anpassad ETL kan vara extremt tidskrävande. Betydande design- och utvecklingsinsatser krävs för att hantera alla datamigreringskrav och andra datautmaningar. Nedan är några av de utmaningar som anpassade ETL:er måste hålla jämna steg med, vilket kan kräva betydande utvecklingsinsatser och tid för förbättringar:
- Miljöförändringar
- Infrastruktur- och databasarkitektoniska förändringar som påverkar ETL-verksamheten
- Datatyp ändras
- Datavolymtillväxt som avsevärt påverkar datamigreringsprestanda
- Schemastruktur eller designändringar
- Alla kritiska kodändringar av ETL måste genomgå utveckling och testning innan de går till produktion, detta kan ta betydande tid
I allmänhet anses ETL-utveckling inte vara den kritiska delen av projektbudgeten eftersom de inte är en del av vanliga affärsapplikationer eller databasutvecklingsprocesser. Det är inte en överraskning om företag inte väljer att bygga en anpassad ETL eftersom budget-, resurs- eller tidsutmaningar dyker upp.
Vilket är det bästa ETL-verktyget?
Nåväl, det finns inget enkelt svar. Allt beror på dina krav och miljön. Att välja en ETL för att migrera data till PostgreSQL beror på olika faktorer, du måste förstå de faktorer som påverkar datamigreringen. Nedan är de flesta av dem...
- Förstå din data
- Dataernas komplexitet
- Datatyper
- Datakälla
- Datastorlek
- Hur är källdata? i en databas? i en platt fil? Strukturerad eller ostrukturerad? osv.. osv..
- Vilka steg kommer din datamigreringsövning att innebära? Dina förväntningar på verktyget.
Om du känner till ovanstående kommer du nästan att kunna välja ett ETL-verktyg. Att analysera ovanstående faktorer skulle hjälpa dig att utvärdera egenskaperna och kapaciteten hos varje ETL-verktyg. Tekniska experter som utför datamigrering skulle i allmänhet titta på ett ETL-verktyg som är effektivt, flexibelt och högpresterande.
I slutet av dagen är det inte en överraskning om du väljer flera ETL-verktyg eller till och med utvecklar ett anpassat verktyg själv.
För att vara ärlig är det svårt att rekommendera bara ett ETL-verktyg utan att känna till dina datakrav. Istället skulle jag föreslå att ett verktyg bör ha följande egenskaper för att utforma en effektiv och högpresterande datamigreringsprocess...
- Måste använda textgränssnitt med tillräckligt många konfigurationsalternativ
- Måste kunna migrera stora mängder data effektivt genom att effektivt använda flera processorer och minnet
- Det skulle vara bra om verktyget kan installeras på flera operativsystem. Vissa PostgreSQL-specifika verktyg stöder endast Windows som kan innebära utmaningar ur kostnads-, effektivitets- och prestandaperspektiv
- Måste kunna förstå källdata och måldatabasen
- Måste ha flexibla konfigurationsalternativ med tillräcklig kontroll för att ansluta verktyget till ett bash- eller python-skript, anpassa och schemalägga flera jobb parallellt
- En optimal testprocess måste utformas för att förstå verktygets datamigreringsmöjligheter
Det finns GUI-verktyg där ute som är lätta att ställa in och migrera data med ett klick. Dessa verktyg är bra för att migrera data av rimlig storlek i icke-molnmiljöer och är starkt beroende av infrastruktur och hårdvarukapacitet. Det kommer inte att finnas många alternativ än att öka infrakapaciteten för snabbare datamigrering och alternativen för att köra flera jobb är också dystra.
När jag migrerade data till PostgreSQL skulle jag börja titta på Talend eller SQLines. Om jag behöver migrera data från Oracle skulle jag titta på Ora2pg.