Cookie の設定を選択する

当社は、当社のサイトおよびサービスを提供するために必要な必須 Cookie および類似のツールを使用しています。当社は、パフォーマンス Cookie を使用して匿名の統計情報を収集することで、お客様が当社のサイトをどのように利用しているかを把握し、改善に役立てています。必須 Cookie は無効化できませんが、[カスタマイズ] または [拒否] をクリックしてパフォーマンス Cookie を拒否することはできます。

お客様が同意した場合、AWS および承認された第三者は、Cookie を使用して便利なサイト機能を提供したり、お客様の選択を記憶したり、関連する広告を含む関連コンテンツを表示したりします。すべての必須ではない Cookie を受け入れるか拒否するには、[受け入れる] または [拒否] をクリックしてください。より詳細な選択を行うには、[カスタマイズ] をクリックしてください。

SPARQL UPDATE LOAD を使用して Neptune にデータをインポートする

フォーカスモード
SPARQL UPDATE LOAD を使用して Neptune にデータをインポートする - Amazon Neptune

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

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

SPARQL UPDATE LOAD コマンドの構文は、SPARQL 1.1 アップデートの推奨事項に記載されています。

LOAD SILENT (URL of data to be loaded) INTO GRAPH (named graph into which to load the data)
  • SILENT — (オプション) 処理中にエラーが発生した場合でも、オペレーションは成功を返します。

    これは、単一のトランザクションに "LOAD ...; LOAD ...; UNLOAD ...; LOAD ...;" のような複数のステートメントが含まれている場合に便利です。また、リモートデータの一部が処理できない場合でも、トランザクションを完了させる必要があります。

  • ロードするデータの URL — (必須) グラフにロードするデータを含むリモートデータファイルを指定します。

    リモートファイルには、次のいずれかの拡張子を指定する必要があります。

    • NTriples 用 .nt

    • NQuads 用 .nq

    • Trig 用 .trig

    • RDF/XML 用 .rdf

    • Turtle 用 .ttl

    • N3 用 .n3

    • JSON-LD 用 .jsonld

  • INTO GRAPH(データをロードする名前付きグラフ) — (オプション) データをロードするグラフを指定します。

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

    INTO GRAPH <http://aws.amazon.com/neptune/vocab/v01/DefaultNamedGraph>
注記

大量のデータをロードする必要がある場合は、UPDATE LOAD ではなく Neptune バルクローダーを使用することをお勧めします。バルクローダーについては、Amazon Neptune バルクローダーを使用したデータの取り込みを参照してください。

SPARQL UPDATE LOAD を使用して、 Amazon S3 から直接データをロードすることも、セルフホストウェブサーバーから取得したファイルからデータをロードすることもできます。ロードするリソースは Neptune サーバーと同じリージョンに存在し、リソースのエンドポイントは VPC でホワイトリストに登録されている必要があります。Amazon S3 エンドポイントを作成する方法については、Amazon S3 VPC エンドポイントの作成 を参照してください。

すべてのSPARQL UPDATE LOAD URI は https:// で始まる必要があります。これには Amazon S3 URL が含まれます。

バルクローダーとは対照的に、SPARQL UPDATE LOAD への呼び出しは完全にトランザクション型です。

SPARQL UPDATE LOAD を使用して Amazon S3 から Neptune にファイルを直接ロードする

Neptune では、SPARQL UPDATE LOAD を使用するときに Amazon S3 に IAM ロールを渡すことはできないため、問題の Amazon S3 バケットはパブリックであるか、LOAD クエリで署名付き Amazon S3 URLを使用する必要があります。

Amazon S3 ファイルの署名付き URL を生成するには、次のような AWS CLI コマンドを使用できます。

aws s3 presign --expires-in (number of seconds) s3://(bucket name)/(path to file of data to load)

次に、結果の署名付き URL を LOAD コマンドで使えます。

curl https://(a Neptune endpoint URL):8182/sparql \ --data-urlencode 'update=load (pre-signed URL of the remote Amazon S3 file of data to be loaded) \ into graph (named graph)'

詳細については、「リクエストの認証: クエリパラメータの使用」を参照してください。Boto3 のドキュメントに、Python スクリプトを使用して署名付き URL を生成する方法が記載されています。

また、ロードするファイルのコンテンツタイプも正しく設定する必要があります。

  1. 次のように -metadata パラメータを使用してファイルを Amazon S3 にアップロードするときにファイルのコンテンツタイプを設定します。

    aws s3 cp test.nt s3://bucket-name/my-plain-text-input/test.nt --metadata Content-Type=text/plain aws s3 cp test.rdf s3://bucket-name/my-rdf-input/test.rdf --metadata Content-Type=application/rdf+xml
  2. メディアタイプの情報が実際に存在することを確認してください。以下を実行します:

    curl -v bucket-name/folder-name

    このコマンドの出力には、ファイルをアップロードするときに設定したメディアタイプ情報が表示されます。

  3. その後、SPARQL UPDATE LOAD コマンドを使用してこれらのファイルを Neptune にインポートできます。

    curl https://your-neptune-endpoint:port/sparql \ -d "update=LOAD <https://s3.amazonaws.com/bucket-name/my-rdf-input/test.rdf>"

上記の手順は、パブリック バケット、または LOAD クエリで 署名付き Amazon S3 URL を使用してアクセスするバケットに対してのみ機能します。

以下に示すように、プライベート Amazon S3 バケットからロードするようにウェブプロキシサーバーを設定することもできます。

ウェブサーバーを使用して SPARQL UPDATE LOAD でファイルを Neptune にロードする
  1. Neptune とロードするファイルをホストしている VPC 内で実行されているマシンにウェブサーバーをインストールします。たとえば、Amazon Linux を使用している場合は、次のように Apache をインストールします。

    sudo yum install httpd mod_ssl sudo /usr/sbin/apachectl start
  2. ロードしようとしている RDF ファイルコンテンツの MIME タイプを定義します。SPARQL はウェブサーバーから送信された Content-type ヘッダーを使用してコンテンツの入力形式を決定するため、ウェブサーバーに関連する MIME タイプを定義する必要があります。

    たとえば、ファイル形式を識別するために次のファイル拡張子を使用するとします。

    • NTriples 用 .nt

    • NQuads 用 .nq

    • Trig 用 .trig

    • RDF/XML 用 .rdf

    • Turtle 用 .ttl

    • N3 用 .n3

    • JSON-LD 用 .jsonld

    ウェブサーバーとして Apache 2 を使用している場合は、ファイル /etc/mime.types を編集して次のタイプを追加します。

    text/plain nt application/n-quads nq application/trig trig application/rdf+xml rdf application/x-turtle ttl text/rdf+n3 n3 application/ld+json jsonld
  3. MIME タイプマッピングが機能することを確認します。ウェブサーバーを起動して実行し、選択した形式で RDFファイルをホストしたら、ローカルホストからウェブサーバーにリクエストを送信して設定をテストできます。

    たとえば、次のようなリクエストを送信します。

    curl -v http://localhost:80/test.rdf

    curl からの詳細な出力には、このような行が表示されるはずです。

    Content-Type: application/rdf+xml

    これは、コンテンツタイプマッピングが正常に定義されたことを示しています。

  4. これで、SPARQL UPDATE コマンドを使用してデータをロードする準備が整いました。

    curl https://your-neptune-endpoint:port/sparql \ -d "update=LOAD <http://web_server_private_ip:80/test.rdf>"
注記

SPARQL UPDATE LOAD を使用すると、ロードされるソースファイルが大きい場合にウェブサーバーでタイムアウトが発生する可能性があります。Neptune は、ストリーミング時と、サーバーで設定したタイムアウトよりも時間がかかる大きなファイルでは、ファイルデータを処理します。これにより、サーバーが接続を閉じることがあります。その場合、Neptune がストリームで予期しない EOF を検出すると、次のエラーメッセージが表示されることがあります。

{ "detailedMessage":"Invalid syntax in the specified file", "code":"InvalidParameterException" }

このメッセージが表示され、ソースファイルに無効な構文が含まれていると思われる場合は、ウェブサーバーのタイムアウト設定を大きくしてみてください。さらに、サーバーでデバッグログを有効にし、タイムアウトを探すことで、問題を診断することもできます。

プライバシーサイト規約Cookie の設定
© 2025, Amazon Web Services, Inc. or its affiliates.All rights reserved.