Re: Есть л - Mailing list pgsql-ru-general
From | Denis A. Egorov |
---|---|
Subject | Re: Есть л |
Date | |
Msg-id | 20050704100438.GI19807@virtonconsultants.com Whole thread Raw |
In response to | Re: Есть ли та ("Viktor Vislobokov" <vvislobokov@parma-telecom.ru>) |
List | pgsql-ru-general |
Здравствуйте, Viktor Vislobokov! Я думаю что могу немного помочь в этом вопросе. Насколько я понял задача стоит разделения трафика на типы, в моём слечаее это был мир/украина. Тоже сначала думал всё пихать в БД, но это очень дорого обходится, как в объёмах так и в обработке. И решил что лучше всего брать fprobe(не из Debian) и ставить flow-tools и писать соответствующие скрипты. А в базу складывать уже результаты, например раз в полчаса. Скриптами могу поделиться. On Mon, Jul 04, 2005 at 03:33:12PM +0600, you wrote: -> -> >>Но мне бы хотелось сравнить значение именно со списком! КАК? -> >> -> >> -> > -> >А может это просто чрезмерное увлечение вложенными запросами? :) -> > -> >SELECT * FROM nets_tbl WHERE 'xxx.xxx.xxx.xxx' << net AND name='perm' ; -> > -> > -> > -> Вот что бывает, когда пытаешься упросить задачу для объяснения. ;) -> Всё сложнее, поэтому (на мой взгляд) и понадобился список. Я сильно -> упростил задачу, чтобы дать понять, что я хочу. В итоге получил более -> рациональное и правильное решение, но увы не применимое в моём случае, а -> только в том случае, который я описал. -> -> Ладно попробуем снова, теперь по полной программе: -> Есть таблица тафика: -> CREATE TABLE traffic_tbl ( -> id SERIAL PRIMARY KEY, -> tdate DATE, -> src_ip INET NOT NULL, -> src_port INT, -> dst_ip INET NOT NULL, -> dst_port INT, -> size INT4 NOT NULL -> ); -> где полный трафик -> -> Есть таблица сетей: -> CREATE TABLE nets_tbl ( -> id SERIAL PRIMARY KEY, -> name VARCHAR(40) NOT NULL, -> net INET NOT NULL -> ); -> В этой таблице есть ряд записей про пермские сети и ряд записей про IP -> адреса сетевых интерфейсов компьютера alpha -> -> Хочу получить данные о всём пермском трафике, исходящем с компьютера -> alpha по всем сетевым интерфейсам -> в некую таблицу results_tbl: -> -> INSERT INTO results_tbl (month, year, note, size) -> VALUES(4,2005,'Пермский исходящий трафик с alpha', -> (SELECT sum(size) FROM traffic_tbl WHERE -> src_ip IN (SELECT net FROM nets_tbl WHERE name='alpha') AND -> dst_ip __________IN__________ (SELECT net FROM nets_tbl -> WHERE name='perm'))); -> -> Вот там где ______IN________ очень бы хотелось сравнить со списком. Как -> сделать подругому - я не знаю, ибо не очень силён в SQL. -> -> -- -> С уважением, Виктор -> -> -> -> ---------------------------(end of broadcast)--------------------------- -> TIP 1: subscribe and unsubscribe commands go to majordomo@postgresql.org -> С уважением, -- Denis A. Egorov
pgsql-ru-general by date: