データ・フローを使用したデータの収集および変換

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

ソースからターゲットへのデータのフローで、データを集計、クレンジングおよび整形するための一連の変換を実行できます。これにより、データ・エンジニアおよびETL開発者は、インサイトを分析または収集し、そのデータを使用してビジネス上の大きな意思決定を下せるようになります。

このチュートリアルでは:

  1. データ・フローを保存できるプロジェクトを作成します。
  2. ソース演算子を追加し、データ・フローで使用するデータ・エンティティを選択します。
  3. 整形演算子を使用し、変換を適用します。
  4. データをロードするためのターゲット・データ・アセットを識別します。

開始する前に

データ・フローを使用してデータを収集および変換するには、次のものが必要です:

1. プロジェクトおよびデータ・フローの作成

Oracle Cloud Infrastructure Data Integrationでは、データ・フローおよびタスクはプロジェクトまたはフォルダ内にのみ作成できます。

プロジェクトおよびデータ・フローを作成するには:

  1. ワークスペースのホーム・ページで、「プロジェクト」をクリックします。

    タブ・バーで「開く」タブ(プラス・アイコン)をクリックして、「プロジェクト」を選択することもできます。

  2. 「プロジェクト」ページで、「プロジェクトの作成」をクリックします。
  3. 「プロジェクトの作成」ページで、「名前」DI_Labと入力し、「作成」をクリックします。

    プロジェクトを作成した後は、顧客(CUSTOMERS.json)および注文(REVENUE.csv)の情報を含む2つのソース・ファイルからデータを収集するためのデータ・フローを作成できます。

  4. DI_Labプロジェクトの詳細ページで、左側のサブメニューで「データ・フロー」をクリックします。
    「プロジェクト」ページを表示している場合は、DI_Labをクリックしてプロジェクトの詳細ページを開きます。
  5. 「データ・フローの作成」をクリックします。

    データ・フロー・デザイナが新しいタブで開きます。

  6. 「プロパティ」パネルで、「名前」Load Customers and Revenue Dataと入力します。

    「識別子」の値は、データ・フロー名に入力した値に基づいて自動的に生成されます。生成された値を変更できますが、データ・フローを保存した後は、識別子の更新は許可されません。

  7. 「作成」をクリックします。

    デザイナは開いたままになっており、編集を続行できます。

2. ソース演算子の追加

ソース演算子を追加して、データ・フローに使用するデータ・エンティティを識別します。このチュートリアルでは、データ・エンティティはデータベース表を表します。

演算子の詳細を参照してください。

  1. 「演算子」パネルから、ソース演算子をキャンバスにドロップします。
  2. キャンバスで、SOURCE_1を選択します(まだ選択されていない場合)。

    「プロパティ」パネルに、フォーカスがある演算子の詳細が表示されます。

  3. 「プロパティ」パネルの「詳細」タブで、次の各オプションの横にある「選択」をクリックして選択します。
    • 「データ・アセット」で、「Data_Lake」を選択します。
    • 「接続」で、「デフォルトの接続」を選択します。
    • 「スキーマ」で、コンパートメント、バケットの順に選択します。このチュートリアルの目的上、オブジェクト・ストレージがソース・データ・アセットとなるため、ここではバケットを選択します。
    • 「データ・エンティティ」で、「名前で参照」をクリックし、「CUSTOMERS.json」を選択します。「ファイル・タイプ」で、「JSON」を選択します。
  4. SOURCE_1の選択を完了すると、データ・エンティティの選択を反映して演算子名がCUSTOMERS_JSONになります。「識別子」フィールドで、ソース演算子の名前をCUSTOMERSに変更します。
  5. ステップ1から3を繰り返して、次の値で2つ目のソース演算子を追加します:
    • 「データ・アセット」で、「Data_Lake」を選択します。
    • 「接続」で、「デフォルトの接続」を選択します。
    • 「スキーマ」で、コンパートメント、バケットの順に選択します。このチュートリアルでは、オブジェクト・ストレージがソース・データ・アセットとなるため、ここではバケットを選択します。
    • 「データ・エンティティ」「REVENUE.csv」を選択し、ファイル・タイプに「CSV」を選択します。その他の項目については、デフォルト値を受け入れます。
  6. 2番目のソース演算子の選択を完了すると、データ・エンティティの選択を反映して演算子名がREVENUE_CSVになります。「識別子」フィールドで、ソース演算子の名前をREVENUEに変更します。
  7. (オプション)「パラメータの割当て」をクリックして、データ・フローの公開時にソース詳細がコンパイル済コードにバインドされないようにします。

    パラメータの詳細を参照してください。

  8. (オプション)「属性」タブでは、データ・エンティティの属性を表示し、それぞれの「アクション」メニュー(「アクション」メニュー)から、除外ルールまたは名前変更ルールを属性に適用できます。
    「名前」または「タイプ」列のフィルタ・アイコンを使用して、除外する属性に1つ以上のフィルタを適用することもできます。
  9. (オプション)「データ」タブでは、ソース・データ・エンティティからのデータのサンプリングを表示してデータに変換を適用したり、属性を選択してデータ・プロファイルを表示できます。

    データ変換についてさらに学習します。

  10. (オプション)「検証」タブでは、ソース演算子の構成で警告またはエラーを確認できます。
  11. データ・フローを保存して編集を続行するには、「保存」をクリックします。

3. データのフィルタリングおよび変換

データのフィルタリング

フィルタ演算子は、条件に基づいてアップストリーム演算子からデータのサブセットを生成します。

  1. 「演算子」パネルから、フィルタ演算子をキャンバスにドロップします。
  2. REVENUEFILTER_1に接続します:
    • カーソルを「REVENUE」に配置します。
    • 「REVENUE」の横にあるコネクタの円をドラッグします。

      演算子のコネクタ

    • FILTER_1にコネクタの円をドロップします。

      コネクタ間のドラッグ・アンド・ドロップ・アクション

  3. FILTER_1を選択します。
  4. 「プロパティ」パネルで、「フィルタ条件」の横にある「作成」をクリックします。
  5. 「フィルタ条件の作成」パネルで、「名前による検索」フィールドにSTAと入力します。
  6. ORDER_STATUSをダブルクリックまたはドロップして、フィルタ条件エディタに追加します。
  7. 条件エディタで、='1-Booked'を入力します。条件は次のとおりです:

    FILTER_1.REVENUE_CSV.ORDER_STATUS='1-Booked'

    ノート

    引用符の問題を回避するため、コピー・アンド・ペーストはしないでください。
  8. 「作成」をクリックします。
  9. 「演算子」パネルから、フィルタ演算子をキャンバスにドロップし、「CUSTOMERS」の後ろに配置します。
  10. CUSTOMERSFILTER_2に接続します:
    • 「CUSTOMERS」にカーソルを移動します。
    • 「CUSTOMERS」の右側にあるコネクタの円をドラッグします。
    • FILTER_2にコネクタの円をドロップします。
  11. FILTER_2「プロパティ」パネルで、「フィルタ条件」の横にある「作成」をクリックします。
  12. 「フィルタ条件の作成」パネルで、「名前による検索」フィールドにCOUと入力します。
  13. COUNTRY_CODEをダブルクリックして、条件エディタに追加します。
  14. 条件が次のようになるように、='US'と入力します:

    FILTER_2.CUSTOMERS_JSON.COUNTRY_CODE='US'

  15. 「作成」をクリックします。
  16. データ・フローを保存して編集を続行するには、「保存」をクリックします。
データの変換

データ・エクスプローラを使用すると、データ・サンプルを探索したり、プロファイリング・メタデータを確認したり、「プロパティ」パネルの「データ」タブで変換を適用することができます。変換が適用されるたびに、式演算子がキャンバスに追加されます。

  1. FILTER_2「プロパティ」パネルで、「データ」タブを選択します。
    すべてのデータ行および属性が表示されます。行をスクロールするには垂直スクロールバーを使用し、属性をスクロールするには水平スクロールバーを使用できます。
  2. 「パターンで検索」フィールドに、STATE*と入力します。
    表内の属性の数がフィルタされます。パターンに一致する属性のみが表示されます。
  3. FILTER_2.CUSTOMERS_JSON.STATE_PROVINCE変換メニュー(「変換」メニュー)をクリックし、「大/小文字の変更」を選択します。

    「変換」メニュー・アイコン

  4. 「大/小文字の変更」ダイアログで、「タイプ」メニューから「大/小文字」を選択します。
  5. 「ソース属性の保持」チェック・ボックスを選択しないでください。
  6. 「名前」はそのままにします。
  7. 適用」をクリックします。

    式演算子がデータ・フローに追加されます。「プロパティ」パネルで、「詳細」タブがフォーカスされ、式演算子の詳細が表示されます。

    「式」表で、生成された式UPPER(EXPRESSION_1.CUSTOMERS_JSON.STATE_PROVINCE)を確認できます。

  8. 式演算子の「プロパティ」パネルで、「識別子」フィールドの名前をCHANGE_CASEに変更します。
  9. 「データ」タブをクリックし、水平スクロールバーを使用して端までスクロールします。

    CHANGE_CASE.STATE_PROVINCEがデータセットの最後に追加されます。「データ」タブで、CHANGE_CASE.STATE_PROVINCEの変換済データをプレビューできます。

  10. 「演算子」パネルから、演算子をキャンバスにドロップし、CHANGE_CASEの後ろに配置します。
  11. CHANGE_CASEを新しいEXPRESSION_1演算子に接続します。
  12. EXPRESSION_1「プロパティ」パネルで、「式」表で「式の追加」を選択します。
  13. 「式の追加」パネルで:
    1. 「識別子」フィールドで、式の名前をFULLNAMEに変更します。
    2. 「データ型」VARCHARのままにします。
    3. 「長さ」200に設定します。
    4. 「式ビルダー」で、「受信」リストを「関数」リストに切り替えます。
    5. 「名前による検索」フィールドに、CONと入力します。次に、Stringの下のCONCATを探します。
    6. CONCAT(CONCAT(EXPRESSION_1.CUSTOMERS_JSON.FIRST_NAME, ' '),EXPRESSION_1.CUSTOMERS_JSON.LAST_NAME)と入力します

      関数のプレースホルダを強調表示し、「受信」リストから属性をダブルクリックまたは削除して、式を作成することもできます。

    7. 「追加」をクリックします。

    これで、EXPRESSION_1演算子の式表にCONCAT式がリストされます。式は必要な数だけ追加できます。

  14. データ・フローを保存して編集を続行するには、「保存」をクリックします。

4. データの結合

フィルタおよび変換を適用した後は、一意の顧客識別子を使用してソース・データ・エンティティを結合してから、データをターゲット・データ・エンティティにロードできます。

  1. EXPRESSION_1のデータをFILTER_1のデータと結合するには、「演算子」パネルから「結合」演算子をキャンバスにドロップし、EXPRESSION_1およびFILTER_1の後ろに配置します。
  2. EXPRESSION_1JOIN_1に接続します。次に、FILTER_1JOIN_1に接続します。
  3. JOIN_1を選択した場合、「プロパティ」パネルの「詳細」タブで、「結合条件」の横にある「作成」をクリックします。
  4. 「結合条件の作成」パネルで、「名前による検索」フィールドにCUSTと入力します。
    CUST_IDおよびCUST_KEYを使用してエンティティを結合します。
  5. エディタで、JOIN_1_1.CUSTOMERS_JSON.CUST_ID=JOIN_1_2.REVENUE_CSV.CUST_KEYと入力します。
  6. 「作成」をクリックします。
  7. データ・フローを保存して編集を続行するには、「保存」をクリックします。

5. ターゲット演算子の追加

  1. 「演算子」パネルから、ターゲット演算子をキャンバスにドロップします。
  2. JOIN_1TARGET_1に接続します。
  3. キャンバスでTARGET_1を選択します(まだ選択されていない場合)。
  4. 「プロパティ」パネルの「詳細」タブで、「新規データ・エンティティの作成」チェック・ボックスを選択しないでください。
  5. 次に、次の各オプションで「選択」をクリックして、データ・エンティティの選択を行います:
    • 「データ・アセット」で、「Data_Warehouse」を選択します。
    • 「接続」で、「デフォルトの接続」を選択します。
    • 「スキーマ」で、「BETA」を選択します。
    • 「データ・エンティティ」で、「CUSTOMERS_TARGET」を選択します。
  6. 「ステージングの場所」で、「データ・レイク」データ・アセット、そのデフォルト接続およびコンパートメントを選択します。次に、「スキーマ」で、サンプル・データのインポートに使用したオブジェクト・ストレージ・バケットを選択します。
  7. 「統合戦略」の値は「挿入」のままにします。
  8. 「属性」マッピングを確認するには、「マップ」タブをクリックします。

    デフォルトでは、すべての属性が名前でマップされます。

    たとえば、JOIN_1CUST_IDは、ターゲット・データ・エンティティのCUST_IDにマップされます。

  9. まだマップされていない属性を手動でマップするには、「ターゲット属性」表で「すべて」メニューを選択し、「マップされていない属性」を選択します。

    (受信フィールド用の)「ソース属性」表でも同じことができます。

  10. ここで、「ターゲット属性」「ソース属性」からFULL_NAMEFULLNAMEを削除します。
  11. 「ターゲット属性」表で、「マップされていない属性」を選択し、「すべて」を選択します。

    これで、すべての属性がマップされました。

  12. (オプション)「アクション」をクリックして、使用可能な様々なマッピング・オプションを確認します。
  13. (オプション)「ルールの表示」をクリックして、適用されたルールを表示します。
  14. データ・フローを保存してデザイナを終了するには、「保存してクローズ」をクリックします。