
Николай
26.04.2018
07:38:05

Yaroslav
26.04.2018
07:39:03

Николай
26.04.2018
07:41:06
Вся таблица большая. Вот отрывок

Google

Николай
26.04.2018
07:41:26
не важно, что написано sqlite, я потом переведу
ip я вычленю, это не проблема
Пока идут только с одинаковым ip в базу

Vladislav
26.04.2018
07:42:24
а что надо точно получить? аптайм или все таки дату старта?

Николай
26.04.2018
07:43:09
Нужно получить дату, предыдущая строка которого была получена более 1 мин назад. В идеале льётся раз в 5 сек

Yaroslav
26.04.2018
07:43:51

Николай
26.04.2018
07:44:22
В идеале то в sqlite, согласно проекту, но с постгресом у меня получше. Мб получится перевести
разве не получится как то кроме функций?

Vladislav
26.04.2018
07:45:29

Николай
26.04.2018
07:45:55
Как, например
В том то и вопрос - я не знаю какой инструмент использовать в данном случае)

Vladislav
26.04.2018
07:47:13
партиции по айпи, сортировка по дате и фрейм с интервалом минус минута
https://www.postgresql.org/docs/9.6/static/sql-expressions.html#SYNTAX-WINDOW-FUNCTIONS
дальше уже это в подзапрос и получить агригацию

Google

Yaroslav
26.04.2018
07:49:27

Николай
26.04.2018
07:55:16

Vladislav
26.04.2018
07:55:37
фрейм в оконке
это другое

Николай
26.04.2018
07:55:59
типо тело функции чтоль имелось ввиду?

Vladislav
26.04.2018
07:58:18
я ссылку не просто так кинул
там написано про фреймы
то что у постгреса в этом плане унылая документация, вопросы и проблемы не ко мне

Amir
26.04.2018
08:01:46
подскажите от каких настроек зависит размер pg_xlog ?
как узнать что надо бить тревогу, если какой то предел расчетного размера превышен
есть реплики, есть бекапы на отдельных серверах
на мастере сейчас
48G ./data/pg_xlog
хочу понять это нормально или нет

Yaroslav
26.04.2018
08:09:55
типо тело функции чтоль имелось ввиду?
И ещё раз: если вам нужен sqlite, забудьте о них —- там этого нет.
Кстати, если бы вы выложили CREATE TABLE + сколько-то тестовых данных, то, может быть, вам бы и с запросом подсказали конкретнее...

Николай
26.04.2018
08:12:13
Таблица большая. Пока стараюсь всё таки в sqlite сделать.
Вот пример Create (из под питона):
cur.execute('''CREATE TABLE IF NOT EXISTS {} (
id integer primary key autoincrement,
ip json,
period date,
disk real,
memory real,
swap_memory real,
cpu json,
cpu_cores json,
disks_bytes json,
disks_operations json,
interfaces_speed json)'''.format(TABLENAME))

Yaroslav
26.04.2018
08:13:02

Николай
26.04.2018
08:13:58
15 строк тестовых данных помещаются на 100 строках в телеграмме, хз как кинуть)

Yaroslav
26.04.2018
08:14:15
Таблица большая. Пока стараюсь всё таки в sqlite сделать.
Вот пример Create (из под питона):
cur.execute('''CREATE TABLE IF NOT EXISTS {} (
id integer primary key autoincrement,
ip json,
period date,
disk real,
memory real,
swap_memory real,
cpu json,
cpu_cores json,
disks_bytes json,
disks_operations json,
interfaces_speed json)'''.format(TABLENAME))
А тестовые данные? Должен же sqlite уметь их выгружать в виде INSERT-ов...

Amir
26.04.2018
08:14:37

Николай
26.04.2018
08:15:22
https://pastebin.com/ur6eMRSq

Google

Николай
26.04.2018
08:15:37
ip из json вычленить не проблема
По сути остальные поля, кроме ip и period - информационные, не более, в данном случае

Yaroslav
26.04.2018
08:17:26
ip из json вычленить не проблема
Серьёзно?
Вот и займитесь этим, и дайте _нормальные_ CREATE TABLE + INSERT.
Вы думаете, кто-то испытывает жгучее желание делать это за вас? ;(

Николай
26.04.2018
08:17:50
А чем этот не нормальный create table?
Таблица большая. Пока стараюсь всё таки в sqlite сделать.
Вот пример Create (из под питона):
cur.execute('''CREATE TABLE IF NOT EXISTS {} (
id integer primary key autoincrement,
ip json,
period date,
disk real,
memory real,
swap_memory real,
cpu json,
cpu_cores json,
disks_bytes json,
disks_operations json,
interfaces_speed json)'''.format(TABLENAME))
и как понять "нормальный" insert?
То, что пишется, я прислал
Вот например как можно вычленить json, но это sqlite синтксис
select *
FROM statistic, json_each(statistic.ip)
where json_each.value = "127.0.0.1"

Yaroslav
26.04.2018
08:23:26
А чем этот не нормальный create table?
Ну так выполните его из клиента sqlite —- узнаете, чем. :(
А нормальные INSERT-ы —- это INSERT INTO tablename(id, ip, period) VALUES (1, 1, '20110813...'); и т.д.
Слушайте, вам помощь нужна или нет?
Вы понимате, зачем вас об этом просят?


Николай
26.04.2018
08:24:04
CREATE TABLE IF NOT EXISTS statistic (
id integer primary key autoincrement,
ip json,
period date,
disk real,
memory real,
swap_memory real,
cpu json,
cpu_cores json,
disks_bytes json,
disks_operations json,
interfaces_speed json
INSERT into statistic (ip, period, disk, memory, swap_memory, cpu, cpu_cores, disks_bytes, disks_operations, interfaces_speed)
values (
{"lo": "127.0.0.1", "enp2s0": "192.168.12.9"},
2018-04-25 00:00:01.683813,
{"/dev/sda1": 3.2, "/dev/sdb2": 32.5, "/dev/sdb1": 0.0},
22.0,
0.0,
{"idle": 4965202.86, "system": 97132.96, "cores": 4, "other": 16683.95, "user": 268831.02},
[{"idle": 1241946.41, "system": 24310.06, "other": 5172.18, "user": 66600.34}, {"idle": 1241800.08, "system": 24147.69, "other": 4214.53, "user": 67013.43}, {"idle": 1240253.63, "system": 24301.5, "other": 3611.95, "user": 67952.43}, {"idle": 1241202.73, "system": 24373.7, "other": 3685.24, "user": 67264.8}],
{"sda1": {"write": 512000, "read": 6763520}, "sdb2": {"write": 133060808704, "read": 2554278912}, "sdb1": {"write": 1024, "read": 9573376}},
{"sda1": {"r/s": 0.0, "%": 0.0, "ops": 0.0, "w/s": 0.0}, "sdb2": {"r/s": 0.1, "%": 0.21, "ops": 6.21, "w/s": 6.11}, "sdb1": {"r/s": 0.0, "%": 0.0, "ops": 0.0, "w/s": 0.0}},
{"lo": {"in": 63665151832, "out": 63665151832}, "enp2s0": {"in": 30368647104, "out": 6040415920}}
)


Николай
26.04.2018
08:27:02
вот. полностью sql синтаксис
Понял зачем, виноват
https://pastebin.com/RaD03nSh
множественный insert

Yaroslav
26.04.2018
08:34:24
вот. полностью sql синтаксис
Да, так намного лучше. :) А вы можете дать больше тестовых данных (в идеале, убрать не относящиеся к делу поля)?

Николай
26.04.2018
08:34:59
Хм. Думаю могу и без лишних полей. ща новую пасту пришлю.
https://pastebin.com/hsVXPDkz

Yaroslav
26.04.2018
08:37:20

Google

Николай
26.04.2018
08:37:34
Минуту
Есть ошибка, сейчас, исправляю
https://pastebin.com/HRJm4jHz
Yaroslav
В названии таблицы только нужно стереть '_test'

Yaroslav
26.04.2018
08:56:58

Admin
ERROR: S client not available

Oleg
26.04.2018
09:25:34
Блин ошибся

Vladimir
26.04.2018
09:32:29
Вау, какие люди здесь есть!)

Roman
26.04.2018
10:14:11
где?
кто здесь?

Yaroslav
26.04.2018
10:59:00

Ibosh
26.04.2018
11:09:52
Добрый день, вопрос такой, через жаву добавил записи в Table, как я могу запросить id этого же Row

Nikita
26.04.2018
11:15:05

Ibosh
26.04.2018
11:15:41
спасибо

Николай
26.04.2018
11:17:36

Alexander
26.04.2018
11:18:21

Ibosh
26.04.2018
11:19:19

Yaroslav
26.04.2018
11:19:20

Николай
26.04.2018
11:19:29
Именно!

Google

Николай
26.04.2018
11:22:11
И желательно возможность устанавливать промежуток, который можно принять за разрыв

Yaroslav
26.04.2018
11:26:27
Но его, конечно, надо допилить, даже если общая идея такая (т.е. это то, что было нужно).

Николай
26.04.2018
11:41:53
Спасибо!

Amir
26.04.2018
14:08:34
подскажите можно ли узнать в разрезе конкретной таблицы можно узнать когда последний раз ресетнулась статистика?
например сегодня узнал что если делать pg_repack
то статистика обнуляется....
сейчас период сдачи счетов приближается,
необходимо просто почистить неиспользуемые индексы. есть вероятность что можно так удалить то что на самом деле использовалось
сам ресет специально замораживали на месяц

Sergey
26.04.2018
14:12:43
можете подсказать ни у кого не было проблемы SQL err pq: could not open file "pg_tblspc/18881/PG_9.4_201409291/16384/18884": No such file or directory
не могу выполнить select postgre 9.4

Fedor
26.04.2018
14:13:56
файл побился
если индексовый то пол беды
если табличный то бэкап

Sergey
26.04.2018
14:15:10
как можно починить
просто в гугл не могу найти решения

Yaroslav
26.04.2018
14:17:16

Sergey
26.04.2018
14:18:01

Yaroslav
26.04.2018
14:19:42

Fedor
26.04.2018
14:20:52

Yaroslav
26.04.2018
14:32:56