слив данных в Greenplum через питон в каком-нибудь оркестраторе? Мне импонирует Prefect, хочу его попробовать.
Задача такова: через sqlalchemy брать батчами данные из внешней базы данных, каждый такой батч прогонять через трансформацию, потом заливать в, собственно, Greenplum.
Так как лить данные через мастер считается смертным грехом, подумалось, что можно было бы батчёванные данные сохранять как файлы вида /source/table/*.csv , а их уже забирать gpfdist-ом, что, в теории, должно сильно ускорить процесс загрузки за счёт параллелизации. По завершению файлы удалять, прогонять всякие vacuum analyze-ы и так далее.
Есть у кого-то такой опыт? Могли бы поделиться примерами?
В основном, интересует именно часть заливки данных в ГП.
P.S. hadoop-ов и прочих лейков не предусмотрено, будет одна виртуалка, где всё это крутится. Поэтому модно складывать в паркет и читать pxf-ом, судя по всему, я не смогу.
гп на виртуалке тож?
Ну да, но на отдельных. Мастер, 6 сегментных нод, на каждой по сегменту и зеркалу
ну вроде здесь всё описано, берешь и делаешь
я знаю концептуально часть того, как gpfdist-ом из папки файлы забирать. Но я такого не делал, хотел посмотреть примеры тех, кто это делал через оркестраторы. Желательно, на питоне
какая разница оркестратор или нет
погоди тебе же по факту нужно поставить GPFDIST записать файлики туда где GPFDIST их видеть будет. а дальше из питона: 1. Создать внешнюю табличку ссылающуюся на твой файлик/файлики PSYCOPG (CREATE EXTERNAL TABLE) 2. дернуть через PSYCOPG вставку из внешней таблицы в таблицу GP (INSERT FROM SELECT) 3. После успешной вставки удалить файла. Вакуум прям на каждой вставке делать это по мне дичь. Прям пример там писать ну хз
В принципе да, но тогда gfpdist будет тот, что пришёл с базой. ТЕОРЕТИЧЕСКИ, можно уронить базу на особо широких вставках. С остальным согласен, так и планировал
Обсуждают сегодня