
Stanislav
26.03.2017
07:03:21
значения 26/15/786 меняются каждую сек. Нужно привязать каждое значение ко времени, и эти данные использовать для графика

Anton
26.03.2017
07:03:45
либо это чистый фронтенд будет, как вариант
храните историю в БД, разбивайте по партициям, делайте выборки
не реалтайм, но с минимальной задержкой, если БД шустрая

Google

Stanislav
26.03.2017
07:05:14
ну да, задержка небольшая устроит вполне..

Anton
26.03.2017
07:05:40
будут поля ts | equip_id | type | name
но equip_id | type | name вообще справочник
для данных (логов измерений) отдельную таблицу с ts | equip_id | value

Айтуар
26.03.2017
07:10:28

Stanislav
26.03.2017
07:20:33

Айтуар
26.03.2017
07:21:25
Можно и руками.

Anton
26.03.2017
07:24:23
https://gist.github.com/tarabanton/0fc9f13a4ad0d843f0fcb2d9fe401e36
вот пример функции и триггера для партицирования
без расширений можно обойтись нормально
я использую на партицировании таблиц Zabbix

Ildar
26.03.2017
07:51:35

Google

Anton
26.03.2017
07:52:03
ну я конкретно про выборки имел в виду

Ildar
26.03.2017
07:56:21
кстати, раз зашла речь про партиц-е, не могу не прорекламировать pg_pathman : )

Anton
26.03.2017
07:56:42
да да ) Знаем такое
я планирую даже потестить на своих Zabbix БД
там огромные таблицы с миллионами строк значений даже при партицировании по дням
ой.. на несколько порядков ошибся ) сотни миллионов. За сутки порядка 30-35 гигабайт

Ildar
26.03.2017
08:01:55
а как долго храните логи?

Anton
26.03.2017
08:02:03
Оно только благодаря партицированию хоть как-то и живёт
45 дней
очистка скриптом.
родной функционал заббикса умирает при попытке чистки истории )

Ildar
26.03.2017
08:02:56
тогда можно даже почаще нарезать - по часу или по нескольким часам

Anton
26.03.2017
08:02:57
Удаляем просто партиции старые

Roman
26.03.2017
08:03:38
Заббикс говно

Anton
26.03.2017
08:03:50
вот не надо ) Вопрос задач

Ildar
26.03.2017
08:04:11

Roman
26.03.2017
08:04:28
Не нужно использовать SQL для time series данных, это всем известно

Darafei
26.03.2017
08:04:57
причём язык запросов к типу данных?

Roman
26.03.2017
08:05:28
Оно только благодаря партицированию хоть как-то и живёт

Anton
26.03.2017
08:06:06
там объём данных огромен. на 10-20 хостах и без партиций жить можно

Google

Anton
26.03.2017
08:06:10
вопрос в числе метрик
а как инструмент - заббикс нормальный. Я уже с пол года юзаю mamonsu агент
написал пачку плагинов и горя не знаю

Roman
26.03.2017
08:06:58
Prometeus держит 1 млн метрик в секунду

Anton
26.03.2017
08:07:26
У вас такой инструмент, у нас исторически для мониторинга инфраструктуры - заббикс
Prometheus для метрик приложений
но это опять таки наш частный случай )

Артур
26.03.2017
08:09:55
Но ни разу так не делал. А значит не уверен в корректности своего решения

Anton
26.03.2017
08:11:32
ну если нет требований к переносимости окружения на другой хост, отличный от хоста БД - почему нет
Костыль, но работает )
разве что надо не забыть что БД будет писать от своего имени

Артур
26.03.2017
08:14:54
Согласен. Но я могу в принципе сообщать папку при формированиии запроса. Запрос будет формироватьс не через хранимку, а на бекенде.
Будет что-то типа:
$query= "Copy (Select * From foo) To ".__DIR__."/export/tmp.csv' With CSV DELIMITER ',';"
По поводу авторства файла (chown) - есть идеи?

Петр
26.03.2017
09:52:46
copy to program? (только надо будет разрешить пользователю, от которого пг запущено, выполнять chown)

Darafei
26.03.2017
10:49:52
to stdin / stdout

Yury
26.03.2017
11:16:29

Andrew
26.03.2017
11:16:38
> но памяти много надо
заюзать server side cursor?

Yury
26.03.2017
11:16:41
cvs можно генрить поточно

Centrino
26.03.2017
11:18:19
Привет.
Есть таблица:
тип продукта|значение| дата
Как написать запрос, который будет для каждого типа выводить разницу двух последних по дате значений?

Google

Igor
26.03.2017
11:18:56
https://blog.jooq.org/2015/05/12/use-this-neat-window-function-trick-to-calculate-time-differences-in-a-time-series/

Centrino
26.03.2017
11:19:16
и здесь ты).
Спасибо

Igor
26.03.2017
11:19:16
https://www.postgresql.org/docs/9.6/static/functions-window.html

Centrino
26.03.2017
11:19:51
почему стыдно?

Igor
26.03.2017
11:20:52
а, блин. сорри, я не так тебя понял.
хотя, может оконными функциями будет правильнее.
но можно еще через GROUP BY product_type и MAX() с GREATEST()

Admin
ERROR: S client not available

Centrino
26.03.2017
11:23:15
тоже подумал про оконные функции. Но я в них слабо умею. Django ORM расслабила меня)

Andrew
26.03.2017
11:26:41
Юрий, как можно без server side cursor получить только часть данных от выполненнго запроса?.. питонячий psycopg2 данные сразу все стягивает, хоть и дает потом по ним итерироваться через fetchone/fetchmany/fetchall... в других библиотеках подругому?
можно делать запросы по offset/limit, но чем это лучше server side cursor?
или ты имел ввиду copy to в клиент?
в смысле stdout
вообще да, смысла нет на сервере БД файл писать, copy to stdout делаешь и пишешь нормально на бакенде
памяти тут никакой не надо, в отличии от обычных select'ов


Stanislav
26.03.2017
12:39:59
{
"driver":"org.postgresql.Driver",
"url":"jdbc:postgresql://104.111.111.111:5432/hackaton",
"username":"postgres",
"password":"iY9hUq999tY",
"id":"objectId",
"geometry":"vector",
"sql":"Select * From geom Inner Join l1030 on l1030.objectId = geom.objectId Where layerId = 1030",
"proj4":"+proj=tmerc +ellps=krass +lon_0=35d30E +lat_0=0d0N +k=1 +x_0=5300000 +y_0=-9214.69 +towgs84=25.0,-141,-78.5,0.0,0.35,0.736,0.0"
}
ребят вопрос
Есть 2 разных сервера . С одного этот скрипт карту выводит на гис платформу
со второго нет

Google

Stanislav
26.03.2017
12:41:33
со второго поля не выводит
это со второй

Lev
26.03.2017
12:43:08
данные во втором сервере вообще есть? Чистый запрос что вернёт?

Stanislav
26.03.2017
12:43:32
да
геометрия и атрибуты
А есть какой-нибудь опенсорос веб что бы на нём ещё тест провести
может мой портачит

Lev
26.03.2017
12:48:05
select st_srid(vector) что вернёт для обоих серверов?
select st_srid(vector) from geom Inner Join l1030 on l1030.objectId = geom.objectId Where layerId = 1030

Stanislav
26.03.2017
12:55:02
Ситуация следующая в рабочим сервером - поля не выгружает общую карту земли даёт
тот которй не выводил ничего - опять ничего не вывел

Lev
26.03.2017
12:59:48
Сначала нужно понять есть ли данные, которые выводить. И в правильной ли они системе координат. Если запрос возвращает пустоту, то там может ничего не быть. Подключись к базе утилитой psql. Не гисами.

Stanislav
26.03.2017
13:10:00
Есть подозрение что сервер в облаке не верно настроен
Может кто поделиться сервером, базу поднять буквально на 2 часа. Только поля накинуть для презентации

Lev
26.03.2017
13:16:27
Кстати, если сервер с базой данных второй в дефолтном конфиге и далеко, возможно он режет подключение с внешних IP адресов.