Partittion Sorusu

Lists: pgsql-tr-genel
From: Mücahit Şenol <mucahitsenol86(at)gmail(dot)com>
To: pgsql-tr-genel(at)postgresql(dot)org
Subject: Partittion Sorusu
Date: 2018-10-18 23:19:53
Message-ID: CAPvMgXsZW-f81gRPqpCFDt-tjrDbgoMCMnK+94pUYrawTzwdEQ@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-tr-genel

Merhaba Arkadaşlar,

Django web servisimiz AWS RDS üzerinde PGSQL 10 bir veritabanı kullanıyor.
Çok büyük bir tablomuz var, 300 milyon satırlı. Bunu partitionlara bölmeye
çalışıyorum. Kullancıların etkilenmemesi için eski tablodaki verileri yavaş
yavaş yeni partitionlanmış tabloya atmak istiyorum. Djangoda bir kod
değişikliği yapmak istemiyorum.

Tablo yapıları şöyle:
eski_tablo => [id(pk), user_id, ....., partition_hash]
yeni_tablo_parted => [id(pk), user_id, ....., partition_hash]
partition_hash, rowun hangi partition'a gideceğini belirliyor.

Ben istiyorum ki INSERT, UPDATE, DELETE, SELECT komutları sadece
eski_tablo'ya gelsin. Eğer gelen rowların partition_hash'ı NULL değil is
yeni_tablo_parted'a route edilsin, NULL ise eski_tablo'ya gitsin.

Bunu en basit şekilde nasıl yapabilirim. Bu iki tabloyu birleştiren bir
view kullanmak mı daha akıllıca yoksa trigger ve rule mu yazmalıyım?


From: M(dot)Atıf CEYLAN <mehmet(at)atifceylan(dot)com>
To: mucahitsenol86(at)gmail(dot)com
Cc: pgsql-tr-genel <pgsql-tr-genel(at)postgresql(dot)org>
Subject: Re: Partittion Sorusu
Date: 2018-10-23 13:28:24
Message-ID: CA+M9mDRE3XL69vZ7tObgUU_Dzo=ie3wFFmTwTXy4Om4jhvAHPw@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-tr-genel

Selamlar,
Hocam rule yazarak halletmen en makul yöntem.

Mücahit Şenol <mucahitsenol86(at)gmail(dot)com>, 19 Eki 2018 Cum, 02:20 tarihinde
şunu yazdı:

> Merhaba Arkadaşlar,
>
> Django web servisimiz AWS RDS üzerinde PGSQL 10 bir veritabanı kullanıyor.
> Çok büyük bir tablomuz var, 300 milyon satırlı. Bunu partitionlara bölmeye
> çalışıyorum. Kullancıların etkilenmemesi için eski tablodaki verileri yavaş
> yavaş yeni partitionlanmış tabloya atmak istiyorum. Djangoda bir kod
> değişikliği yapmak istemiyorum.
>
> Tablo yapıları şöyle:
> eski_tablo => [id(pk), user_id, ....., partition_hash]
> yeni_tablo_parted => [id(pk), user_id, ....., partition_hash]
> partition_hash, rowun hangi partition'a gideceğini belirliyor.
>
> Ben istiyorum ki INSERT, UPDATE, DELETE, SELECT komutları sadece
> eski_tablo'ya gelsin. Eğer gelen rowların partition_hash'ı NULL değil is
> yeni_tablo_parted'a route edilsin, NULL ise eski_tablo'ya gitsin.
>
> Bunu en basit şekilde nasıl yapabilirim. Bu iki tabloyu birleştiren bir
> view kullanmak mı daha akıllıca yoksa trigger ve rule mu yazmalıyım?
>
>
>