3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

[Autonomous DB]Autonomous Database でのハイブリッドパーティション表

Posted at

ADW/ATP(Autonomous DB)でOracle19cのPreviewが開始されました。
このPreview版で、Oracle Database19c 新機能 ハイブリッド・パーティション表を作成してみます。
Object Storageにアップロードしたファイルを外部表(パーティション)とします。

参考情報

ADW/ATP(Autonomous DB)でOracle19c版の作成

今回はWebコンソールを使ってAutonomous Databaseを作成します。
image01.JPG
作成ウィザードの中盤に「新しいデータベース・プレビュー・バージョン19cが使用可能」の選択が可能になっています。
image02.JPG
(Preview機関の取り扱いには留意ください)

事前認証済リクエストのURLの利用の例

事前認証済リクエストのURLの取得

1.アップロードしたファイル(オブジェクト)の右側のメニューから「事前認証済リクエストの作成」を選択
image03.jpg

2.「事前認証済リクエストの作成」をクリック(すべてデフォルトのままでOK)
image04.jpg

3.表示される「事前認証済リクエストのURL」をメモ(右側のボタンでクリックボードにコピーが可能)
image05.jpg

スキーマユーザでDDL文の実行

BEGIN
DBMS_CLOUD.CREATE_HYBRID_PART_TABLE(
      table_name =>'hybrid_partition_table',  
      format => json_object('delimiter' value ',', 'recorddelimiter' value 'newline', 'characterset' value 'us7ascii', 'skipheaders' value '1', 'dateformat' value 'RR-MM-DD'),  
      column_list => ' prod_id       NUMBER,
      cust_id       NUMBER      ,
      time_id       DATE        ,
      quantity_sold NUMBER(10,2),
      amount_sold   NUMBER(10,2)',
      partitioning_clause => 'partition by range (time_id)
    (
     PARTITION sales_2018 VALUES LESS THAN (TO_DATE(''01-01-2019'',''dd-mm-yyyy'')) EXTERNAL LOCATION (''https://objectstorage.ap-tokyo-1.oraclecloud.com/p/YwSPf/o/sales2018_data.csv''),
     PARTITION sales_2019 VALUES LESS THAN (TO_DATE(''01-01-2020'',''dd-mm-yyyy''))'
     );
END;
/

EXTERNAL LOCATION に「事前認証済リクエストのURL」のURLを指定
DBMS_CLOUDパッケージ・フォーマット・オプション
[https://docs.oracle.com/cd/E83857_01/paas/autonomous-data-warehouse-cloud/user/format-options.html#GUID-08C44CDA-7C81-481A-BA0A-F7346473B703] (https://docs.oracle.com/cd/E83857_01/paas/autonomous-data-warehouse-cloud/user/format-options.html#GUID-08C44CDA-7C81-481A-BA0A-F7346473B703)

スキーマユーザでDDL文の実行(圧縮ファイル指定)

BEGIN
DBMS_CLOUD.CREATE_HYBRID_PART_TABLE(
      table_name =>'hybrid_partition_table',  
      format => json_object('delimiter' value ',', 'recorddelimiter' value 'newline', 'characterset' value 'us7ascii', 'skipheaders' value '1', 'dateformat' value 'RR-MM-DD','compression' value 'auto'),  
      column_list => ' prod_id       NUMBER,
    cust_id       NUMBER      ,
    time_id       DATE        ,
    quantity_sold NUMBER(10,2),
    amount_sold   NUMBER(10,2)',
      partitioning_clause => 'partition by range (time_id)
    (
     PARTITION sales_2018 VALUES LESS THAN (TO_DATE(''01-01-2019'',''dd-mm-yyyy'')) EXTERNAL LOCATION (''https://objectstorage.ap-seoul-1.oraclecloud.com/p/YwSPf/o/sales2018_data.csv.gz''),
     PARTITION sales_2019 VALUES LESS THAN (TO_DATE(''01-01-2020'',''dd-mm-yyyy''))'
     );
   END;
/

CREDENTIALの利用の例

認証トークンの生成

こちらの記事の「4. OCIユーザーの作成とGROUP設定、Auth Token生成」を参照ください。

CREDENTIALを作成

begin
  DBMS_CLOUD.create_credential (
    credential_name => 'OBJ_STORE_CRED',	-- 任意の文字列
    username => ‘<your username>’,		-- 認証トークンを生成したOCIユーザー名
    password => ‘<your Auth Token>‘	-- 生成した認証トークン
  ) ;
end;
/

Oracle Cloud Infrastructure Object Storage URI の取得

Object Storage のメニューから アップロードされた外部表に使用するCSVファイルの「オブジェクト詳細の表示」を選択し、「URLパス(URI)」をコピー
image06.jpg

スキーマユーザでCredential を使用したDDL文の実行

BEGIN
DBMS_CLOUD.CREATE_HYBRID_PART_TABLE(
      table_name =>'hybrid_partition_table',  
      credential_name =>'OBJ_STORE_CRED',
      format => json_object('delimiter' value ',', 'recorddelimiter' value 'newline', 'characterset' value 'us7ascii', 'skipheaders' value '1', 'dateformat' value 'RR-MM-DD'),  
      column_list => ' prod_id       NUMBER,
      cust_id       NUMBER      ,
      time_id       DATE        ,
      quantity_sold NUMBER(10,2),
      amount_sold   NUMBER(10,2)',
      partitioning_clause => 'partition by range (time_id)
    (
     PARTITION sales_2018 VALUES LESS THAN (TO_DATE(''01-01-2019'',''dd-mm-yyyy'')) EXTERNAL LOCATION (''https://objectstorage.ap-tokyo-1.oraclecloud.com/p/_ZakYhMb5-1e_yiKxUCzgqyPT-nFL4kyVLWNsELD-Ps/n/nrzbmmnby7ly/b/bucket/o/*.csv''),
     PARTITION sales_2019 VALUES LESS THAN (TO_DATE(''01-01-2020'',''dd-mm-yyyy''))'
     );
END;
/

作成した「CREDENTIAL」のcredential_name を指定しEXTERNAL LOCATIONにObject Storage の「URLパス(URI)」を指定( EXTERNAL LOCATION には ワイルドカードが指定可能 )

--
Autonomous Databaseでもハイブリッド・パーティション表が利用できることを確認しました。
Object Storageのファイルを利用することで利便性を維持しながら、効率的な運用ができそうです。

3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?