@pgsql

Страница 602 из 1062
Andrey
13.12.2017
15:08:17
Alexander
13.12.2017
15:08:45
или еще https://www.hackerrank.com/dashboard

Sergey
13.12.2017
15:15:36
https://livesql.oracle.com/apex/livesql/file/index.html

Vladislav
13.12.2017
15:18:29
Google
Shyngys
13.12.2017
17:39:05
формат времени в БД12 часовое , его можно поменять на 24 часовой?

как?

@b6ed7
13.12.2017
18:35:46
формат времени в БД12 часовое , его можно поменять на 24 часовой?
Возможно так https://stackoverflow.com/questions/40460083/how-to-convert-12-hours-timestamp-format-to-24-hours-timestamp-format-in-postgre

Shyngys
13.12.2017
18:40:26
Спасибо, завтра попробую

Sergey
13.12.2017
20:26:04
Нашел в приложении самый эпичный баг года) догадайтесь, что же здесь пошло не так: =# \d proxies Table "public.proxies" Column | Type | Modifiers —----------+-----------------------------+------------------------------------------------------------ id | bigint | not null default nextval('proxies_id_seq'::regclass) ip | character varying(150) | not null port | integer | not null user | character varying(200) | password | character varying(200) | запрос такой: SELECT ip, port, user, password FROM proxies и он даже успешно выполняется. Но результат неправильный.

Sergey
13.12.2017
23:24:45
мб public.proxies?
нет. тут вполне норм. просто таблица proxies объявлена в схеме public

фишка в кривости самого запроса на выборку

om
13.12.2017
23:27:16
А что в нём не так?

Sergey
13.12.2017
23:28:23
значение, которое вернется в колонке user)

Sergey
13.12.2017
23:35:01
Ну вот если это поле в select указать в двойных кавычках или указать полностью proxies.user, тогда отработает правильно. Но из-за лени так мало кто делает

Google
om
13.12.2017
23:53:12
Мда.

Artem
14.12.2017
00:31:21
Мне кажется, это не баг, это фича.

Насколько я понимаю, речь про юзера в PG?

Так вот он может быть без кавычек, например ivanov

А если ivanov.ii , то только в кавычках.

Или речь не об этом? :)

om
14.12.2017
00:35:01
Или речь не об этом? :)
SELECT user вернёт тебе имя пользователя сессии. Скажем так - это особенность.

Anton [Mgn, az09@osm]
14.12.2017
05:21:02
SELECT user вернёт тебе имя пользователя сессии. Скажем так - это особенность.
очень милая "особенность". получается что к каждому твоему запросу пг джоинит еще некую системную вьюшку?

Andrey
14.12.2017
05:34:35
очень милая "особенность". получается что к каждому твоему запросу пг джоинит еще некую системную вьюшку?
Нет, просто ещё на этапе разбора запроса в него подставляется вызов системной функции currenr_user.

Anton [Mgn, az09@osm]
14.12.2017
05:36:03
а, значит это всё таки функция! но какой смысл в этом?

выгладит так будто кто-то из разработчиков пг отлаживался, а потом этот вызов забыли убрать ?

Arthur
14.12.2017
06:13:16
Нет, это задокументированная функция https://www.postgresql.org/docs/current/static/functions-info.html#FUNCTIONS-INFO-SESSION-TABLE

Alexander
14.12.2017
06:20:03
всем добрый день. Возник вопрос о вертикальной масштабируемости посгре, есть ли у нее предел?

Yura
14.12.2017
07:07:11
всем добрый день. Возник вопрос о вертикальной масштабируемости посгре, есть ли у нее предел?
Предел есть. На ядрах одного сокета масштабируется довольно хорошо. big numa машина может показать производительность хуже, чем один сокет той же машины. Но все это, если нет большого write contention. С write contention пока все плохо.

Николай
14.12.2017
07:28:16
Подскажите, я пишу приложение с использованием google maps. Т.к. локаций становится очень много я хочу перенести кластеризацию маркеров на бекенд. Может быть кто-нибудь ссылку на какой-нибудь снипеет или туториал даст, как лучше это сделать с использованием Postgis?

Николай
14.12.2017
07:30:34
а почему на google maps?
Не знаю, особо не выбирал.

Darafei
14.12.2017
07:30:36
а вообще кластиризовать точки есть десятки способов, нужно понимать природу и задачи до того, как кластеризовать

в самом постгисе нативно и то штуки четыре разных кластеризатора

Google
Николай
14.12.2017
07:31:48
Около 100к точек, сейчас кластеризируется с помощь js библиотеки, кластеризируются норм, загружаются долго

Darafei
14.12.2017
07:32:20
kmeans, dbscan, within, intersecting

Николай
14.12.2017
07:32:47
kmeans есть в постгис? Я просто начал один пакет разбирать, там kmeans отдельным расширением ставится

Darafei
14.12.2017
07:33:15
https://postgis.net/docs/ST_ClusterKMeans.html

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

Николай
14.12.2017
07:40:24
Я щас вот это модуль ковыряю https://github.com/biodiv/anycluster там вот такой вот запрос вроде как основной https://dumpz.org/2711518/ Он работает так как мне надо, собственно вот пример https://www.anymals.org/nx/bigmap/ Я хочу разобраться как он это делает и сделать по аналогии без установки дополнительного расширения kmeans. Как я понял этот модуль устаревший.

Anton [Mgn, az09@osm]
14.12.2017
07:40:25
Около 100к точек, сейчас кластеризируется с помощь js библиотеки, кластеризируются норм, загружаются долго
я бы наверно договаривался с ТЗ что б можно было через пагинацию делать

никому и никогда 100К не может понадобиться разом

Николай
14.12.2017
07:41:17
никому и никогда 100К не может понадобиться разом
Почему? Посмотри пример https://www.anymals.org/nx/bigmap/

Darafei
14.12.2017
07:41:37
нарисуй их не точками, а полигонами

Николай
14.12.2017
07:41:57
Зачем?

Есть какая-то проблема?

Darafei
14.12.2017
07:43:13
да, у тебя сейчас точки друг на друга налезают и неясно, на какую территорию они растащены

а вообще выкинь всё и возьми https://github.com/Leaflet/Leaflet.markercluster

или https://blog.mapbox.com/clustering-millions-of-points-on-a-map-with-supercluster-272046ec5c97

Anton [Mgn, az09@osm]
14.12.2017
07:44:53
но вообще конечно трассировка нужна вот этого вот всего. и сравнение

Николай
14.12.2017
07:45:46
У меня сейчас https://www.npmjs.com/package/points-cluster работает хорошо

Но загружается долго

Darafei
14.12.2017
07:46:39
работает плохо, там TTFB одна секунда

Google
Darafei
14.12.2017
07:46:58
и content download 1.14ms

Николай
14.12.2017
07:48:28
Ок, но 100к точек загружать всё равно долго. Поэтому я хочу сделать server-side кластеризацию...

Я что-то упускаю?

Darafei
14.12.2017
07:49:47
да, kmeans - не для визуализации, для визуализации карты по зумам сейчас самое лучшее что есть - supercluster

если ты прочтёшь статью, там есть ссылка, как его запустить на сервере

ну и api точно надо переделать на такое, которое можно закешировать - тайлы нарезать в статику, например

Николай
14.12.2017
07:51:48
Че такое тайлы?

Artem
14.12.2017
07:54:06
s3 webdav
S3 - boto

Anton [Mgn, az09@osm]
14.12.2017
08:41:44
иногда это даже почти динамика, а не статика

а, значит от своего оверлейного слоя так и не отказались?.. ну такое себе. но вам виднее ))

А как от него откажешься? Когда в ТЗ стоит уметь отображать до 20 тысяч одновременно движущихся ТС. ?

и никакой кластеризации

yurc
14.12.2017
08:46:34
Добрый день помогите разобраться, CREATE OR REPLACE FUNCTION mcore.py_exec( _ssql text, _jdat jsonb) RETURNS text AS $BODY$ import json dic=json.loads(_jdat) plan = plpy.prepare(_ssql, []) res = plpy.execute(plan, []) return '{}' $BODY$ LANGUAGE plpython3u VOLATILE COST 100; ALTER FUNCTION mcore.py_exec( text, jsonb) OWNER TO postgres; упростил до минимума нужен вызов такой select py_exec('select py_exec(''select 1'',''{}''::jsonb);','{}'::jsonb); на версии PostgreSQL 9.5.10 on x86_64-pc-linux-gnu, compiled by gcc (Debian 4.7.2-5) 4.7.2, 64-bit работает стабильно через раз с такой ошибкой а на версии PostgreSQL 9.6.3 on x86_64-pc-linux-gnu, compiled by gcc (Debian 4.9.2-10) 4.9.2, 64-bit все просто отлично

R: KeyError: '_jdat' SQL-состояние: 38000 Контекст: Traceback (most recent call last): PL/Python function "py_exec", line 4, in <module> dic=json.loads(_jdat) PL/Python function "py_exec", line 308, in loads PL/Python function "py_exec", line 352, in decode PL/Python function "py_exec"

и там и там CREATE PROCEDURAL LANGUAGE 'plpython3u' HANDLER plpython3_call_handler INLINE plpython3_inline_handler VALIDATOR plpython3_validator; ALTER LANGUAGE plpython3u OWNER TO postgres;

Andrey
14.12.2017
08:49:17
А почему именно третий питон? На втором все ок?

yurc
14.12.2017
08:49:44
сейчас попробую

ERROR: KeyError: '_jdat' CONTEXT: Traceback (most recent call last): PL/Python function "py_exec", line 3, in <module> import json PL/Python function "py_exec" ****** Ошибка ****** ERROR: KeyError: '_jdat' SQL-состояние: 38000 Контекст: Traceback (most recent call last): PL/Python function "py_exec", line 3, in <module> import json PL/Python function "py_exec"

та же ошибка

Google
yurc
14.12.2017
09:19:54
нельзя так в 9.5?

Andrey
14.12.2017
09:25:15
loads должен строку принимать, попробуйте text

Еще модно вывести через notice значение locals().

yurc
14.12.2017
09:33:07
так на 9.5 она работает ровно через один раз один раз норм другой ошибка

CREATE OR REPLACE FUNCTION mcore.py_exec( _ssql text, _jdat text) RETURNS text AS $BODY$ import json dic=json.loads(_jdat) plan = plpy.prepare(_ssql, []) res = plpy.execute(plan, []) return '{}' $BODY$ LANGUAGE plpythonu VOLATILE COST 100; ALTER FUNCTION mcore.py_exec( text, text) OWNER TO postgres;

Andrey
14.12.2017
09:34:32
Ну вот и увидите, отличаются loclals() для этих двух вызовов или нет.

yurc
14.12.2017
09:34:40
поменял та же ошибка ERROR: KeyError: '_jdat' CONTEXT: Traceback (most recent call last): PL/Python function "py_exec", line 3, in <module> import json PL/Python function "py_exec" ****** Ошибка ****** ERROR: KeyError: '_jdat' SQL-состояние: 38000 Контекст: Traceback (most recent call last): PL/Python function "py_exec", line 3, in <module> import json PL/Python function "py_exec"

Darafei
14.12.2017
09:35:18
очень странно выглядит keyerror вообще на обращение к переменной

yurc
14.12.2017
09:35:40
вызывал так select py_exec('select py_exec(''select 1'',''{}'');','{}');

как добавить locals() ?

Andrey
14.12.2017
09:36:17
plpy.notice(locals())

Darafei
14.12.2017
09:36:20
plpython передаёт в функцию параметры через глобальные переменные

это надо иметь в виду

yurc
14.12.2017
09:37:15
ну на 9.6 то все ок

Darafei
14.12.2017
09:38:13
»Allow PL/Python functions to call themselves recursively via SPI, and fix the behavior when multiple set-returning PL/Python functions are called within one query (Alexey Grishchenko, Tom Lane)

в 9.6 это только разрешили, вызывать рекурсивно самого себя в plpython

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