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

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

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

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

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

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

7 ответов

14 просмотров

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

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 будет тот, что пришёл с базой. ТЕОРЕТИЧЕСКИ, можно уронить базу на особо широких вставках. С остальным согласен, так и планировал

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

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

Всем привет. Нужна платная консультация от тех, кто сталкивался с октябрём в кластере или шарит оч хорошо в цмс. Проблема следующая: после переноса в кластер октябрь начал ...
wl
8
Добрый день, не подскажите, если в OC-V3 поменять страндартную директорию /storage/ на /storage2/ - не будет сильно много проблем ?
Max Dubovsky
32
'frakturBold' => ['𝖆', '𝖇', '𝖈', '𝖉', '𝖊', '𝖋', '𝖌', '𝖍', '𝖎', '𝖏', '𝖐', '𝖑', '𝖒', '𝖓', '𝖔', '𝖕', '𝖖', '𝖗', '𝖘', '𝖙', '𝖚', '𝖛', '𝖜', '𝖝', '𝖞', '𝖟', '𝕬', '𝕭', '𝕮', '𝕯'...
Roma
4
а я честно сказать не понимаю - нахуя идти учиться на вышку или еще куда-либо и при этом нихуя не делать, типа зачем ? просто корку получить, а нахуй она нужна тогда ?
Eugene Неелов
7
Каким то образом можно определить ширину экрана пользователя перед загрузкой partial-а? Надо рассчитать ширину кадров слайдера для ресайза картинок для container-fluid.
Point 111
22
зараз якщо створити файл core/custom/define.php з текстом <?php const NO_SESSION = true; можна позбутися сесійних кукі (що зручно, щоб не показувати людям банери про збір та в...
Artur Kyryliuk
1
А сколько часов мак держит зарядку в рабочем режиме? Например мой Redmi Mac (просто наклейка от айфона осталась, налепил) по началу держал часов 5 с парой открытых штормов и ...
Ross
8
я бы даже сказал не размер резюме, а слова, которые там написаны, потому что резюме может быть на несколько десятков страниц из-за 20 летнего опыта работы, но там в опыте буде...
Eugene Неелов
2
так а я не могу просто новый сделать ? я пробовал не прокатило но может чето упускаю
Максим
3
Ребят, было ли у вас так, что переменные в WebApp —tg-viewport-height, —tg-viewport-stable-height после метода expand не обновляются, а остаются в размерах, как было до expand...
Black
3
Карта сайта