2022年3月31日木曜日

データベースの内部表をオブジェクト・ストレージの外部表に置き換える - 追記

 こちらの記事の修正です。

DBMS_CLOUD.EXPORT_DATAによるエクスポートで上書きが発生しないようにする方法として、以下がありました。

  1. formatにmaxfilesize指定を含め、ファイルの最大サイズをあげる。
  2. compressionにgizpを指定し、出力できるデータを増やす。
表BRICKSの内容をオブジェクト・ストレージにエクスポートするコードは以下になります。


maxfilesizeやcompressionの指定が違いになります。

DBMS_CLOUD.EXPORT_DATAによる出力にはヘッダーが含まれません。そのため、外部表の作成スクリプトで指定されているskipheadersはコメントアウトします。

年ごとに分割した上で、オブジェクト・ストレージにエクスポートするスクリプトです。

パーティション分割された外部表を作成するスクリプトです。skipheadersの指定をコメントアウトしています。

全体のエクスポートが30秒程度で終了するので、DBMS_CLOUD.EXPORT_DATAを使うと1/100くらいの処理時間になります。