Гость
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Сделать выборку на огромном количестве серверов / 25 сообщений из 35, страница 1 из 2
27.12.2021, 11:06
    #40123312
Уткъ
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сделать выборку на огромном количестве серверов
Доброе утро.

Требуется сделать короткую выборку на огормном количестве серверов.

Сам запрос выполняется доли секунды, но количество серверов около 100500.
...
Рейтинг: 0 / 0
27.12.2021, 11:09
    #40123315
Уткъ
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сделать выборку на огромном количестве серверов
DBLINK_SEND_QUERY требует DBLINK_CONNECT



и DBLINK_CONNECT выполняется поочередно очень долго


Как нить можно DBLINK_CONNECT распарралелить на 100500 серверов?


Ну или еще мож есть какие-нибудь варианты?
...
Рейтинг: 0 / 0
27.12.2021, 11:26
    #40123322
Guzya
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сделать выборку на огромном количестве серверов
ssh + скриптик
...
Рейтинг: 0 / 0
27.12.2021, 11:48
    #40123324
Ы2
Ы2
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сделать выборку на огромном количестве серверов
Уткъ, посмотрите, не спасет ли вас это .
...
Рейтинг: 0 / 0
27.12.2021, 12:15
    #40123330
mefman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сделать выборку на огромном количестве серверов
Ы2
Уткъ, посмотрите, не спасет ли вас это .

гвозди микроскопом.
Как уже сказали - "ssh в пакете" решит проблему.
Вопрос что потом с результатом запроса делать. Если доп.обработка нужна - тогда скорее всего на питоне что-нибудь городить придется.
btw, у ansible есть модуль postgresql_query как раз для таких случаев. Если у ТСа 100500 серверов, то и ansible(или аналоги) быть должны.
...
Рейтинг: 0 / 0
27.12.2021, 12:28
    #40123334
gav21
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сделать выборку на огромном количестве серверов
ansible в параллельном режиме выполнения и его модули postgresql_*
...
Рейтинг: 0 / 0
27.12.2021, 15:29
    #40123388
Уткъ
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сделать выборку на огромном количестве серверов
Guzya
ssh + скриптик


Так и делал, но тут есть недостатки, т.к. все процессы когда их много, одновременно не запускаются, а ждут по очереди.

Например, 5 тыс запустилось и 95500 в очереди.
...
Рейтинг: 0 / 0
27.12.2021, 15:30
    #40123389
Уткъ
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сделать выборку на огромном количестве серверов
Ы2
Уткъ, посмотрите, не спасет ли вас это .



нужна стандартная штуковина, без доп установок.
...
Рейтинг: 0 / 0
27.12.2021, 15:31
    #40123390
Уткъ
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сделать выборку на огромном количестве серверов
mefman
Ы2
Уткъ, посмотрите, не спасет ли вас это .

гвозди микроскопом.
Как уже сказали - "ssh в пакете" решит проблему.
Вопрос что потом с результатом запроса делать. Если доп.обработка нужна - тогда скорее всего на питоне что-нибудь городить придется.
btw, у ansible есть модуль postgresql_query как раз для таких случаев. Если у ТСа 100500 серверов, то и ansible(или аналоги) быть должны.


ansible не хотелось бы использовать.

резльтат запроса требуется собрать в одну таблицу.


А нет способа ускорить\распарралерить DBLINK_CONNECT ?
...
Рейтинг: 0 / 0
27.12.2021, 16:18
    #40123409
Guzya
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сделать выборку на огромном количестве серверов
Если задача не одноразовая, то распихать в крон по серверам, а результат пусть отсылают куда надо.
...
Рейтинг: 0 / 0
27.12.2021, 16:36
    #40123412
Guzya
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сделать выборку на огромном количестве серверов
Еще такой, НЕ БЕЗОПАСНЫЙ МЕТОД, написать скрипт\программку "исполнитель", который будет запускаться из крон, брать "задание" и выполнять.

Пример, имеется некий централизованный сервер, где Вы размещаете "задания на выполнение" (допустим, sql в файле).
По крону запускается "исполнитель", который скачивает "задание", выполняет и передает результат куда Вам надо.
...
Рейтинг: 0 / 0
27.12.2021, 18:00
    #40123427
Vadim Lejnin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сделать выборку на огромном количестве серверов
список серверов + xargs + script который будет подключаться к удаленной бае и укладывать в локальную таблицу результат выполнения
...
Рейтинг: 0 / 0
27.12.2021, 18:14
    #40123430
mefman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сделать выборку на огромном количестве серверов
Уткъ
mefman
пропущено...

гвозди микроскопом.
Как уже сказали - "ssh в пакете" решит проблему.
Вопрос что потом с результатом запроса делать. Если доп.обработка нужна - тогда скорее всего на питоне что-нибудь городить придется.
btw, у ansible есть модуль postgresql_query как раз для таких случаев. Если у ТСа 100500 серверов, то и ansible(или аналоги) быть должны.


ansible не хотелось бы использовать.

резльтат запроса требуется собрать в одну таблицу.


А нет способа ускорить\распарралерить DBLINK_CONNECT ?

Тогда на питоне пиши. Там и параллель и асинк. Все что душе угодно.
...
Рейтинг: 0 / 0
27.12.2021, 18:56
    #40123437
Maxim Boguk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сделать выборку на огромном количестве серверов
Уткъ
DBLINK_SEND_QUERY требует DBLINK_CONNECT



и DBLINK_CONNECT выполняется поочередно очень долго


Как нить можно DBLINK_CONNECT распарралелить на 100500 серверов?


Ну или еще мож есть какие-нибудь варианты?


Эта задача уровня приложения а не базы... не надо на базе решить не её задачи...
А запрограммировать можно что угодно... но вот лучше вне базы.

PS: если вам нечего делать то
https://www.postgresql.org/docs/14/contrib-dblink-send-query.html
и далее... но что будет если вы попробуете открыть одновременно 100500 async запросов к разным база из 1 коннекта не знают я думаю даже авторы.

--
Maxim Boguk
лучшая поддержка PostgreSQL: dataegret.ru
...
Рейтинг: 0 / 0
27.12.2021, 20:42
    #40123454
programmator
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сделать выборку на огромном количестве серверов
похоже на тех задание для dos атаки)
...
Рейтинг: 0 / 0
28.12.2021, 01:09
    #40123486
Уткъ
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сделать выборку на огромном количестве серверов
Maxim Boguk

PS: если вам нечего делать то
https://www.postgresql.org/docs/14/contrib-dblink-send-query.html
и далее...


Максим, DBLINK_SEND_QUERY требует DBLINK_CONNECЮ который выполняется последовательно и очень долго (((
Уткъ
DBLINK_SEND_QUERY требует DBLINK_CONNECT
и DBLINK_CONNECT выполняется поочередно очень долго
...
Рейтинг: 0 / 0
28.12.2021, 01:11
    #40123487
Уткъ
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сделать выборку на огромном количестве серверов
[quot Maxim Boguk#22415080
Эта задача уровня приложения а не базы... не надо на базе решить не её задачи...
А запрограммировать можно что угодно... но вот лучше вне базы.
[/quot]

Проблема в том, что конечные сервера находятся в другой подсети, даже в разных подсетях и ip пересекаются если делать из одного места.

Пожетому подключаюсь к серверу в одной подсети и запуска там все что связано в этой подсетью (100500/5) потом к другому и так несколько раз.
...
Рейтинг: 0 / 0
28.12.2021, 10:29
    #40123534
Maxim Boguk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сделать выборку на огромном количестве серверов
Уткъ
Maxim Boguk

PS: если вам нечего делать то
https://www.postgresql.org/docs/14/contrib-dblink-send-query.html
и далее...


Максим, DBLINK_SEND_QUERY требует DBLINK_CONNECЮ который выполняется последовательно и очень долго (((
Уткъ
DBLINK_SEND_QUERY требует DBLINK_CONNECT
и DBLINK_CONNECT выполняется поочередно очень долго


А это уже только на Сях писать если вам асинхронная работа с установкой соединений нужна.
libpq асинхронные функции вам в руки.


--
Maxim Boguk
лучшая поддержка PostgreSQL: dataegret.ru
...
Рейтинг: 0 / 0
28.12.2021, 11:08
    #40123549
Ролг Хупин
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сделать выборку на огромном количестве серверов
Maxim Boguk
Уткъ
пропущено...


Максим, DBLINK_SEND_QUERY требует DBLINK_CONNECЮ который выполняется последовательно и очень долго (((
пропущено...


А это уже только на Сях писать если вам асинхронная работа с установкой соединений нужна.
libpq асинхронные функции вам в руки.


--
Maxim Boguk
лучшая поддержка PostgreSQL: dataegret.ru



Только "на Сях"?

Т.е. c#+Npgsql нельзя использовать?
...
Рейтинг: 0 / 0
28.12.2021, 11:23
    #40123556
mefman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сделать выборку на огромном количестве серверов
Ролг Хупин
Maxim Boguk
пропущено...


А это уже только на Сях писать если вам асинхронная работа с установкой соединений нужна.
libpq асинхронные функции вам в руки.


--
Maxim Boguk
лучшая поддержка PostgreSQL: dataegret.ru



Только "на Сях"?

Т.е. c#+Npgsql нельзя использовать?

На любом нормальном языке программирования, я думаю.
Максим привел один из возможных.
C# - это же виндовс, вроде. С постгресом его особо не юзают.
...
Рейтинг: 0 / 0
28.12.2021, 11:34
    #40123562
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сделать выборку на огромном количестве серверов
Уткъ
Доброе утро.

Требуется сделать короткую выборку на огормном количестве серверов.

Сам запрос выполняется доли секунды, но количество серверов около 100500.

Ты наверное пошутил про их количество?

Тут проблема намечается. Не все из них будут в сети в час X. Поэтому нужны координаторы доступности и нужны зеркала.
...
Рейтинг: 0 / 0
28.12.2021, 11:43
    #40123565
Vadim Lejnin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сделать выборку на огромном количестве серверов
Уткъ

...
Проблема в том, что конечные сервера находятся в другой подсети, даже в разных подсетях и ip пересекаются если делать из одного места.

Пожетому подключаюсь к серверу в одной подсети и запуска там все что связано в этой подсетью (100500/5) потом к другому и так несколько раз.



ответ студента на экзамене по автоматизации...
ЦАП-АЦП-ЦАП-АЦП-ЦАП-ЦАП-АЦП
...


Решал практически аналогичную задачу (только не с таким количеством серверов):

Есть PROD контур с текущей версией системы, + изолированный MIRROR контур, точная копия (включая IP) для отладки процедуры миграции. Доступ на mirror через терминальный сервер, + рабочий комп, который имеет доступ как к PROD, так и к терминальному серверу. ProxyJump может быть не один

1) набор ssh private/public keys

2) .ssh/config на рабочем компе (p - prod prefix, m - mirror prefix)
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
...
Host psrv8
 HostName 192.145.33.108
 User userdb33
 IdentityFile ~/.ssh/srv8

Host msrv8
 HostName 192.145.33.108
 User userdb33
 ProxyJump work2@term1
 IdentityFile ~/.ssh/srv8
...



3) набор скриптов для мониторинга/обслуживания/синхронизации конфигурации с prod на mirror
как базы так и системы.

Если нужна параллельность, то проблем нет, список/запрос с параметрами подается на xargs:
Код: sql
1.
2.
3.
4.
5.
6.
7.
...
# параллельная переиндексация для fix bug после pg_upgrade 
(
time psql $DB -t -A -c  "select ...... from pg_class where relname like 'pg_toast%' and ....;"|\
xargs -n 1 -P $PARALLEL_COUNT -I {} $T psql $DB -c "reindex table pg_toast.{};"
) 
...



Для win среды, написал бы что-то аналогичное для PowerShell
...
Рейтинг: 0 / 0
28.12.2021, 12:15
    #40123581
Maxim Boguk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сделать выборку на огромном количестве серверов
Ролг Хупин
Maxim Boguk
пропущено...


А это уже только на Сях писать если вам асинхронная работа с установкой соединений нужна.
libpq асинхронные функции вам в руки.


--
Maxim Boguk
лучшая поддержка PostgreSQL: dataegret.ru



Только "на Сях"?

Т.е. c#+Npgsql нельзя использовать?


Я не очень знаю что там с реализацией асинхронного соединения с базой и асинхронной работы с запросами.
Как оно на libpq делается знаю, а на остальных ЯП - черт его знает (я вообще мало видел языков которые нормально в асинхронную работу с установкой соединения с базой умеют).

--
Maxim Boguk
лучшая поддержка PostgreSQL: dataegret.ru
...
Рейтинг: 0 / 0
28.12.2021, 12:17
    #40123583
Ролг Хупин
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сделать выборку на огромном количестве серверов
mefman
Ролг Хупин
пропущено...



Только "на Сях"?

Т.е. c#+Npgsql нельзя использовать?

На любом нормальном языке программирования, я думаю.
Максим привел один из возможных.
C# - это же виндовс, вроде. С постгресом его особо не юзают.


В том-то и дело, что он привел не один из возможных, он написал
"А это уже только на Сях писать"

И потом - "C# - это же виндовс" - сегодня это уже не Windows, на NET Core можно делать кроссплатформенные приложения.

Ну, и вы понимаете, что это всего лишь эмоции: "особо". Вчера было так, сегодня иначе.Все меняется.
...
Рейтинг: 0 / 0
28.12.2021, 12:19
    #40123584
Уткъ
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сделать выборку на огромном количестве серверов
Maxim Boguk
Уткъ
пропущено...


Максим, DBLINK_SEND_QUERY требует DBLINK_CONNECЮ который выполняется последовательно и очень долго (((
пропущено...


А это уже только на Сях писать если вам асинхронная работа с установкой соединений нужна.
libpq асинхронные функции вам в руки.


--
Maxim Boguk
лучшая поддержка PostgreSQL: dataegret.ru


Да, похоже прийдется писать.

>асинхронная работа с установкой соединений нужна

можете подсказать какие вызовы это смотреть?

PQconnectdb вроде так не может...
...
Рейтинг: 0 / 0
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Сделать выборку на огромном количестве серверов / 25 сообщений из 35, страница 1 из 2
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]