I database di grafici possono aiutarti a scoprire informazioni dettagliate modellando le entità dei dati e le relazioni tra loro. JanusGraph è un database di grafici che supporta l'utilizzo di grandi quantità di dati. Questa pagina presenta i concetti che possono aiutarti a eseguire JanusGraph con Google Cloud con Google Kubernetes Engine come piattaforma di orchestrazione e Bigtable come il backend di archiviazione.
Il documento è destinato ad architetti di sistema, amministratori di database e professionisti DevOps interessati a eseguire il database di grafici JanusGraph su Google Cloud utilizzando Bigtable come backend di archiviazione. Si presuppone che tu abbia familiarità con Google Kubernetes Engine (GKE), i pod Kubernetes, Bigtable, ed Elasticsearch.
Panoramica
Nella terminologia dei grafici, le entità sono note come nodi o vertici e le relazioni sono note come archi. In JanusGraph, sia i vertici sia gli archi possono avere dati associati aggiuntivi resi disponibili tramite le proprietà.
L'illustrazione precedente è un esempio di grafico delle proprietà.
I database di grafici ti aiutano a modellare una varietà di domini e attività:
- Social network
- Transazioni finanziarie (per l'analisi delle frodi)
- Reti di sistemi fisici o virtuali
Quando crei database di grafici, a volte crei milioni o addirittura miliardi di vertici e archi. Quando utilizzi JanusGraph con Bigtable come livello di archiviazione sottostante, puoi eseguire query veloci (note come attraversamenti di grafici) e scalare il livello di archiviazione in modo indipendente in base alle dimensioni e al throughput di cui hai bisogno. JanusGraph utilizza anche un backend di indicizzazione collegabile per fornire l'indicizzazione full-text per le proprietà di vertici e archi.
Puoi eseguire il deployment di un'infrastruttura JanusGraph scalabile su GKE, utilizzando Elasticsearch come backend di indicizzazione in esecuzione nei pod in un StatefulSet e Bigtable come backend di archiviazione. Al termine, puoi attraversare le relazioni esistenti nei dati del grafico.
Il seguente diagramma mostra come questi elementi si combinano.
Il diagramma precedente mostra il deployment di JanusGraph su GKE con Elasticsearch e Bigtable.
Dati di JanusGraph in Bigtable
I dati dei grafici vengono archiviati da JanusGraph come elenco di adiacenza. Ogni riga rappresenta un vertice, eventuali vertici adiacenti (archi) e metadati delle proprietà relativi a vertici e archi. La chiave di riga è l'identificatore univoco del vertice. Ogni relazione tra il vertice e un altro vertice e le proprietà che definiscono ulteriormente la relazione vengono archiviate come colonna di archi o di proprietà degli archi. Sia il qualificatore di colonna sia il valore della colonna memorizzano i dati che definiscono l'arco, in conformità con le best practice di Bigtable. Ogni proprietà del vertice viene archiviata come colonna separata, utilizzando di nuovo sia il qualificatore di colonna sia il valore della colonna per definire la proprietà.
Il seguente diagramma mostra questa struttura di archiviazione.
Il diagramma mostra la struttura di archiviazione logica per un piccolo frammento di grafico con dettagli logici per due righe di vertici. Nel diagramma, le due righe di esempio rappresentano due vertici. Il primo vertice è etichettato con una singola proprietà del vertice ed è correlato ad altri due vertici da due archi separati. Il secondo vertice contiene colonne contenenti due proprietà e un arco.
La seguente illustrazione del modello dei dati logici degli archi dei vertici fornisce alcuni dettagli sui qualificatori e sui valori delle colonne per una colonna di archi o di proprietà degli archi.
Per ogni vertice adiacente, una colonna memorizza i metadati relativi a quell'arco. Il qualificatore di colonna contiene i metadati sulla relazione dell'arco e sulla direzione dell'arco, nonché un puntatore al vertice adiacente. Il valore della colonna contiene l'etichetta dell'arco e le eventuali proprietà aggiuntive dell'arco. Poiché gli attraversamenti possono essere seguiti in entrambe le direzioni, gli archi vengono archiviati due volte, una per ogni estremità della relazione dell'arco. L'archiviazione degli archi bidirezionali aumenta significativamente le prestazioni di attraversamento, ma comporta alcuni compromessi a causa della ridondanza dello spazio di archiviazione aggiuntivo e delle mutazioni non atomiche degli archi.
Il seguente diagramma è il modello dei dati logici di una colonna di proprietà del vertice.
L'illustrazione precedente fornisce dettagli sui qualificatori e sui valori delle colonne per una colonna di archi.
Ogni proprietà del vertice viene archiviata come colonna separata. Il qualificatore di colonna è un identificatore univoco per la chiave della proprietà. Il valore della colonna contiene sia un identificatore per la proprietà sia il valore della proprietà.
JanusGraph si basa anche sull'ordinamento lessicografico di righe e qualificatori di colonna di Bigtable per migliorare le prestazioni delle query.
Passaggi successivi
- Scopri di più su JanusGraph e sui database di grafi.
- Scopri il framework di calcolo dei grafici Apache TinkerPop ed esplora il Gremlin Gremlin.
- Scopri di più su come JanusGraph archivia i dati in Bigtable.
- Approfondisci i casi d'uso dei grafi eseguendo il deployment di un applicazione JanusGraph di esempio.