mirror of
https://github.com/trustgraph-ai/trustgraph.git
synced 2026-04-25 16:36:21 +02:00
Native CLI i18n: The TrustGraph CLI has built-in translation support that dynamically loads language strings. You can test and use different languages by simply passing the --lang flag (e.g., --lang es for Spanish, --lang ru for Russian) or by configuring your environment's LANG variable. Automated Docs Translations: This PR introduces autonomously translated Markdown documentation into several target languages, including Spanish, Swahili, Portuguese, Turkish, Hindi, Hebrew, Arabic, Simplified Chinese, and Russian.
192 lines
7.6 KiB
Markdown
192 lines
7.6 KiB
Markdown
---
|
|
layout: default
|
|
title: "Usaidizi wa Kuhami Mtumiaji/Mkusanyiko katika Neo4j"
|
|
parent: "Swahili (Beta)"
|
|
---
|
|
|
|
# Usaidizi wa Kuhami Mtumiaji/Mkusanyiko katika Neo4j
|
|
|
|
> **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.
|
|
|
|
## Tatizo
|
|
|
|
Hifadhi na utekelezaji wa masuala ya Neo4j kwa sasa hutoi ukinzani wa mtumiaji/mkusanyiko, jambo ambalo huunda tatizo la usalama la utendaji wa wateja wengi. Masuala yote yanahifadhiwa katika nafasi moja ya grafu bila njia yoyote ya kuzuia watumiaji kupata data ya watumiaji wengine au kuchanganya mkusanyiko.
|
|
|
|
Tofauti na mifumo mingine ya kuhifadhi katika TrustGraph:
|
|
- **Cassandra**: Hutumia nafasi tofauti kwa kila mtumiaji na meza kwa kila mkusanyiko.
|
|
- **Hifadhi za Vector** (Milvus, Qdrant, Pinecone): Hutumia nafasi maalum kwa kila mkusanyiko.
|
|
- **Neo4j**: Kwa sasa, inashiriki data yote katika grafu moja (hatari ya usalama).
|
|
|
|
## Muundo wa Sasa
|
|
|
|
### Mfano wa Data
|
|
- **Nod**: Laini `:Node` na `uri` ya jambo, `:Literal` na `value` ya jambo.
|
|
- **Uhusiano**: Laini `:Rel` na `uri` ya jambo.
|
|
- **Faharasa**: `Node.uri`, `Literal.value`, `Rel.uri`.
|
|
|
|
### Mzunguko wa Ujumbe
|
|
- Ujumbe wa `Triples` una `metadata.user` na `metadata.collection` ya jambo.
|
|
- Huduma ya kuhifadhi inapokea taarifa za mtumiaji/mkusanyiko lakini inaizaba.
|
|
- Huduma ya kuuliza inatarajia `user` na `collection` katika `TriplesQueryRequest` lakini inaizaba.
|
|
|
|
### Tatizo la Sasa la Usalama
|
|
```cypher
|
|
# Mtumiaji wowote anaweza kuuliza data yoyote - hakuna ukinzani
|
|
MATCH (src:Node)-[rel:Rel]->(dest:Node)
|
|
RETURN src.uri, rel.uri, dest.uri
|
|
```
|
|
|
|
## Suluhisho Lililopendekezwa: Kuchuja Kulingana na Jambo (Inapendekezwa)
|
|
|
|
### Muhtasari
|
|
Ongeza `user` na `collection` ya jambo kwenye nodi na uhusiano wote, kisha chuja shughuli zote kwa jambo hizi. Njia hii hutoa ukinzani kamili huku ikiendeleza uwezo wa kuuliza na urafiki na mifumo iliyopo.
|
|
|
|
### Mabadiliko ya Mfano wa Data
|
|
|
|
#### Muundo Ulioboreshwa wa Nodi
|
|
```cypher
|
|
// Vitu vya Nodi
|
|
CREATE (n:Node {
|
|
uri: "http://example.com/entity1",
|
|
user: "john_doe",
|
|
collection: "production_v1"
|
|
})
|
|
|
|
// Vitu vya Literal
|
|
CREATE (n:Literal {
|
|
value: "literal value",
|
|
user: "john_doe",
|
|
collection: "production_v1"
|
|
})
|
|
```
|
|
|
|
#### Muundo Ulioboreshwa wa Uhusiano
|
|
```cypher
|
|
// Uhusiano na jambo la mtumiaji/mkusanyiko
|
|
CREATE (src)-[:Rel {
|
|
uri: "http://example.com/predicate1",
|
|
user: "john_doe",
|
|
collection: "production_v1"
|
|
}]->(dest)
|
|
```
|
|
|
|
#### Faharasa Zilizosasishwa
|
|
```cypher
|
|
// Faharasa za pamoja kwa kuchuja kwa ufanisi
|
|
CREATE INDEX node_user_collection_uri FOR (n:Node) ON (n.user, n.collection, n.uri);
|
|
CREATE INDEX literal_user_collection_value FOR (n:Literal) ON (n.user, n.collection, n.value);
|
|
```
|
|
|
|
## Mpango wa Utendaji
|
|
|
|
### Awamu ya 1: Msingi (Wiki ya 1)
|
|
1. [ ] Sasisha huduma ya kuhifadhi ili kukubali na kuhifadhi jambo la mtumiaji/mkusanyiko.
|
|
2. [ ] Ongeza faharasa za pamoja kwa kuuliza kwa ufanisi.
|
|
3. [ ] Lenga ukinzani wa nyuma.
|
|
4. [ ] Unda vipimo vya kitengo kwa utendakazi mpya.
|
|
|
|
### Awamu ya 2: Masuala ya Uulizaji (Wiki ya 2)
|
|
1. [ ] Sasisha mifumo yote ya kuuliza ili kujumuisha vichujio vya mtumiaji/mkusanyiko.
|
|
2. [ ] Ongeza uthibitisho wa kuuliza na udhibiti wa usalama.
|
|
3. [ ] Sasisha vipimo vya ujumuishaji.
|
|
4. [ ] Vipimo vya utendaji na masuala yaliyofilishwa.
|
|
|
|
### Awamu ya 3: Uhamishaji na Uwekaji (Wiki ya 3)
|
|
1. [ ] Unda skripti za uhamishaji wa data kwa matukio ya sasa ya Neo4j.
|
|
2. [ ] Nyaraka na maelekezo ya uwekaji.
|
|
3. [ ] Ufuatiliaji na arifa kwa ukiukaji wa ukinzani.
|
|
4. [ ] Vipimo kamili na matukio mengi ya mtumiaji/mkusanyiko.
|
|
|
|
### Awamu ya 4: Uimarishaji (Wiki ya 4)
|
|
1. [ ] Ondoa hali ya ukinzani wa nyuma.
|
|
2. [ ] Ongeza ufuatiliaji kamili.
|
|
3. [ ] Mapitio ya usalama na majaribio ya uvamizi.
|
|
4. [ ] Uboreshaji wa utendaji.
|
|
|
|
## Mikakati ya Ujaribio
|
|
|
|
### Vipimo vya Kitengo
|
|
```python
|
|
def test_user_collection_isolation():
|
|
# Hifadhi masuala kwa mtumiaji 1/mkusanyiko 1
|
|
processor.store_triples(triples_user1_coll1)
|
|
|
|
# Hifadhi masuala kwa mtumiaji 2/mkusanyiko 2
|
|
processor.store_triples(triples_user2_coll2)
|
|
|
|
# Uulizaje kama mtumiaji 1 unapaswa kurejesha data ya mtumiaji 1
|
|
results = processor.query_triples(query_user1_coll1)
|
|
assert all_results_belong_to_user1_coll1(results)
|
|
|
|
# Uulizaje kama mtumiaji 2 unapaswa kurejesha data ya mtumiaji 2
|
|
results = processor.query_triples(query_user2_coll2)
|
|
assert all_results_belong_to_user2_coll2(results)
|
|
```
|
|
|
|
### Vipimo vya Ujumuishaji
|
|
- Matukio mengi ya mtumiaji na data iliyofanana.
|
|
- Masuala ya kati ya mkusanyiko (yanapaswa kushindwa).
|
|
- Vipimo vya uhamishaji na data iliyopo.
|
|
- Benchi za utendaji na data kubwa.
|
|
|
|
### Vipimo vya Usalama
|
|
- Jaribu kuuliza data ya watumiaji wengine.
|
|
- Mashambulio ya aina ya SQL kwenye vigezo vya mtumiaji/mkusanyiko.
|
|
- Thibitisha ukinzani kamili chini ya mifumo tofauti ya kuuliza.
|
|
|
|
## Masuala ya Utendaji
|
|
|
|
### Mkakati wa Faharasa
|
|
- Faharasa za pamoja kwenye `(user, collection, uri)` kwa kuchuja bora.
|
|
- Fikiria faharasa za sehemu ikiwa baadhi ya makusanyiko ni makubwa sana.
|
|
- Fuatilia matumizi ya faharasa na utendaji wa kuuliza.
|
|
|
|
### Uboreshaji wa Uulizaji
|
|
- Tumia EXPLAIN ili kuhakikisha matumizi ya faharasa katika masuala yaliyofilishwa.
|
|
- Fikiria kuhifadhi matokeo ya kuuliza kwa data inayopatikana mara kwa mara.
|
|
- Profaili matumizi ya kumbukumbu na idadi kubwa ya watumiaji/makusanyiko.
|
|
|
|
### Urahisi
|
|
- Kila mtumiaji/mkusanyiko huunda kisiwa cha data.
|
|
- Fuatilia saizi ya hifadhi na matumizi ya kikao.
|
|
- Fikiria mikakati ya urahisi wa wima ikiwa inahitajika.
|
|
|
|
## Usalama na Uzingatiaji
|
|
|
|
### Ahadi za Ukinzani wa Data
|
|
- **Kimwili**: Data yote ya mtumiaji iliyohifadhiwa na jambo la mtumiaji/mkusanyiko.
|
|
- **Mantiki**: Masuala yote yaliyofilishwa kwa muktadha wa mtumiaji/mkusanyiko.
|
|
- **Udhibiti wa Ufikiaji**: Uthibitisho wa kiwango cha huduma unaozuia ufikiaji usioidhinishwa.
|
|
|
|
### Mahitaji ya Ufuatiliaji
|
|
- Ingiza masuala yote ya data na muktadha wa mtumiaji/mkusanyiko.
|
|
- Fuatilia shughuli za uhamishaji na uhamishaji wa data.
|
|
- Fuatilia majaribio ya ukiukaji wa ukinzani.
|
|
|
|
### Masuala ya Uzingatiaji
|
|
- GDPR: Uwezo ulioboreshwa wa kutafuta na kufuta data maalum ya mtumiaji.
|
|
- SOC2: Ukinzani wa wateja wengi na udhibiti wa ufikiaji.
|
|
- HIPAA: Ukinzani wa mteja kwa data ya afya.
|
|
|
|
## Hatari na Kupunguza
|
|
|
|
| Hatari | Athari | Uwezekano | Kupunguza |
|
|
|------|--------|------------|------------|
|
|
| Uulizaji unokosa jambo la mtumiaji/mkusanyiko | Juu | Katikati | Uthibitisho wa lazima, vipimo vya kina |
|
|
| Uharibifu wa utendaji | Katikati | Chini | Uboreshaji wa faharasa, profaili ya kuuliza |
|
|
| Uharibifu wa data ya uhamishaji | Juu | Chini | Mkakati wa chelezo, taratibu za kurejesha |
|
|
| Masuala ya kuuliza ya mkusanyiko mingi | Katikati | Katikati | Nyaraka za mifumo ya kuuliza, toa mifano |
|
|
|
|
## Vigezo vya Mafanikio
|
|
|
|
1. **Usalama**: Hakuna ufikiaji wa data ya mtumiaji mwingine katika uzalishaji.
|
|
2. **Utendaji**: <10% athari ya utendaji kwenye masuala yaliyofilishwa.
|
|
3. **Uhamishaji**: 100% ya data iliyopo iliyohama bila kupoteza.
|
|
4. **Urahisi**: Masuala yote ya sasa ya kuuliza yanapaswa kufanya kazi na muktadha wa mtumiaji/mkusanyiko.
|
|
5. **Uzingatiaji**: Ufuatiliaji kamili wa masuala ya mtumiaji/mkusanyiko.
|
|
|
|
## Hitimisho
|
|
|
|
Njia ya kuchuja kulingana na jambo hutoa uwiano bora wa usalama, utendaji, na urafiki kwa kuongeza ukinzani wa mtumiaji/mkusanyiko katika Neo4j. Inalingana na mifumo iliyopo ya utendaji wa wateja wengi katika TrustGraph huku ikiendeleza nguvu za Neo4j katika kuuliza na faharasa.
|
|
|
|
Suluhisho hili huhakikisha kwamba hifadhi ya Neo4j katika TrustGraph inakidhi viwango sawa vya usalama kama mifumo mingine ya kuhifadhi, ikiepuka udhaifu wa ukinzani wa data huku ikiendeleza uwezo na nguvu ya kuuliza ya grafu.
|