> **Beta Translation:** This document was translated via Machine Learning and as such may not be 100% accurate. All non-English languages are currently classified as Beta.
Bu özellik, TrustGraph için koleksiyon yönetimi yeteneklerini tanımlar ve açık koleksiyon oluşturulmasını gerektirir ve koleksiyon yaşam döngüsü üzerinde doğrudan kontrol sağlar. Koleksiyonlar, uygun veri ambarı ve tüm depolama arka uçları arasındaki senkronizasyonu sağlamak için kullanmadan önce açıkça oluşturulmalıdır. Bu özellik, dört birincil kullanım senaryosunu destekler:
1.**Koleksiyon Oluşturma**: Veri depolamadan önce koleksiyonları açıkça oluşturun
2.**Koleksiyon Listeleme**: Sistemdeki mevcut tüm koleksiyonları görüntüleyin
3.**Koleksiyon Meta Veri Yönetimi**: Koleksiyon adlarını, açıklamalarını ve etiketlerini güncelleyin
4.**Koleksiyon Silme**: Koleksiyonları ve bunlara bağlı verileri tüm depolama türlerinden kaldırın
## Hedefler
**Açık Koleksiyon Oluşturma**: Verilerin depolanabilmesi için koleksiyonların oluşturulmasını gerektirir
**Depolama Senkronizasyonu**: Koleksiyonların tüm depolama arka uçlarında (vektörler, nesneler, üçlüler) mevcut olduğundan emin olun
**Koleksiyon Görünürlüğü**: Kullanıcıların ortamlarındaki tüm koleksiyonları listelemesini ve incelemesini sağlayın
**Koleksiyon Temizleme**: Artık gerekli olmayan koleksiyonların silinmesine izin verin
**Koleksiyon Organizasyonu**: Daha iyi koleksiyon takibi ve keşfi için etiketleri ve kategorileri destekleyin
**Meta Veri Yönetimi**: İşletimsel açıklık için koleksiyonlarla anlamlı meta verileri ilişkilendirin
**Koleksiyon Keşfi**: Filtreleme ve arama yoluyla belirli koleksiyonları bulmayı kolaylaştırın
**İşletim Şeffaflığı**: Koleksiyon yaşam döngüsü ve kullanımı hakkında net görünürlük sağlayın
**Kaynak Yönetimi**: Kullanılmayan koleksiyonları temizleyerek kaynak kullanımını optimize etmeyi sağlayın
**Veri Bütünlüğü**: Meta veri takibi olmadan depolamada yetim koleksiyonların oluşmasını önleyin
## Arka Plan
Geçmişte, TrustGraph'taki koleksiyonlar, veri yükleme işlemleri sırasında örtülü olarak oluşturuluyordu ve bu da koleksiyonların depolama arka uçlarında, ancak kütüphanecide ilgili meta verilere sahip olmadan var olabileceği senkronizasyon sorunlarına yol açıyordu. Bu durum, yönetim zorlukları ve potansiyel olarak yetim veri sorunları yaratmıştır.
Açık koleksiyon oluşturma modeli, bu sorunları aşağıdaki şekilde ele alır:
Koleksiyonların `tg-set-collection` aracılığıyla kullanmadan önce oluşturulmasını gerektirir
Koleksiyon oluşturmayı tüm depolama arka uçlarına yayınlar
Kütüphaneci meta verileri ile depolama arasındaki senkronize durumu korur
Var olmayan koleksiyonlara yazmayı engeller
Açık koleksiyon yaşam döngüsü yönetimi sağlar
Bu özellik, açık koleksiyon yönetimi modelini tanımlar. Açık koleksiyon oluşturmayı gerektirerek, TrustGraph şunları sağlar:
Koleksiyonlar, oluşturulmadan itibaren kütüphaneci meta verilerinde takip edilir
Tüm depolama arka uçları, verileri almadan önce koleksiyonların varlığından haberdardır
**tags**: Kategorizasyon ve filtreleme için etiket kümesi
**created_at**: Koleksiyon oluşturma zaman damgası
**updated_at**: Son değişiklik zaman damgası
Bu yaklaşım şunları sağlar:
Kullanıcı yalıtımı ile çoklu kiracılı koleksiyon yönetimi
Kullanıcı ve koleksiyon bazında verimli sorgulama
Düzenleme için esnek etiketleme sistemi
İşletimsel bilgiler için yaşam döngüsü takibi
#### Koleksiyon Yaşam Döngüsü
Koleksiyonlar, veri işlemlerine başlamadan önce kütüphanede açıkça oluşturulmalıdır:
1.**Koleksiyon Oluşturma** (İki Yol):
**Yol A: Kullanıcı Tarafından Başlatılan Oluşturma**`tg-set-collection` aracılığıyla:
Kullanıcı, koleksiyon kimliği, adı, açıklaması ve etiketleri sağlar
Kütüphane, `collections` tablosunda bir meta veri kaydı oluşturur
Kütüphane, tüm depolama arka uçlarına "create-collection" mesajını gönderir
Tüm depolama işlemcileri, koleksiyonu oluşturur ve başarıyı onaylar
Koleksiyon artık veri işlemleri için hazırdır
**Yol B: Belge Gönderimi Üzerinde Otomatik Oluşturma**:
Kullanıcı, bir koleksiyon kimliği belirten bir belge gönderir
Kütüphane, koleksiyonun meta veri tablosunda mevcut olup olmadığını kontrol eder
Yoksa: Kütüphane, varsayılanlarla (ad=koleksiyon_kimliği, boş açıklama/etiketler) bir meta veri oluşturur
Kütüphane, tüm depolama arka uçlarına "create-collection" mesajını gönderir
Tüm depolama işlemcileri, koleksiyonu oluşturur ve başarıyı onaylar
Belge işleme, koleksiyonun artık oluşturulduğu şekilde devam eder
Her iki yol da, veri işlemlerine izin verilmeden önce koleksiyonun kütüphane meta verilerinde VE tüm depolama arka uçlarında mevcut olmasını sağlar.
2.**Depolama Doğrulama**: Yazma işlemleri, koleksiyonun mevcut olup olmadığını doğrular:
Depolama işlemcileri, yazmayı kabul etmeden önce koleksiyonun durumunu kontrol eder
Mevcut olmayan koleksiyonlara yapılan yazılar hata döndürür
Bu, doğrudan yazmaların kütüphanenin koleksiyon oluşturma mantığını atlamasını engeller
3.**Sorgu Davranışı**: Sorgu işlemleri, mevcut olmayan koleksiyonları zarif bir şekilde işler:
Mevcut olmayan koleksiyonlara yapılan sorgular boş sonuçlar döndürür
Sorgu işlemleri için hata oluşmaz
Koleksiyonun mevcut olması gerekmeksizin keşfetmeye olanak tanır
4.**Meta Veri Güncellemeleri**: Kullanıcılar, koleksiyon oluşturulduktan sonra koleksiyon meta verilerini güncelleyebilir:
Adı, açıklamasını ve etiketleri `tg-set-collection` aracılığıyla güncelleyin
Güncellemeler yalnızca kütüphane meta verilerine uygulanır
Depolama arka uçları koleksiyonu korur, ancak meta veri güncellemeleri yayılmaz
5.**Açık Silme**: Kullanıcılar, koleksiyonları`tg-delete-collection` aracılığıyla siler:
Kütüphane, tüm depolama arka uçlarına "delete-collection" mesajını gönderir
Tüm depolama işlemcilerinden onay bekler
Depolama temizliği tamamlandıktan SONRA yalnızca kütüphane meta veri kaydını siler
Depoda hiçbir verinin kaybolmamasını sağlar
**Temel İlke**: Kütüphane, koleksiyon oluşturma için tek kontrol noktasıdır. Kullanıcı komutu veya belge gönderimi ile başlatılıp başlatılmadığına bakılmaksızın, kütüphane, veri işlemlerine izin vermeden önce uygun meta veri takibi ve depolama arka uç senkronizasyonunu sağlar.
Gerekli işlemler:
**Koleksiyon Oluşturma**: `tg-set-collection` aracılığıyla kullanıcı işlemi VEYA belge gönderimi üzerine otomatik
**Koleksiyon Meta Verilerini Güncelleme**: Adı, açıklaması ve etiketleri değiştirmek için kullanıcı işlemi
**Koleksiyonu Silme**: Koleksiyonu ve tüm depolarda verilerini kaldırmak için kullanıcı işlemi
**Koleksiyonları Listeleme**: Etiketlere göre filtreleme ile koleksiyonları görüntülemek için kullanıcı işlemi
#### Çoklu Depo Koleksiyon Yönetimi
Koleksiyonlar, TrustGraph'ta birden çok depolama arka uçunda bulunur:
**Vektör Depoları** (Qdrant, Milvus, Pinecone): Gömme ve vektör verilerini depolar
**Nesne Depoları** (Cassandra): Belge ve dosya verilerini depolar
Aşağıda açıklanan kuyruk tabanlı mimari, `CollectionConfigHandler` kullanarak bir yapılandırma tabanlı yaklaşımla değiştirilmiştir. Tüm depolama arka uçları artık özel yönetim kuyrukları yerine yapılandırma itme mesajları aracılığıyla koleksiyon güncellemeleri alır.
~~Tüm depolama yazıcıları, ortak bir şemaya sahip standart bir koleksiyon yönetimi arayüzü uygular:~~
⚠️ `get_po(p, o)` - `ALLOW FILTERING` gerektirir (ya `idx_p` veya `idx_o` artı filtreleme kullanır)
✅ `get_os(o, s)` - `idx_o` ile ek filtreleme `s` üzerinde kullanır
✅ `get_spo(s, p, o)` - tüm birincil anahtarı verimli kullanır
**ALLOW FILTERING Notu:**`get_po` sorgu deseni, uygun bir birleşik dizin olmadan hem öznitelik hem de nesne kısıtlamalarına ihtiyaç duyduğu için `ALLOW FILTERING` gerektirir. Bu kabul edilebilir çünkü bu sorgu deseni, tipik üçlü depolama kullanımında konu tabanlı sorgulara göre daha az yaygındır
2.**Depolama Yazarı Güncellemeleri** (`trustgraph/storage/triples/cassandra/write.py`):
(kullanıcı, koleksiyon) başına bir bağlantı yerine, kullanıcı başına tek bir TrustGraph bağlantısı sürdürün
Ekleme işlemlerine koleksiyonu iletin
Daha az bağlantıyla daha verimli kaynak kullanımı
3.**Sorgu Hizmeti Güncellemeleri** (`trustgraph/query/triples/cassandra/service.py`):
Kullanıcı başına tek bir TrustGraph bağlantısı
Tüm sorgu işlemlerine koleksiyonu iletin
Koleksiyon parametresiyle aynı sorgu mantığını koruyun
**Faydaları:**
**Basitleştirilmiş Koleksiyon Silme:** Tüm 4 tablo üzerinde `collection` bölüm anahtarını kullanarak silme
**Kaynak Verimliliği:** Daha az veritabanı bağlantısı ve tablo nesnesi
**Çoklu Koleksiyon İşlemleri:** Birden çok koleksiyonu kapsayan işlemleri uygulamak daha kolaydır
**Tutarlı Mimari:** Birleşik koleksiyon meta veri yaklaşımıyla uyumludur
**Koleksiyon Doğrulama:** `triples_collection` tablosu aracılığıyla koleksiyonun varlığını kontrol etmek kolaydır
Koleksiyon işlemleri, mümkün olduğunda atomik olacak ve uygun hata yönetimi ve doğrulama sağlayacaktır.
## Güvenlik Hususları
Koleksiyon yönetimi işlemleri, yetkisiz erişimi veya koleksiyonların silinmesini önlemek için uygun yetkilendirme gerektirir. Erişim kontrolü, mevcut TrustGraph güvenlik modelleriyle uyumlu olacaktır.
## Performans Hususları
Koleksiyon listeleme işlemleri, çok sayıda koleksiyon içeren ortamlarda sayfalama gerektirebilir. Meta veri sorguları, yaygın filtreleme kalıpları için optimize edilmelidir.
## Test Stratejisi
Kapsamlı testler şunları kapsayacaktır:
Koleksiyon oluşturma iş akışı, uçtan uca
Depolama arka uç senkronizasyonu
Var olmayan koleksiyonlar için yazma doğrulaması
Var olmayan koleksiyonların sorgu işlenmesi
Koleksiyon silme işleminin tüm depolama alanlarında yayılması
Hata yönetimi ve kurtarma senaryoları
Her depolama arka ucu için birim testleri
Çapraz depolama işlemleri için entegrasyon testleri
## Uygulama Durumu
### ✅ Tamamlanmış Bileşenler
1.**Librarian Koleksiyon Yönetimi Hizmeti** (`trustgraph-flow/trustgraph/librarian/collection_manager.py`)
Koleksiyon meta veri CRUD işlemleri (listeleme, güncelleme, silme)
`LibraryTableStore` aracılığıyla Cassandra koleksiyon meta veri tablosu entegrasyonu
Koleksiyon silme işleminin tüm depolama türleri arasında koordinasyonu
Uygun hata yönetimi ile asenkron istek/yanıt işleme
2.**Koleksiyon Meta Veri Şeması** (`trustgraph-base/trustgraph/schema/services/collection.py`)
`CollectionManagementRequest` ve `CollectionManagementResponse` şemaları
Koleksiyon kayıtları için `CollectionMetadata` şeması
Koleksiyon istek/yanıt kuyruğu konu tanımları
3.**Depolama Yönetimi Şeması** (`trustgraph-base/trustgraph/schema/services/storage.py`)
`StorageManagementRequest` ve `StorageManagementResponse` şemaları
Depolama yönetimi kuyruğu konuları tanımlandı
Depolama seviyesindeki koleksiyon işlemleri için mesaj formatı