Autonomous Databaseでのデータ・パイプラインについて

Autonomous Databaseデータ・パイプラインは、ロード・パイプラインまたはエクスポート・パイプラインです。

ロード・パイプラインは、外部ソースからの継続的な増分データ・ロードを提供します(データがオブジェクト・ストアに到着すると、データベース表にロードされます)。エクスポート・パイプラインは、オブジェクト・ストアへの継続的な増分データ・エクスポートを提供します(新しいデータはデータベース表に表示され、オブジェクト・ストアにエクスポートされます)。パイプラインでは、データベース・スケジューラを使用して増分データを継続的にロードまたはエクスポートします。

Autonomous Databaseデータ・パイプラインには、次のものがあります:

  • 統合操作: パイプラインを使用すると、データを迅速かつ簡単にロードまたはエクスポートし、新しいデータに対して定期的にこれらの操作を繰り返すことができます。DBMS_CLOUD_PIPELINEパッケージは、パイプライン構成、およびロードまたはエクスポート操作のスケジュール済ジョブの作成および起動のためのPL/SQLプロシージャの統合セットを提供します。

  • スケジュール済データ処理: パイプラインはデータ・ソースを監視し、新しいデータが到着するとデータを定期的にロードまたはエクスポートします。

  • High Performance: Pipelinesは、Autonomous Databaseで使用可能なリソースを使用してデータ転送操作をスケーリングします。デフォルトでは、パイプラインはすべてのロードまたはエクスポート操作に並列性を使用し、Autonomous Databaseで使用可能なCPUリソースに基づいて、または構成可能な優先度属性に基づいてスケーリングします。

  • 原子性とリカバリ: パイプラインは、オブジェクト・ストア内のファイルがロード・パイプラインに対して1回のみロードされるように原子性を保証します。

  • 監視およびトラブルシューティング: パイプラインには、パイプライン操作をモニターおよびデバッグできる詳細なログおよびステータス表が用意されています。

  • マルチクラウド互換: Autonomous Databaseのパイプラインは、アプリケーションを変更することなく、クラウド・プロバイダ間の容易な切替えをサポートします。パイプラインは、Autonomous Databaseでサポートされているすべての資格証明およびオブジェクト・ストアのURI形式(Oracle Cloud Infrastructure Object StorageAmazon S3Azure Blob StorageGoogle Cloud StorageおよびAmazon S3互換オブジェクト・ストア)をサポートします。

データ・パイプラインのライフサイクル

DBMS_CLOUD_PIPELINEパッケージは、パイプラインを作成、構成、テストおよび起動するためのプロシージャを提供します。パイプライン・ライフサイクルとプロシージャは、ロード・パイプラインとエクスポート・パイプラインの両方で同じです。

pipeline_lifecycle.epsの説明が続きます
図pipeline_lifecycle.epsの説明

どちらのパイプライン・タイプでも、次のステップを実行してパイプラインを作成および使用します。

  1. パイプラインを作成および構成します。詳細は、パイプラインの作成および構成を参照してください。

  2. 新しいパイプラインをテストします。詳細は、「パイプラインのテスト」を参照してください。

  3. パイプラインを開始します。詳細は、「パイプラインの起動」を参照してください。

また、パイプラインをモニター、停止または削除できます。

パイプラインのロード

ロード・パイプラインは、オブジェクト・ストア内の外部ファイルからデータベース表への継続的な増分データ・ロードに使用します。ロード・パイプラインは、オブジェクト・ストア内の新しいファイルを定期的に識別し、新しいデータをデータベース表にロードします。

ロード・パイプラインは次のように動作します(これらの機能の一部は、パイプライン属性を使用して構成できます)。

  • オブジェクト・ストア・ファイルは、データベース表にパラレルにロードされます。

    • ロード・パイプラインは、オブジェクト・ストア・ファイル名を使用して、新しいファイルを一意に識別してロードします。
    • オブジェクト・ストア内のファイルがデータベース表にロードされると、ファイル・コンテンツがオブジェクト・ストアで変更された場合、そのファイルは再度ロードされません。
    • オブジェクト・ストア・ファイルを削除しても、データベース表のデータには影響しません。
  • 障害が発生した場合、ロード・パイプラインは操作を自動的に再試行します。再試行は、パイプラインのスケジュール済ジョブの後続の実行ごとに試行されます。

  • ファイル内のデータがデータベース表に準拠していない場合、FAILEDとマークされ、問題のデバッグおよびトラブルシューティングのために確認できます。

    • いずれかのファイルのロードに失敗した場合、パイプラインは停止せず、他のファイルのロードを続行します。
  • ロード・パイプラインでは、JSON、CSV、XML、Avro、ORC、Parquetなど、複数の入力ファイル形式がサポートされています。

load-pipeline.epsの説明が続きます
図load-pipeline.epsの説明

Oracle以外のデータベースからの移行は、ロード・パイプラインで考えられるユースケースの1つです。Oracle以外のデータベースからOracle Autonomous Database on Dedicated Exadata Infrastructureにデータを移行する必要がある場合は、データを抽出してAutonomous Databaseにロードできます(Oracle Data Pump形式は、Oracle以外のデータベースからの移行には使用できません)。CSVなどの汎用ファイル形式を使用してOracle以外のデータベースからデータをエクスポートすることで、データをファイルに保存し、ファイルをオブジェクト・ストアにアップロードできます。次に、Autonomous Databaseにデータをロードするパイプラインを作成します。ロード・パイプラインを使用して大量のCSVファイルをロードすると、フォルト・トレランス、再開および再試行操作などの重要な利点が得られます。大規模なデータ・セットを使用する移行では、Oracle以外のデータベース・ファイルの表ごとに1つずつ複数のパイプラインを作成し、データをAutonomous Databaseにロードできます。

パイプラインのエクスポート

エクスポート・パイプラインを使用して、データベースからオブジェクト・ストアへのデータの継続的な増分エクスポートを行います。エクスポート・パイプラインは、候補データを定期的に識別し、データをオブジェクト・ストアにアップロードします。

次の3つのエクスポート・パイプライン・オプションがあります(エクスポート・オプションはパイプライン属性を使用して構成できます)。

  • 新しいデータを追跡するためのキーとして日付列またはタイムスタンプ列を使用して、問合せの増分結果をオブジェクト・ストアにエクスポートします。

  • 新しいデータを追跡するためのキーとして日付列またはタイムスタンプ列を使用して、表の増分データをオブジェクト・ストアにエクスポートします。

  • 問合せを使用して表のデータをオブジェクト・ストアにエクスポートし、日付列またはタイムスタンプ列を参照せずにデータを選択します(これにより、各スケジューラ実行で問合せが選択するすべてのデータがパイプラインによってエクスポートされます)。

エクスポート・パイプラインには次の機能があります(一部はパイプライン属性を使用して構成できます)。

  • 結果はオブジェクト・ストアに並行してエクスポートされます。

  • 障害が発生した場合、後続のパイプライン・ジョブはエクスポート操作を繰り返します。

  • エクスポート・パイプラインでは、CSV、JSON、ParquetまたはXMLなどの複数のエクスポート・ファイル形式がサポートされています。

Oracle管理パイプライン

専用Exadataインフラストラクチャ上のAutonomous Databaseには、特定のログをJSON形式でオブジェクト・ストアにエクスポートするための組込みパイプラインが用意されています。これらのパイプラインは事前構成されており、ADMINユーザーが起動および所有します。

Oracleメンテナンス・パイプラインは次のとおりです。

  • ORA$AUDIT_EXPORT: このパイプラインは、データベース監査ログをJSON形式のオブジェクト・ストアにエクスポートし、パイプラインの開始後15分ごとに(interval属性値に基づいて)実行します。

  • ORA$APEX_ACTIVITY_EXPORT: このパイプラインは、Oracle APEXワークスペース・アクティビティ・ログをJSON形式のオブジェクト・ストアにエクスポートします。このパイプラインは、APEXアクティビティ・レコードを取得するためのSQL問合せで事前構成されており、パイプラインの開始後(interval属性値に基づいて)15分ごとに実行されます。

Oracle管理対象パイプラインを構成および起動するには:

  1. 使用するOracle Managed Pipeline (ORA$AUDIT_EXPORTまたはORA$APEX_ACTIVITY_EXPORT)を決定します。
  2. credential_nameおよびlocation属性を設定します。

    ノート:

    credential_nameは、専用Exadataインフラストラクチャ上のAutonomous Databaseの必須値です。

    たとえば次のようにします。

    BEGIN
      DBMS_CLOUD_PIPELINE.SET_ATTRIBUTE(
        pipeline_name => 'ORA$AUDIT_EXPORT',
        attribute_name => 'credential_name',
        attribute_value => 'DEF_CRED_OBJ_STORE'
      );
      DBMS_CLOUD_PIPELINE.SET_ATTRIBUTE(
        pipeline_name => 'ORA$AUDIT_EXPORT',
        attribute_name => 'location',
        attribute_value => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o/'
      );
    END;
    /

    データベースのログ・データは、指定したオブジェクト・ストアの場所にエクスポートされます。

    詳細は、SET_ATTRIBUTEを参照してください。

  3. オプションで、intervalformatまたはpriority属性を設定します。

    詳細は、SET_ATTRIBUTEを参照してください。

  4. パイプラインを開始します。

    詳細は、START_PIPELINEを参照してください。