Ana içeriğe atla
Dataset’ler; emisyon katsayıları gibi referans verilerin tutulduğu konteynerlerdir. Azalt’ta bir Dataset ya kuruma aittir (özel) ya da sisteme aittir (genel). Her Dataset, gerçek katsayıları JSON olarak tutan çok sayıda DatasetItem (satır) içerir. Bu sayfa şunları açıklar:
  • Azalt’ta dataset modeli ve yetkilendirme
  • Dataset’lerin hesaplama ve panolarda kullanımı
  • UI üzerinden yönetim (içe/dışa aktarma, silme)
  • Veri temizliği ve performans için öneriler

Veri Modeli (Gerçek)

  • Dataset: id, name, organizationId|null, zaman damgaları
  • DatasetItem: ayrıntılar için “DatasetItem” sayfasına bakın. Temel alanlar: name (anahtar), year, data (JSON), description, link, tags
Notlar:
  • Genel dataset’lerde organizationId = null olur; oluşturma/güncelleme/silme/dışa aktarma için ADMIN gerekir
  • Bir Dataset, içinde hiç item yoksa silinebilir

Hesaplamalarda Kullanım

Aktivite Tanımlarında hesaplama bağlamında $datasets yardımcı nesnesi bulunur. Dataset adı, item adı ve opsiyonel yıl ile katsayı çekebilirsiniz.
// Bağlamda mevcut: $datasets, $year, $period, $periodUnit, $siteId
async function calculate({ rooms, nights, country }) {
  const ef = await $datasets.getCoefficient(
    "hotel-emission-factors",     // datasetName
    country.toLowerCase(),         // itemName
    "kgCO2e",                     // item.data içindeki alan
    $year,                         // opsiyonel yıl; verilmezse en güncel yıl
  );

  if (!ef) return { value: 0 };
  return { value: ef * rooms * nights };
}
Diğer yöntemler:
  • $datasets.getItem(datasetName, itemName, year?){...data} veya null
  • $datasets.getDataset(datasetName, year?)[ { name, data, year }, ... ]
  • $datasets.getCoefficients(datasetName, year?){ [itemName]: data }
Bu yöntemler sunucu tarafındaki datasets.getItem/get/getCoefficient/getCoefficients tRPC uçlarına karşılık gelir.

Panolarda Dataset Kullanımı

Göstergeler (indicator) DatasetItem’lara bağlanabilir ve widget’lar gösterge değerini bir dataset alanına eşleyebilir. İç format datasetId::itemName::field şeklindedir. Sunucu yıl/alan eksikleri gibi eşleme sorunlarını tespit edip widget panelinde bildirir.

UI Üzerinden Yönetim

Konum: Özelleştirme → Dataset’ler
  • Dataset oluştur (ADMIN genel yapabilir)
  • Dataset ve item’ları görüntüle/ara
  • CSV ile içe/dışa aktar
  • Dataset sil (yalnızca item yoksa)

CSV İçe Aktarma (DatasetItem)

Gerekli sütunlar:
  • name (item anahtarı)
  • year (sayı)
  • datasetId veya datasetName (ikincisinden biri)
Opsiyonel sütunlar:
  • description, link, tags
  • data_* ile başlayan sütunlar; data_ sonrası anahtar adı olarak data içine yazılır. Hücre değeri düz bir sayıysa sayı olarak parse edilir (örn. 53.02).
Minimal örnek:
name,year,datasetName,data_kgCO2e,data_kgCO2,tags,description
natural-gas-commercial,2024,epa-factors,53.02,52.91,"natural-gas,scope-1",Ticari NG faktörleri
İçe aktarma davranışı:
  • Satır datasetName içeriyor ve bu ad yoksa, mevcut kurum altında dataset oluşturulur
  • Çakışma koruması: (datasetId, name, year) tekrarlanamaz
  • Büyük dosyalar partiler halinde işlenir; sorunlu satırlar raporlanır

CSV Dışa Aktarma

Bir dataset’teki tüm item’ları data_* sütunları ile dışa aktarır. Genel dataset dışa aktarma yalnızca ADMIN için açıktır.

Güvenlik ve Yetkiler

  • Tüm işlemler geçerli kurumla sınırlıdır (RLS)
  • Sistem (genel) dataset’lerinde oluşturma/güncelleme/silme/dışa aktarma için ADMIN gerekir

Performans Notları

  • Çok büyük dataset’lerde sayfalama + sunucu tarafı arama kullanılır
  • name anahtarlarını kısa ve kararlı tutun; data içeriğini lean tutun

En İyi Uygulamalar

  • DatasetItem name değerlerinde boşluk yerine kısa, küçük harfli anahtarlar kullanın
  • Sayısal alanları gerçekten sayı olarak tutun (CSV data_* sütunları ile)
  • Aynı dataset içinde (name, year) tekrarından kaçının
  • Aramayı kolaylaştırmak için anlamlı tags ekleyin (örn. electricity, scope-2)
  • Panolarda görselleştirmek istediğiniz alanlara eşleme yapın