SPARQL UPDATE UNLOAD を使用して Neptune からデータを削除する - Amazon Neptune

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

SPARQL UPDATE UNLOAD を使用して Neptune からデータを削除する

Neptune はカスタム SPARQL オペレーション、UNLOAD、も提供し、リモートソースで指定されたデータを削除する場合に使用します。UNLOADLOAD オペレーションの対応物と見なすことができます。構文は次のとおりです。

注記

この機能は、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 — (必須) グラフにロードするデータを含むリモートデータファイルを指定します。

    リモートファイルには、次のいずれかの拡張子が必要です (UPDATE-LOAD がサポートする形式と同じです)。

    • NTriples 用 .nt

    • NQuads 用 .nq

    • Trig 用 .trig

    • RDF/XML 用 .rdf

    • Turtle 用 .ttl

    • N3 用 .n3

    • JSON-LD 用 .jsonld

    このファイルに含まれるすべてのデータは、UNLOAD オペレーションによって DB クラスターから削除されます。

    データをアンロードするには、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 (データを削除する名前付きグラフ) — (オプション) リモートデータのアンロード元となる名前付きグラフを指定します。

    Neptune はすべてのトリプルを名前が付いたグラフに関連付けます。フォールバック名前付きグラフ URI、http://aws.amazon.com/neptune/vocab/v01/DefaultNamedGraph などを使用して、デフォルトの名前付きグラフを指定できます。次のようになります。

    FROM GRAPH <http://aws.amazon.com/neptune/vocab/v01/DefaultNamedGraph>

それと同じ方法で LOADINSERT DATA { (inline data) } に、UNLOADDELETE DATA { (inline data) } に対応しています。DELETE DATA 同様に、UNLOAD は空白ノードを含むデータでは機能しません。

たとえば、ローカル Web サーバーが、data.nt という名前のファイルを提供しているとします。これには、次の 2 つのトリプルが含まれています。

<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> から、これら 2 つのトリプルを削除します。

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 status: 400 Bad Request。

    メッセージ Blank nodes are not allowed for UNLOAD

     

  • InvalidParameterException — データ内に壊れた構文がありました。HTTP status: 400 Bad Request。

    メッセージInvalid syntax in the specified file.

     

  • UnloadUrlAccessDeniedException   –   アクセスが拒否されました。HTTP status: 400 Bad Request。

    メッセージUpdate failure: Endpoint (Neptune endpoint) reported access denied error. Please verify access.

     

  • BadRequestException — リモートデータを取得できません。HTTP status: 400 Bad Request。

    メッセージ:(HTTP レスポンスによって決まります)。