機械翻訳について

外部パーティション・データの問合せ(パーティショニング句を使用)

オブジェクト・ストア内の複数のデータファイルを単一の外部表として問い合せ、ファイルを複数の論理パーティションとして表すことができる場合は、外部パーティション表を使用することをお薦めします。 外部パーティション表を使用することで、問合せアクセスのためにデータファイルの論理パーティションを保存できます。 外部パーティション表を作成するには、DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLEプロシージャを使用します。

Autonomous Databaseに外部パーティション表を作成するには、2つの方法があります:

  • 最初のバージョンはforです。 このタイプの外部パーティション表の使用方法の詳細は、「Hive形式のソース・ファイル編成を使用した外部パーティション・データの問合せ」を参照してください。

  • 2つ目のバージョンは、。 このようにパーティション化された外部表を作成する場合、partitioning_clauseパラメータにパーティショニング句を含めます。 含めるパーティション化句は、Cloudのデータファイルおよび使用するパーティション化のタイプによって異なります。 この項では、このタイプの外部パーティション表の使用方法について説明します。

  1. プロシージャDBMS_CLOUD.CREATE_CREDENTIALを使用してオブジェクト・ストアの資格証明を保存します。

    たとえば:

    BEGIN
      DBMS_CLOUD.CREATE_CREDENTIAL (
        credential_name => 'DEF_CRED_NAME',
        username => 'adb_user@example.com',
        password => 'password' );
    END;
    /
    

    リソース・プリンシパル資格証明を有効にした場合、Oracle Cloud Infrastructureオブジェクト・ストアにアクセスするための資格証明の作成は必要ありません。 詳細については、「リソース・プリンシパルを使用したOracle Cloud Infrastructureリソースへのアクセス」を参照してください。

    この操作では、資格証明がデータベースに暗号化された形式で保存されます。  資格証明名には任意の名前を使用できます。 このステップは、オブジェクト・ストア資格証明が変更されないかぎり、1回のみ実行すれば済みます。  資格証明を保存したら、外部表の作成に同じ資格証明名を使用できます。

    様々なオブジェクト・ストレージ・サービスのusernameおよびpasswordパラメータの詳細は、「CREATE_CREDENTIALプロシージャ」を参照してください。

  2. プロシージャDBMS_CLOUD.CREATE_EXTERNAL_PART_TABLEを使用して、ソース・ファイルの上部に外部パーティション表を作成します。

    プロシージャDBMS_CLOUD.CREATE_EXTERNAL_PART_TABLEは、サポートされているクラウド・オブジェクト・ストレージ・サービスで外部パーティション化されたファイルをサポートします。 資格証明は表レベルのプロパティであるため、外部ファイルは同じオブジェクト・ストア上にある必要があります。

    たとえば:

    BEGIN
      DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLE(
          table_name =>'PET1',  
          credential_name =>'DEF_CRED_NAME',
          format => json_object('delimiter' value ',', 'recorddelimiter' value 'newline', 'characterset' value 'us7ascii'),  
          column_list => 'col1 number, col2 number, col3 number',
          partitioning_clause => 'partition by range (col1)
             (partition p1 values less than (1000) location
                 ( ''https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o/file_11.txt''),
              partition p2 values less than (2000) location 
                 ( ''https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o/file_21.txt''),
              partition p3 values less than (3000) location 
                 ( ''https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o/file_31.txt'') )'
         );
    END;
    / 
    

    パラメータは次のとおりです:

    • table_name: 外部表名です。

    • credential_name: 前のステップで作成した資格証明の名前です。

    • partitioning_clause: これは、個別パーティションのロケーション情報など、完全なパーティション化句です。

    • format: ソース・ファイルの形式を記述するために指定できるオプションを定義: ソース・ファイルの形式を記述するために指定できるオプションを定義します。

      ソース・ファイル内のデータが暗号化されている場合は、encryptionオプションを指定してformatパラメータを指定して、データを復号化します。 データの復号化の詳細は、「オブジェクト・ストレージからのインポート中のデータの復号化」を参照してください。

    • column_list: ソース・ファイル内の列定義のカンマ区切りリストです。

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

    これで、前のステップで作成した外部パーティション表に対して問合せを実行できるようになります。 Autonomous Databaseでは、外部パーティション表のパーティション化情報を利用して、問合せがオブジェクト・ストアの関連データ・ファイルにのみアクセスできるようにしています。 たとえば、次の問合せはパーティションP1からデータファイルのみを読み取ります:

    SELECT * FROM pet1 WHERE col1 < 750;

    DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLEで作成した外部パーティション表には、2つの非表示列file$pathおよびfile$nameが含まれます。 これらの列は、レコードの起点となるファイルの識別に役立ちます。 詳細については、「外部表のMetadata列」を参照してください。

    指定したフォーマット・オプションと一致しない行がソース・ファイル内にある場合、問合せはエラーを通知します。 これらのエラーを抑制するには、rejectlimitなどのDBMS_CLOUDパラメータを使用できます。 または、作成した外部パーティション表を検証してエラー・メッセージと拒否行を表示し、書式オプションを適宜変更することもできます。 詳細については、「外部データの検証」「外部パーティション化されたデータの検証」を参照してください。

    パラメータの詳細は、「CREATE_EXTERNAL_PART_TABLEプロシージャ」を参照してください。

    サポートされているクラウド・オブジェクト・ストレージ・サービスの詳細は、「DBMS_CLOUD URIの書式」を参照してください。