Size: a a a

pgsql – PostgreSQL

2021 February 25

LM

Lina M in pgsql – PostgreSQL
И при обычном нормальном ежедневном прогоне таких проблем нет, поскольку в день обрабатывается ~300,000 сообщений, ~3-4 сообщений в секунду. Проблема именно в том, чтобы закинуть имеющиеся исторические данные в короткие сроки. Вот за ночь добавило в базу 53 млн записи, когда в итоге должно быть ~270 млн
источник

D

Dmitriy in pgsql – PostgreSQL
Lina M
И при обычном нормальном ежедневном прогоне таких проблем нет, поскольку в день обрабатывается ~300,000 сообщений, ~3-4 сообщений в секунду. Проблема именно в том, чтобы закинуть имеющиеся исторические данные в короткие сроки. Вот за ночь добавило в базу 53 млн записи, когда в итоге должно быть ~270 млн
А закидывать их не поштучно, а пачками  не вариант?
источник

LM

Lina M in pgsql – PostgreSQL
Dmitriy
А закидывать их не поштучно, а пачками  не вариант?
Скорее нет, чем да. Но судя по тому, что вчера переписал транзакции, может быть и это тоже возможно
источник

В

Влад in pgsql – PostgreSQL
коллеги, не просвятите про @ElementCollection при построении баз данных.
В чем вопрос: @Embeddable круто, но данные хранит в самой таблице и лишь в 1 экземпляре, а я хочу хранить например массив сущностей образования человека(там будет множество разных полей), но также жестко привязанных к одному человеку в другой таблице. Просто чтобы не загромождать вид основной.
источник

R

Riclud in pgsql – PostgreSQL
Как перебрать массив json ?
источник

ДМ

Дмитрий Мачихелян... in pgsql – PostgreSQL
CREATE OR REPLACE FUNCTION public.insert_or_update(data jsonb)
 returns void
 LANGUAGE plpgsql
AS $FUNCTION$
 begin
   insert into
   (
   user_id,
   phone_number,
   country_code,
   email,
   contact_name,
   company,job_title,
   account_name,
   contact_group,
   created_at
   )
   select x.userId, x.phoneNumber, x.countryCode, x.contactName, x.company, x.jobTitle, x.accountName, x.contactGroup, x.createdAt
   from json_to_recordset(data) x
   (
   id int8,
   ser_id int8,
   phone_number varchar,
   ountry_code varchar,
   contact_name varchar,
   email varchar,
   company varchar,
   ob_title varchar,
   account_name varchar,
   contact_group int4,
   created_at timestamp
   updated_times int8
   )
   on conflict  on constraint contacts_un do
   update set
     contact_name = new.contact_name
     company = new.company,
     contact_group = new.contact_group,
     email = new.email,
     account_name = new.account_name,
     job_title = new.job_title
 END;
$function$
источник

ДМ

Дмитрий Мачихелян... in pgsql – PostgreSQL
Не могу разобраться, как сделать инсерт в таблицу из json
источник

ДМ

Дмитрий Мачихелян... in pgsql – PostgreSQL
Ловлю такую ошибку Unterminated dollar quote started at position 98 in SQL CREATE OR REPLACE FUNCTION
источник

KK

Konstantin Knizhnik in pgsql – PostgreSQL
Дмитрий Мачихелян
Ловлю такую ошибку Unterminated dollar quote started at position 98 in SQL CREATE OR REPLACE FUNCTION
регистр
источник

AL

Alexey Lesovsky in pgsql – PostgreSQL
Дмитрий Мачихелян
Ловлю такую ошибку Unterminated dollar quote started at position 98 in SQL CREATE OR REPLACE FUNCTION
CREATE OR REPLACE FUNCTION public.insert_or_update(data jsonb)
 returns void
 LANGUAGE plpgsql
AS $FUNCTION$
 begin
   insert into qq
   (
   user_id,
   phone_number,
   country_code,
   email,
   contact_name,
   company,job_title,
   account_name,
   contact_group,
   created_at
   )
   select x.userId, x.phoneNumber, x.countryCode, x.contactName, x.company, x.jobTitle, x.accountName, x.contactGroup, x.createdAt
   from json_to_recordset(data) x
   (
   id int8,
   ser_id int8,
   phone_number varchar,
   ountry_code varchar,
   contact_name varchar,
   email varchar,
   company varchar,
   ob_title varchar,
   account_name varchar,
   contact_group int4,
   created_at timestamp,
   updated_times int8
   )
   on conflict  on constraint contacts_un do
   update set
     contact_name = new.contact_name,
     company = new.company,
     contact_group = new.contact_group,
     email = new.email,
     account_name = new.account_name,
     job_title = new.job_title;
 END
$FUNCTION$


у вас не хватает запятых в разных местах, и имени таблицы после insert into
источник

AL

Alexey Lesovsky in pgsql – PostgreSQL
ну синтаксис функции не соблюден
источник

ДМ

Дмитрий Мачихелян... in pgsql – PostgreSQL
CREATE OR REPLACE FUNCTION public.insert_or_update(data jsonb)
 returns void
 LANGUAGE plpgsql
AS $function$
 begin
   insert into public.contacts
   (
   user_id,
   phone_number,
   country_code,
   email,
   contact_name,
   company,job_title,
   account_name,
   contact_group,
   created_at
   )
   select x.userId, x.phoneNumber, x.countryCode, x.contactName, x.company, x.jobTitle, x.accountName, x.contactGroup, x.createdAt
   from jsonb_to_recordset(data)
   on conflict  on constraint contacts_un do
   update set
     contact_name = new.contact_name,
     company = new.company,
     contact_group = new.contact_group,
     email = new.email,
     account_name = new.account_name,
     job_title = new.job_title
 END;
$function$
источник

ДМ

Дмитрий Мачихелян... in pgsql – PostgreSQL
Вот сейчас исправил
источник

AL

Alexey Lesovsky in pgsql – PostgreSQL
и главный вопрос - зачем вы простой запрос оборачиваете в plpgsql функцию?
источник

ДМ

Дмитрий Мачихелян... in pgsql – PostgreSQL
Потому что мне нужно массовый инсерт сделать с кода. А по одному инсерт кидать очень ужасно и долго
источник

AL

Alexey Lesovsky in pgsql – PostgreSQL
задайте сообществу вопрос как обойтись в вашем случае без plpgsql, я думаю вам подскажут
источник

ДМ

Дмитрий Мачихелян... in pgsql – PostgreSQL
Поэтому хотелось бы передать в функцию json и пусть он уже  разбирается и хранит всё.
Плюс мне нужно использовать on conflict, обычный массовый инсерт мне доступен, но не с on conflict)
источник

VV

Vasily Vologdin in pgsql – PostgreSQL
Всем привет!

Есть цепочка из связанных вьюх, как мне внести изменения в самую нижнюю без удаления зависящих от неё вьюх?

Есть ли какой-то способ
источник

IZ

Igor Zinovik in pgsql – PostgreSQL
Добрый день. Расскажите пожалуйста чем плохи долгие транзакции в состоянии idle in transaction?
Мне это надо донести до отдела разработки чтобы они хотя бы задумались над тем чтобы попробовать их починить (есть транзакции которые в idle in transaction состоянии живут дольше часа).
источник

VY

Victor Yegorov in pgsql – PostgreSQL
Vasily Vologdin
Всем привет!

Есть цепочка из связанных вьюх, как мне внести изменения в самую нижнюю без удаления зависящих от неё вьюх?

Есть ли какой-то способ
если только тело вьюхи — CREATE OR REPLACE.
если список/тип колонок вьюхи, то никак
источник