PostgreSQL Sorgusu Oluşturma
Bu sayfa, Pirivision Compass modülünde bir PostgreSQL veri kaynağına sorgu yazıp kaydetme sürecini anlatır.
Ön Koşul — Port Veri Kaynağı
Bu sorguyu oluşturmak için Port modülünde bir PostgreSQL veri kaynağı tanımlı olmalıdır. Henüz eklenmemişse önce Port'a gidin ve bir bağlantı oluşturun.
Oluşturma Öncesi Gerekli Bilgiler
Bu sayfadaki örnekler Demo Fabrika PostgreSQL veri kümesini ve Port'taki Demo Fabrika - PostgreSQL veri kaynağını kullanır. Aynı veriyi kendi ortamınızda oluşturmak için bkz. Sentetik Veri Üretimi — PostgreSQL.
| Bilgi | Açıklama | Varsayılan | Örnek |
|---|---|---|---|
| Veri Kaynağı | Port'ta eklenmiş PostgreSQL bağlantısı | — | Demo Fabrika - PostgreSQL |
| Sorgu Adı | Compass listesinde görünen isim | — | sensor_zaman_trendi |
| SQL İfadesi | Çalıştırılacak PostgreSQL sorgusu | — | SELECT ts, sicaklik FROM sensor_zaman_serisi WHERE ts >= {{start_date}}::timestamp AND ts <= {{end_date}}::timestamp AND hat_id = {{hat_id}} ORDER BY ts |
| Açıklama | Sorgunun amacı | — | Hat 1 sıcaklık/basınç zaman serisi (son 24 saat) |
| Global Variable | Sorguda {{...}} kullanıldıysa |
— | hat_id (Text, varsayılan HAT-1) |
| Hedef Klasör | Compass klasörü | Kök (Root) | Demo Fabrika / Sensörler |
Önbellek Süresi
PostgreSQL sorguları varsayılan olarak 300 saniye önbelleklenir. Sık güncellenmesi gereken veriler için bu değeri küçültün.
1. Compass Modülüne Girin
Sol menüden Compass modülüne tıklayın.
2. Yeni Sorgu Oluşturun
Sağ üstteki Add New Query butonuna tıklayın.
3. PostgreSQL Veri Kaynağı Seçin
Select Your Data Source ekranında PostgreSQL tipindeki veri kaynağını seçin.
Next butonuna tıklayın.
4. SQL Editörü Açılır
PostgreSQL SQL editör ekranı açılır.
| Bölüm | Açıklama |
|---|---|
| Write Query | SQL kod editörü — PostgreSQL sözdizimi vurgulama aktif |
| Parameters | Sorgu içindeki {{parametre}} değişkenleri otomatik listelenir; önizleme için değer girilir |
| Table Preview | Sağ panelde seçilen tablonun ham verisi — Select Table dropdown ile tablo değiştirilebilir |
| Write with AI | Doğal dille sorgu üret veya geliştir |
| Next | Sorguyu kaydederek parametre ayarları adımına geçer |
5. PostgreSQL Sorgusu Yazın
Parametre sözdizimi
{{hat_id}} gibi çift süslü parantez kullanın. Backend bu token'ı otomatik $1 parametresine çevirir. Tek tırnak içine alırsanız ('{{hat_id}}') sorgu literal '$1' olur ve 0 satır döner.
-- Zaman serisi — son 24 saat, parametreli hat (Demo Fabrika)
SELECT ts,
sicaklik AS sicaklik_c,
basinc AS basinc_bar,
makine_id
FROM sensor_zaman_serisi
WHERE ts >= NOW() - INTERVAL '24 hours'
AND hat_id = {{hat_id}}
ORDER BY ts;
-- DATE_TRUNC ile saatlik ortalama sıcaklık
SELECT DATE_TRUNC('hour', ts) AS saat,
makine_id,
AVG(sicaklik) AS ort_sicaklik
FROM sensor_zaman_serisi
WHERE ts >= {{start_date}}::timestamp
AND ts <= {{end_date}}::timestamp
AND hat_id = {{hat_id}}
GROUP BY saat, makine_id
ORDER BY saat;
-- Lookup tablolarla JOIN — makine markası ve ürün ailesi adı
SELECT v.ts,
v.makine_id,
m.marka,
m.model,
v.vardiya,
u.ad AS urun_ailesi,
v.uretim_adet
FROM vardiya_uretim v
JOIN makineler m ON m.makine_id = v.makine_id
JOIN urun_aileleri u ON u.urun_kodu = v.urun_kodu
WHERE v.ts >= {{start_date}}::timestamp
AND v.ts <= {{end_date}}::timestamp
AND v.hat_id = {{hat_id}}
ORDER BY v.ts DESC, v.makine_id
LIMIT 100;
-- Anlık KPI — son OEE değeri (Radial Gauge için ideal)
SELECT ROUND(oee_yuzde, 1) AS oee
FROM oee_gunluk
WHERE hat_id = {{hat_id}}
ORDER BY ts DESC
LIMIT 1;
Parametre sözdizimi: {{parametre_adi}} — tırnaksız yazılır; kayıt sırasında Global Değişken olarak tanımlanır. Backend {{hat_id}} token'ını otomatik $1 parametre yer-tutucusuna çevirir; tek tırnak içine alırsanız ('{{hat_id}}') sorgu literal '$1' olur ve 0 satır döner.
PostgreSQL'e özgü notlar:
- ::timestamp ile string → zaman damgası dönüşümü yapın ({{start_date}}::timestamp)
- INTERVAL '7 days' yerine INTERVAL '{{gun}} days' ile dinamik aralık mümkündür
- Tablo adı bulunamazsa Port bağlantısında doğru DB'nin seçildiğini kontrol edin
6. Makinist ile Sorgu Yazdırma (AI)
Makinist nedir?
Makinist, Compass SQL sorgu editörünün yapay zeka asistanıdır. Veritabanı tablolarını bağlam olarak seçin, doğal dille isteğinizi yazın; çalıştırılabilir PostgreSQL sorgusu olarak geri döner. Yanıt Langflow üzerinden üretilir ve oturum geçmişi korunur.
Data Explore ekranında, Write Query panelinin sağ üst köşesindeki Write with AI butonuna tıklayın.
Makinist paneli açılır; sol taraf sohbet arayüzüne dönüşür, sağ tarafta Table Preview aktif kalmaya devam eder.
| UI Öğesi | Açıklama |
|---|---|
| Makinist başlığı + 🤖 ikonu | Sol panelin sohbet moduna geçtiğini gösterir |
| Oturum dropdown | Geçmiş oturumlara geçiş; format: {VeriKaynağı}_{Ay}_{SS:dd:ss} (örn. ExampleDB_May_13:36:25) |
| 🗑️ Silme ikonu | Aktif oturumu Langflow'dan siler; yeni boş oturum açılır |
| Close Chat | Makinist panelini kapatır; Write Query moduna döner |
| ≡ (Select Tables) | Tablo seçim modalını açar — tablo seçmeden mesaj gönderilemez |
| Input + ▶ | Mesaj yazma ve gönderme alanı |
1. Tablo Seçin
Sol alttaki ≡ (Select Tables) ikonuna tıklayın. Select Tables modalı açılır; veritabanındaki tüm tablolar checkbox listesi halinde görünür.
Kullanacağınız tabloyu işaretleyip OK butonuna tıklayın. Seçilen tablolar input alanının solunda chip olarak görünür; chip'in × ikonu ile tek tek kaldırılabilir.
Az tablo, net sonuç
Sorgu için gerekli olan minimum tablo setini seçin. Fazla tablo eklemek modelin doğru bağlamı bulmasını zorlaştırır. Hiç tablo seçilmeden mesaj gönderilemez.
2. İsteğinizi Yazın ve Gönderin
Input alanına Türkçe veya İngilizce isteğinizi yazın ve ▶ (Gönder) butonuna tıklayın.
Yanıt beklenirken sohbet alanında typing... balonu görünür. Makinist yanıtı iki bölümden oluşur:
| Bölüm | Açıklama |
|---|---|
| Kullanıcı mesajı | Sağda yeşilimsi balonda gösterilir |
| SQL kod bloğu | Syntax highlighted PostgreSQL kodu; üst köşede Copy ve Use SQL butonları |
| SQL Sorgu Açıklaması | Sorgunun ne yaptığını açıklayan Türkçe metin — sorguyu uygulamadan önce okuyun |
3. SQL'i Editöre Aktarın
SQL kod bloğundaki Use SQL butonuna tıklayın.
- Sorgu sol Write Query editörüne syntax highlighted olarak yapıştırılır.
- Sağ panel otomatik olarak Query Result moduna geçer ve sorgu çalıştırılır.
- Makinist paneli kapanır; Write with AI butonu tekrar görünür.
- Sağ üstteki Back to Data Explore butonu ile Table Preview'a dönülebilir.
Hardcoded değerleri parametreye çevirin
Use SQL sorguyu olduğu gibi aktarır ve çalıştırır. Üretilen sorguda 'M01' veya 6.50 gibi sabit değerler varsa bunları {{makine_id}} / {{esik}} şeklinde parametreye dönüştürün; Parameters bölümünde varsayılan değer atayın.
7. Tablo Önizlemesini Kullanın
Sağ paneldeki Table Preview bölümünde Select Table dropdown'ından istediğiniz tabloyu seçin. Tablo kolonlarını ve örnek veriyi inceleyerek SQL sorgunuzu buna göre şekillendirebilirsiniz.
8. Sorguyu Test Edin
Parameters bölümünde parametre değerini girin (örn. hat_id = HAT-2) ve Preview butonuna tıklayın. Bu değer yalnızca test içindir; gerçek varsayılan (HAT-1) kayıt panelinde belirlenir.
Sağ panelde Query Result bölümü açılır ve filtrelenmiş sonuçlar tablo formatında görünür.
9. Kaydet → Display Info
Next butonuna tıklayın. Set Parameters type and Default Values sayfası açılır.
Sağ tarafta sorgunun SQL metni görünür. Sol tarafta ad ve açıklama girin:
| Alan | Zorunlu | Varsayılan | Örnek |
|---|---|---|---|
| Name | Evet | — | sensor_zaman_trendi |
| Description | Hayır | — | Hat 1 sıcaklık/basınç zaman serisi (son 24 saat) |
10. Global Değişkenler (Parametreler)
Sorguda {{parametre_adi}} kullanıldıysa Parameter Settings bölümünde otomatik listelenir. Her parametre için Set Parameter butonuna tıklayarak tip ve varsayılan değer belirleyin:
| Alan | Açıklama | Seçenekler | Örnek |
|---|---|---|---|
| Parameter Type | Dashboard'da gösterilecek kontrol tipi | Textbox / Datepicker / Dropdown (query) / Dropdown (manuel) | Textbox |
| Default Value | İlk yükleniş değeri | — | HAT-1 |
Demo Fabrika örneği
sensor_zaman_trendi sorgusunda hat_id parametresi: Type Textbox, Default Value HAT-1. (recete_parametre_listesi sorgusu için ise makine_id parametresi, Default M01.)
11. Location — Hedef Klasör
Target Folder alanından klasörü seçin. Seçilmezse kök dizine kaydedilir.
12. Kaydet Butonuna Tıklayın
Panelin alt kısmındaki Save butonuna tıklayın. Sorgu Compass listesine kaydedilir.
13. Listede Kontrol
Yeni sorgu kartı Compass listesinde görünmelidir.
14. Sık Karşılaşılan Hatalar
| Hata / Belirti | Olası Neden | Çözüm |
|---|---|---|
pq: password authentication failed for user "..." |
Kullanıcı adı veya şifre yanlış | Port'ta PostgreSQL bağlantısını güncelleyin |
pq: database "..." does not exist |
Veritabanı adı yanlış | Port'taki Database Name alanını kontrol edin |
pq: relation "..." does not exist |
Tablo veya view yok | Tablo adını doğrulayın; Port bağlantısında doğru DB'nin seçildiğini kontrol edin |
pq: column "..." does not exist |
Kolon adı yanlış | Tablo tarayıcısından kolon adını kontrol edin |
pq: syntax error at or near "..." |
SQL sözdizimi hatası | Sorguyu gözden geçirin; :: casting doğru mu? |
could not open target DB: dial tcp: i/o timeout |
PostgreSQL sunucusuna ulaşılamıyor | Sunucu adresi, port ve ağ erişimini kontrol edin |
"you already have a query named '...'" |
Aynı adda sorgu mevcut | Farklı ad girin |
"could not get columns: ..." |
Sorgu sütun döndürmüyor | Sorgunun SELECT ile kolon döndürdüğünden emin olun |
| Sorgu 0 satır dönüyor | {{hat_id}} tek tırnak içinde ('{{hat_id}}') |
Tek tırnağı kaldırın: hat_id = {{hat_id}} |
relation "sensor_zaman_serisi" does not exist |
Demo Fabrika verisi yüklenmemiş | Bkz. Sentetik Veri Üretimi — PostgreSQL |
| Parametre boş geliyor | Global Variable tanımlı değil | Kayıt panelinde hat_id parametresini ekleyip Default Value verin |
| Boş sonuç tablosu | WHERE koşulu veri eşleştirmiyor | Filtre değerlerini ve tarih aralığını genişletin |












