Всем привет! Особо не надеюсь, но вдруг кто-то здесь реализовал

слив данных в Greenplum через питон в каком-нибудь оркестраторе? Мне импонирует Prefect, хочу его попробовать.

Задача такова: через sqlalchemy брать батчами данные из внешней базы данных, каждый такой батч прогонять через трансформацию, потом заливать в, собственно, Greenplum.

Так как лить данные через мастер считается смертным грехом, подумалось, что можно было бы батчёванные данные сохранять как файлы вида /source/table/*.csv , а их уже забирать gpfdist-ом, что, в теории, должно сильно ускорить процесс загрузки за счёт параллелизации. По завершению файлы удалять, прогонять всякие vacuum analyze-ы и так далее.
Есть у кого-то такой опыт? Могли бы поделиться примерами?

В основном, интересует именно часть заливки данных в ГП.

P.S. hadoop-ов и прочих лейков не предусмотрено, будет одна виртуалка, где всё это крутится. Поэтому модно складывать в паркет и читать pxf-ом, судя по всему, я не смогу.

7 ответов

27 просмотров

гп на виртуалке тож?

Niyazi-Garagashli Автор вопроса
Dmitry Zuev
гп на виртуалке тож?

Ну да, но на отдельных. Мастер, 6 сегментных нод, на каждой по сегменту и зеркалу

ну вроде здесь всё описано, берешь и делаешь

Niyazi-Garagashli Автор вопроса
Dmitry Zuev
ну вроде здесь всё описано, берешь и делаешь

я знаю концептуально часть того, как gpfdist-ом из папки файлы забирать. Но я такого не делал, хотел посмотреть примеры тех, кто это делал через оркестраторы. Желательно, на питоне

погоди тебе же по факту нужно поставить GPFDIST записать файлики туда где GPFDIST их видеть будет. а дальше из питона: 1. Создать внешнюю табличку ссылающуюся на твой файлик/файлики PSYCOPG (CREATE EXTERNAL TABLE) 2. дернуть через PSYCOPG вставку из внешней таблицы в таблицу GP (INSERT FROM SELECT) 3. После успешной вставки удалить файла. Вакуум прям на каждой вставке делать это по мне дичь. Прям пример там писать ну хз

Niyazi-Garagashli Автор вопроса
Бронислав Житников
погоди тебе же по факту нужно поставить GPFDIST за...

В принципе да, но тогда gfpdist будет тот, что пришёл с базой. ТЕОРЕТИЧЕСКИ, можно уронить базу на особо широких вставках. С остальным согласен, так и планировал

Похожие вопросы

Обсуждают сегодня

Добрый вечер, Пока не совсем понимаю как наладить общение между телеграм ботом и ПО для работы с сим боксом. По самому боту так понял: - Нужен некий баланс, который можно поп...
Magic
6
сделал сайт, прикрутил в боте сайт, и виджет логина. как автоматически логинить пользователя в аккаунт(телеграм), при входе с бота?
Александра Чернивецкая
5
Объясните, пожалуйста, почему компилятор ругается на использование в условии неинициализированной переменной: int x; Task.Run(async () => { x = await somefunc(); }).Wait...
Александр
5
Ребят, подскажите, пожалуйста, почему в префиксе к ассетам, которые генерируются через фильтр | theme в шаблоне, стал вдруг появляться index.php? Вот так выглядит ссылка на а...
Виталий
1
Всем привет. Ребята, подскажите, пожалуйста. у ботов есть ограничение на отправку сообщений - 30 сообщений в секунду, эти ограничения накладываются на все сообщения? или на со...
Artem Stormageddon
4
Блин, ребята, сори за тупые вопросы. А можно ли как-то открыть вебапку по нажатию на кнопку в меню(которое появляется слева, команды)?
Artem Stormageddon
3
а плаксы из-под питона умеют только в комфортных условиях что-то выдавить из себя?)
Lencore
9
Но, может, есть уже проверенная? Наши требования такие: 1. Сообщения должны приходить из Инста в CRM оду 2. Должна быть возможность подключить несколько экаунтов Инстаграм. Р...
Alexander Sharoiko MSE / Александр Шаройко
13
Это может быть все-таки не флудвейт? у меня ботфазер принимает изменения и отображает даже что они изменились, на видео видно что он прислал якобы уже измененное описание, н...
OVERLINK
13
Коллеги, может знает кто, можно ли цвет бейджа счётчика в BackendMenu менять без бубнов?
Alex Blaze
3
Карта сайта