Query federate SPARQL in Neptune che utilizzano l'estensione SERVICE - Amazon Neptune

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à.

Query federate SPARQL in Neptune che utilizzano l'estensione SERVICE

Amazon Neptune supporta completamente l'estensione delle query federate SPARQL che utilizza la parola chiave SERVICE. Per ulteriori informazioni, consulta Query federate SPARQL 1.1.

Nota

Questa funzionalità è disponibile a partire dal Rilascio 1.0.1.0.200463.0 (15/10/2019).

La parola chiave SERVICE indica al motore di query SPARQL di eseguire una parte della query rispetto a un endpoint SPARQL remoto e di comporre il risultato della query finale. Sono possibili solo le operazioni READ. Le operazioni WRITE e DELETE non sono supportate. Neptune può eseguire solo query federate su endpoint SPARQL accessibili all'interno del proprio cloud privato virtuale (VPC). Tuttavia, è anche possibile utilizzare un proxy inverso nel VPC per rendere accessibile un'origine dati esterna all'interno del VPC.

Nota

Quando SPARQL SERVICE viene utilizzato per federare una query a due o più cluster Neptune nello stesso VPC, i gruppi di sicurezza devono essere configurati per consentire a tutti i cluster Neptune di parlare tra loro.

Importante

La federazione SPARQL 1.1 effettua richieste di servizio per tuo conto quando trasferisci query e parametri a endpoint SPARQL esterni. È tua responsabilità verificare che gli endpoint SPARQL esterni soddisfino i requisiti di sicurezza e gestione dei dati dell'applicazione.

Esempio di una query federata Neptune

Il seguente esempio semplice mostra il funzionamento di query federate SPARQL.

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 . } }
  1. 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'indirizzo http://neptune-2:8182/sparql.

  2. Neptune-2 valuta Q-2 e restituisce i risultati a Neptune-1.

  3. Neptune-1 unisce le soluzioni per entrambi i modelli e restituisce i risultati al cliente.

Questo flusso è mostrato nel seguente diagramma.

Diagramma di flusso che mostra i modelli di query federate SPARQL in fase di valutazione e le risposte inviate al client.
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 utilizza (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 l'autenticazione e l'autorizzazione IAM, ma Neptune-2 non le richiede, per effettuare la query federata occorrono solo le autorizzazioni IAM appropriate per Neptune-1.

  • Se Neptune-1 e Neptune-2 richiedono entrambi l'autenticazione e l'autorizzazione IAM, è necessario collegare le autorizzazioni IAM per entrambi i database per effettuare la query federata. Entrambi i cluster devono inoltre trovarsi nello stesso AWS account e nella stessa regione. 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 abilitato per IAM ma Neptune-2 lo sia, non è possibile effettuare una query federata. Il motivo è che Neptune-1 non può recuperare le credenziali IAM e passarle a Neptune-2 per autorizzare la seconda parte della query.