Size: a a a

pgsql – PostgreSQL

2020 July 16

YS

Yaroslav Schekin in pgsql – PostgreSQL
Yelena Bunina
копи отдельно так же долго идет. то есть если просто в psql вызвать. без передачи в BQ. я вчера просто стопнула процесс спустя 4 часа
Хмм... а разве в BigQuery нельзя частями (только "новые" данные) заливать? Мне смутно помнится, что я что-то такое для кого-то писал, причём уже давно. ;)
источник

s

sexst in pgsql – PostgreSQL
А, вопрос снят
источник

YB

Yelena Bunina in pgsql – PostgreSQL
sexst
Copy куда делается? Рядом на тот же диск в облаке?
для etl в stdout и пайп в другой клауд. отдельно на локальный диск без копирования в BQ - больше 4 часов
источник

s

sexst in pgsql – PostgreSQL
Ищите стомегабитный bottleneck, поддерживаю
источник

YB

Yelena Bunina in pgsql – PostgreSQL
Yaroslav Schekin
Хмм... а разве в BigQuery нельзя частями (только "новые" данные) заливать? Мне смутно помнится, что я что-то такое для кого-то писал, причём уже давно. ;)
можно. но это запрос с условием, что будет еще дольше работать на такой таблице
источник

YB

Yelena Bunina in pgsql – PostgreSQL
Yelena Bunina
можно. но это запрос с условием, что будет еще дольше работать на такой таблице
разве что мутить CDC на Debezium. но там еще програмировать надо преобразование данных. хочется просто копироватьь как есть
источник

GC

Great Cornilio in pgsql – PostgreSQL
добрый день.
есть две таблицы. как сопоставить одну таблицу другой так, чтобы каждой строке из таблицы1 соответствовала самая новая строка из таблицы2(в ней есть дата, конечно)
пример:
table1 
id  data
1   aaaaa
2   bbbb

table2
id   link_id   time
1    1         10:00
2    1         11:00
3    1         10:30
4    2         12:00
5    2         13:00

result
t1.id  t1.data  t2.id   t2.link_id   t2.time
1      aaaaa    2       1            11:00
2      bbbb     5       2           13:00


в какую сторону копать?
источник

YS

Yaroslav Schekin in pgsql – PostgreSQL
Yelena Bunina
можно. но это запрос с условием, что будет еще дольше работать на такой таблице
У Вас запрос на таблице работает всего 15 минут, напоминаю. У Вас проблема не в этом, а где-то "дальше".
Если условие + "только новые/изменённые/удалённые" достаточно селективное (таких записей мало), это может быть ещё и быстрее (особенно, если есть вариант проиндексировать).
источник

YS

Yaroslav Schekin in pgsql – PostgreSQL
Great Cornilio
добрый день.
есть две таблицы. как сопоставить одну таблицу другой так, чтобы каждой строке из таблицы1 соответствовала самая новая строка из таблицы2(в ней есть дата, конечно)
пример:
table1 
id  data
1   aaaaa
2   bbbb

table2
id   link_id   time
1    1         10:00
2    1         11:00
3    1         10:30
4    2         12:00
5    2         13:00

result
t1.id  t1.data  t2.id   t2.link_id   t2.time
1      aaaaa    2       1            11:00
2      bbbb     5       2           13:00


в какую сторону копать?
В сторону LATERAL JOIN с запросом с ORDER BY + LIMIT. Это стандартная задача groupwise maximum, можете погуглить. ;)
источник

GC

Great Cornilio in pgsql – PostgreSQL
вот, спасибо groupwise maximum - ответ на вопрос =)
источник

YB

Yelena Bunina in pgsql – PostgreSQL
ок. спасибо) Yaroslav @hogstaberg  @sgolod
источник

СГ

Сергей Голод... in pgsql – PostgreSQL
Yelena Bunina
для etl в stdout и пайп в другой клауд. отдельно на локальный диск без копирования в BQ - больше 4 часов
а в пайп можно вставить | gzip > ...?
источник

YB

Yelena Bunina in pgsql – PostgreSQL
Сергей Голод
а в пайп можно вставить | gzip > ...?
посмотрю. если при импорте в Bq можно будет разархивировать
источник

СГ

Сергей Голод... in pgsql – PostgreSQL
Yelena Bunina
посмотрю. если при импорте в Bq можно будет разархивировать
если там сжимаемый контент, то это позволит "расширить" сетевую часть за счёт компрессии
источник

AG

Alex G in pgsql – PostgreSQL
Yelena Bunina
ок. спасибо. размер конечно в разы меньше) ну наверно можно подключить еще диск и туда сначала в архив записать. если придумать как в BQ залить архив
А обязательно все 80кк записей таскать каждый день пачкой? За сутки столько накапливаете? Сливайте раз в час дельту, а обработку запускайте по факту окончания суток после сравнивания количества записей в источнике и записанного приемник.
источник

YS

Yaroslav Schekin in pgsql – PostgreSQL
ко🐈TEXHIK 👀#слежузатобой
так таблиц-то две. Та что с ключём решается просто инсёртом без айдишника, он сам сгенериться. Но этот сгенереный нужно указать во второй
Непонятно, как Вы это делаете (Copy? FDW? Ещё как-то?).
Но, в любом случае, нужно загружать в правильном порядке (сначала сами id, потом то, что на них ссылается) и как-то (как раз зависит от метода загрузки) сопоставлять старые и новые id.
источник

к👀

ко🐈TEXHIK 👀#слежузат... in pgsql – PostgreSQL
Yaroslav Schekin
Непонятно, как Вы это делаете (Copy? FDW? Ещё как-то?).
Но, в любом случае, нужно загружать в правильном порядке (сначала сами id, потом то, что на них ссылается) и как-то (как раз зависит от метода загрузки) сопоставлять старые и новые id.
в том-то и дело, что пока не делаю, пришёл спросить вот как лучше. Но в итоге всё же решил, что без хранимки никак, написал хранимку осталось достать данные в каком-то виде чтоб удобно было ей скармливать.
источник

И

Ильнур in pgsql – PostgreSQL
добрый день! при pg_restore никто не сталкивался с ошибкой:
query failed: ОШИБКА:  функция cfs_enable_gc(boolean) не существует
?
отличия в версии минорные. 9.6.11 > 9.6.16
в файлах дампа строк с cfs нет
источник

VN

Vladislav Navrocky in pgsql – PostgreSQL
Господа, как можно в миграции пронумеровать однократно список через update?
источник

VN

Vladislav Navrocky in pgsql – PostgreSQL
сделать sequence, пронумеровать, а потом его удалить?
источник