14.8 データ・フローの作成

データ・フローでは、異なるシステム間でデータを移動および変換する方法を定義します。

データ変換のデータ・フローは、結合、フィルタ、集計、設定、分割などのコンポーネントのフローを介してソースを接続します。詳細は、サポートされているデータベース関数を参照してください。

データ・フローを実行すると、データ変換では結合、フィルタ、マッピングおよび制約を使用してソース・データを変換し、ターゲット表にロードします。実行フローは1回に1つしか実行できないことに注意してください。1つのデータ・フローに複数のフローを置くことはできず、1つのフローを複数のフローに分散させることはできません。

データ・フローは、次のいずれかの方法で作成できます:

新しく作成されたデータ・フローが、関連付けられたプロジェクトの「データ・フロー」ページに表示されます。選択したデータ・フローの横にある「アクション」アイコン(「アクション」アイコン)をクリックして、編集、名前変更、コピー、フォルダの変更、開始、エクスポートまたは削除を行います。

「プロジェクト」ページから

「プロジェクト」ページからデータ・フローを作成するには、

  1. 「プロジェクト」ページで、「データ・フローの作成」をクリックします。

    「データ・フローの作成」ページが表示されます:

  2. 「名前」フィールドに、新しいデータ・フローの名前を入力します。
  3. 新しく作成したデータ・フローに新しいプロジェクト・フォルダを作成する場合は、「新規プロジェクトの作成」を選択します。
  4. あるいは、新しく作成したデータ・フローを既存のプロジェクト・フォルダに追加するには、「既存プロジェクトに追加」をクリックします。
  5. 前のオプションで「新規プロジェクトの作成」を選択した場合は、「プロジェクト名」フィールドに、新しく作成したプロジェクトの名前を入力します。
  6. あるいは、前のオプションで「既存プロジェクトに追加」を選択した場合は、「プロジェクト名」ドロップダウンの矢印から必要なプロジェクトを選択します。
  7. 「説明」フィールドに、新しく作成したデータ・フローの説明を入力します。
  8. 「作成」をクリックします。

プロジェクト内の「データ・フロー」ページから

プロジェクト内の「データ・フロー」ページからデータ・フローを作成するには、

  1. 「プロジェクト」ページで、新しいデータ・フローを作成するプロジェクト・タイルをクリックします。「プロジェクト詳細」ページが表示されます。
  2. 「データ・フロー」ページで、「データ・フローの作成」をクリックします。
  3. 新しいデータ・フローの「名前」および「説明」を指定します。
  4. 「次」をクリックします。
  5. ソース接続を定義するには、「接続」ドロップダウンから、データ・エンティティの追加元となる必要な接続を選択します。
  6. 「スキーマ」ドロップダウンに、選択した接続に対応するすべてのスキーマが2つのグループで表示されます:
    • 既存のスキーマ(Oracle Data Transformsにインポートしたスキーマ)および
    • 新規データベース・スキーマ(まだインポートしていないスキーマ)。

    使用するスキーマをドロップダウンから選択します。Oracle Object Storage接続の場合、「スキーマ」ドロップダウンには、接続の作成時にURLで指定したバケットの名前がリストされます。

  7. 「保存」をクリックします。

    新しいデータ・フローを作成できるデータ・フロー・エディタが表示されます。

ホーム・ページから

「ホーム」ページからデータ・フローを作成するには、

  1. 「ホーム」ページで、「データの変換」をクリックします。「データ・フローの作成」ページが表示されます。
  2. 新しいデータ・フローの「名前」および「説明」を指定します。
  3. ドロップダウンからプロジェクト名を選択します。または、「+」アイコンをクリックしてプロジェクトを作成します。
  4. 「次」をクリックします。
  5. 「接続」ドロップダウンから、データ・エンティティの追加元となる必要な接続を選択します。または、「+」アイコンをクリックして新しい接続を作成します。
  6. 「スキーマ」ドロップダウンに、選択した接続に対応するすべてのスキーマが2つのグループで表示されます:
    • 既存のスキーマ(Oracle Data Transformsにインポートしたスキーマ)および
    • 新規データベース・スキーマ(まだインポートしていないスキーマ)。

    使用するスキーマをドロップダウンから選択します。

  7. 「保存」をクリックします。

14.8.1 データ・フロー・エディタについて

データ・フロー・エディタは、「データ・エンティティ」パネル、データベース関数ツールバー、デザイン・キャンバス、「プロパティ」パネルおよび「ステータス」パネルの5つの部分に分割されています。



  • データ・エンティティ・パネル: データ・エンティティ・パネルには、データ・フローで使用できるデータ・エンティティが表示されます。表示されたリストは、「名前」および「タグ」フィールドを使用してフィルタできます。このパネルには、スキーマの追加、データ・エンティティのインポート、データ・フローに関連付けられたスキーマの削除、およびデータ・エンティティのリフレッシュが可能なオプションが含まれています。これらのオプションの使用方法の詳細は、「コンポーネントの追加」を参照してください。
  • データベース関数ツールバー: データベース関数ツールバーには、データ・フローで使用できるデータベース関数が表示されます。データ・エンティティと同様に、使用するデータベース・ツールをデザイン・キャンバスにドラッグ・アンド・ドロップできます。詳細は、サポートされているデータベース関数を参照してください。
  • デザイン・キャンバス: デザイン・キャンバスは、変換ロジックを構築する場所です。データ・エンティティおよびデータベース関数をデザイン・キャンバスに追加すると、これらを論理的な順序で接続してデータ・フローを完成できるようになります。
  • プロパティ・パネル: プロパティ・パネルには、デザイン・キャンバスで選択したオブジェクトのプロパティが表示されます。プロパティ・パネルは、4つのタブにグループ化されています。「一般」「属性」「プレビュー・データ」「列マッピング」および「オプション」。選択したオブジェクトによっては、一部のタブのみ表示されます。これらのオプションの詳細は、「コンポーネントのプロパティ」を参照してください。
  • 「ステータス」パネル: データ・フローを実行すると、「ステータス」パネルに、リクエストを完了するためにバックグラウンドで実行されているジョブのステータスが表示されます。現在実行中のジョブのステータスまたは最後のジョブのステータスを確認できます。「ステータス」パネルの詳細は、「データ・ロード、データ・フローおよびワークフローのステータスのモニター」を参照してください。

必要なデータ・フローを設計した後、

  • 作成/設計したデータ・フローを保存するには、「保存」アイコンをクリックします。
  • 設計したデータ・フローのノードを配置するには、「自動レイアウト」アイコンをクリックします。
  • 作成したデータ・フローを実行するには、「実行」アイコンをクリックします。
  • 作成したデータ・フローを検証するには、「検証」アイコンをクリックします。
  • ズームインおよびズームアウトのアイコンをクリックして、デザイン・キャンバスで作成したデータ・フロー・ダイアグラムを最大化または最小化します。

14.8.1.1 サポートされているデータベース関数

Oracle Data Transformsは、デザイン・キャンバスにドラッグ・アンド・ドロップしてデータ・フロー内のコンポーネントを接続できる様々なデータベース機能をサポートしています。

データ・フロー・エディタのデータベース機能ツールバーには、データ・フローで使用できる次のデータベース機能が含まれています。

  1. データ変換

    次のコンポーネントが含まれます。

    • 集計
    • フィルタ
    • 結合
    • 個別
    • ルックアップ
    • 設定
    • ソート
    • 副問合せフィルタ
    • 表関数
  2. データ準備

    次のコンポーネントが含まれます。

    • データ・クレンジング
    • 置換
    • 等幅ビニング
    • 分位ビニング
    • Lead
    • Lag
    • 置換
  3. 機械学習

    次のコンポーネントが含まれます。

    • 予測
    • 外れ値の検出
  4. テキスト

    次のコンポーネントが含まれます。

    • REGEXP COUNT
    • REGEXP INSTR
    • REGEXP SUBSTR
    • REGEXP REPLACE
    • 距離類似度の編集
    • 含む
  5. Oracle Spatial and Graph

    次のコンポーネントが含まれます。

    • バッファ・ディメンション
    • バッファ許容値
    • 距離ディメンション
    • 距離許容値
    • 最近傍
    • 簡略化
    • ポイント
    • ジオコーディング・ツール:

      ノート:

      次のジオコーディング・ツールは、Autonomous Database以外の環境でのみ機能します。
      • ジオメトリとしてジオコーディング
      • ジオコーディング
      • 住所のジオコーディング
      • すべてジオコーディング
      • 住所をすべてジオコーディング
      • 逆ジオコーディング
    • 空間結合

14.8.2 コンポーネントの追加

データ・エンティティおよびデータベース関数をデザイン・キャンバスに追加し、それらを論理的な順序で接続してデータ・フローを完了します。

データ・フローにコンポーネントを追加するには:
  1. 「データ・エンティティ」パネルで、「スキーマの追加」をクリックして、データ・フローで使用する必要のあるデータ・エンティティを含むスキーマを追加します。
  2. 「スキーマの追加」ページで、接続とスキーマ名を選択します。
  3. 「インポート」をクリックします。
  4. 「データ・エンティティのインポート」ページで、インポートするオブジェクトのタイプを選択します。スキーマ内の一部のオブジェクトのみをインポートする場合は、マスク/フィルタを選択し、「開始」をクリックします。
  5. 「データ・エンティティ」パネルに、インポートされたデータ・エンティティがリストされます。このパネルには、次を実行できる様々なオプションがあります:
    • データ・エンティティのリフレッシュ - 「リフレッシュ」アイコン「リフレッシュ」アイコンをクリックして、表示されたリストをリフレッシュします。
    • 名前 - 名前でデータ・エンティティを検索します。
    • タグ - 使用されるタグの名前でデータ・エンティティをフィルタします。
    • データ・エンティティのインポート - このオプションを表示するには、スキーマを右クリックします。このオプションを使用して、データ・エンティティをインポートします。
    • スキーマの削除 - データ・エンティティを右クリックすると、このオプションが表示されます。このオプションを使用して、リストからスキーマを削除します。このオプションではスキーマは削除されず、スキーマとこのデータ・フローとの関連付けのみが削除されることに注意してください。
  6. 同様に、必要に応じて、データ・フローにスキーマを追加します。
  7. データ・フローで使用する必要なデータ・エンティティをドラッグして、デザイン・キャンバス上にドロップします。
  8. データベース関数ツールバーから、データ・フローで使用する変換コンポーネントをドラッグして、デザイン・キャンバスにドロップします。データ・フローで変数を使用できます。詳細は、「データ・フローでの変数の使用」を参照してください。
  9. デザイン・キャンバスのオブジェクトを選択し、横にある「コネクタ」アイコン(「コネクタ」アイコン)をドラッグして、コンポーネントを接続します。
  10. データ・フローを保存すると、1つ以上のコンポーネント接続に転送アイコンが重ねて表示される場合があります。これは、ODIによって追加ステップが検出され、データ・サーバー間でデータの移動が必要であることを示しています。このアイコンをクリックすると、そのステップに関連付けられたプロパティを表示できます。

14.8.2.1 コンポーネントのプロパティ

「プロパティ」パネルには、デザイン・キャンバスで選択したコンポーネントの様々な設定が表示されます。

選択したコンポーネントに応じて、次のいずれかのアイコンが表示されます:

  • 一般(一般) - コンポーネントの名前が、その接続およびスキーマの詳細とともに表示されます。これらのプロパティの一部は編集できます。
  • 属性(属性) - コンポーネントに関連付けられたすべての属性の詳細が表示されます。
  • 列マッピング(列マッピング) - すべての列を自動的にマップできます。詳細は、「データ列のマップ」を参照してください。
  • プレビュー(プレビュー) - コンポーネントのプレビューが表示されます。Oracle表の場合、選択したデータ・エンティティの統計を表示することもできます。使用可能な統計情報の詳細は、「データ・エンティティの統計の表示」を参照してください。
  • オプション(オプション) - 次のようなオプションが表示されます
    • 表の切捨て - 既存のターゲット表の内容を新しいデータで置換します。
    • 追加 - フローからターゲットにレコードを挿入します。既存のレコードは更新されません。
    • 増分 - フローのレコードを既存のレコードと比較し、関連するデータが異なる場合にレコードを更新することで、ターゲット表のデータを統合します。ターゲットに存在しないレコードは挿入されます。
      このオプションには、デフォルトでTrueに設定されている自動圧縮機能が含まれています。「増分更新」モードを使用して圧縮されたOracleターゲット・パーティションにデータをロードするデータ・フロー・ジョブの場合、ロードが正常に完了すると、自動圧縮機能により、変更されたターゲット・パーティションは再圧縮されます。もともと圧縮されていない表パーティションの場合、自動圧縮がtrueに設定されているかどうかに関係なく、圧縮はスキップされます。

      ノート:

      自動圧縮オプションは、ADMINユーザーまたはDWROLEロールを持つユーザーが使用できます。ADMIN以外のスキーマ・ユーザーが含まれるデータ・フローの場合、DWROLEをユーザーに割り当てるか、実行エラーを回避するために自動圧縮を無効にする必要があります。

14.8.3 データ列のマップ

ソース・データ・エンティティをターゲット・データ・エンティティに接続すると、列名は列名に基づいて自動的にマップされます。位置や名前に基づいて列をマップしたり、式エディタを使用して手動で列をマップすることもできます。

位置または名前に基づいて列をマップするには:

  1. ターゲット・データ・エンティティを選択します。
  2. 右上隅にある矢印アイコンをクリックして、プロパティ・パネルを展開します。これにより、作業領域が広がります。
  3. プロパティ・パネルで、「列マッピング」アイコン(「列マッピング」アイコン)をクリックします。
  4. 位置または名前に基づいて列をマップするには、「自動マップ」ドロップダウン・メニューから「位置別」または「名前別」を選択します。

手動で列をマップするには:

  1. 「自動マップ」ドロップダウン・メニューから「クリア」を選択して、既存のマッピングをクリアします。
  2. 左側のツリーから、「式」列でマップする属性をドラッグ・アンド・ドロップします。
  3. 式を編集するには、各列の「編集」アイコンをクリックします。式エディタが表示され、必要な変更を行うことができます(たとえば、単に式"UPPER"を追加したり、式エディタを開いて式を編集できます)。

    ノート:

    式エディタは、特定の列に複雑な式が含まれる場合にのみ使用してください。
  4. 「OK」をクリックします。

14.8.4 データ・フローの検証および実行

マッピングの準備が完了したら、データ・フローの検証と実行に進むことができます。

次を実行します。
  1. 「保存」をクリックします。

    保存後、変換前にデータをステージングする必要がある場合、転送ボタンが1つ以上のリンクに追加されます。これらのボタンをクリックして、別のオプションを設定できます(使用可能な場合)。

  2. データ・フロー・ジョブの実行時に実行されるタスクを完了するために実行するコードを確認する場合は、コードのシミュレート・アイコン(コードのシミュレート・アイコン)をクリックします。参照しやすいように、ソースとターゲットの詳細は異なる色で表示されます。これは、ジョブを実行する前にマッピングが正しいかどうかを確認する場合、またはジョブが失敗した場合に便利です。コードはデバッグに使用できないことに注意してください。ジョブの詳細は、「ジョブの詳細」ページを参照してください。
  3. デザイン・キャンバスの上にあるツールバーの「検証」アイコン(「検証」アイコン)をクリックして、データ・フローを検証します。
  4. 検証に成功したら、「検証」アイコンの横にある「実行」アイコン(「実行」アイコン)をクリックして、データ・フローを実行します。

    実行ジョブのIDおよび名前を示すメッセージが表示されます。データ・フローのステータスを確認するには、「プロパティ」パネルのすぐ下にある「ステータス」パネルを参照してください。「ステータス」パネルの詳細は、「データ・ロード、データ・フローおよびワークフローのステータスのモニター」を参照してください。このパネルには、「ジョブ」ページで進行状況をモニターするためにクリックできるジョブIDへのリンクも表示されます。詳細は、ジョブの作成および管理を参照してください。

    Oracle Object Storage接続を使用して作成されたデータ・フローの場合、ソースCSVファイルのデータがターゲットOracle Autonomous Databaseにロードされます。Oracle Autonomous Database表のデータをOracle Object StorageのCSVファイルにエクスポートすることもできます。