本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用 從 Neptune SPARQLUPDATEUNLOAD刪除資料
Neptune 也提供自訂SPARQL操作 UNLOAD
,用於移除遠端來源中指定的資料。 UNLOAD
可視為LOAD
操作的複本。它的語法是:
注意
此功能從 Neptune 引擎 1.0.4.1 版開始可用。
UNLOAD SILENT
(URL of the remote data to be unloaded)
FROM GRAPH(named graph from which to remove the data)
-
SILENT
– (選用) 即使在處理資料時發生錯誤,也會導致操作傳回成功。這在單一交易包含多個陳述式 (例如,
"LOAD ...; LOAD ...; UNLOAD ...; LOAD ...;"
) 時很有用,而且即使某些遠端資料無法處理,您也想要交易完成。 -
URL of the remote data to be unloaded
– (必要 ) 指定遠端資料檔案,其中包含要從圖形卸載的資料。遠端檔案必須具有下列其中一個副檔名 (這些是 UPDATELOAD支援的相同格式):
.nt
適用於 NTriples。.nq
適用於 NQuads。Trig 為
.trig
。.rdf
適用於 RDF/XML。Turtle 為
.ttl
。N3 為
.n3
。.jsonld
適用於 JSON-LD。
UNLOAD
操作將會從您的資料庫叢集中移除此檔案包含的所有資料。任何 Amazon S3 身分驗證都必須包含在 中URL,才能卸載資料。您可以預先簽署 Amazon S3 檔案,然後使用產生的 URL 來安全地存取檔案。例如:
aws s3 presign --expires-in
(number of seconds)
s3://(bucket name)
/(path to file of data to unload)
然後:
curl https://
(a Neptune endpoint URL)
:8182/sparql \ --data-urlencode 'update=unload(pre-signed URL of the remote Amazon S3 data to be unloaded)
\ from graph(named graph)
'如需詳細資訊,請參閱對請求進行身分驗證:使用查詢參數。
-
FROM GRAPH
(named graph from which to remove the data)
– (選用 ) 指定應從中卸載遠端資料的命名圖形。Neptune 會將每個三元組與一個具名圖形建立關聯。您可以使用名為圖形 URI、 的後援來指定預設的命名圖形
http://aws.amazon.com/neptune/vocab/v01/DefaultNamedGraph
,如下所示:FROM GRAPH <http://aws.amazon.com/neptune/vocab/v01/DefaultNamedGraph>
UNLOAD
會以 LOAD
對應至 INSERT DATA
{
的相同方式對應至 (inline data)
}DELETE DATA {
。如同 (inline data)
}DELETE DATA
,UNLOAD
無法對包含空白節點的資料運作。
例如,如果本機 Web 伺服器提供名為 data.nt
的檔案,其中包含以下兩個三元組:
<http://example.org/resource#a> <http://example.org/resource#p> <http://example.org/resource#b> . <http://example.org/resource#a> <http://example.org/resource#p> <http://example.org/resource#c> .
以下 UNLOAD
命令將從具名圖形 (<http://example.org/graph1>
) 中刪除這兩個三元組:
UNLOAD <http://localhost:80/data.nt> FROM GRAPH <http://example.org/graph1>
這將與使用以下 DELETE DATA
命令具有相同的效果:
DELETE DATA { GRAPH <http://example.org/graph1> { <http://example.org/resource#a> <http://example.org/resource#p> <http://example.org/resource#b> . <http://example.org/resource#a> <http://example.org/resource#p> <http://example.org/resource#c> . } }
UNLOAD
命令擲回的例外狀況
-
InvalidParameterException
– 資料中有空白節點。HTTP 狀態:400 錯誤請求。訊息:
Blank nodes are not allowed for UNLOAD
-
InvalidParameterException
– 資料中有不完整的語法。HTTP 狀態:400 錯誤請求。訊息:
Invalid syntax in the specified file.
-
UnloadUrlAccessDeniedException
– 存取遭拒。HTTP 狀態:400 錯誤請求。訊息:
Update failure: Endpoint
(Neptune endpoint)
reported access denied error. Please verify access. -
BadRequestException
– 無法擷取遠端資料。HTTP 狀態:400 錯誤請求。訊息 : (取決於HTTP回應)。