на локальный в csv файл
какие ресурсы удаленного сервера будут задействованы?
Таблица 30 гб, надо ее сохранить локально, но свободной физ памяти на удаленном сервера 10гб, оперативы 16
По ощущениям оно долго собирает данные кудато в буфер, потому что файл не наполняется. Где этот буфер и сколько его надо для такой таблицы?
С ходу идей никаких нет, должно работать через psql \copy
Ну и таблицу такого размера я бы выгружал и загружал частями (возможно и параллельно) Наверняка должен быть принцип по которому такой набор данных можно разбить: дата записи или часть ключа: кастомеры, регионы, диапазоны идентификаторов
> какие ресурсы удаленного сервера будут задействованы? Диск и сколько-то RAM (зависит от настроек PostgreSQL на этом сервере). > По ощущениям оно долго собирает данные кудато в буфер, потому что файл не наполняется. Это почти наверняка никак не связано с сервером. Чем Вы делаете "select с удаленного сервера на локальный в csv файл"?
пробовал 3 варианта, 3й самый норм 1. pg_dump 2. psql -c «SELECT * FROM TABLE» > file.csv 3. \copy
1. Читает всю базу, и даже с -t тратит время на чтение определений таблиц, кажется. 2. Накапливает данные в буфере клиента (psql). 3. Должно начинать выдавать данные сразу (это просто "обёртка" над "серверным" COPY). Вы уверены, что вариант 3 работает не так?
вариант 3 работает нормально, но данные не выдает сразу с другой стороны я и не понимаю как протестить - процесс висит, файл создался, но 0 байт
И это странно. Сейчас проверил — начинает сразу, как и должен. Может, это файловая система так себя ведёт? Если делать \copy your_table TO stdout в psql, данные сразу начинают выдаваться?
Обсуждают сегодня