データ・フロー

データ・フローは、データベースやフラット・ファイルなどのソース・データ・アセットからデータ・レイクやデータ・ウェアハウスなどのターゲット・データ・アセットへのデータのフローを表すビジュアル・プログラムです。

次のページでは、データ統合でデータ・フローを作成する方法について説明します:

データ統合直感的なUIデザイナは、データ・フローを作成、表示または編集するときに開きます。

インタラクティブ・デザイナの背後にある基本概念の概要は、設計概念を参照してください。データ・フローの実践的な概要については、データ統合のデータ・フロー・デザイナ・インタラクティブ・ビデオを視聴することもできます。

次のページでは、データ・フローをエクスポートおよびインポートする方法について説明します。

設計の概念

データ統合で対話型デザイナを使用する際に、次の基本概念を理解しておくと役立ちます。

スキーマ・ドリフト

スキーマは、ソース・システムまたはターゲット・システム内のデータのシェイプを定義します。データ統合でデータ・フローの作業を行うときに、データ定義が変更されるとスキーマ・ドリフトが発生します。

たとえば、ソースの属性が追加または削除されたり、ターゲットの属性の名前が変更されたりすることがあります。スキーマ・ドリフトを処理しない場合、ETLプロセスが失敗するか、データ品質が損なわれる可能性があります。

デフォルトでは、データ統合によってスキーマ・ドリフトが処理されます。データ・フロー・デザイナでソース演算子を構成する際に、データ・エンティティを選択した後で「プロパティ」パネルの「拡張オプション」タブをクリックします。「スキーマ・ドリフトを許可」チェック・ボックスが選択されていると、スキーマ・ドリフトが有効であることを示します。

ソース演算子の「プロパティ」パネルの「スキーマ・ドリフトを許可」チェック・ボックス

スキーマ・ドリフトが有効になっている場合、データ統合は、データ・フローの設計時および実行時に、指定したデータ・エンティティでのスキーマ定義の変更を検出できます。変更はすべて自動的に取得され、スキーマは、新しい属性、削除された属性、異なる属性名、変更されたデータ型などに合せて適応します。

「スキーマ・ドリフトの許可」チェックボックスをクリアすると、スキーマ・ドリフトが無効になり、データ・フローの定義時にスキーマ定義がロックされます。スキーマ・ドリフトが無効になっている場合、データ統合は、基礎となるシェイプが変更された場合でも、指定されたデータ・エンティティの固定シェイプを使用します。

スキーマ・ドリフトを処理しないと、データ・フローがアップストリームのデータ・ソースの変更に対して脆弱になる可能性があります。スキーマ・ドリフトを使用することで、データ・フローはレジリエンシが向上し、すべての変更に自動的に適応します。スキーマ定義の変更が発生したときにデータ・フローを再設計する必要はありません。

JSONファイルの場合、スキーマ・ドリフトはデフォルトで無効になっており、カスタム・スキーマを使用してエンティティ・シェイプを推測する場合には有効にできません。スキーマ・ドリフトを使用可能にして有効にする場合は、データ・フローまたはデータ・ローダー・タスクでJSONソースを編集し、「カスタム・スキーマの使用」チェック・ボックスの選択を解除します。

プッシュダウン

データ統合では、データ・フローのデータ操作をソースまたはターゲットのデータ・システムにプッシュして処理できます。

たとえば、データの読取り中にソートまたはフィルタ操作をソース・システムで実行できます。結合操作のソースのいずれかがターゲットと同じシステムにある場合は、データ操作をターゲット・システムにプッシュできます。

データ統合によってデータ・フロー内でプッシュダウンを使用できるのは、プッシュダウンをサポートするリレーショナル・データ・システムを使用しているときです。現在のリストには、Oracleデータベース、Oracle Autonomous Data Warehouse、Oracle Autonomous Transaction ProcessingおよびMySQLが含まれます。

デフォルトでは、該当する場合にデータ統合によってプッシュダウンが使用されます。データ・フロー・デザイナでソース演算子を構成する際に、データ・エンティティを選択した後で「プロパティ」パネルの「拡張オプション」タブをクリックします。「プッシュダウンを許可」チェック・ボックスが選択されていると、プッシュダウンが有効であることを示します。

ソース演算子の「プロパティ」パネルの「プッシュダウンを許可」チェック・ボックス

プッシュダウンが有効になっているとき、データ統合は、該当するデータ操作ロジックをSQL文に変換して、リレーショナル・データベースで直接実行します。データ処理をデータベースにプッシュすることで、プルおよびロードされるデータは少なくなります。

「プッシュダウンを許可」チェックボックスのチェックマークを外すと、プッシュダウンが無効になります。プッシュダウンが無効になっているとき、データ統合は、ソース・システムからすべてのデータをプルし、ワークスペースに割り当てられたApache Sparkクラスタ上でデータを処理します。

データ統合でプッシュダウンを使用できるようにすることで、次の理由によりパフォーマンスが向上します:

  • データベースの処理能力が活用されます
  • 処理のために取り込まれるデータが少なくなります。

最適化に基づいて、データ統合はデータ・フローで部分的プッシュダウンまたは完全プッシュダウンを使用できます。部分的なプッシュダウンが実行されるのは、サポートされているリレーショナル・データ・システムがソースまたはターゲットで使用されているときです。完全プッシュダウンが実行されるのは、次の条件が存在するときです:

  • 1つのターゲットのみがデータ・フローに存在します。
  • 単一ソースのデータ・フローで、ソースとターゲットの両方が、サポートされているリレーショナル・データ・システムへの同じ接続を使用します。
  • 複数ソースのデータ・フローでは、すべてのソースも同じデータベースと接続を使用する必要があります。
  • データ・フロー内のすべての変換演算子および関数が、有効なプッシュダウンSQLコードを生成できます。
データ準備

データ準備により、データ統合プロセスは、エラーが減少した正確かつ有意義なデータを取り込んで高品質のデータを生成できるようになり、より信頼性の高いインサイトを得られるようになります。

データ準備には、エラーを減らすためのデータのクレンジングと検証や、データをターゲット・システムにロードする前のデータの変換とエンリッチが含まれます。たとえば、形式が多様で重複情報も含まれることもある様々なソースからデータを取得できるようになります。データ準備では、重複する属性と行の削除、すべての日付属性のフォーマットに関する標準化、およびクレジット・カードやパスワードなどの機密属性データのマスキングが行われる場合があります。

データ統合には、すぐに利用できる整形演算子、関数および変換が用意されており、ETLプロセスのロジックを設計するときにデータを準備するために対話型ツールで使用できます。たとえば、「属性」タブでは、受信属性をパターンで検索し、除外ルールを適用できます。

「プロパティ」パネルの「属性」タブ

「データ」タブでは、単一の属性に変換を適用することも、名前パターンまたはデータ型で属性をフィルタ処理してから、属性のグループに変換を適用することもできます。データ・フロー全体を実行せずに、データ変換の結果を「データ」タブでプレビューすることもできます。

「プロパティ」パネルの「データ」タブ

マッピング

「データ統合」では、「マップ」タブを使用して、ソース属性からターゲット属性へのデータのフローを記述します。

ターゲットは、既存のデータ・エンティティまたは新しいデータ・エンティティです。データ・フローでは、「マップ」タブは、既存のデータ・エンティティのターゲット演算子にのみ適用されます。既存のターゲット・データ・エンティティの場合、ソース属性と、アップストリーム操作に基づいてカスタマイズされた属性が、ターゲットの属性にマップされます。

ターゲット演算子の「プロパティ」パネルの「マップ」タブ

自動マップまたは手動マップを選択できます。自動マップの場合、データ統合によって受信属性が同じ名前のターゲット属性にマップされます。または、属性リスト内の位置に従ってマップされます。手動マップの場合は、ソース・リストの受信属性をターゲット・リストの属性にドラッグ・アンド・ドロップして、マッピングを作成できます。または、「属性のマップ」ダイアログを使用し、ソース属性およびターゲット属性を選択してマッピングを作成できます。ソース属性パターンおよびターゲット属性パターンを使用してマッピングを作成することもできます。

ターゲット演算子で「新規データ・エンティティの作成」チェック・ボックスを選択すると、「マップ」タブは使用できません。データ統合は、受信ソース属性を使用して、1対1マッピングで表すなわちファイル構造を作成します。

デザイナ・インタフェースの使用

データ統合デザイナでは、グラフィカル・ユーザー・インタフェースを使用してデータ統合フローを作成できます。

類似のデザイナを使用してパイプラインを作成することもできます。

デザイナのメイン領域:

ツールバー
データ・フロー・デザイナ・ツールバー

キャンバス上でのデータ・フローまたはパイプラインのナビゲーションに役立つツールは:

  • 表示: このメニューをクリックして、「プロパティ」、「演算子」、「検証」および「パラメータ」パネルを開くか閉じるかを選択します。
  • ズームイン: 設計をズームインできます。
  • ズームアウト: 設計の表示部分を増やすためにズームアウトできます。
  • ズームのリセット: 設計のデフォルト・ビューに戻ります。
  • グリッド・ガイド: グリッド・ガイドのオンとオフを切り替えます。
  • 自動レイアウト: キャンバス上に演算子を配置します。
  • 削除: 選択した演算子をキャンバスから削除します。
  • 元に戻す: 最後に実行したアクションを削除します。
  • やり直し: 前に「元に戻す」をクリックした場合に、最後のアクションを実行します。
ノート

次のタイプのアクションは元に戻してやり直すことができます:

  • 演算子の追加と削除
  • 演算子間での接続の追加と削除
  • キャンバス上の演算子の位置の変更
キャンバス

キャンバスは、データ・フローまたはパイプラインを設計するメインの作業領域です。

「演算子」パネルからオブジェクトをキャンバスにドラッグ・アンド・ドロップして開始します。

キャンバス領域が強調表示されたデータ・フロー・デザイナ

データ・フローの空白のキャンバスから始めます。データ・フローが有効になるには、少なくとも1つのソースと1つのターゲットが定義されている必要があります。

パイプラインの場合は、開始演算子と終了演算子を含むキャンバスから始めます。パイプライン設計が有効になるには、タスク演算子が少なくとも1つ含まれている必要があります。

パイプライン・デザイナ

2つの演算子を接続するには、一方の演算子に、その右側にコネクタ(小さい円)が表示されるまでカーソルを置きます。次に、そのコネクタを接続先の演算子にドラッグ・アンド・ドロップします。コネクタをドロップして、演算子どうしが線で結ばれると、その接続は有効になります。

接続された2つの演算子の間に演算子を挿入するには、接続線を右クリックして「挿入」メニューを使用します。

接続を削除するには、線を右クリックして「削除」を選択します。

ソース、ターゲットまたは式の演算子を複製するには、演算子アイコンを右クリックして「複製」を選択します。

「演算子」パネル

「演算子」パネルには、データ・フローまたはパイプラインに追加できる演算子が表示されます。

「演算子」パネルから演算子をキャンバスにドラッグ・アンド・ドロップして、データ・フローまたはパイプラインを設計します。各演算子には異なるプロパティ・セットがあり、「プロパティ」パネルを使用して構成します。

データ・フローの場合は、入力、出力および整形の演算子を追加できます。

データ・フローの「演算子」パネル

パイプラインの場合は、入力、出力、およびタスクの演算子を追加してシーケンスを構成します。

パイプラインの「演算子」パネル

演算子について

データ・フローでは、次の演算子を使用できます:

入力/出力
  • ソース: データ・フローで入力となるソース・データ・エンティティを表します。
  • ターゲット: 変換されたデータを格納する出力エンティティとなるターゲット・データ・エンティティを表します。
整形
  • フィルタ: インバウンド・ポートから特定の属性を選択して、アウトバウンド・ポートへのダウンストリームを継続します。
  • 結合: 複数のソースからのデータをリンクします。サポートされる結合のタイプは、内部、右外部、左外部、および完全外部です。
  • : 単一のデータ行に対して変換を実行します。
  • 集計: すべての行または行グループに対して合計や件数などの計算を実行します。
  • 個別: 一意の値を持つ個別の行を返します。
  • ソート: 昇順または降順でのデータのソートを実行します。
  • 和集合: 最大10個のソース演算子に対して和集合操作を実行します。
  • マイナス: 2つのソースに対してマイナス操作を実行し、一方のソースには存在するがもう一方には存在しない行を返します。
  • 論理積: 複数のソースに対して論理積操作を実行し、接続されたソースに存在する行を返します。
  • 分割: 分割操作を実行し、分割条件に基づいて1つの入力データ・ソースを複数の出力ポートに分割します。
  • ピボット: 集計関数式とピボット・キーとして指定された属性の値を使用して変換を実行します。結果として複数の新しい属性が出力されます。
  • ルックアップ: 問合せを実行してから、プライマリ入力ソース、ルックアップ入力ソースおよびルックアップ条件を使用して変換を実行します。
  • ファンクション: データ統合のデータ・フロー内からOracle Cloud Infrastructure Oracle Functionを起動します。
  • フラット化: ルートから選択した階層データ型属性への複合ファイル構造のネスト解除を実行します。

データ・フロー演算子の使用の詳細を参照してください。

パイプラインでは、次の演算子を使用できます:
入力/出力
  • 開始: パイプラインの開始を表します。パイプラインに存在する開始演算子は1つのみです。開始演算子には複数のタスクへのリンクを含めることができます。
  • 終了: パイプラインの終了を表します。パイプラインに存在する終了演算子は1つのみです。終了演算子には、複数のアップストリーム・ノードからのリンクを含めることができます。
  • : データ・フローの式演算子と同様に、パイプライン内にも新しい派生フィールドを作成できます。
  • マージ: パラレルに実行される複数のタスクのマージを実行します。指定したマージ条件によって、後続のダウンストリーム操作の続行方法が決まります。
  • 決定: 決定条件を使用してパイプライン分岐フローを指定できます。アップストリーム出力に基づいて、指定された条件式は、後続のダウンストリーム分岐を決定するブール値に評価される必要があります。
タスク
  • 統合: 統合タスクにバインドします。
  • データ・ローダー: データ・ローダー・タスクにバインドします。
  • パイプライン: パイプライン・タスクにバインドします。
  • SQL: SQLタスクにバインドします。
  • OCI Data Flow: Oracle Cloud Infrastructure Data Flowのアプリケーションにバインドします。
  • REST: RESTタスクにバインドします。
パイプラインについてさらに学習

「演算子」パネルの作業

より効率的に作業できるように、「オペレータ」パネルを画面の左側にドッキングできます。展開または縮小のアイコンを使用すると、パネルを展開することも、縮小してアイコンのみを表示することもできます。パネルを閉じることもできます。パネルが閉じている場合は、デザイナ・ツールバーの「表示」メニューから開くことができます。

「プロパティ」パネル

「プロパティ」パネルでは、データ・フローまたはパイプラインとその演算子を構成できます。

「検証」タブを使用して、データ・フローまたはパイプライン全体を検証します。

「パラメータ」タブでは、システム生成パラメータを含め、データ・フローまたはパイプライン・レベルで定義されたすべてのパラメータを表示できます。ユーザー定義パラメータについては、パラメータを削除でき、該当する場合はパラメータのデフォルト値を編集できます。

データ・フローの場合は、演算子をキャンバスに追加した後、その演算子を選択し、「プロパティ」パネルを使用して演算子を構成します。次のことができます:

  • 「詳細」タブで、演算子の詳細(識別子など)を指定し、演算子固有の設定を構成します
  • 「属性」タブで、演算子のインバウンド属性およびアウトバウンド属性を参照します
  • 「マップ」タブで、受信属性をターゲット演算子のターゲット・データ・エンティティの属性にマップします
  • 「データ」タブで、データのサンプリングをプレビューします
  • 「検証」タブで、演算子の構成を検証します

同様に、パイプラインの場合は、演算子をキャンバスに追加した後、その演算子を選択し、「プロパティ」パネルを使用して演算子を構成します。次のことができます:

  • 「詳細」タブで、演算子の名前を指定します。マージ演算子の場合は、マージ条件を指定します。式演算子の場合は、1つ以上の式を追加します。タスク演算子の場合は、演算子にバインドするタスクを選択し、アップストリーム演算子の実行ステータスに基づいてタスクを実行するタイミングを指定します。

    すべてのタスク演算子について、現在のワークスペース内のプロジェクトから設計時タスクを選択し、現在のワークスペース内の任意のアプリケーションから公開済タスクを選択できます。公開済RESTタスクおよびOCIデータ・フロー・タスクでは、同じコンパートメントまたは別のコンパートメント内の別のワークスペース内の任意のアプリケーションからタスクを選択することもできます。

  • 該当する場合は、「構成」タブでタスク実行オプションを指定します
  • 該当する場合は、「構成」タブで受信パラメータを構成します
  • 「出力」タブに出力が表示され、これをパイプライン内の次の演算子の入力として使用できます
  • 該当する場合は、「検証」タブで演算子の構成を検証します

「プロパティ」パネルの作業

より効率的に作業できるように、「プロパティ」パネルを画面の下部にドッキングできます。展開または縮小のアイコンを使用すると、パネルを展開することも縮小することもできます。パネルを閉じることもできます。パネルが閉じている場合は、デザイナ・ツールバーの「表示」メニューから開くことができます。

「プロパティ」パネルのタブの詳細

キャンバスをクリックしたときに何も演算子が選択されていない場合は、「プロパティ」パネルにデータ・フローまたはパイプラインの詳細が表示されます。

キャンバスで様々な演算子を選択すると、「プロパティ」パネルに、フォーカスされている演算子のプロパティが表示されます。「プロパティ」パネルの次のタブを使用して、演算子を通過するデータを表示、構成および変換できます:

詳細

「詳細」タブの「識別子」フィールドを使用して、演算子に名前を付けることができます。ソース演算子とターゲット演算子については、データ・アセット、接続、スキーマおよびデータ・エンティティも選択できます。データ・アセットとして「Autonomous Data Warehouse」または「Autonomous Transaction Processing」を選択すると、ステージング場所を選択するオプションが有効になります。ステージング場所では、オブジェクト・ストレージ・バケットを選択して、ターゲットに移動する前にデータをステージングできます。

データ・アセット、接続、スキーマおよびデータ・エンティティは、「詳細」タブに表示されている順序でのみ選択できます。たとえば、接続は、データ・アセットの選択後にのみ選択できます。スキーマの選択オプションは、接続の選択後に有効になります。選択は、前の選択から継承された親子関係にのみ基づいて実行できます。選択が終わると、編集オプションが有効になります。

各演算子の様々な詳細には、データ統合フローの公開時にこれらの詳細がコンパイル済コードにバインドされないように、パラメータを割り当てることができます。データ・フローでのパラメータの使用およびパイプラインでのパラメータの使用を参照してください。

整形演算子の場合、演算子を通過するデータに適用する条件または式を作成できます。

パイプラインの場合は、「詳細」タブを使用して、パイプラインまたは選択した演算子の名前を指定します。タスク演算子の場合は、使用するタスクも指定します。

属性

「属性」タブは、データ・フローの場合のみ表示されます。

メニューで、演算子にリンクされている受信属性をキャンバスの左側に表示するか、演算子にリンクされている次の演算子に渡す出力属性を右側に表示するかを選択します。

「名前」列のフィルタ・アイコンをクリックすると、フィルタ・フィールドが表示されます。属性を名前パターンでフィルタ処理するには、フィルタ・フィールドに単純な正規表現パターンまたはワイルドカード(?*など)を入力します。このフィールドでは、大/小文字が区別されません。「タイプ」列のフィルタ・アイコンをクリックすると、「タイプ」メニューが表示されます。メニューを使用して、タイプ・フィルタを選択します。一度に適用できる名前パターン・フィルタは1つのみですが、タイプ・フィルタは複数適用できます。たとえば、名前パターン*_CODEおよびタイプnumericまたはvarcharでフィルタするには、1つの名前パターン・フィルタ(*_CODE)と2つのタイプ・フィルタ(numeric、varchar)を適用します。

その後、除外する属性を選択するか、除外するフィルタ適用済属性を選択できます。「アクション」メニューを使用して、選択して除外するか、適用済フィルタで除外するかを選択します。選択した除外ルールが、「ルール」パネルに追加されます。適用済フィルタは属性リストの上部に表示されます。適用済フィルタをリセットするには、「すべてクリア」オプションを使用します。

「ルールの表示」をクリックして「ルール」パネルを開くと、データ・エンティティに適用されているすべてのルールが表示されます。ルールの適用後、右上隅に表示される成功メッセージからルールを確認することもできます。デフォルトでは、「ルール」パネルの最初のルールにすべてが含まれています。さらに、リスト内の順序変更や削除などのアクションを各ルールに適用できます。

マップ

「マップ」タブは、データ・フローの場合のみ表示されます。

このタブは、ターゲット演算子に対してのみ表示されます。これを使用すると、位置、名前、パターンで、またはダイレクト・マップで、インバウンド属性をターゲット・データ・エンティティの属性にマップできます。また、名前でマップする自動マップを実行したり、マッピングを削除することもできます。

データ

「データ」タブは、データ・フローの場合のみ表示されます。

タブにアクセスして、データのサンプリングをプレビューし、変換ルールが演算子を通過するデータに与える影響を確認します。

ノート

「データ」タブにアクセスする前に、データ・アセット、接続、スキーマおよびデータ・エンティティが構成されていることを確認します。

アクション・メニューを使用して、名前パターンまたはデータ型でデータをフィルタ処理すると、フィルタ処理したデータに対して、一括して除外ルールを適用したり変換を実行したりできます。データを名前パターンでフィルタ処理するには、「パターンで検索」フィールドに、ワイルドカード(?*など)を使用して単純な正規表現パターンを入力します。データをデータ型でフィルタ処理するには、メニューから型を選択します。データは読取り専用であるため、変換をターゲット演算子に適用できません。

ルールや変換を追加および削除すると、これらの変更を反映するようにデータ・サンプリングが更新されます。データ変換についてさらに学習します。

構成

「構成」タブは、パイプラインについてのみ表示されます。タスクで使用可能な場合は、タスクまたは基礎となるデータ・フローに関連付けられたパラメータ値を再構成できます(該当する場合)。

再試行の回数および次の再試行までの待機時間を指定して、タスクを再実行するためのオプションがあります。

出力

「出力」タブは、パイプラインについてのみ表示されます。

パイプライン内の接続先演算子への入力として使用できる出力のリストを表示できます。

検証
後でデータ・フローまたはパイプラインを実行するときにエラーが発生しないように、「検証」タブを使用して、演算子が正しく構成されていることを確認します。たとえば、インバウンド演算子またはアウトバウンド演算子を割り当てていない場合、「検証」パネルに警告メッセージが表示されます。「検証」パネルでメッセージを選択すると、エラーまたは警告に対処できるように、その演算子がフォーカスされます。
「パラメータ」パネル

「パラメータ」パネルには、データ・フローまたはパイプラインで使用されるパラメータが表示されます。

「パラメータ」パネルからパラメータを削除することもできます。

「検証」パネル

「グローバル検証」パネルには、データ・フローまたはパイプラインのすべてのエラーおよび警告メッセージが表示されます。

キャンバス・ツールバーで、「検証」をクリックして、統合タスクでデータ・フローを使用する前に、データ・フローを確認およびデバッグします。同様に、パイプラインをパイプライン・タスクで使用する前に確認してデバッグします。 「グローバル検証」パネルが開き、対処するためのエラー・メッセージと警告メッセージが表示されます。メッセージを選択すると、エラーまたは警告メッセージを生成した演算子が表示されます。