2026-04-10 23:20:41 -04:00
---
layout: default
title: "Cassandra Yapı landı rma Birleştirme: Teknik Özellikler"
parent: "Turkish (Beta)"
---
2026-04-06 14:50:34 -04:00
# Cassandra Yapı landı rma Birleştirme: Teknik Özellikler
2026-04-10 23:20:41 -04:00
> **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.
2026-04-06 14:50:34 -04:00
**Durum:** Taslak
**Yazar:** Yardı mcı
**Tarih:** 2024-09-03
## Genel Bakı ş
Bu özellik, TrustGraph kod tabanı ndaki Cassandra bağlantı parametreleri için tutarsı z adlandı rma ve yapı landı rma kalı pları nı ele almaktadı r. Şu anda, iki farklı parametre adlandı rma şeması bulunmaktadı r (`cassandra_*` ve `graph_*` ), bu da kafa karı şı klı ğı na ve bakı m karmaşı klı ğı na yol açmaktadı r.
## Sorun Tanı mı
Kod tabanı şu anda iki farklı Cassandra yapı landı rma parametre seti kullanmaktadı r:
1. **Bilgi/Yapı landı rma/Kütüphane modülleri** aşağı daki parametreleri kullanı r:
`cassandra_host` (sunucu listesi)
`cassandra_user`
`cassandra_password`
2. **Grafik/Depolama modülleri** aşağı daki parametreleri kullanı r:
`graph_host` (tek bir sunucu, bazen listeye dönüştürülür)
`graph_username`
`graph_password`
3. **Tutarsı z komut satı rı kullanı mı ** :
Bazı işleme birimleri (örneğin, `kg-store` ), Cassandra ayarları nı komut satı rı argümanları olarak sunmaz
Diğer işleme birimleri bunları farklı adlar ve formatlarla sunar
Yardı m metni, ortam değişkeni varsayı lanları nı yansı tmaz
Her iki parametre seti de aynı Cassandra kümesine bağlanı r, ancak farklı adlandı rma kuralları kullanı r, bu da şunlara neden olur:
Kullanı cı lar için yapı landı rma karı şı klı ğı
Artan bakı m yükü
Tutarsı z dokümantasyon
Yanlı ş yapı landı rma riski
Bazı işleme birimlerinde ayarları komut satı rı aracı lı ğı yla geçersiz kı lma imkansı zlı ğı
## Önerilen Çözüm
### 1. Parametre Adları nı Standartlaştı rı n
Tüm modüller, tutarlı `cassandra_*` parametre adları nı kullanacaktı r:
`cassandra_host` - Sunucu listesi (içeride liste olarak saklanı r)
`cassandra_username` - Kimlik doğrulama için kullanı cı adı
`cassandra_password` - Kimlik doğrulama için parola
### 2. Komut Satı rı Argümanları
TÜM işleme birimleri, Cassandra yapı landı rması nı komut satı rı argümanları aracı lı ğı yla sunmalı dı r:
`--cassandra-host` - Virgülle ayrı lmı ş sunucu listesi
`--cassandra-username` - Kimlik doğrulama için kullanı cı adı
`--cassandra-password` - Kimlik doğrulama için parola
### 3. Ortam Değişkeni Geri Düşüşü
Komut satı rı parametreleri açı kça sağlanmadı ğı nda, sistem ortam değişkenlerini kontrol edecektir:
`CASSANDRA_HOST` - Virgülle ayrı lmı ş sunucu listesi
`CASSANDRA_USERNAME` - Kimlik doğrulama için kullanı cı adı
`CASSANDRA_PASSWORD` - Kimlik doğrulama için parola
### 4. Varsayı lan Değerler
Ne komut satı rı parametreleri ne de ortam değişkenleri belirtilmediğinde:
`cassandra_host` , `["cassandra"]` 'e varsayı lan olarak ayarlanı r
`cassandra_username` , `None` 'e (kimlik doğrulama yok) varsayı lan olarak ayarlanı r
`cassandra_password` , `None` 'e (kimlik doğrulama yok) varsayı lan olarak ayarlanı r
### 5. Yardı m Metni Gereksinimleri
`--help` çı ktı sı şunları içermelidir:
Ortam değişkeni değerleri ayarlandı ğı nda, bunları varsayı lan değerler olarak göstermelidir
Parola değerlerini asla göstermemelidir (bunun yerine `****` veya `<set>` göstermelidir)
Çözüm sı rası nı yardı m metninde açı kça belirtmelidir
Örnek yardı m çı ktı sı :
```
--cassandra-host HOST
Cassandra host list, comma-separated (default: prod-cluster-1,prod-cluster-2)
[from CASSANDRA_HOST environment variable]
--cassandra-username USERNAME
Cassandra username (default: cassandra_user)
[from CASSANDRA_USERNAME environment variable]
--cassandra-password PASSWORD
Cassandra password (default: < set from environment > )
```
## Uygulama Detayları
### Parametre Çözümleme Sı rası
Her Cassandra parametresi için, çözümleme sı rası aşağı daki olacaktı r:
1. Komut satı rı argümanı değeri
2. Ortam değişkeni (`CASSANDRA_*` )
3. Varsayı lan değer
### Ana Bilgisayar Parametreleri Yönetimi
`cassandra_host` parametresi:
Komut satı rı , virgülle ayrı lmı ş bir dize kabul eder: `--cassandra-host "host1,host2,host3"`
Ortam değişkeni, virgülle ayrı lmı ş bir dize kabul eder: `CASSANDRA_HOST="host1,host2,host3"`
İçeride her zaman bir liste olarak saklanı r: `["host1", "host2", "host3"]`
Tek bir ana bilgisayar: `"localhost"` → `["localhost"]` 'e dönüştürülür
Zaten bir liste: `["host1", "host2"]` → olduğu gibi kullanı lı r
### Kimlik Doğrulama Mantı ğı
Kimlik doğrulama, hem `cassandra_username` hem de `cassandra_password` sağlandı ğı nda kullanı lacaktı r:
```python
if cassandra_username and cassandra_password:
# Use SSL context and PlainTextAuthProvider
else:
# Connect without authentication
```
## Değiştirilecek Dosyalar
### `graph_*` parametrelerini kullanan modüller (değiştirilecek):
`trustgraph-flow/trustgraph/storage/triples/cassandra/write.py`
`trustgraph-flow/trustgraph/storage/objects/cassandra/write.py`
`trustgraph-flow/trustgraph/storage/rows/cassandra/write.py`
`trustgraph-flow/trustgraph/query/triples/cassandra/service.py`
### `cassandra_*` parametrelerini kullanan modüller (ortam değişkeni geri dönüşü ile güncellenecek):
`trustgraph-flow/trustgraph/tables/config.py`
`trustgraph-flow/trustgraph/tables/knowledge.py`
`trustgraph-flow/trustgraph/tables/library.py`
`trustgraph-flow/trustgraph/storage/knowledge/store.py`
`trustgraph-flow/trustgraph/cores/knowledge.py`
`trustgraph-flow/trustgraph/librarian/librarian.py`
`trustgraph-flow/trustgraph/librarian/service.py`
`trustgraph-flow/trustgraph/config/service/service.py`
`trustgraph-flow/trustgraph/cores/service.py`
### Güncellenecek Test Dosyaları :
`tests/unit/test_cores/test_knowledge_manager.py`
`tests/unit/test_storage/test_triples_cassandra_storage.py`
`tests/unit/test_query/test_triples_cassandra_query.py`
`tests/integration/test_objects_cassandra_integration.py`
## Uygulama Stratejisi
### Aşama 1: Ortak Yapı landı rma Yardı mcı Programı Oluşturma
Tüm işlemcilerde Cassandra yapı landı rması nı standartlaştı rmak için yardı mcı işlevler oluşturun:
```python
import os
import argparse
def get_cassandra_defaults():
"""Get default values from environment variables or fallback."""
return {
'host': os.getenv('CASSANDRA_HOST', 'cassandra'),
'username': os.getenv('CASSANDRA_USERNAME'),
'password': os.getenv('CASSANDRA_PASSWORD')
}
def add_cassandra_args(parser: argparse.ArgumentParser):
"""
Add standardized Cassandra arguments to an argument parser.
Shows environment variable values in help text.
"""
defaults = get_cassandra_defaults()
# Format help text with env var indication
host_help = f"Cassandra host list, comma-separated (default: {defaults['host']})"
if 'CASSANDRA_HOST' in os.environ:
host_help += " [from CASSANDRA_HOST]"
username_help = f"Cassandra username"
if defaults['username']:
username_help += f" (default: {defaults['username']})"
if 'CASSANDRA_USERNAME' in os.environ:
username_help += " [from CASSANDRA_USERNAME]"
password_help = "Cassandra password"
if defaults['password']:
password_help += " (default: < set > )"
if 'CASSANDRA_PASSWORD' in os.environ:
password_help += " [from CASSANDRA_PASSWORD]"
parser.add_argument(
'--cassandra-host',
default=defaults['host'],
help=host_help
)
parser.add_argument(
'--cassandra-username',
default=defaults['username'],
help=username_help
)
parser.add_argument(
'--cassandra-password',
default=defaults['password'],
help=password_help
)
def resolve_cassandra_config(args) -> tuple[list[str], str|None, str|None]:
"""
Convert argparse args to Cassandra configuration.
Returns:
tuple: (hosts_list, username, password)
"""
# Convert host string to list
if isinstance(args.cassandra_host, str):
hosts = [h.strip() for h in args.cassandra_host.split(',')]
else:
hosts = args.cassandra_host
return hosts, args.cassandra_username, args.cassandra_password
```
### 2. Aşama: `graph_*` Parametrelerini Kullanan Modülleri Güncelleme
1. Parametre adları nı `graph_*` 'dan `cassandra_*` 'e değiştirin.
2. Özel `add_args()` yöntemlerini standart `add_cassandra_args()` yöntemleriyle değiştirin.
3. Ortak yapı landı rma yardı mcı fonksiyonları nı kullanı n.
4. Dokümantasyon metinlerini güncelleyin.
Örnek dönüşüm:
```python
# OLD CODE
@staticmethod
def add_args(parser):
parser.add_argument(
'-g', '--graph-host',
default="localhost",
help=f'Graph host (default: localhost)'
)
parser.add_argument(
'--graph-username',
default=None,
help=f'Cassandra username'
)
# NEW CODE
@staticmethod
def add_args(parser):
FlowProcessor.add_args(parser)
add_cassandra_args(parser) # Use standard helper
```
### 3. Aşama: `cassandra_*` Parametrelerini Kullanarak Modülleri Güncelleme
1. Eksik olan yerlerde komut satı rı argümanı desteğini ekleyin (örneğin, `kg-store` )
2. Mevcut argüman tanı mları nı `add_cassandra_args()` ile değiştirin
3. Tutarlı çözümleme için `resolve_cassandra_config()` 'ı kullanı n
4. Tutarlı ana bilgisayar listesi işleme sağlayı n
### 4. Aşama: Testleri ve Belgeleri Güncelleme
1. Tüm test dosyaları nı yeni parametre adları nı kullanacak şekilde güncelleyin
2. Komut satı rı (CLI) belgelerini güncelleyin
3. API belgelerini güncelleyin
4. Ortam değişkeni belgelerini ekleyin
## Geriye Dönük Uyumluluk
Geçiş sı rası nda geriye dönük uyumluluğu korumak için:
1. `graph_*` parametreleri için **kullanı mdan kaldı rma uyarı ları **
2. **Parametre takma adları ** - başlangı çta hem eski hem de yeni adları kabul edin
3. **Aşamalı dağı tı m** birden fazla sürümde
4. **Belge güncellemeleri** ve geçiş kı lavuzu
Örnek geriye dönük uyumluluk kodu:
```python
def __init__ (self, **params):
# Handle deprecated graph_* parameters
if 'graph_host' in params:
warnings.warn("graph_host is deprecated, use cassandra_host", DeprecationWarning)
params.setdefault('cassandra_host', params.pop('graph_host'))
if 'graph_username' in params:
warnings.warn("graph_username is deprecated, use cassandra_username", DeprecationWarning)
params.setdefault('cassandra_username', params.pop('graph_username'))
# ... continue with standard resolution
```
## Test Stratejisi
1. **Birim testleri** , yapı landı rma çözümleme mantı ğı için
2. **Entegrasyon testleri** , çeşitli yapı landı rma kombinasyonları yla
3. **Ortam değişkeni testleri**
4. **Geriye dönük uyumluluk testleri** , kullanı mdan kaldı rı lmı ş parametrelerle
5. **Docker compose testleri** , ortam değişkenleriyle
## Dokümantasyon Güncellemeleri
1. Tüm CLI komutu dokümantasyonunu güncelleyin
2. API dokümantasyonunu güncelleyin
3. Geçiş kı lavuzu oluşturun
4. Docker compose örneklerini güncelleyin
5. Yapı landı rma referans dokümantasyonunu güncelleyin
## Riskler ve Azaltma
| Risk | Etki | Azaltma |
|------|--------|------------|
| Kullanı cı lar için bozucu değişiklikler | Yüksek | Geriye dönük uyumluluk süresi uygulayı n |
| Geçiş sı rası nda yapı landı rma karı şı klı ğı | Orta | Açı k dokümantasyon ve kullanı mdan kaldı rma uyarı ları |
| Test hataları | Orta | Kapsamlı test güncellemeleri |
| Docker dağı tı m sorunları | Yüksek | Tüm Docker compose örneklerini güncelleyin |
## Başarı Kriterleri
[ ] Tüm modüller, tutarlı `cassandra_*` parametre adları nı kullanı r
[ ] Tüm işlemciler, Cassandra ayarları nı komut satı rı argümanları aracı lı ğı yla sunar
[ ] Komut satı rı yardı m metni, ortam değişkeni varsayı lanları nı gösterir
[ ] Parola değerleri, yardı m metninde asla görüntülenmez
[ ] Ortam değişkeni yedeklemesi doğru şekilde çalı şı r
[ ] `cassandra_host` , dahili olarak tutarlı bir şekilde bir liste olarak işlenir
[ ] Geriye dönüştürülebilirlik, en az 2 sürüm için korunur
[ ] Tüm testler, yeni yapı landı rma sistemiyle geçer
[ ] Dokümantasyon tamamen güncellenmiştir
[ ] Docker compose örnekleri, ortam değişkenleriyle çalı şı r
## Zaman Çizelgesi
**1. Hafta:** Ortak yapı landı rma yardı mcı programı nı uygulayı n ve `graph_*` modüllerini güncelleyin
**2. Hafta:** Mevcut `cassandra_*` modüllerine ortam değişkeni desteği ekleyin
**3. Hafta:** Testleri ve dokümantasyonu güncelleyin
**4. Hafta:** Entegrasyon testi ve hata düzeltmeleri
## Gelecek Hususlar
Bu kalı bı diğer veritabanı yapı landı rmaları na (örneğin, Elasticsearch) genişletmeyi düşünün
Yapı landı rma doğrulama ve daha iyi hata mesajları uygulayı n
Cassandra bağlantı havuzu yapı landı rması desteği ekleyin
2026-04-10 23:20:41 -04:00
Yapı landı rma dosyası desteği eklemeyi düşünün (.env dosyaları )