@pgsql

Страница 300 из 1062
Sergey
13.04.2017
06:05:38
У PgPro есть функция WAITLSN - ждёт пока на слейве докатится определенный LSN https://postgrespro.ru/docs/postgrespro/9.6/sql-waitlsn.html После внесения изменений на primary можно получить текущий LSN с помощью pg_current_xlog_location() и дождаться его на slave

Denis
13.04.2017
06:24:56
flvyes_123

Centrino
13.04.2017
10:08:26
Привет. Делаю дамп с базы тестовой. Он получается 15гб. Можно ли как-то порезать этот дамп, некоторые "лишние таблицы" почистить при дампе? На рабочую машину не влазит

Fedor
13.04.2017
10:09:18
дампать только нужные таблицы

Google
Alexey
13.04.2017
10:09:45
вот правда... порой хочется ответить man pg_dump

Centrino
13.04.2017
10:09:51
наверное не точно выразился

Centrino
13.04.2017
10:10:10
мне нужно не исключить полностью, а оставить там 10% строк

Alexey
13.04.2017
10:10:26
сэмплинг

Fedor
13.04.2017
10:10:35
угу

Alexey
13.04.2017
10:10:38
и он, поди, должен быть согласованный?

Centrino
13.04.2017
10:10:38
если я исключу полностью, то остальное сломается(

Alexey
13.04.2017
10:10:54
в смысле, чтоб все целостности сохранились и т.д.

я таких автоматических/generic механизмов не знаю, скорее всего вам нужно пилить что-то свое

Centrino
13.04.2017
10:12:28
видимо придется пилить скрипт, который будет делать бэкап, удалять часть базы и делать дамп

спасибо

Alexey
13.04.2017
10:13:00
ну это может быть частью некого ETL (https://ru.wikipedia.org/wiki/ETL)

Google
Alexey
13.04.2017
10:13:14
т.е. не обязательно в какой-то БД удалять что-то

можно просто вытягивать из src (БД источник) небольшой согласованный набор данных

Centrino
13.04.2017
10:14:17
не знаю таких слов)

Alexey
13.04.2017
10:14:21
но все это делать надо с учетом понимания вашей схемы и домена

Артур
13.04.2017
10:15:09
А можно просто делатать копию базы, вызывать заранее написанную процедуру-удалялку,потом уже ее дамп делать

Ну как вариант

Сергей
13.04.2017
10:58:35
возможно у тебя есть таблицы с историей или логами в базе. вот их можно исключить. обычно после такого дамп сильно меньше

согласованный кусок данных ты в общем случае никак не выгрузишь. БД не располагает такой инфой(с учетом кастомных констрейнов, циклических ссылок через десяток таблиц и тд)

Артур
13.04.2017
10:59:48
мне нужно не исключить полностью, а оставить там 10% строк
Он же сказал что нужно частично таблицы чистить

Centrino
13.04.2017
11:00:32
в общем, решил написать скрипт, который чистит базу и после делает дамп. А потом восстанавливает базу из бэкапа

Александр
13.04.2017
11:12:29
Они там охуели со своими комиссиями

Сергей
13.04.2017
11:32:32
еще кто-то не пользуется онлайн-банками?

Akzhan
13.04.2017
11:32:37
Не является проблемой, если первичными являются банковские счета. У меня часто наличности нет вообще.

Айтуар
13.04.2017
12:05:04
Здравствуйте. Я знаю что здесь у же речь об этом поднималась. Мне нужно быстро сделать партиционирование на таблице размером в почти 1 ТБ - что посоветуете?

Igor
13.04.2017
12:11:38
воспользоваться поиском? %)

Айтуар
13.04.2017
12:18:09
судя по поиску проблема с returning id при инсёрте не решена в pg-pathman

Igor
13.04.2017
12:20:01
а pg_partman не подходит?

Andrey
13.04.2017
12:20:29
судя по поиску проблема с returning id при инсёрте не решена в pg-pathman
В pg-pathman как раз вроде поддерживается returning.

Айтуар
13.04.2017
12:20:34
а pg_partman не подходит?
вроде это он и есть, просто переименованный.

Google
Andrey
13.04.2017
12:20:48


Dmitry
13.04.2017
12:21:02
Айтуар
13.04.2017
12:21:10
а это в первой версии вроде?

Andrey
13.04.2017
12:21:17
Да.

Айтуар
13.04.2017
12:21:39
а вы можете уточнить проблему?
ну у нас используется джанга, и она ждёт returning id при вставке

а вставка в род таблицу не происходит, а в партицию сразу

раньше так работало вроде

Dmitry
13.04.2017
12:22:24
и?

Айтуар
13.04.2017
12:22:34
и возращает 0

Dmitry
13.04.2017
12:23:02
я правильно понимаю, что речь идет о том, что на родителе висит default?

Айтуар
13.04.2017
12:23:36
я правильно понимаю, что речь идет о том, что на родителе висит default?
ну джанга как раз общается только с род таблицей

Dmitry
13.04.2017
12:24:24
ну джанга как раз общается только с род таблицей
я предлагаю продолжить общение в личке, чтобы никому не мешать

Сергей
13.04.2017
12:44:54
добавьте меня про джангу и парцирование

мне это тож надо

Yura
13.04.2017
16:03:27
Зря вы убежали партицировать в отдельный чат.

Тут бы инфа пригадилась многим

*пригодилась

Кто-то уже решает подобную проблему, кто-то читает и перенимает опыт. Все пригодится

Fedor
13.04.2017
16:05:03
это точно

Denis
13.04.2017
16:05:36
Перенаправите выжимки из чата сюда)

Google
Dmitry
13.04.2017
18:01:34
Если так подумать, то со стороны выглядело как попытка замять проблему :) На самом деле мы проблему воспроизвести не смогли, ни в psql, ни с Джанго. Если все-таки подтвердится - будем решать

Репост будет

Айтуар
13.04.2017
18:19:17
Перенаправите выжимки из чата сюда)
Я буду испытания проводить на живом приложении на днях. Отпишусь о результатах.

Admin
ERROR: S client not available

Pavel
14.04.2017
00:10:41
Я вот прям уверен, что можно select somefunc(123) превратить в команду в psql типа somefunc(123). Не подскажите, в какую сторону копать?

Denis
14.04.2017
02:43:05
Я вот прям уверен, что можно select somefunc(123) превратить в команду в psql типа somefunc(123). Не подскажите, в какую сторону копать?
Если не секрет, почему уверены?) документация говорит, что без select/perform функцию вызвать нельзя.

Ildar
14.04.2017
06:51:57
Я вот прям уверен, что можно select somefunc(123) превратить в команду в psql типа somefunc(123). Не подскажите, в какую сторону копать?
можно прописать shortcut в файлик .psqlrc (лежит в домашней папке юзера): \set somefunc 'SELECT somefunc' и потом использовать так: :somefunc(123)

Konstantin
14.04.2017
09:41:30


Алексей
14.04.2017
12:47:57
подскажите плиз. если исполнить запрос update table set column='-infinity'::timestamp with time zone

проставится -infinity в каждую строку? или высчитается дата

Akzhan
14.04.2017
12:48:44
эм, а выполнить запрос дольше, чем ждать ответа в чатике?)

Алексей
14.04.2017
12:48:59
проставляется -infinity

вопрос в том что есть два поля udt типа timestamp with time zone и по умолчанию new() и поле adt того же типа по умолчанию '-infinity'::timestamp with time zone

при инсерте в таблицу в поле udt проставляется дата все норм а в поле adt лезет NULL

чем должно заполнится поле при таком значении по умолчанию?

Denis
14.04.2017
12:56:20
Должно быть -infinity, если вы в качестве значения поля передаете default или не указываете поле

Akzhan
14.04.2017
12:57:09
dev@localhost:unisocial> create table ttt(adt timestamp with time zone default '-Infinity'::timestamp wi ........................ th time zone); CREATE TABLE Time: 0.003s dev@localhost:unisocial> insert into ttt values(default); INSERT 0 1 Time: 0.001s dev@localhost:unisocial> select * from ttt; +-----------+ | adt | |-----------| | -infinity | +-----------+ SELECT 1 Time: 0.001s

Алексей
14.04.2017
12:58:25
ок. спс. значит у меня проблема в том что он не проставляет -infinity что должен делать т.к. я не указываю данное поле при инсерте

Google
Akzhan
14.04.2017
13:00:23
нет dev@localhost:unisocial> alter table ttt add column id int default 1; ALTER TABLE Time: 0.253s dev@localhost:unisocial> insert into ttt(id) values(1); INSERT 0 1 Time: 0.001s dev@localhost:unisocial> select * from ttt; +-----------+------+ | adt | id | |-----------+------| | -infinity | 1 | | -infinity | 1 | +-----------+------+ SELECT 2 Time: 0.001s

Denis
14.04.2017
13:00:40
Вообще не так должно быть - даже если не писать поле в insert, то должно по умолчанию подставляться то, что написано в default

Akzhan
14.04.2017
13:01:02
скорее всего проблема в вашем ORM etc.

Denis
14.04.2017
13:01:13
Покажите \d имятаблицы

Akzhan
14.04.2017
13:02:06
просто посмотрите, что за INSERT ваше приложение присылает в Postgres

Я более чем уверен, что именно приложение зачем-то подставляет NULL

Алексей
14.04.2017
13:11:47
если я напишу инсерт руками не указав ничего для этого столбца почему то передается null

Anatoliy
14.04.2017
13:15:33
Ну либо не указывайте поле в инсерте, либо сделайте его not null

Denis
14.04.2017
13:15:57
А покажите запрос на вставку

Алексей
14.04.2017
13:23:06
В таком случае он ругается что передается null а поле стоит not null

Ну либо не указывайте поле в инсерте, либо сделайте его not null

Andrew
14.04.2017
13:30:05
всем добрый вечер помогите разобраться select category from catalog where category ilike any (array['%чехлы%','%сувенир%','%подарки%','%пленки%','%детские%','%часы%']); должен же выводить все где встречаются эти слова? как сюда умудряется попасть слова вида "Смартфоны" "Телефоны и связь/Apple iPhone"

Страница 300 из 1062