データ統合Pipeline Builderパイプライン管理カスタム関数の作成

注: 以下の翻訳の正確性は検証されていません。AIPを利用して英語版の原文から機械的に翻訳されたものです。

カスタム関数の作成

カスタム関数を使用すると、一連の変換を単一の変換として保存し、パイプライン全体で再利用することができます。この機能は、パイプライン全体でロジックを繰り返しながら、それを一箇所で管理するのに便利です。

カスタム関数は、名前 (必須)、説明 (オプション)、関数引数 (オプション)、および 関数定義 (必須) で構成されます。

カスタム関数を作成するには、以下の2つの手順が必要です:

  1. ロジックを一連の変換ボードとして定義します。
  2. 変換ボードを新しいカスタム関数に変換します。

以下では、各ステップの例を見ていきます。

一連の変換ボードを定義する

users のテーブルがあると仮定し、それぞれのユーザーを一意に識別するプライマリーキーを作成したいとします。各ユーザーの first_namelast_name、および first_login_date が一意の組み合わせであることがわかっています。これら3つの行をハッシュ化したものが String 型の新しい行 primary_key をデータセットに追加したいと考えています。そして、first_namelast_name、および first_login_date を削除します。最後に、重複がある場合はユーザーごとに1行だけ残し、age の値が最も低い行を保持したいと考えています。

ユーザーテーブルの入力スクリーンショット

まず、first_namelast_name、および first_login_date を1つの行に結合します。これら3つの行を一緒に加えるために Concatenate strings 変換を使用できます。

文字列の連結変換のスクリーンショット

Separator フィールドには - を入力します。次に、Expressions ドロップダウンから各行を選択します。最初の2つの行では first_namelast_name を選択します。しかし、first_login_date 行は、第三のフィールドとして選択するオプションにはなりません。これは、Date 型であり、Concatenate strings 関数は String 型のみを受け付けるためです。

日付列なしの文字列連結変換のスクリーンショット

これを解決するためには、Expressions タブから Cast 式を挿入します。パラメーターは Expressionfirst_login_date を、TypeString を設定します。これにより、first_login_date を全体的に変更する必要がなくなり、これによりすべての下流変換ボードが影響を受けることを防ぎます。

キャスト表現を含む文字列連結変換のスクリーンショット

Apply を選択すると、出力テーブルは以下のようになります:

文字列連結変換後の出力テーブルのスクリーンショット

次に、primary_key 内のデータを非識別化する必要があります。これを行う一つの方法は、primary_key の各値に Hash sha256 変換を適用してハッシュを作成することです。これは、Reuse value オプションを選択して Concatenate stringsHash sha256 で置き換えることで、同じボード内で行うことができます。

hash sha256 変換で再利用値のスクリーンショット

このオプションは、既存の値を保持し、それらを新しい変換の最初の入力にします。

hash sha256 変換のスクリーンショット

Apply を選択した後、出力が期待通りであることを確認します:各行についての一意のデータを含む primary_key: String 行があります。

中間出力テーブルプレビューのスクリーンショット

次に、primary_key の最初と最後の行が同じであることに気づくでしょう。age が25の行を保持し、first_namelast_name、および first_login_date を削除したいと考えています。これを行うには、Aggregate 変換を追加します。最初のフィールド Group by columnsprimary_key を入力し、二つ目のフィールド Aggregationsage を入力し、Min 式を使用します:

集約変換のスクリーンショット

最後に、出力テーブルは以下の画像のようになるはずです。primary_key = b3c01... に対して1行だけがあり、age が25であることを確認できます。

最終出力テーブルプレビューのスクリーンショット

一連の変換ボードをカスタム関数に変換する

次に、このロジックをパイプライン内の3つの異なる場所で再利用したいとします。私たちは、Shift + Down Arrow を使用して両方のボードを選択し、上部のバーで + ボタンを選択することで、ロジックをカスタム関数に変換することができます。

複数の変換ボードをカスタム関数に変換するスクリーンショット

これにより、カスタム関数の作成ページに移動します。行入力 first_namelast_namefirst_login_date、および age が取り消されていることに気づくでしょう。これは、作成する関数がパイプライン内の任意の4つの入力(行名に関係なく)に対して一般的であるためです。

カスタム関数作成ページのスクリーンショット

これらの入力を定義するには、Add argument を4回選択します。黄色のボックスをクリックして引数名を設定します。

カスタム関数引数初期設定のスクリーンショット

次に、各引数の右側の歯車アイコンをクリックして引数の型を設定します。ここでは、最初の2つの引数を String 型の列を表す Expression<String> 型に、3つ目の引数を Expression<Date> 型に、最後の列を Expression<Integer> 型にしたいと考えています。

カスタム関数引数完全設定のスクリーンショット

これで、新しい引数を以前と同様に2つのボードに追加できます。ただし、これらは現在 Columns セクションではなく、Parameters セクションで利用可能になります。

引数付きのカスタム関数のスクリーンショット

設定が完了したら、関数に Primary key generator という名前を付け、オプションで説明を追加し、Apply all changes を選択します。

カスタム関数引数最終設定のスクリーンショット

新しい関数は、任意の変換パスで使用できるようになります。次にこのパターンでプライマリーキーを作成する必要がある場合は、変換ドロップダウンで Primary key generator を検索できます。

検索バーで利用可能なカスタム関数のスクリーンショット

元の行: first_namelast_namefirst_login_date、および age でカスタム関数を設定できます。

変換パス内のカスタム関数設定のスクリーンショット

関連する列名をカスタム関数に入力することで、パス内に同じ変換で関数を作成したかのように同じ結果を生成します。ただし、カスタム関数を作成することで、関数ロジックを保存し、別の変換ボードでロジックを再作成するのではなく、パイプライン全体で再利用することができます。

最終出力テーブルプレビューのスクリーンショット