PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Най-добрите ETL инструменти за мигриране към PostgreSQL

Какво е ETL?

ETL се отнася до извличане, трансформиране и зареждане, това е процес от 3 стъпки, прилаган за извличане на данни от различни източници (които могат да съществуват в различни форми), почистване и зареждане в целева база данни за анализ. ETL е популярен процес в света на съхранението на данни, при който данните от различни източници на данни се интегрират и зареждат в целева база данни за извършване на анализи и отчитане за бизнеса. Най-просто казано, ETL се използва за извличане на данните от източник на данни като база данни или файл и след това се почиства, трансформира според бизнес изискванията и след това се зарежда в целевата база данни.

ETL процесът съществува под формата на различни инструменти. Има доста популярни инструменти за ETL, които се използват широко от бизнеса за справяне с различни изисквания за миграция на данни. Въпреки че съществуват тези инструменти, няма гаранция, че изискванията за миграция на данни ще бъдат изпълнени незабавно, поради което администраторите на база данни и разработчиците често избират да създават персонализирани ETL, за да преминат през сложни предизвикателства за миграция на данни в реално време.

Защо ETL?

Винаги, когато има изискване за миграция на данни, първото нещо, което DBA или разработчиците търсят, е ETL инструмент. Данните могат да съществуват в различни форми; в база данни на RDBMS, плоски файлове, CSV файлове и т.н., и изискването би било да се мигрират, интегрират всички тези данни в една база данни или ако целевата база данни е различна, процесът на трансформация на данни ще стане критичен. Тези предизвикателства могат да бъдат решени чрез ETL инструменти, които могат да спестят разходи и бизнес време. В днешния свят липсата на специфични инструменти за ETL може да струва на организациите значителни усилия за развитие и пари за изграждане на ефективен автоматизиран процес за миграция на данни. Благодарение на света с отворен код има някои популярни ETL инструменти с отворен код, които могат да се справят със сложни предизвикателства при миграция на данни в реално време.

Въпреки че има различни причини за мигриране на данните, бих искал да се съсредоточа върху две типични изисквания за миграция на данни...

  • Мигрирайте данните от различни източници (база данни, плоски файлове и CSV файлове) в една-единствена база данни в среда за съхранение на данни, вероятно база данни с отворен код, което значително би намалило общата обща стойност на собственост за изграждане на DWH среди. Това би било жизнеспособна опция, тъй като приложенията в реално време ще използват съществуващите търговски бази данни, а DWH ще хоства данните в база данни с отворен код.
  • Мигрирайте базите данни и приложенията в реално време от търговски бази данни към бази данни с отворен код като PostgreSQL за много по-ниска цена на операциите с данни за бизнеса.

Моят фокус в този блог би бил да идентифицирам ETL инструменти, които могат да помогнат за извършване на миграции на данни към база данни PostgreSQL.

Защо да мигрираме към PostgreSQL?

PostgreSQL е богата на функции, корпоративен клас база данни с отворен код, която е първата опция, която бизнесите избират за различните си изисквания за работа с данни в реално време и има реализации в различни критични за мисия среди. След като осъзнават потенциала на тази високонадеждна и ефективна база данни за RDBMS, все повече и повече фирми избират да мигрират своите бази данни и приложения към нея. Мигрирането на съществуващите бази данни към PostgreSQL носи значително намаляване на ИТ разходите, поради което „мигрирането към PostgreSQL“ е доста често срещано изискване в наши дни и идва изискването за миграция на данни, откъдето започва търсенето на ETL инструмент.

Както казахме по-горе, съществуват доста голям брой комерсиални и ETL инструменти с отворен код и почти всички инструменти поддържат PostgreSQL.

Изтеглете Бялата книга днес Управление и автоматизация на PostgreSQL с ClusterControl Научете какво трябва да знаете, за да внедрите, наблюдавате, управлявате и мащабирате PostgreSQLD Изтеглете Бялата книга

Какви са най-добрите ETL инструменти?

Ora2pg

Ora2pg е ОПЦИЯТА, ако възнамерявате да мигрирате данните от базата данни на Oracle към PostgreSQL. Това е базиран на Perl инструмент с отворен код, специално разработен за мигриране на схема, данни от бази данни на Oracle към PostgreSQL и разбира и двете бази данни много добре и може да мигрира данни с всякакъв размер. Мигрирането на големи обекти с по-голям размер може да бъде скъпо от гледна точка на време и хардуер.

Плюсове: Ora2pg е много популярен инструмент, използван специално за мигриране на бази данни на Oracle към PostgreSQL. Поддържа операционни системи Windows и Linux и използва текстов интерфейс. Този инструмент разбира много добре и двете бази данни и е доста надежден от гледна точка на функционалността. Когато мигрирахме данни в производствена среда, упражнението за анализ на данни (или разумност на данните) доведе до дефекти в данните „0“, което е доста забележително. Доста ефективен при мигриране на типове данни като дата/време и големи обекти. Лесно планиране на задачи чрез shell скрипт във фонов режим. Отговорът на разработчика за всякакви проблеми с github е добър.

Против: Инсталационната процедура на Ora2pg, която включва инсталиране на Perl модули, клиенти на Oracle и Postgres, може да се превърне в сложна работа в зависимост от версията на операционната система и дори по-сложна, когато правите същото в Windows OS. Може да има значителни предизвикателства в производителността при паралелно мигриране на таблици с голям размер с „Големи обекти“ (това означава едно ora2pg задание с множество нишки), което може да доведе до значителна промяна в стратегията за мигриране на данни.

Таленд

Talend е много популярен ETL инструмент, използван за мигриране на данни от всеки източник (база данни или файл) към всяка база данни. Този инструмент поддържа база данни PostgreSQL и много фирми използват този инструмент за мигриране на данни към PostgreSQL. Има както комерсиални, така и версии с отворен код на този инструмент и тази с отворен код би трябвало да е полезна за миграции на данни.

Плюсове: Talend е базиран на Java ETL инструмент, използван за интеграция на данни и поддържа PostgreSQL. Лесен за инсталиране инструмент се предлага с GUI както с отворен код, така и с търговски версии. Може да работи на всяка платформа, която поддържа Java. Разработчиците могат да пишат персонализиран Java код, който може да бъде интегриран в Talend. Не е голяма работа, ако трябва да инструктирате разработчик или DBA да използва този инструмент за мигриране на данните към PostgreSQL. Може да мигрира или интегрира данни от множество източници, като база данни или файл.

Против: Планирането на работни места може да бъде предизвикателство. Най-вече може да се използва за мигриране на таблици с разумен размер с не много опции за оптимизация около подобряване на производителността. Може да не е чудесен вариант за мигриране на таблици с огромен размер с милиони редове. Може да доведе до основни оперативни предизвикателства. Необходим е опит в Java, за да се справи с този инструмент, особено при интегриране на персонализирания код. Не е лесно да постигнете нива на комфорт с този инструмент за кратко време. Не е възможно да се скриптират и планират заданията за миграция на данни.

SQLINES

Sqlines е друг ETL инструмент с отворен код, който може да мигрира данните към и от всяка база данни. Това е друг добър вариант за мигриране на данни към PostgreSQL бази данни от почти всяка търговска или база данни с отворен код. Аз лично съм впечатлен от този инструмент. Той е разработен с помощта на C/C++ и е много лесен за използване, без сложност около процеса на инсталиране (просто изтеглете и разархивирайте инсталатора и сте готови!). Тъй като това е инструмент, базиран на C/C++, може да има големи печалби в производителността при мигриране на бази данни с голям размер. Бих казал, че този инструмент се развива и разходите за абонамент за поддръжка са много разумни.

Плюсове: Както споменахме по-горе, аз съм впечатлен от факта, че този инструмент е изграден на базата на C/C++, което е огромен плюс. Доста лесен и лесен за инсталиране и настройка. Използва текстов интерфейс, което прави наистина лесно планирането на задачи чрез bash скриптове. Може да обработва големи обеми данни. Поддръжката от разработчиците е добра на много разумна цена. Разработчиците са отворени да приемат вашите идеи и да ги реализират, което го прави още по-добър вариант.

Против: Не много хора знаят за този инструмент и той се развива. Няма много опции за конфигурация, с които да играете. Има някакъв начин този инструмент да стане конкурентен, който не е далеч. Може да срещнете основни оперативни предизвикателства.

Пентахо

Pentaho е друг инструмент за миграция и интеграция на данни, който отново има търговски версии и версии с отворен код, които могат да мигрират данни от всеки източник на данни към всяка база данни. Това също е опция за мигриране на данни към PostgreSQL. Този инструмент поддържа широка гама от бази данни и работи на по-голямо пространство с възможности за визуализация на данни.

Плюсове: Pentaho е инструмент, базиран на Java, той работи в GUI режим и може да работи на операционни системи като Windows, Unix и Linux. Работи на много по-голямо пространство и е много добър в целите на преобразуването на данни и визуализацията. Както бе споменато по-горе, поддържа широка гама от хранилища на данни.

Против: не е прост инструмент, който може просто да извлече данни и да ги зареди в целевата база данни. Процесът на миграция на данни може да бъде сложен и отнема много време. Силно се фокусира върху трансформация на данни, почистване, интеграция и визуализация. Инструментът не е добър избор просто да мигрирате данни от една база данни в друга без никакви трансформации на данни или упражнения за почистване. Производителността може да бъде предизвикателство при мигриране на големи обеми данни.

Изграден по поръчка ETL: Не е преувеличено да се каже, че персонализираните ETL са един от най-често срещаните начини за постигане на ефективен и високопроизводителен ETL процес от край до край. DBA, разработчиците, попадащи в тази ситуация, не е изненада. Би било невъзможно за един ETL да разбере сложността на данните, формата на данните, екологичните предизвикателства. Пример:Когато мигрирате данни от множество различни бази данни в център за данни със сложни модели на данни към PostgreSQL база данни, хоствана в друг център за данни или публичен облак. В такава ситуация просто ловът за най-добрия ETL може да завърши в преследване на дива гъска. Така че изборът на персонализиран ETL е начинът, по който трябва да вървите, ако искате да изградите специфичен за средата и специфичен за данни ETL процес.

Плюсове: Много добра алтернатива за организации със сложни среди и сложни данни, при които просто не е възможно да се намери ETL, който да адресира всички ваши проблеми с миграцията на данни. Може да бъде много полезен по отношение на функционалността и производителността. Може да намали времето и разходите, когато става въпрос за коригиране на грешки и дефекти в инструмента. Критичните, сложни и тежко свързани ETL операции могат да бъдат направени високоефективни и надеждни, тъй като разработчиците имат пълен контрол върху инструмента. Гъвкавостта няма граници. Това е добър вариант, когато разглеждате възможности извън ETL инструменти и може да се справи с всяко ниво на сложност. Ако сте избрали технологии като Java или Python за създаване на персонализиран ETL, те се съчетават много добре с PostgreSQL.

Против: Изграждането на персонализиран ETL може да отнеме изключително много време. Необходими са значителни усилия за проектиране и разработка, за да се отговори на всички изисквания за миграция на данни и други предизвикателства, свързани с данните. По-долу са дадени някои от предизвикателствата, с които трябва да се справят персонализираните ETL, което може да изисква значителни усилия за разработка и време за подобрения:

  • Промени в околната среда
  • Промени в архитектурата на инфраструктурата и базата данни, засягащи ETL операции
  • Промени в типа данни
  • Нарастване на обема на данни, което значително влияе върху ефективността на мигрирането на данни
  • Промени в структурата на схемата или дизайна
  • Всяка критична промяна на кода в ETL трябва да бъде подложена на разработка и тестване преди да започне производството, това може да отнеме значително време

Като цяло разработките на ETL не се считат за критична част от бюджета на проекта, тъй като не са част от редовни бизнес приложения или процес на разработване на бази данни. Не е изненада, ако фирмите не изберат да изградят персонализиран ETL, тъй като възникват предизвикателства, свързани с бюджета, ресурсите или времето.

Кой е най-добрият ETL инструмент?

Е, няма ясен отговор. Всичко зависи от вашите изисквания и околната среда. Изборът на ETL за мигриране на данни към PostgreSQL зависи от различни фактори, ще трябва да разберете факторите, влияещи върху миграцията на данни. По-долу са повечето от тях...

  • Разберете вашите данни
  • Сложност на данните
  • Типове данни
  • Източник на данни
  • Размер на данните
  • Как са изходните данни? в база данни? в плосък файл? Структуриран или неструктуриран? и т.н.. и т.н..
  • Какви стъпки ще включва вашето упражнение по миграция на данни? Вашите очаквания от инструмента.

Ако знаете горното, тогава почти ще бъдете в позиция да изберете ETL инструмент. Анализът на горните фактори би ви помогнал да оцените характеристиките и възможностите на всеки ETL инструмент. Техническите експерти, извършващи миграция на данни, обикновено разглеждат ETL инструмент, който е ефективен, гъвкав и високопроизводителен.

В края на деня не е изненада, ако в крайна сметка изберете множество ETL инструменти или дори сами разработите персонализиран инструмент.

Честно казано, трудно е да препоръчате само един ETL инструмент, без да знаете вашите изисквания за данни. Вместо това бих предложил инструментът да има следните характеристики за проектиране на ефективен и високоефективен процес на миграция на данни...

  • Трябва да използва текстов интерфейс с достатъчно опции за конфигурация
  • Трябва да може ефективно да мигрира големи количества данни чрез ефективно използване на множество процесори и памет
  • Би било добре инструментът да може да бъде инсталиран в множество операционни системи. Някои специфични за PostgreSQL инструменти поддържат само Windows, което може да създаде предизвикателства от гледна точка на разходите, ефективността и производителността
  • Трябва да може да разбира изходните данни и целевата база данни
  • Трябва да има гъвкави опции за конфигуриране с достатъчно контрол, за да включите инструмента в скрипт на bash или python, да персонализирате и насрочите паралелно множество задачи.
  • Трябва да бъде проектиран оптимален процес на тестване, за да се разберат възможностите на инструмента за мигриране на данни

Има GUI инструменти, които са лесни за настройка и мигриране на данните с едно щракване. Тези инструменти са добри за мигриране на данни с разумен размер в необлачна среда и са силно зависими от инфраструктурния и хардуерен капацитет. Няма да има много опции, освен увеличаване на инфраспособността за по-бърза миграция на данни, а опциите за изпълнение на множество задачи също са мрачни.

Когато мигрирам данни към PostgreSQL, бих започнал да разглеждам Talend или SQLines. Ако трябва да мигрирам данните от Oracle, тогава бих погледнал Ora2pg.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SELECT или PERFORM във функция PL/pgSQL

  2. Мащабиране на PostgreSQL с помощта на пулери за връзки и балансьори на натоварване

  3. Какъв е най-бързият начин за съкращаване на времеви печати до 5 минути в Postgres?

  4. Как да скриете декорацията на набора от резултати в изхода на Psql

  5. Как да получа min/max от две цели числа в Postgres/SQL?