|
Сделать выборку на огромном количестве серверов
|
|||
---|---|---|---|
#18+
Доброе утро. Требуется сделать короткую выборку на огормном количестве серверов. Сам запрос выполняется доли секунды, но количество серверов около 100500. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.12.2021, 11:06 |
|
Сделать выборку на огромном количестве серверов
|
|||
---|---|---|---|
#18+
DBLINK_SEND_QUERY требует DBLINK_CONNECT и DBLINK_CONNECT выполняется поочередно очень долго Как нить можно DBLINK_CONNECT распарралелить на 100500 серверов? Ну или еще мож есть какие-нибудь варианты? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.12.2021, 11:09 |
|
Сделать выборку на огромном количестве серверов
|
|||
---|---|---|---|
#18+
ssh + скриптик ... |
|||
:
Нравится:
Не нравится:
|
|||
27.12.2021, 11:26 |
|
Сделать выборку на огромном количестве серверов
|
|||
---|---|---|---|
#18+
Уткъ, посмотрите, не спасет ли вас это . ... |
|||
:
Нравится:
Не нравится:
|
|||
27.12.2021, 11:48 |
|
Сделать выборку на огромном количестве серверов
|
|||
---|---|---|---|
#18+
Ы2 Уткъ, посмотрите, не спасет ли вас это . гвозди микроскопом. Как уже сказали - "ssh в пакете" решит проблему. Вопрос что потом с результатом запроса делать. Если доп.обработка нужна - тогда скорее всего на питоне что-нибудь городить придется. btw, у ansible есть модуль postgresql_query как раз для таких случаев. Если у ТСа 100500 серверов, то и ansible(или аналоги) быть должны. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.12.2021, 12:15 |
|
Сделать выборку на огромном количестве серверов
|
|||
---|---|---|---|
#18+
ansible в параллельном режиме выполнения и его модули postgresql_* ... |
|||
:
Нравится:
Не нравится:
|
|||
27.12.2021, 12:28 |
|
Сделать выборку на огромном количестве серверов
|
|||
---|---|---|---|
#18+
Guzya ssh + скриптик Так и делал, но тут есть недостатки, т.к. все процессы когда их много, одновременно не запускаются, а ждут по очереди. Например, 5 тыс запустилось и 95500 в очереди. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.12.2021, 15:29 |
|
Сделать выборку на огромном количестве серверов
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
27.12.2021, 15:30 |
|
Сделать выборку на огромном количестве серверов
|
|||
---|---|---|---|
#18+
mefman Ы2 Уткъ, посмотрите, не спасет ли вас это . гвозди микроскопом. Как уже сказали - "ssh в пакете" решит проблему. Вопрос что потом с результатом запроса делать. Если доп.обработка нужна - тогда скорее всего на питоне что-нибудь городить придется. btw, у ansible есть модуль postgresql_query как раз для таких случаев. Если у ТСа 100500 серверов, то и ansible(или аналоги) быть должны. ansible не хотелось бы использовать. резльтат запроса требуется собрать в одну таблицу. А нет способа ускорить\распарралерить DBLINK_CONNECT ? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.12.2021, 15:31 |
|
Сделать выборку на огромном количестве серверов
|
|||
---|---|---|---|
#18+
Если задача не одноразовая, то распихать в крон по серверам, а результат пусть отсылают куда надо. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.12.2021, 16:18 |
|
Сделать выборку на огромном количестве серверов
|
|||
---|---|---|---|
#18+
Еще такой, НЕ БЕЗОПАСНЫЙ МЕТОД, написать скрипт\программку "исполнитель", который будет запускаться из крон, брать "задание" и выполнять. Пример, имеется некий централизованный сервер, где Вы размещаете "задания на выполнение" (допустим, sql в файле). По крону запускается "исполнитель", который скачивает "задание", выполняет и передает результат куда Вам надо. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.12.2021, 16:36 |
|
Сделать выборку на огромном количестве серверов
|
|||
---|---|---|---|
#18+
список серверов + xargs + script который будет подключаться к удаленной бае и укладывать в локальную таблицу результат выполнения ... |
|||
:
Нравится:
Не нравится:
|
|||
27.12.2021, 18:00 |
|
Сделать выборку на огромном количестве серверов
|
|||
---|---|---|---|
#18+
Уткъ mefman пропущено... гвозди микроскопом. Как уже сказали - "ssh в пакете" решит проблему. Вопрос что потом с результатом запроса делать. Если доп.обработка нужна - тогда скорее всего на питоне что-нибудь городить придется. btw, у ansible есть модуль postgresql_query как раз для таких случаев. Если у ТСа 100500 серверов, то и ansible(или аналоги) быть должны. ansible не хотелось бы использовать. резльтат запроса требуется собрать в одну таблицу. А нет способа ускорить\распарралерить DBLINK_CONNECT ? Тогда на питоне пиши. Там и параллель и асинк. Все что душе угодно. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.12.2021, 18:14 |
|
Сделать выборку на огромном количестве серверов
|
|||
---|---|---|---|
#18+
Уткъ 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 ... |
|||
:
Нравится:
Не нравится:
|
|||
27.12.2021, 18:56 |
|
Сделать выборку на огромном количестве серверов
|
|||
---|---|---|---|
#18+
похоже на тех задание для dos атаки) ... |
|||
:
Нравится:
Не нравится:
|
|||
27.12.2021, 20:42 |
|
Сделать выборку на огромном количестве серверов
|
|||
---|---|---|---|
#18+
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 выполняется поочередно очень долго ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2021, 01:09 |
|
Сделать выборку на огромном количестве серверов
|
|||
---|---|---|---|
#18+
[quot Maxim Boguk#22415080 Эта задача уровня приложения а не базы... не надо на базе решить не её задачи... А запрограммировать можно что угодно... но вот лучше вне базы. [/quot] Проблема в том, что конечные сервера находятся в другой подсети, даже в разных подсетях и ip пересекаются если делать из одного места. Пожетому подключаюсь к серверу в одной подсети и запуска там все что связано в этой подсетью (100500/5) потом к другому и так несколько раз. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2021, 01:11 |
|
Сделать выборку на огромном количестве серверов
|
|||
---|---|---|---|
#18+
Уткъ 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 ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2021, 10:29 |
|
Сделать выборку на огромном количестве серверов
|
|||
---|---|---|---|
#18+
Maxim Boguk Уткъ пропущено... Максим, DBLINK_SEND_QUERY требует DBLINK_CONNECЮ который выполняется последовательно и очень долго ((( пропущено... А это уже только на Сях писать если вам асинхронная работа с установкой соединений нужна. libpq асинхронные функции вам в руки. -- Maxim Boguk лучшая поддержка PostgreSQL: dataegret.ru Только "на Сях"? Т.е. c#+Npgsql нельзя использовать? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2021, 11:08 |
|
Сделать выборку на огромном количестве серверов
|
|||
---|---|---|---|
#18+
Ролг Хупин Maxim Boguk пропущено... А это уже только на Сях писать если вам асинхронная работа с установкой соединений нужна. libpq асинхронные функции вам в руки. -- Maxim Boguk лучшая поддержка PostgreSQL: dataegret.ru Только "на Сях"? Т.е. c#+Npgsql нельзя использовать? На любом нормальном языке программирования, я думаю. Максим привел один из возможных. C# - это же виндовс, вроде. С постгресом его особо не юзают. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2021, 11:23 |
|
Сделать выборку на огромном количестве серверов
|
|||
---|---|---|---|
#18+
Уткъ Доброе утро. Требуется сделать короткую выборку на огормном количестве серверов. Сам запрос выполняется доли секунды, но количество серверов около 100500. Ты наверное пошутил про их количество? Тут проблема намечается. Не все из них будут в сети в час X. Поэтому нужны координаторы доступности и нужны зеркала. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2021, 11:34 |
|
Сделать выборку на огромном количестве серверов
|
|||
---|---|---|---|
#18+
Уткъ ... Проблема в том, что конечные сервера находятся в другой подсети, даже в разных подсетях и 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.
3) набор скриптов для мониторинга/обслуживания/синхронизации конфигурации с prod на mirror как базы так и системы. Если нужна параллельность, то проблем нет, список/запрос с параметрами подается на xargs: Код: sql 1. 2. 3. 4. 5. 6. 7.
Для win среды, написал бы что-то аналогичное для PowerShell ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2021, 11:43 |
|
Сделать выборку на огромном количестве серверов
|
|||
---|---|---|---|
#18+
Ролг Хупин Maxim Boguk пропущено... А это уже только на Сях писать если вам асинхронная работа с установкой соединений нужна. libpq асинхронные функции вам в руки. -- Maxim Boguk лучшая поддержка PostgreSQL: dataegret.ru Только "на Сях"? Т.е. c#+Npgsql нельзя использовать? Я не очень знаю что там с реализацией асинхронного соединения с базой и асинхронной работы с запросами. Как оно на libpq делается знаю, а на остальных ЯП - черт его знает (я вообще мало видел языков которые нормально в асинхронную работу с установкой соединения с базой умеют). -- Maxim Boguk лучшая поддержка PostgreSQL: dataegret.ru ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2021, 12:15 |
|
Сделать выборку на огромном количестве серверов
|
|||
---|---|---|---|
#18+
mefman Ролг Хупин пропущено... Только "на Сях"? Т.е. c#+Npgsql нельзя использовать? На любом нормальном языке программирования, я думаю. Максим привел один из возможных. C# - это же виндовс, вроде. С постгресом его особо не юзают. В том-то и дело, что он привел не один из возможных, он написал "А это уже только на Сях писать" И потом - "C# - это же виндовс" - сегодня это уже не Windows, на NET Core можно делать кроссплатформенные приложения. Ну, и вы понимаете, что это всего лишь эмоции: "особо". Вчера было так, сегодня иначе.Все меняется. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2021, 12:17 |
|
Сделать выборку на огромном количестве серверов
|
|||
---|---|---|---|
#18+
Maxim Boguk Уткъ пропущено... Максим, DBLINK_SEND_QUERY требует DBLINK_CONNECЮ который выполняется последовательно и очень долго ((( пропущено... А это уже только на Сях писать если вам асинхронная работа с установкой соединений нужна. libpq асинхронные функции вам в руки. -- Maxim Boguk лучшая поддержка PostgreSQL: dataegret.ru Да, похоже прийдется писать. >асинхронная работа с установкой соединений нужна можете подсказать какие вызовы это смотреть? PQconnectdb вроде так не может... ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2021, 12:19 |
|
Сделать выборку на огромном количестве серверов
|
|||
---|---|---|---|
#18+
Ролг Хупин Maxim Boguk пропущено... А это уже только на Сях писать если вам асинхронная работа с установкой соединений нужна. libpq асинхронные функции вам в руки. -- Maxim Boguk лучшая поддержка PostgreSQL: dataegret.ru Только "на Сях"? Т.е. c#+Npgsql нельзя использовать? С# - это MS. Считаю что на серверах продуктам MS не место ( ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2021, 12:20 |
|
Сделать выборку на огромном количестве серверов
|
|||
---|---|---|---|
#18+
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.
3) набор скриптов для мониторинга/обслуживания/синхронизации конфигурации с prod на mirror как базы так и системы. Если нужна параллельность, то проблем нет, список/запрос с параметрами подается на xargs: Код: sql 1. 2. 3. 4. 5. 6. 7.
Для win среды, написал бы что-то аналогичное для PowerShell Благодарю за пример. Часть серверов, к сожалению на винде... ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2021, 12:22 |
|
Сделать выборку на огромном количестве серверов
|
|||
---|---|---|---|
#18+
Maxim Boguk Я не очень знаю что там с реализацией асинхронного соединения с базой и асинхронной работы с запросами. Как оно на libpq делается знаю. Максим, очень интересно как это сделать, поделитесь пожалуйста. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2021, 12:23 |
|
Сделать выборку на огромном количестве серверов
|
|||
---|---|---|---|
#18+
Уткъ Ролг Хупин пропущено... Только "на Сях"? Т.е. c#+Npgsql нельзя использовать? С# - это MS. Считаю что на серверах продуктам MS не место ( О, вы рискуете отстать от времени и от технологий. Вам надо задачу решить или "считать", что на каких-то серверах продуктам MS не место? Мир изменился, MS встроила в Windows WSL2. Вы в курсе? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2021, 12:27 |
|
Сделать выборку на огромном количестве серверов
|
|||
---|---|---|---|
#18+
Ролг Хупин Уткъ пропущено... С# - это MS. Считаю что на серверах продуктам MS не место ( О, вы рискуете отстать от времени и от технологий. Вам надо задачу решить или "считать", что на каких-то серверах продуктам MS не место? Мир изменился, MS встроила в Windows WSL2. Вы в курсе? MS поняла что они никому нафиг не нужны и прогибается как может, и sql server под линукс выпустили. Но сути MS это не меняет, их цель выкачивание бабла любыми способами, не смотря на весьма плохое качество ПО. По этой причине продуктам на серверах не место. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2021, 12:30 |
|
Сделать выборку на огромном количестве серверов
|
|||
---|---|---|---|
#18+
Уткъ Ролг Хупин пропущено... О, вы рискуете отстать от времени и от технологий. Вам надо задачу решить или "считать", что на каких-то серверах продуктам MS не место? Мир изменился, MS встроила в Windows WSL2. Вы в курсе? MS поняла что они никому нафиг не нужны и прогибается как может, и sql server под линукс выпустили. Но сути MS это не меняет, их цель выкачивание бабла любыми способами, не смотря на весьма плохое качество ПО. По этой причине продуктам на серверах не место. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2021, 12:31 |
|
Сделать выборку на огромном количестве серверов
|
|||
---|---|---|---|
#18+
Уткъ Ролг Хупин пропущено... О, вы рискуете отстать от времени и от технологий. Вам надо задачу решить или "считать", что на каких-то серверах продуктам MS не место? Мир изменился, MS встроила в Windows WSL2. Вы в курсе? MS поняла что они никому нафиг не нужны и прогибается как может, и sql server под линукс выпустили. Но сути MS это не меняет, их цель выкачивание бабла любыми способами, не смотря на весьма плохое качество ПО. По этой причине продуктам на серверах не место. Вот это душевно "MS поняла что они никому нафиг не нужны" Кому "никому"? Если не трудно расшифруйте эту глубокую мысль "По этой причине продуктам на серверах не место"? Каким "продуктам" и на каких "серверах"? Да, и кто определил, что мол "не место"? Большое человеческое спасибо наперёд ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2021, 12:34 |
|
Сделать выборку на огромном количестве серверов
|
|||
---|---|---|---|
#18+
Уткъ Maxim Boguk Я не очень знаю что там с реализацией асинхронного соединения с базой и асинхронной работы с запросами. Как оно на libpq делается знаю. Максим, очень интересно как это сделать, поделитесь пожалуйста. Всё есть в документации. https://www.postgresql.org/docs/14/libpq-connect.html PQconnectStartParams PQconnectStart PQconnectPoll Make a connection to the database server in a nonblocking manner. и далее по тексту. -- Maxim Boguk лучшая поддержка PostgreSQL: dataegret.ru ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2021, 14:34 |
|
Сделать выборку на огромном количестве серверов
|
|||
---|---|---|---|
#18+
Maxim Boguk Уткъ пропущено... Максим, очень интересно как это сделать, поделитесь пожалуйста. Всё есть в документации. https://www.postgresql.org/docs/14/libpq-connect.html PQconnectStartParams PQconnectStart PQconnectPoll Make a connection to the database server in a nonblocking manner. и далее по тексту. -- Maxim Boguk лучшая поддержка PostgreSQL: dataegret.ru + c# npgsql Код: c# 1. 2. 3. 4. 5.
... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2021, 16:05 |
|
Сделать выборку на огромном количестве серверов
|
|||
---|---|---|---|
#18+
Уткъ ... Для win среды, написал бы что-то аналогичное для PowerShell Благодарю за пример. Часть серверов, к сожалению на винде... [/quot] Я бы выделил следующие моменты которые нужно решить: 1) параллельность 2) proxy/jump соединения 3) authority 4) cross platform executing 5) избежать установки дополнительного ПО на сервера os side solution: 1) powershell умеет параллелить команды 2) powershell умеет работать через proxy session 3) настройка не требует перезапуска postgres, но может быть гемор если нет общего дерева/домена см комментарий ниже 4) ssh/unix - решение уже приводил + powershell есть для linux 5) powershell можно установить настроить только на рабочей workstation, остальные сервера не требуют установки доп ПО здесь грабли которые вижу - сквозная авторизация для powershell через подсетки/домены, если конечно уже нет единой системы Выбор shell, решает флаг в списке серверов правда придется скрипты писать придется в двух версиях все остальное более/менее штатно Я бы пошел по этому пути. Если выбрать в качестве решения postgresql side solution: 1) параллельность - (job) 2) proxy/jump соединения - требует extension, хотя ЯТД количество подсеток все же меньше чем кол-во серверов, можно и заморочится 3) authority, тут могут быть засады, гемора немало 4) cross platform executing, без особых проблем 5) избежать установки дополнительного ПО на сервера proxy/jump соединения - требует extension, но только на proxy машины ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2021, 18:35 |
|
|
start [/forum/topic.php?all=1&fid=53&tid=1993727]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
28ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
61ms |
get tp. blocked users: |
2ms |
others: | 292ms |
total: | 430ms |
0 / 0 |