<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
	<channel>
		<title><![CDATA[Forum PostgreSQL - Wolne działanie pomiędzy dwoma wirtualnymi maszynami]]></title>
		<link>https://forum.postgresql.org.pl/viewtopic.php?id=2304</link>
		<description><![CDATA[Najświeższe odpowiedzi w Wolne działanie pomiędzy dwoma wirtualnymi maszynami.]]></description>
		<lastBuildDate>Sun, 13 Sep 2015 17:26:05 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Odp: Wolne działanie pomiędzy dwoma wirtualnymi maszynami]]></title>
			<link>https://forum.postgresql.org.pl/viewtopic.php?pid=5544#p5544</link>
			<description><![CDATA[Co do partycjionowania, to tutaj masz bardzo dobry opis depesza [url]http://www.depesz.com/2015/06/07/partitioning-what-why-how/.[/url]
Co do małej wydajności insertów to nadal bardzo trudno mi Ci pomóc, podejrzewam, że po każdym insercie idzie commit, a to mocno zwolni bazę. Dodatkowo musisz pamiętać, że postgresql jest systemem wieloprocesorowym ale tak naprawdę to jeśli wykonujesz wszystkie inserty za pomocą jednego połączenia to postgres naraz wykonuje tylko jednego inserta. (podziel to zadanie na tyle procesorów ile masz na serwerze, wtedy mocno wzrośnie Ci wydajność). Innym sposobem jest przygotowanie pliku z poleceniem COPY i wykonanie go bezpośrednio na bazie, możesz też przygotować plik Csv i podpiąć go za pomocą rozszerzenia file_fdw, są też możliwości bezpośredniego podpięcia tabel z innego postgresa lub oracle).]]></description>
			<author><![CDATA[dummy@example.com (c_michal)]]></author>
			<pubDate>Sun, 13 Sep 2015 17:26:05 +0000</pubDate>
			<guid>https://forum.postgresql.org.pl/viewtopic.php?pid=5544#p5544</guid>
		</item>
		<item>
			<title><![CDATA[Odp: Wolne działanie pomiędzy dwoma wirtualnymi maszynami]]></title>
			<link>https://forum.postgresql.org.pl/viewtopic.php?pid=5543#p5543</link>
			<description><![CDATA[Michał dzięki za odpowiedź.
Tak jak napisałem do ładowania używam narzędzia ETL pentaho, czytam plik po drodze wykonuję kilka transformacji na danych i ładuję do tabeli. Na razie doszedłem do tego, że jeżeli zapisuje do jednej tabeli to już idzie te 3000 r/s ale jak zapisuje do dwóch(w drugiej mam rekordy których nie udało się z jakiegoś powodu załadować) to wtedy spada do tych 200 r/s - być może wina leży jednak po stronie procesu pentaho to musze jeszcze potestować.

Ale jeśli można to przy okazji chciałem zapytać o kolejną  rzecz, mianowicie partycjonowanie, które dajeo mi w kość od paru dni.
Mam dane załadowane do tabeli(tabela ma 70GB) i te dane chce załadować do innej tabeli która jest popartycjonowana(365 partycji po 1 na każdy dzień) - z tej tabeli będą tworzone raporty - głównie dzienne.
Zrobiłem triggera na tabeli głównej + funkcję rozrzucającą po partycjach tak jak jest w dokumentacji - wydajność tego jest tragiczna po 20 godzinach przerwałem zapytanie. Z tego co sprawdziłem na mniejszej ilości danych procedura działa szybciej niż ten trigger więc napisałem procedurę, która kursorem czyta tą dużą tabelę i rozrzuca dane bezpośrednio do tabel partycji ale już na tej dużej tabeli też przerwałem po 20 godzinach...
Ciekawe jest to, że podczas wykonywania tych zapytań zasoby sprzętowe są mało wykorzystywane(procesor dochodzi do 70%, RAM do 70%, macierz prawie w ogóle nie wykorzystana) - o co chodzi ?]]></description>
			<author><![CDATA[dummy@example.com (kostek)]]></author>
			<pubDate>Fri, 11 Sep 2015 06:35:33 +0000</pubDate>
			<guid>https://forum.postgresql.org.pl/viewtopic.php?pid=5543#p5543</guid>
		</item>
		<item>
			<title><![CDATA[Odp: Wolne działanie pomiędzy dwoma wirtualnymi maszynami]]></title>
			<link>https://forum.postgresql.org.pl/viewtopic.php?pid=5541#p5541</link>
			<description><![CDATA[Napisz coś więcej, w jaki sposób ładujesz plik, używasz polecenia copy, podłączasz CSV-ła za pomocą fdw.
Jeśli generujesz inserty to czy wykorzystujesz polecenie prepare, a może wykorzystujesz pg_ctl.
A może rozważ replikacje?]]></description>
			<author><![CDATA[dummy@example.com (c_michal)]]></author>
			<pubDate>Wed, 02 Sep 2015 13:48:08 +0000</pubDate>
			<guid>https://forum.postgresql.org.pl/viewtopic.php?pid=5541#p5541</guid>
		</item>
		<item>
			<title><![CDATA[Wolne działanie pomiędzy dwoma wirtualnymi maszynami]]></title>
			<link>https://forum.postgresql.org.pl/viewtopic.php?pid=5540#p5540</link>
			<description><![CDATA[Witam wszystkich

Bardzo proszę o pomoc, mam problem z wydajnością - insertowanie rekordów do PostgreSQL(9.2.7). Przesyłanie danych odbywa się miedzy dwoma maszynami wirtualnymi(fizycznie jest to ta sama maszyna). Do ładowania danych używam narzędzia Pentaho - czytanie danych z pliku(maszyna A) i ładowanie do bazy danych(maszyna B) - niestety maksymalny rate to 200 rekordów/s i wąskim gardłem na 100% jest ładowanie do bazy bo robiłem kilka testów:

A -> A(z pliku do pliku) - 12 000 r/s
A -> B(z pliku do ORACLE) - 5000 r/s
B -> B(z pliku do postgres, plik i baza na tej samej VM) - 3000 r/s
A -> B(z pliku do postgres) - [b][color=red]200 r/s[/color][/b]
 
Nie jest to też na 100% problem połączenia sieciowego ponieważ transfer plików pomiędzy A i B spokojnie osiąga 50Mb - transmisja i tak nie powinna iść poprzez sieć bo VMware wykrywa, że jest to połączenie wewnątrz tej samej fizycznej maszyny.
Bardzo prosze o jakieś wskazówki ew. co jeszcze mógłbym przetestować.


pozdrawiam]]></description>
			<author><![CDATA[dummy@example.com (kostek)]]></author>
			<pubDate>Wed, 02 Sep 2015 10:27:13 +0000</pubDate>
			<guid>https://forum.postgresql.org.pl/viewtopic.php?pid=5540#p5540</guid>
		</item>
	</channel>
</rss>
