暗黙的なパーティション化による外部表の問合せ
Autonomous Databaseでは、Hiveスタイルのパーティション化されたデータから、またはクラウド・オブジェクト・ストアに格納されている単純なフォルダのパーティション化されたデータから、暗黙的にパーティション化された外部表を作成できます。
- 暗黙的なパーティション化を使用した外部表について
Autonomous Databaseでは、DBMS_CLOUD.CREATE_EXTERNAL_TABLE
プロシージャを使用して、Hiveスタイルのパーティション化されたデータから、またはクラウド・オブジェクト・ストアに格納されている単純なフォルダのパーティション化されたデータから、暗黙的なパーティション化された外部表を作成します。 - Hive形式のソース・ファイル編成を使用した外部暗黙的パーティション・データの問合せ
DBMS_CLOUD.CREATE_EXTERNAL_TABLE
プロシージャを使用して、Hiveデータから生成されたオブジェクト・ストアのデータから暗黙的にパーティション化された外部表を作成します。 - 外部暗黙的パーティション非Hiveスタイル・データの問合せ
DBMS_CLOUD.CREATE_EXTERNAL_TABLE
プロシージャを使用して、Hive以外のデータから生成されたオブジェクト・ストレージ内のデータから暗黙的にパーティション化された外部表を作成します。
暗黙的なパーティション化を使用した外部表について
Autonomous Databaseでは、DBMS_CLOUD.CREATE_EXTERNAL_TABLE
プロシージャを使用して、Hiveスタイルのパーティション化されたデータから、またはクラウド・オブジェクト・ストアに格納されている単純なフォルダのパーティション化されたデータから、暗黙的なパーティション化された外部表を作成します。
DBMS_CLOUD.CREATE_EXTERNAL_TABLE
プロシージャを使用して、暗黙的なパーティション化された外部表を作成します。このプロシージャに適切なオプションを渡すことによって、パーティションはソース・データから導出されます。パーティション化された外部表は、パーティション列とその値の実行時検出をサポートします。オブジェクトの追加や削除など、基礎となるオブジェクト・ストア構造の変更の実行時検出では、DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLE
に必要な追加の同期プロシージャが不要になるため、メンテナンス・プロセスが簡略化されます。これにより、問合せ実行時にデータが最新であることが保証されます。
暗黙的なパーティション化では、Autonomous Databaseは、オブジェクト・ストレージ・ソースの階層ファイル構造に基づいて、表がパーティション化されている列を自動的に決定します。パーティション化スキームを明示的に宣言する必要はありません。暗黙的なパーティション化では、DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLE
プロシージャを使用してパーティション化された外部表を明示的に定義する必要なく、パーティション表のようなパフォーマンス上の利点が得られます。
暗黙的にパーティション化された外部表は、オブジェクト・ストア内のパーティション化されたオブジェクトに対して次のネーミング・スタイルをサポートしています。
- Hiveネーミング形式: Hiveから生成されたオブジェクト・ストレージのデータは、次の形式になります。
OBJBUCKET/<table>/<partcol1>=<value1>/<partcol2>=<value2>/file.parquet
例は、Hive形式のソース・ファイル編成を使用した外部暗黙的パーティション・データの問合せを参照してください
- Hive以外のパステール・ネーミング形式: データ・レイクでよく見られる2番目の形式はハイブ形式に似ていますが、フォルダ名にはパーティション列は含まれません。
OBJBUCKET/<table>/<value1>/<value2>/file.parquet
例については、外部暗黙的パーティション化された非Hiveスタイル・データの問合せを参照してください。
ネーミング・フォーマットの詳細は、ソース・ファイル・パーティション化を使用した外部表についてを参照してください。
DBMS_CLOUD.CREATE_EXTERNAL_TABLE
プロシージャを使用すると、暗黙的にパーティション化された外部表を次の方法で作成できます。
- パーティション列のリストを指定してパーティション・タイプをハイブに設定します。
この場合、
implicit_partition_type
はhive
に設定され、implicit_partition_columns
はパーティション列のリストを提供します。たとえば:
DBMS_CLOUD.CREATE_EXTERNAL_TABLE ( table_name => 'mysales', credential_name => 'mycredential', file_uri_list => 'https://swiftobjectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/*.parquet', column_list => 'product varchar2(100), units number, country varchar2(100),year (number), month varchar2(2)', format => '{"type":"parquet", "implicit_partition_type":"hive", "implicit_partition_columns":["country","year","month"]}');
- パーティション列のリストを指定せずに、パーティション・タイプをハイブに設定します。
この場合、
implicit_partition_type
はhive
に設定され、implicit_partition_columns
は指定されません。パーティション列は、file_uri_list
で指定されたパスで'='を検索することで自動的に検出されます。column_name
は'='の左側にあり、値は右側にあります。パスにcolumn_name
が見つからない場合は、エラーがスローされます。たとえば:
DBMS_CLOUD.CREATE_EXTERNAL_TABLE ( table_name => 'mysales', credential_name => 'mycredential', file_uri_list => 'https://swiftobjectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/*.parquet', column_list => 'product varchar2(100), units number, country varchar2(100),year (number), month varchar2(2)', format => '{"type":"parquet", "implicit_partition_type":"hive"');
- タイプを指定せずにパーティション列のリストを指定します
この場合、
implicit_partition_type
は設定されず、implicit_partition_columns
は列のリストを提供します。たとえば:
DBMS_CLOUD.CREATE_EXTERNAL_TABLE ( table_name => 'mysales', credential_name => 'mycredential', file_uri_list => 'https://swiftobjectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/*.parquet', column_list => 'product varchar2(100), units number, country varchar2(100),year (number), month varchar2(2)', format => '{"type":"parquet", "implicit_partition_columns":["country","year","month"]}');
詳細は、CREATE_EXTERNAL_TABLEプロシージャを参照してください。
親トピック: 暗黙的なパーティション化を使用した外部表の問合せ
Hive形式のソース・ファイル編成を使用した外部暗黙的パーティション・データの問合せ
DBMS_CLOUD.CREATE_EXTERNAL_TABLE
プロシージャを使用して、Hiveデータから生成されたオブジェクト・ストアのデータから暗黙的にパーティション化された外部表を作成します。
次の例のサンプル・ソース・ファイルでは、次のネーミング形式を使用します。
OBJBUCKET/<table>/<partcol1>=<value1>/<partcol2>=<value2>/file.parquet
次のサンプル・ソース・ファイルを考えます:
OBJBUCKET/sales/country=USA/year=2024/month=01/sales-2024-01.parquet
OBJBUCKET/sales/country=USA/year=2024/month=02/sales-2024-02.parquet
OBJBUCKET/sales/country=USA/year=2024/month=02/sales-2024-03.parquet
このサンプルHive形式で格納されたデータを使用して暗黙的にパーティション化された外部表を作成するには、次の手順を実行します:
親トピック: 暗黙的なパーティション化を使用した外部表の問合せ
外部暗黙的パーティション非Hiveスタイル・データの問合せ
DBMS_CLOUD.CREATE_EXTERNAL_TABLE
プロシージャを使用して、Hive以外のデータから生成されたオブジェクト・ストレージのデータから暗黙的にパーティション化された外部表を作成します。
次の例のサンプル・ソース・ファイルでは、次のネーミング形式を使用します。
OBJBUCKET/<table>/<value1>/<value2>/file.parquet
次のサンプル・ソース・ファイルを考えます:
OBJBUCKET/sales/USA/2024/01/sales-2024-01.parquet
OBJBUCKET/sales/USA/2024/01/sales-2024-02.parquet
OBJBUCKET/sales/USA/2024/01/sales-2024-03.parquet
このサンプルHive形式で格納されたデータを使用して暗黙的にパーティション化された外部表を作成するには、次の手順を実行します:
親トピック: 暗黙的なパーティション化を使用した外部表の問合せ