Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
SPARQLquery federate in Neptune utilizzando l'estensione SERVICE
Amazon Neptune supporta completamente l'estensione di query federata SPARQL che utilizza la parola chiave. SERVICE
(Per ulteriori informazioni, consulta SPARQL1.1 Federated
Nota
Questa funzionalità è disponibile a partire dal Rilascio 1.0.1.0.200463.0 (15/10/2019).
La SERVICE
parola chiave indica al motore di SPARQL query di eseguire una parte della query su un SPARQL endpoint remoto e di comporre il risultato finale della query. Sono possibili solo le operazioni READ
. Le operazioni WRITE
e DELETE
non sono supportate. Neptune può eseguire query federate solo su SPARQL endpoint accessibili all'interno del suo cloud privato virtuale (). VPC Tuttavia, è anche possibile utilizzare un reverse proxy in VPC per rendere accessibile una fonte di dati esterna all'interno di. VPC
Nota
Quando SPARQL SERVICE
viene utilizzato per federare una query su due o più cluster Neptune VPC nello stesso, i gruppi di sicurezza devono essere configurati per consentire a tutti i cluster Neptune di comunicare tra loro.
Importante
SPARQL1.1 La federazione effettua richieste di servizio per conto dell'utente quando trasmette interrogazioni e parametri a endpoint esterni. SPARQL È responsabilità dell'utente verificare che gli SPARQL endpoint esterni soddisfino i requisiti di gestione dei dati e sicurezza dell'applicazione.
Esempio di una query federata Neptune
Il semplice esempio seguente mostra come funzionano le query SPARQL federate.
Supponiamo che un cliente invii la seguente query a Neptune-1 all'indirizzo http://neptune-1:8182/sparql
.
SELECT * WHERE { ?person rdf:type foaf:Person . SERVICE <http://neptune-2:8182/sparql> { ?person foaf:knows ?friend . } }
Neptune-1 valuta il primo modello di query (Q-1) che è
?person rdf:type foaf:Person
, utilizza i risultati per risolvere?person
in Q-2 (?person foaf:knows ?friend
) e inoltra il modello risultante a Neptune-2 all'indirizzohttp://neptune-2:8182/sparql
.Neptune-2 valuta Q-2 e restituisce i risultati a Neptune-1.
Neptune-1 unisce le soluzioni per entrambi i modelli e restituisce i risultati al cliente.
Questo flusso è mostrato nel seguente diagramma.
Nota
Per impostazione predefinita, il sistema di ottimizzazione determina a che punto dell'esecuzione della query viene eseguita l'istruzione SERVICE
. È possibile sostituire questo posizionamento utilizzando l'hint di query joinOrder.
Controllo degli accessi per query federate in Neptune
Neptune AWS Identity and Access Management usa IAM () per l'autenticazione e l'autorizzazione. Il controllo degli accessi per una query federata può riguardare più istanze database Neptune. Queste istanze potrebbero avere requisiti diversi per il controllo degli accessi. In alcune circostanze, questo può limitare la possibilità di effettuare una query federata.
Consideriamo il semplice esempio presentato nella sezione precedente. Neptune-1 chiama Neptune-2 con le stesse credenziali con cui è stato chiamato.
Se Neptune-1 richiede IAM l'autenticazione e l'autorizzazione, ma Neptune-2 no, tutto ciò che serve sono le IAM autorizzazioni appropriate per Neptune-1 per effettuare la query federata.
Se Neptune-1 e Neptune-2 richiedono entrambi IAM l'autenticazione e l'autorizzazione, è necessario allegare le IAM autorizzazioni per entrambi i database per effettuare la query federata. Entrambi i cluster devono inoltre trovarsi nello stesso account e nella stessa regione. AWS Le architetture di query federate tra più regioni e/o più account non sono attualmente supportate.
Tuttavia, nel caso in cui Neptune-1 non sia IAM abilitato ma Neptune-2 sì, non è possibile effettuare una query federata. Il motivo è che Neptune-1 non può recuperare IAM le tue credenziali e passarle a Neptune-2 per autorizzare la seconda parte della query.