機械翻訳について

DBMS_CLOUD URI書式

DBMS_CLOUDでの操作におけるソース・ファイルURIの形式について説明します。 形式は、使用しているオブジェクト・ストレージ・サービスによって異なります。

DBMS_CLOUDにより、セキュアな通信および指定したURIが、https://をURIのプレフィクスとして使用したHTTPSを使用していることが保証されます。

Oracle Cloud Infrastructure Object StorageネイティブURIフォーマット

ソース・ファイルが商用レルム(OC1)のOracle Cloud Infrastructure Object Storageにある場合は、オブジェクト・ストレージ専用エンドポイントを使用する次のURI形式を使用することをお薦めします。 詳細は、「オブジェクト・ストレージ専用エンドポイント」を参照してください。

https://namespace-string.objectstorage.region.oci.customer-oci.com/n/namespace-string/b/bucketname/o/filename

ノート:

OCIオブジェクト・ストアの専用エンドポイントURLは、商用レルム(OC1)でのみサポートされています。

ソース・ファイルがOracle Cloud Infrastructure Object Storageに存在し、商用レルム(OC1)にない場合は、次の形式を使用する必要があります:

https://objectstorage.region.oraclecloud.com/n/namespace-string/b/bucket/o/filename

たとえば、商用レルム(OC1)では、Phoenixデータ・センターのbucketnameバケット内のファイルchannels.txtのネイティブURIは次のようになります:

https://namespace.objectstorage.region.oci.customer-oci.com/n/namespace/b/bucketname/o/channels.txt

この例では、namespace-stringがOracle Cloud Infrastructureオブジェクト・ストレージのネームスペースで、bucketnameがバケット名です。 詳細については、「オブジェクト・ストレージのネームスペースについて」を参照してください。

URIは、オブジェクト・ストアの右側の省略記号メニューのOracle Cloud Infrastructure Object Storageオブジェクトの詳細から見つけることができます:

  1. Oracle Cloudの横にあるナビゲーション・アイコンをクリックして、Oracle Cloud Infrastructureコンソールを開きます。
  2. Oracle Cloud Infrastructure左側のナビゲーション・メニューから、「コア・インフラストラクチャ」をクリックします。 「オブジェクト・ストレージ」で、「オブジェクト・ストレージ」をクリックします。
  3. リスト範囲で、「コンパートメント」を選択します。
  4. 「名前」列から、バケットを選択します。
  5. オブジェクト領域で、「オブジェクト詳細の表示」をクリックします。
  6. 「オブジェクトの詳細」ページの「URLパス(URI)」フィールドに、オブジェクトにアクセスするためのURIが表示されます。

ノート:

ソース・ファイルはオブジェクト・ストレージ層バケットに格納する必要があります。 Autonomous Databaseでは、アーカイブ・ストレージ層のバケットはサポートされていません。 詳細については、「オブジェクト・ストレージの概要」を参照してください。

Oracle Cloud Infrastructure Object Storage Swift URI形式

ソース・ファイルが商用レルム(OC1)のOracle Cloud Infrastructure Object Storageにある場合は、オブジェクト・ストレージ専用エンドポイントを使用する次のURI形式を使用することをお薦めします。 詳細は、「オブジェクト・ストレージ専用エンドポイント」を参照してください。

https://namespace-string.swiftobjectstorage.region.oci.customer-oci.com/v1/namespace-string/bucket/filename

ノート:

OCIオブジェクト・ストアの専用エンドポイントURLは、商用レルム(OC1)でのみサポートされています。

ソース・ファイルがOracle Cloud Infrastructure Object Storageに存在し、商用レルム(OC1)にない場合は、次の形式を使用する必要があります:

https://swiftobjectstorage.region.oraclecloud.com/v1/namespace-string/bucket/filename

たとえば、商用レルム(OC1)では、Phoenixデータ・センターのbucketnameバケット内のファイルchannels.txtのSwift URIは次のようになります:

https://namespace-string.swiftobjectstorage.us-phoenix-1.oci.customer-oci.com/v1/namespace-string/bucketname/channels.txt

この例では、namespace-stringがOracle Cloud Infrastructureオブジェクト・ストレージのネームスペースで、bucketnameがバケット名です。 詳細については、「オブジェクト・ストレージのネームスペースについて」を参照してください。

ノート:

ソース・ファイルはオブジェクト・ストレージ層バケットに格納する必要があります。 Autonomous Databaseでは、アーカイブ・ストレージ層のバケットはサポートされていません。 詳細については、「オブジェクト・ストレージの概要」を参照してください。

認証前リクエストURLを使用したOracle Cloud Infrastructure Object Storage URIフォーマット

ソース・ファイルがOracle Cloud Infrastructure Object Storageに存在する場合、Oracle Cloud Infrastructure認証前URIを使用できます。 認証前リクエストを作成すると、一意のURLが生成されます。 その後、組織、パートナまたはサードパーティのユーザーに一意のURLを指定することによって、認証前リクエストで識別されたオブジェクト・ストレージ・リソース・ターゲットにアクセスできます。

ノート:

認証前アクセスに関するビジネス要件とセキュリティ上の影響を慎重にアセスします。 事前認証済リクエストURLを作成する場合は、「有効期限」および「アクセス・タイプ」をノートして、使用に適していることを確認します。

認証前リクエストURLは、リクエストがアクティブであるかぎり、リクエスト内で識別されたターゲットへのURLアクセス権を持つすべてのユーザーに付与します。 認証前アクセスの操作要件を考慮することに加えて、その配分を管理することも同様に重要です。

ソース・ファイルが商用レルム(OC1)のOracle Cloud Infrastructure Object Storageにある場合は、オブジェクト・ストレージ専用エンドポイントを使用する次のURI形式を使用することをお薦めします。 詳細は、「オブジェクト・ストレージ専用エンドポイント」を参照してください。

https://namespace-string.objectstorage.region.oci.customer-oci.com/p/encrypted_string/n/namespace-string/b/bucket/o/filename

ノート:

OCIオブジェクト・ストアの専用エンドポイントURLは、商用レルム(OC1)でのみサポートされています。

ソース・ファイルがOracle Cloud Infrastructure Object Storageに存在し、商用レルム(OC1)にない場合は、次の形式を使用する必要があります:

https://objectstorage.region.oraclecloud.com.com/p/encrypted_string/n/namespace-string/b/bucket/o/filename

たとえば、商用レルム(OC1)では、Phoenixデータ・センターの「バケット名」バケットにあるファイルchannels.txtの事前認証済URIのサンプルは次のとおりです:

https://namespace-string.objectstorage.us-phoenix-1.oci.customer-oci.com/p/2xN-uDtWJNsiD910UCYGue/n/namespace-string/b/bucketname/o/channels.txt

この例では、namespace-stringがOracle Cloud Infrastructureオブジェクト・ストレージのネームスペースで、bucketnameがバケット名です。 詳細については、「オブジェクト・ストレージのネームスペースについて」を参照してください。

資格証明を作成する必要なく、Oracle Cloud Infrastructureオブジェクト・ストアのファイルにアクセスするためのURLを渡すDBMS_CLOUDプロシージャでは、認証前のURLを使用できます。 credential_nameパラメータをNULLとして指定するか、credential_nameパラメータを指定しないかのいずれかです。

たとえば:

BEGIN
  DBMS_CLOUD.COPY_DATA(
     table_name =>'CHANNELS',
     file_uri_list =>'https://objectstorage.us-phoenix-1.oraclecloud.com/p/unique-pre-authenticated-string/n/namespace-string/b/bucketname/o/channels.txt',
     format => json_object('delimiter' value ',') );
END;
/

ノート:

混合URLのリストは有効です。 認証前のURLと認証が必要なURLの両方がURLリストに含まれる場合、DBMS_CLOUDは指定されたcredential_nameを使用して、認証が必要なURLおよび指定されたcredential_nameが無視される認証前のURLにアクセスします。

詳細については、「事前認証済リクエストの使用」を参照してください。

パブリックURLを使用したURI書式

パブリックUrlを提供するオブジェクト・ストアにソース・ファイルが存在する場合は、DBMS_CLOUDプロシージャでパブリックurlを使用できます。 パブリックは、オブジェクト・ストレージ・サービスがオブジェクト・ストア・ファイルへの匿名の認証されないアクセスをサポートすることを意味します。 サポートされるオブジェクト・ストアにオブジェクトを公開する方法の詳細は、クラウド・オブジェクト・ストレージ・サービスを参照してください。

ノート:

公開Urlの使用に関するビジネス要件およびセキュリティの影響は慎重にアセスしてください。 ファイル・コンテンツが認証されていないため、パブリックUrlを使用する場合、これが適切であることを確認します。

パブリックURLは、資格証明を作成しなくても、オブジェクト・ストア内のファイルにアクセスするためのURLを使用するDBMS_CLOUDプロシージャで使用できます。 credential_nameパラメータをNULLとして指定するか、credential_nameパラメータを指定しないかのいずれかです。

たとえば、次の例では、credential_nameなしでDBMS_CLOUD.COPY_DATAを使用します:

BEGIN
  DBMS_CLOUD.COPY_DATA(
     table_name =>'CHANNELS',
     file_uri_list =>'https://objectstorage.us-ashburn-1.oraclecloud.com/n/namespace-string/b/bucketname/o/chan_v3.dat',
     format => json_object('delimiter' value ',') );
END;
/

この例では、namespace-stringがOracle Cloud Infrastructureオブジェクト・ストレージのネームスペースで、bucketnameがバケット名です。 詳細については、「オブジェクト・ストレージのネームスペースについて」を参照してください。

ノート:

混合URLのリストは有効です。 URLリストにパブリックURLと認証が必要なURLの両方が含まれている場合、DBMS_CLOUDは指定されたcredential_nameを使用して、認証が必要なURLおよび指定されたcredential_nameが無視されるパブリックURLにアクセスします。

Oracle Cloud Infrastructureパブリック・バケットの使用の詳細は、「パブリック・バケット」を参照してください。

Oracle Cloud Infrastructure Object Storage ClassicのURI形式

ソース・ファイルがOracle Cloud Infrastructure Object Storage Classicに存在する場合、ファイルにアクセスするためのURI形式の説明についてRESTページを参照してください: Oracle Cloud Infrastructure Object Storage ClassicリソースのREST URLについてに関する項。

Amazon S3 URI形式

ソース・ファイルがAmazon S3にある場合は、ファイルにアクセスするためのURI形式の詳細は、次を参照してください: バケットへのアクセス

たとえば、以下はus-west-2リージョンのadbバケット内のファイルchannels.txtを参照しています。

https://s3-us-west-2.amazonaws.com/adb/channels.txt 

事前署名済URLは、資格証明を作成しなくても、Amazon S3オブジェクト・ストア内のファイルにアクセスするためのURLを取得するDBMS_CLOUDプロシージャで使用できます。 DBMS_CLOUDプロシージャで事前署名済URLを使用するには、credential_nameパラメータをNULLとして指定するか、credential_nameパラメータを指定しないでください。

詳細については、「他のユーザーとのオブジェクトの共有」を参照してください。

ノート:

DBMS_CLOUDは、バケットにアクセスするための標準のAmazon S3エンドポイント構文をサポートしています。 DBMS_CLOUDは、Amazon S3レガシー・エンドポイントをサポートしていません。 詳細については、「レガシー・エンドポイント」を参照してください。

「Azure BlobストレージまたはAzure Data Lakeストレージ」 URI形式

ソース・ファイルがAzure BlobストレージまたはAzure Data Lakeストレージにある場合は、ファイルにアクセスするためのURI形式の説明を次を参照してください: リソースURI構文

たとえば、以下は、ストレージ・アカウントadb_useradbコンテナ内のファイルchannels.txtを参照しています:

https://adb_user.blob.core.windows.net/adb/channels.txt

ノート:

資格証明を作成せずに、「Azure BlobストレージまたはAzure Data Lakeストレージ」のファイルにアクセスするためのURLを取得するDBMS_CLOUDプロシージャで、共有アクセス・シグネチャ(SAS) URLを使用できます。 共有アクセス・シグネチャ(SAS) URLを使用するには、credential_nameパラメータをNULLとして指定するか、credential_nameパラメータを指定しないでください。

詳細については、「共有アクセス・シグネチャ(SAS)を使用したAzureストレージ・リソースへの制限付きアクセス権の付与」を参照してください。

Amazon S3互換のURI形式

DBMS_CLOUDは、次のサービスを含む、Amazon S3互換のURLをサポートするオブジェクト・ストレージ・サービス実装をサポートしています:

  • Amazon S3互換のURLを使用したOracle Cloud Infrastructure Object Storage
  • Google Cloud StorageとAmazon S3互換のURL
  • Wasabi Hot Cloud StorageとAmazon S3互換のURL

ノート:

Amazon S3互換オブジェクト・ストアでDBMS_CLOUDを使用するには、有効な資格証明を指定する必要があります。 詳細については、「CREATE_CREDENTIALプロシージャ」を参照してください。

ソース・ファイルがAmazon S3互換URIをサポートするサービスに存在する場合は、次のURI形式を使用してファイルにアクセスします:

  • Oracle Cloud Infrastructure Object Storage S3互換URL

    ソース・ファイルが商用レルム(OC1)のOracle Cloud Infrastructure Object Storageにある場合、商用レルム(OC1)には、次に示すオブジェクトURLおよびバケットURL形式を使用することをお薦めします。 詳細は、「オブジェクト・ストレージ専用エンドポイント」を参照してください。

    ノート:

    OCIオブジェクト・ストアの専用エンドポイントURLは、商用レルム(OC1)でのみサポートされています。

    オブジェクトURL形式

    • 商用レルム(OC1)でのみサポートされます:

      https://mynamespace.compat.objectstorage.region.oci.customer-oci.com/bucket_name/object_name
    • すべてのゾーンでサポート:

      https://mynamespace.compat.objectstorage.region.oraclecloud.com/bucket_name/object_name

    バケットURLフォーマット:

    • 商用レルム(OC1)でのみサポートされます:

      https://mynamespace.compat.objectstorage.region.oci.customer-oci.com/bucket_name
    • すべてのゾーンでサポート:

      https://mynamespace.compat.objectstorage.region.oraclecloud.com/bucket_name

    詳細については、「Amazon S3の互換性」「オブジェクト・ストレージ・サービスAPI」を参照してください。

  • Google Cloud Storage S3互換URL

    オブジェクトURLの形式:

    https://bucketname.storage.googleapis.com/object_name

    バケットURLフォーマット:

    https://bucketname.storage.googleapis.com/

    詳細については、「Amazon S3からクラウド・ストレージへの移行」「リクエスト・エンドポイント」を参照してください。

  • Wasabi S3互換URL

    オブジェクトURLの形式:

    https://bucketname.s3.region.wasabisys.com/object_name

    バケットURLフォーマット:

    https://bucketname.s3.region.wasabisys.com/

    詳細については、「Wasabi S3 APIリファレンス」「Wasabiのストレージ・リージョンのサービスURL」を参照してください。

GitHub Raw URLフォーマット

DBMS_CLOUDは、「GitHubリポジトリ」のデータにアクセスするためのGitHub Raw URLをサポートしています。

ノート:

GitHubのRAW URLを使用したDBMS_CLOUDアクセスの場合、リポジトリ・アクセスは読取り専用機能に制限されます。 データを書き込むDBMS_CLOUD.PUT_OBJECTなどのDBMS_CLOUD APIは、「GitHubリポジトリ」DBMS_CLOUD APIではサポートされていません。

かわりに、DBMS_CLOUD_REPO.PUT_FILEを使用してデータを「GitHubリポジトリ」にアップロードします。

GitHub Raw URLをDBMS_CLOUD APIとともに使用して、「GitHubリポジトリ」に存在するソース・ファイルにアクセスします。 GitHubでファイルを参照し、Rawリンクをクリックすると、GitHub Raw URLが表示されます。 raw.githubusercontent.comドメインは、GitHubリポジトリに格納されているファイルの未処理バージョンを提供します。

たとえば、DBMS_CLOUD.GET_OBJECTを使用します:

BEGIN
 DBMS_CLOUD.GET_OBJECT(
   credential_name => 'MY_CRED',
   object_uri      => 'https://raw.githubusercontent.com/myaccount/myrepo/master/data-management-library/autonomous-database/adb-loading.csv',
   directory_name  => 'DATA_PUMP_DIR'
  );
END;
/

たとえば、DBMS_CLOUD.CREATE_EXTERNAL_TABLEを使用します:

BEGIN
  DBMS_CLOUD.CREATE_EXTERNAL_TABLE(
    credential_name => 'MY_CRED',
    table_name      => 'EMPLOYEES_EXT',
    file_uri_list   => 'https://raw.githubusercontent.com/myaccount/myrepo/master/data-management-library/autonomous-database/*.csv',
    column_list     => 'name varchar2(30), gender varchar2(30), salary number',
    format          => JSON_OBJECT('type' value 'csv')
  );
END;
/
SELECT * FROM employees_ext;

「GitHubリポジトリ」にアクセスするためのURLを取得するDBMS_CLOUDプロシージャでは、パブリック可視性のGitHubリポジトリを持つ資格証明は必要ありません。 パブリック可視性URLを使用するには、credential_nameパラメータをNULLとして指定するか、credential_nameパラメータを指定しません。 詳細については、「リポジトリ表示の設定」を参照してください。

追加の顧客管理URIフォーマット

DBMS_CLOUDは、完全修飾ドメイン名(FQDNs)を持つ事前構成済の認識済URIsに加えて、顧客管理エンドポイントURIsの適切な認証スキームを決定できません。 このような場合、DBMS_CLOUDは、適切なURIスキームに依存して、顧客管理エンドポイントの認証スキームを識別します。
URIスキーム 認証タイプ アクセス・メソッド摘要 URIの例
basic:// Basic認証 データベース資格証明オブジェクトに格納されているユーザー名とパスワードは、HTTPリクエストの認証に使用されます basic://api.github.com/users/myaccount
bearer:// Bearerトークン認証 データベース資格証明オブジェクトのパスワード・フィールドに格納されているBearerトークンは、HTTPリクエストの認可ヘッダーを指定するために使用されます bearer://api.sendgrid.com/v3/resource
oci:// OCIネイティブ OCI認証プロトコルを使用してリクエストに署名するために使用される、格納されたデータベース資格証明オブジェクトから取得されたOCI署名キー oci://objectstorage.us-ashburn-1.oraclecloud.com
public:// 認証なし 公開URL public://cms.data.gov/
s3:// Amazon Web Services S3-compatible データベース資格証明オブジェクトのユーザー名/パスワード・フィールドから取得したアクセス・キーと秘密キー、およびHTTPリクエストに対して実行されるS3互換認証。 s3://bucket.myprivatesite.com/file1.csv

例:

S3互換認証を使用した顧客管理エンドポイント。

この例は、新しいURIsの場合、顧客はDBMS_NETWORK_ACL_ADMINパッケージを使用してパブリックまたはプライベートのホスト名パターンを追加する方法を示しています。 コード・ブロックは、ユーザーADMINによって実行され、ドメイン*.myprivatesite.comのエンドポイントへのユーザーSCOTTHTTPSアクセスを有効にします。 次に、ユーザーSCOTTが新しく有効になったエンドポイントにアクセスする方法を示します。 ユーザーSCOTTの資格証明MY_CREDには、URIプレフィクスで示されるHTTPリクエストに対して実行されたS3互換認証のアクセス・キーおよび秘密キーを格納する必要があります。


BEGIN
   DBMS_NETWORK_ACL_ADMIN.APPEND_HOST_ACE(
         host => '*.myprivatesite.com',
         ace => xs$ace_type(privilege_list => xs$name_list('http'),
                            principal_name => 'SCOTT',
                            principal_type => xs_acl.ptype_db),
         private_target => TRUE   );
END;
/

BEGIN
   DBMS_CLOUD.get_object(
       credential_name => 'MY_CRED',
       object_uri      => 's3://bucket.myprivatesite.com/file1.csv',
       directory_name  => 'MY_DIR'  );
END;
/

パブリック・アクセスを持つ顧客管理のエンドポイント

この例では、SCOTTユーザーを登録してパブリックREST APIにアクセスする方法を示します。 ADMINユーザーは、ホストがSCOTTユーザーにアクセスできるようにネットワークACLを作成します。


BEGIN
   DBMS_NETWORK_ACL_ADMIN.APPEND_HOST_ACE(
         host => 'data.cms.gov',
         ace => xs$ace_type(privilege_list => xs$name_list('http'),
                            principal_name => 'SCOTT',
                            principal_type => xs_acl.ptype_db)
   );
END;
/

SELECT DBMS_CLOUD.get_response_text(
          DBMS_CLOUD.send_request(
              uri     => 'public://data.cms.gov/provider-data/api/1/datastore/imports/a',
              method  => DBMS_CLOUD.METHOD_GET,
              headers => JSON_OBJECT('Accept' VALUE 'application/json')
          )
       )
   FROM DUAL;
/