@pgsql

Страница 806 из 1062
Anton [Mgn, az09@osm]
17.05.2018
12:14:55
потому что пол может занимать в среднем пол таблицы
Но в некоторых странах лишь 1/7 таблицы. Простите)

Павел
17.05.2018
12:19:59
туплю ппц..

➜ ~ sudo service postgresql status ● postgresql.service - PostgreSQL RDBMS Loaded: loaded (/lib/systemd/system/postgresql.service; enabled; vendor preset: enabled) Active: active (exited) since Чт 2018-05-17 17:10:28 +05; 5min ago Main PID: 4713 (code=exited, status=0/SUCCESS) май 17 17:10:28 lip systemd[1]: Starting PostgreSQL RDBMS... май 17 17:10:28 lip systemd[1]: Started PostgreSQL RDBMS. май 17 17:10:30 lip systemd[1]: Started PostgreSQL RDBMS.

типа всё норм, но!:

Google
Павел
17.05.2018
12:19:59
➜ ~ sudo netstat -nltp | grep 5432 ➜ ~ sudo netstat -nltp | grep 5433 ➜ ~ sudo netstat -nltp | grep 5431 ➜ ~ sudo netstat -nltp | grep 5430 ➜ ~ sudo netstat -nltp | grep 5434

➜ ~ ps axf | grep postgres 5800 pts/18 S+ 0:00 | \_ grep —color=auto —exclude-dir=.bzr —exclude-dir=CVS —exclude-dir=.git —exclude-dir=.hg —exclude-dir=.svn postgres ➜ ~

➜ ~ psql psql: не удалось подключиться к серверу: Нет такого файла или каталога Он действительно работает локально и принимает соединения через доменный сокет "/var/run/postgresql/.s.PGSQL.5432"? ➜ ~

sudo service пишет, что всё ок, но постгреса нет на порту, и процесса с таким именем тоже нет

и psql ессно не подключается

удалял purge, ставил без ошибок, перезагружался - не работает

народ, прошу, помогите, а?

Darafei
17.05.2018
12:21:08
а что в конфиге он должен слушать?

Павел
17.05.2018
12:22:03
а что в конфиге он должен слушать?
ты мне? в каком именно конфиге?

Denis
17.05.2018
12:22:16
так он вообще не запустился, видимо

Darafei
17.05.2018
12:22:19
в postgresql.conf

Павел
17.05.2018
12:22:41
Anton [Mgn, az09@osm]
17.05.2018
12:22:54
в postgresql.conf
Или pg_hba?..

Google
Павел
17.05.2018
12:23:09
в postgresql.conf
unix_socket_directories = '/var/run/postgresql'

Darafei
17.05.2018
12:23:16
в pg_hba уже права, а перед правами слушать нужно

Павел
17.05.2018
12:24:18
я даже не понимаю где логи ошибок смотреть, ибо сервис то не работает, а при запуске от sudo service никаких ошибок нет...

Denis
17.05.2018
12:24:54
загляните в /var/logs/postgres, если есть

Nikita
17.05.2018
12:25:31
он же по дефолту вроде в свою папку пишет логи

типа data/pg_log

Павел
17.05.2018
12:25:52
➜ ~ cat /var/log/postgresql/postgresql-9.6-main.log ➜ ~

больше в той папке логов нет

Dmitriy
17.05.2018
12:29:12


Victor
17.05.2018
12:30:27
union не пойдет?

Dmitriy
17.05.2018
12:31:26
нет никак

Darafei
17.05.2018
12:32:40
or?

Dmitriy
17.05.2018
12:32:50
or?
не поддерживается

Darafei
17.05.2018
12:32:59
как не поддерживается?

Dmitriy
17.05.2018
12:33:20
в BQ нельзя так соединять

Darafei
17.05.2018
12:33:27
в чём?

Dmitriy
17.05.2018
12:33:39
Google Big query

Darafei
17.05.2018
12:34:23
этот чат по postgresql, в postgresql можно писать любое логически валидное выражение в on в join

Vladimir
17.05.2018
12:34:40
Case when ..

Darafei
17.05.2018
12:35:28
так что искать, какими костылями обойти в вашей БД

Google
Vladimir
17.05.2018
12:35:50
Or свяжет в обоих случаях. Если привязался первый надо ли вязать второй?

Darafei
17.05.2018
12:35:51
интересно, кстати, если в postgres его в fdw подтянуть, оно ведь сделает этот join

where a1=b1 or (a1 != b1 and a2=b2)

Dmitriy
17.05.2018
12:38:26
Darafei
17.05.2018
13:00:21
Спасибо просто нету пока рускоязычного чата по BQ.
довольно легко сделать "очень быструю" технологию, просто запретив все медленные операции :)

давайте сделаем такой суперскоростной постгрес. если в запросе есть два секскана и nested loop join, выдавать "запрос не поддерживается".

Сергей
17.05.2018
13:03:28
довольно легко сделать "очень быструю" технологию, просто запретив все медленные операции :)
сарказм сарказмом, но в этой действительно есть смысл. не давать разработчику выстрелить в ногу

And
17.05.2018
13:08:26
в постгре триггеры могут только процедуры вызывать? обычный кусок кода нет возможности?

Сергей
17.05.2018
13:09:05
что такое обычный кусок кода?

And
17.05.2018
13:09:50
if (...) update ...

Lev
17.05.2018
13:20:10
if (...) update ...
чем хранимка отличается от простого кода?

Darafei
17.05.2018
13:20:37
тем, что выполняется в контексте сервера баз данных

And
17.05.2018
13:21:28
тем, что ее нужно создать и хранить где-то, и тем что ее может вызвать другой

и если у вас 200 триггеров, то как я понял, вы обязуетесь создать 200 процедур

или можно обойтись без них?

Sergey
17.05.2018
13:23:30
и если у вас 200 триггеров, то как я понял, вы обязуетесь создать 200 процедур
Просто 200 триггеров которые могут вызывать однуи ту же процедуру. Например запись действия в таблицу аудита.

And
17.05.2018
13:24:34
ребята, вопрос не в этом) если есть политика "ухода от процедур" то есть ли возможность создать триггер на постгре без процедур

Сергей
17.05.2018
13:27:06
ребята, вопрос не в этом) если есть политика "ухода от процедур" то есть ли возможность создать триггер на постгре без процедур
))))) так уход от процедур и тригеров тоже. это ж взаимосвящанные вещи. логику стараются в приложение переносить

Darafei
17.05.2018
13:27:35
"уход от логики в базе"

Google
And
17.05.2018
13:31:39
Сергей
17.05.2018
13:38:19
"уход от логики в базе"
вот правильный ответ

Yaroslav
17.05.2018
13:41:35
да, но в sql server'e триггеры не требуют процедур, поэтому и спрашиваю
Наверное, потому, что там только один язык хранимых процедур, а в PostgreSQL —- несколько. Кроме того, такая реализация даёт возможность использовать ту же хранимку для нескольких триггеров.

Oatmeal
17.05.2018
13:46:29
Oracle developer  Уровень зарплаты  От 65 000 ₽  Город Новосибирск  Специализации по заявке  Информационные технологии, интернет, телеком  Программирование, Разработка Обязанности:  Участие в автоматизации финансовых проектов, таких как бюджетирование, управленческий учет, и др.  Автоматизация и диспетчеризация производства.  Требования:Что требуется от вас:  Хорошее знание sql и pl/sql - коллекции, аналитические функции, рекурсивные запросы, базовые навыки оптимизации.  Опыт проектирования БД - анализ предметной области, моделирование, нормализация, денормализация.  Умение разбираться в чужом коде.  Умение понять пользователя, нацеленность на конечный результат и клиентоориентированность. Знание системы контроля версий - git.  Нездоровая тяга к документированию своего кода.  Условия:  Современные технологии разработки,  Трудоустройство по ТК РФ и стабильную заработную плату 2 раза в месяц,  Уровень заработной платы определяется по результатам собеседования a.svetlana.art@gmail.com

nietzschebrod
17.05.2018
13:47:20
так себе заход

Darafei
17.05.2018
13:49:09
Oracle developer  Уровень зарплаты  От 65 000 ₽  Город Новосибирск  Специализации по заявке  Информационные технологии, интернет, телеком  Программирование, Разработка Обязанности:  Участие в автоматизации финансовых проектов, таких как бюджетирование, управленческий учет, и др.  Автоматизация и диспетчеризация производства.  Требования:Что требуется от вас:  Хорошее знание sql и pl/sql - коллекции, аналитические функции, рекурсивные запросы, базовые навыки оптимизации.  Опыт проектирования БД - анализ предметной области, моделирование, нормализация, денормализация.  Умение разбираться в чужом коде.  Умение понять пользователя, нацеленность на конечный результат и клиентоориентированность. Знание системы контроля версий - git.  Нездоровая тяга к документированию своего кода.  Условия:  Современные технологии разработки,  Трудоустройство по ТК РФ и стабильную заработную плату 2 раза в месяц,  Уровень заработной платы определяется по результатам собеседования a.svetlana.art@gmail.com
привет! а в России всё ещё не запретили Oracle?

Vladimir
17.05.2018
13:49:45
Не все сразу

Andrey
17.05.2018
13:49:59
Oracle developer  Уровень зарплаты  От 65 000 ₽  Город Новосибирск  Специализации по заявке  Информационные технологии, интернет, телеком  Программирование, Разработка Обязанности:  Участие в автоматизации финансовых проектов, таких как бюджетирование, управленческий учет, и др.  Автоматизация и диспетчеризация производства.  Требования:Что требуется от вас:  Хорошее знание sql и pl/sql - коллекции, аналитические функции, рекурсивные запросы, базовые навыки оптимизации.  Опыт проектирования БД - анализ предметной области, моделирование, нормализация, денормализация.  Умение разбираться в чужом коде.  Умение понять пользователя, нацеленность на конечный результат и клиентоориентированность. Знание системы контроля версий - git.  Нездоровая тяга к документированию своего кода.  Условия:  Современные технологии разработки,  Трудоустройство по ТК РФ и стабильную заработную плату 2 раза в месяц,  Уровень заработной платы определяется по результатам собеседования a.svetlana.art@gmail.com
Казалось бы, причём тут postgres?

Vladimir
17.05.2018
13:51:15
Ilya
17.05.2018
14:41:22
Привет! Тут есть питонисты? У меня psycopg, делаю запрос cursor.execute() — отрабатывает один час. Затем прохожу по всем строкам и складываю их в dict — неожиданно, ещё один час. Вопрос: может ли быть такое, что банальная итерация по строкам занимает столько же времени, сколько сам запрос? Строк чуть больше миллиона.

Ilia
17.05.2018
14:48:25
э...

Писал я на нём...

Ilia
17.05.2018
14:51:08
Привет! Тут есть питонисты? У меня psycopg, делаю запрос cursor.execute() — отрабатывает один час. Затем прохожу по всем строкам и складываю их в dict — неожиданно, ещё один час. Вопрос: может ли быть такое, что банальная итерация по строкам занимает столько же времени, сколько сам запрос? Строк чуть больше миллиона.
Я кажется понимаю в чём проблема. cursor.execute() НЕ ВЫПОЛНЯЕТ запрос до конца. Он только НАЧИНАЕТ ВЫПОЛНЯТЬ запрос и формирует первую порцию данных. Остальные данные ВЫЧИСЛЯЮТСЯ по мере продвижения по курсору вперёд. В общем, твои представления о том, как мерить время запроса, немного неверны. Надо открыть курсор, и профетчить все данные

vlade11115
17.05.2018
14:51:47
Показалось что ты ответил сам себе.

Vyacheslav
17.05.2018
14:55:58
я бы убился бы час ждать

удивительно, что это не кажется первостепенной проблемой

Ilya
17.05.2018
14:57:20
это проблема, да. Я когда-то сократил с двух, но дальше забил

Google
Vyacheslav
17.05.2018
14:58:17
может тогда возвращать сырые данные в python и обрабатывать там?

Ilya
17.05.2018
15:01:56
Тогда получится вложенный запрос, что едва ли быстрее. Если интересно, запрос вот: https://github.com/Zverik/omim/blob/75264b67534e739c4219e9055b250f8f9f8742a9/tools/geocoder_pg/places_feed.py#L13 (в таблице под 2 млн строк, но из-за place in (...) получается seq scan, т.к. под условие попадают больше половины строк)

Vyacheslav
17.05.2018
15:12:06
нельзя не дофетчить до конца

Ilia
17.05.2018
15:12:13
нельзя не дофетчить до конца
Это зависит от клиента. Далеко не все дофетчивают.

Vyacheslav
17.05.2018
15:12:44
def exec_func_select(self, query): conn = psycopg2.connect(self.CONN_STRING) cursor = conn.cursor() try: cursor.callproc(query) output = cursor.fetchall() return output except psycopg2.Error as e: print(e.pgerror) print(e.diag.message_detail) sys.exit(1) finally: cursor.close() conn.close()

как тут не дофетчить?

Jim
17.05.2018
15:13:50
@ilyazver попробуй лучше пачками данные читать, а не всё сразу в память

раз так много

Jim
17.05.2018
15:14:26
мне думается что эффективнее будет

Ilia
17.05.2018
15:14:50
Ilia
17.05.2018
15:16:24
1,1 млн примерно
Как сам думаешь, СУБД имеет память чтобы хранить твои эти 1.1. млн записей?

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