Lakeflow Designer の組み込み演算子

Lakeflow Designer には、一般的なデータ準備タスクと変換タスク用の組み込み演算子が含まれています。 左側の オペレー タウィンドウを開くとカテゴリ別にオペレーターを閲覧できます。または、パレーの上部にある 「オペレーターを検索 」を使ってください。 演算子検索では、意図に基づいて演算子が提案されます。 たとえば、「 average by month 」と入力すると 、Aggregate 演算子が返されます。 「 AI検索でオペレーターを探す」をご覧ください。 キャンバスに追加した後にオペレーターを構成するには、その演算子をダブルクリックするか、その上にマウス ポインターを合わせて [鉛筆] アイコン をクリックします 。(演算子の編集) をクリックして、構成ウィンドウを開きます。

キャンバス上のソースオペレーターの横に検索およびオペレーターカテゴリが表示されるオペレーターメニュー。

各オペレーターは、AI によって生成された処理の説明を表示します。 説明は、オペレーターのエディターとしても機能します。説明を編集すると、説明に合わせて演算子が再構成されます。

組み込みのオペレーターがあなたのタスクに合わない場合は、 自分でオペレーターを作成できます。

入力と出力

Source

Unity カタログ テーブルまたはその他のサポートされているソースからデザイナーにデータをインポートします。 ソースを選択するには、名前でテーブルまたはファイルを検索するか、カタログとスキーマで参照します。 このウィンドウから新しいテーブルを作成することもできます。

テーブルを選択すると、ペインにテーブルの名前、所有者、最終更新時刻が表示されます。 [ 新しいデータ ソースの選択 ] をクリックしてソースを変更します。 ソースを変更すると、すべてのダウンストリーム演算子の出力キャッシュが無効になります。

Unity カタログ メトリック ビューをソースとして使用することもできます。 メトリック ビューを選択すると、含めるディメンションとメジャーが選択され、Designer によって集計クエリが生成されます。

Unity カタログのボリュームまたはフォルダー全体をターゲットにするなど、さまざまなデータ インジェスト オプションについては、「 Lakeflow Designer へのデータの取り込み」を参照してください。

データの入力

スプレッドシート スタイルのエディターに値を入力してテーブルを作成します。 この演算子を使用して、参照値やテスト データなどの少量の参照データを追加します。別のソース テーブルは作成しません。

フィールド Description
テーブル データ テーブルとしてデータを入力します。 最初の行は列ヘッダーを定義し、残りの行はデータです。 デザイナーは、各列のデータ型をその値から推論します。

Output

デザイナーからデータをエクスポートします。 出力オペレーターは、結果をUnityカタログテーブルに書き込み、物質化されたビューとして公開するか、Unityカタログボリューム、Googleドライブ、SharePointのファイルに書き込むことができます。 出力タイプで「テーブル」「マテリアライズドビュー」「ファイル」を選択します。 ファイル出力については、 宛先で書き込む場所を選択します。

出力の種類 Description
Table 結果をマネージド Unity カタログ テーブルに書き込みます。 テーブル名と出力場所 (カタログとスキーマ) を設定し、書き込みモードを選択します。
マテリアライズド・ビュー 結果を Unity カタログの具体化されたビューとして発行します。このビューは、ビジュアル データ準備の実行時に更新されます。
File 結果はCSV、Excel、またはJSONで書きます。 宛先、ファイルタイプ、ファイル名を選択してください。

Unityカタログボリューム内の テーブル 出力または ファイル 出力については、 書き込みモードを選択してください:

書き込みモード Description
上書き 既存の内容を現在の実行の結果に置き換えます。 これが既定値です。
[追加] 現在の実行の結果を既存の行に追加します。
Merge 指定したマージ キーを照合して、行をターゲット テーブルにアップサートします。 テーブル出力に使用できます。

[ 実行 ] をクリックしてビジュアル データの準備を実行し、結果を書き込みます。 テーブル出力の場合、テーブルが存在しない場合は、演算子によって作成されます。 スケジュールされた実行は、同じ書き込みモードを使用して宛先に書き込みます。

出力オペレーターがUnityカタログのテーブル、マテリアル化されたビュー、またはボリュームファイルを書き込んだ後、その送信ポートを接続してワークフローを継続します。 テーブル、マテリアル化されたビュー、単一ファイルの出力の場合、送信ポートは 出力 オペレーターが書いた永続的なアセットから直接読み込みます。 分割出力、Excelの範囲書き込み、ヘッダーのないファイルの場合、送信ポートは入力行を通過します。

Unity Catalogボリューム内のファイル出力については、「 Advanced 」を展開して以下のオプションを設定してください:

  • 異なる値で分割:各異なる値に対して1つのファイルを書き込むカラムを選択します。 Excel出力の場合は、各値を1つのワークブックに別々のワークシートに書き込むことができます。 1回のランは最大50のファイルやワークシートを作成できます。
  • シート名:Excel出力の場合、ターゲットワークシートを設定します。
  • ヘッダー行を含める:CSVまたはExcel出力で列名を含める。
  • セル範囲:Excel出力をオーバーライトモードで行う場合、開始セルとオプションの終了セルを設定します。 Designerは範囲外のフォーマットを保持し、データが固定範囲に合わなければ実行失敗します。 セルの範囲と Splitを異なる値で組み合わせることはできません。

Warning

オーバーライトモードが出力をファイルに分割すると、Designerは生成された名前パターンに一致する既存のファイルを削除します。 これは、ボリュームフォルダ内の同じパターンで手動で作成したファイルも含まれます。

Google DriveやSharePointにファイルを書き込むには:

  1. 出力タイプをファイルに、宛先をGoogle DriveまたはMicrosoft 365(SharePoint)に設定してください。
  2. 対応する Genie Codeコネクタ を有効にし、求められたら 「Connect 」を選択します。 宛先フォルダに書き込み権限を持つアカウントでサインインしてください。
  3. フォルダURLにGoogleドライブまたはSharePointフォルダへのリンクを貼り付けます。 SharePointでコピーリンクを取得できます。
  4. ファイル名を入力し、ファイルタイプを選択し、「実行」をクリックします。

各実行ごとにファイルが作成されるか、同じ名前の既存ファイルの完全な内容(すべてのExcelワークシートを含む)を置き換えます。 エクスポートは最大2.75 MiBのファイルに収まらなければなりません。 プレビューはファイルを書き込まずに入力データを表示します。 スケジュールされた実行は、実行として実行されるユーザーのアカウントとコネクターの認証情報を使用します。

清潔

フィルター

グラフィカル条件ビルダーを使用して、1 つ以上の条件を満たしているかどうかに基づいて行を分割します。

フィールド Description
状態 条件ごとに、条件に一致する列、条件の種類、および値を選択します。 サポートされている条件の種類:
  • 等しい/等しくない
  • /の一つではありません
  • 含まれている/含まれない
  • で始まる/で始まらない
  • で終わる/ で終わらない
  • より大きい/より小さい
  • はnullである/nullでない

日付列の条件の場合、日付ピッカーは年と月の間の移動をサポートします。
条件が列の値と一致する場合(例えば、 Is one one) 値リストは入力に基づく列の異なる値のサンプルを表示します。 必要に応じて追加値を取得するには 「Load more 」を選択します。

Filter 演算子には 2 つの出力があるため、条件を満たしているかどうかに基づいてデータを分岐できます。

Output Description
Included フィルター条件を満たす行。
除外 条件が null に評価される行を含め、フィルター条件を満たしていない行。

ガードレール

入力データを順序付けられたチェックリストと照らし合わせて検証し、合格した行と失敗した行を区別します。

フィールド Description
チェック 必要な列、行数、Not null、Unique、Accepted、Disallow値、値の範囲、正則表現一致、またはExpressionチェックを追加してください。
チェックが失敗した場合 出力と下流の挙動を制御するために、3つのオプションのいずれかを選びましょう。
  • 警告し、通過した列を続けてください:
    • 下流の執行は継続されます。
    • すべての有効なチェックに合格した行は 「合格」に送られます。
    • 少なくとも1つの有効なチェックに失敗した行は 失敗に回されます。
    • エラーは 失敗した各チェックに対して1行を含み、そのタイプ、重大度、メッセージを含みます。
  • 警告とパス出力のブロック:
    • チェックが失敗した場合、下流の実行は続行されますが、 Passed には行が含まれていません。
    • Failed には 失敗した行が残り、 Errors には 失敗の詳細が残っています。
    • このオプションを使って、パス行の下流処理を防ぎつつ、FailやErrorsの下流処理を可能にします。
  • ワークフローが失敗する場合:
    • チェックに失敗した場合、実行は下流演算子が実行される前に停止します。
    • 合格、失敗、エラーの出力は受け取れません。
    • スケジュールジョブでは、実行が失敗としてマークされ、 ジョブ通知などの設定された失敗処理がトリガーされることがあります。

ガードレールオペレーター自体をプレビューしても、「 ワークフローに失敗 」モードで3つの出力すべてを検査できます。

どちらの警告モードでも出力の行を永続化するには、出力演算子に接続してください。

Limit

指定した行の最大数までしか渡さることによって、行数を制限します。

フィールド Description
最大行数 パススルーする行の最大数を指定します。

Prepare

入力データに対して 1 つ以上のアクションを連結することで、列をクリーンアップして派生させます。 [ + アクションの追加] をクリックし、アクションを選択します。 必要な数のアクションを追加します。 順番に適用されます。

アクション Description
式 自然言語または SQL 式を使用して、新しい列を作成するか、既存の列を上書きします。
多列式 選択した列に {current_column} をプレースホルダーとして1つのSQL式を適用します。 列を置き換えたり、名前の接頭辞や接尾辞を付けた新しい列を作成してください。
変更の種類 列を別のデータ型に変換します。
値の置換 列内の値を検索して置換します。
null を塗りつぶす null 値を定数に置き換えます。
テキスト の大文字と小文字 大文字と小文字を下、上、またはタイトルに変更します。
Trim 一方または両方の端から空白を削除します。
正則表現の置き換え 正規表現パターンに一致するテキストを置き換えます。
抽出 正規表現グループに一致する部分文字列を抽出します。
解析日 文字列を日付またはタイムスタンプに解析します。
JSON の解析 JSONデータから行や列を抽出します。
列の名前を変更する 複数の列に接頭辞、接尾辞、小文字変更、または検索・置換で名前を変更できます。

FormulaとParse JSONを除くすべてのアクションは複数列をサポートしています。

アクションを削除するには、その行にカーソルを合わせ、[ ダッシュ] アイコンをクリックします。

カスタム列

数式アクションによって式エディターが開き、自然言語または SQL コードを使用して新しい列を作成したり、既存の列を上書きしたりできます。 エディターには 2 つの入力ボックスがあり、双方向です。

  • 説明: 列で実行する内容の自然言語の説明を入力します。 DesignerはGenie Codeを使って、以下の対応するコード式を生成します。
  • 式: コードを直接記述または編集する場合は、[式の編集] ボタンをクリックします。 式を編集すると、自然言語の説明が自動的に生成されます。

式式エディタで @ と入力すると、演算子の入力列と組み込みの SQL 関数のメニューを開きます。 @ 後にタイプしてリストをフィルタし、挿入するエントリを選択します。列は名前を挿入し、関数はカーソルを括弧内に置いた状態で呼び出しを挿入します。 同じ @ メニューは、カスタムフィルターや結合条件など他の演算子の式エディタでも利用可能です。

準備アクションは一度に一行ずつ作業します。 他の行の値(例えば合計値や前の行の値)から列を計算するには、 マルチ・ロー数式を使います。

Select

入力データから列を選択、名前変更、並べ替えます。

フィールド Description
列を含めるまたは除外する [ すべての列で開始] または [列なしで開始] を選択し、チェック ボックスを使用して個々の列を含めるか除外します。 列をドラッグして並べ替えます。
列の名前変更 任意の列の横にある [名前の変更 ] フィールドに新しい名前を入力します。
カラムを動的に選択 列を個別に選ぶのではなく、ルールに従って列を選択することで、入力スキーマの変化に応じて出力が適応します。 一致する列を保持するか、一致する列を削除するかを選択し、次に以下の方法で列を一致させます:
  • 列データタイプ:ブール、整数、フロート/ダブル、十進数、文字列、日付、タイムスタンプ、バイナリなど、1つ以上のタイプを選択できます。
  • 列名:正則表現で始まる名前、終わり、含む名前、または一致する名前を一致させます。 大 文字を正確に一致させるために「大文字を区別 」をオンにしてください。
  • 式:各列に対してメタデータに対して評価するブール式を書きます。これは Name、 Type、 IsNumericなどのフィールドを用います。 例えば、 IsNumeric AND Name LIKE '%_id' は名前が _idで終わる数値列と一致します。

並べ替え

1 つ以上の列の行を並べ替えます。

フィールド Description
並べ替え順序 各列 の ASC (昇順) または DESC (降順) を選択します。 [ + 並べ替え式の追加] をクリックして、追加の列で並べ替えます。 並べ替えは、標準の字句の順序に従います。

Unique

入力データから重複する行を削除します。 デフォルトでは、演算子はすべての列で重複を解消します。 代わりに、列のサブセットをキーとして選び、行の順序を並べてどの重複を保持するかを制御できます。

フィールド Description
独自性 すべての列で同じ行を削除するには「 すべての列 」を選択し、「 選択済み列 」はキーとして選んだ列だけに重複する行を削除します。
並べ替え オプション:重複セットごとに1つ以上の列とソート方向を選択して、どの行を保持するかを制御できます。 注文を設定しなければ、オペレーターは最初に遭遇した行を保持します。

コンバイン

Combine

複数のテーブルからデータをセット操作で単一の出力にまとめます。

フィールド Description
セット操作 [ 和集合]、[ 交差]、または [除く] を選択します。
マージ戦略 重複する行を出力から除外する場合は [個別] を 選択し、 重複を含むすべての行を保持する場合は [すべて] を選択します。
名称による組合 ユニオンについては、Advancedの「Union by name」を選択して、ポジションではなく名前で列を照合します。
列の欠落を許可する Unionでは、まず名前でUnionを選択し、次に「Allow missing columns to fill fill fill」を選択し、null値で入力に欠けている列を埋めます。 このオプションがオフの場合、各入力は同じ列セットを含まなければなりません。

Join

入力データセットを列の値に合わせて組み合わせてテーブルをリンクします。

フィールド Description
入力テーブル 結合する 2 つの入力テーブルを選択します。 3つ以上のテーブルを接続するには、 詳細オプションを展開し、「 2つ以上のテーブルを結合」を選択し、各追加テーブルごとに 「入力を追加 」をクリックしてください。
結合条件 2つのテーブルから一致する列を選択して、少なくとも1つの結合条件を指定します。 [ + 結合式の追加] をクリックして、条件を追加します。 オプション:2つのテーブルの間の矢印をクリックしてカスタム結合条件を追加し、その後AI生成の説明を編集するかSQLを書くこと。 3つ以上の入力がある場合、追加された各テーブルは別の入力との関係を定義しなければなりません。
(No changes needed, original translation retained) オフ (既定値) の場合、文字列結合キーは大文字と小文字を区別せずに一致します (先頭と末尾の空白は無視します)。 文字列キーを正確に照合するには、 大文字 と小文字の区別をオンにします。 このオプションは、カスタム結合条件ではなく、結合キーに適用されます。
結合の種類 2つの入力テーブルの場合は、結合タイプを選択します。 既定では、Join 演算子は結果を 3 つの出力に分割します (次のセクションを参照)。 代わりに、 完全結合、 内部結合、 左結合、または 右結合 を選択して、1 つの結合された出力を生成します。 3つ以上の入力がある場合、演算子は設定されたテーブルの関係に従い、内側の結合を用いて単一の結合出力を生成します。
出力列 省略可能: 含める列を選択します。 デフォルトでは、各入力テーブルの列が含まれます。 2つの入力がある場合、右のテーブルから重複する名前には right_ プレフィックスが付与されます。 3つ以上の入力がある場合、重複名には入力順序に基づく接尾辞が付けられ、例えば2つ目の入力には _2 が付けられます。
カスタム式の列 省略可能: 結合された結果に基づいてカスタム式列を追加します。

入力が2つある場合、Joinオペレーターはデフォルトで3つの出力を持つため、結合結果に基づいてワークフローを分岐させることができます。

Output Description
一致しない 右側の入力に一致しない左入力の行。
マッチング 両方の入力で一致する行。
右不一致 左側の入力に一致しない右入力の行。

2つの入力がある場合、特定の ジョインタイプ (フル、インナー、左、右)を選択すると、3つの分割出力の代わりに単一のジョインド出力が生成されます。

Transform

AI 関数

データに対して組み込みの AI 操作を実行します。 構成ウィンドウで、[ 関数の選択 ] を開き、次の表のいずれかの関数を選択します。 各関数は、入力 (列、プロンプト、ラベル、言語など) と出力のオプションをペインで公開します。

機能 Description
ai_analyze_sentiment 入力テキストに対して感情分析を実行します。
ai_classify 指定したラベルを使用して、テキストまたは解析されたドキュメントを分類します。
ai_decide (ベータ) テキストやVARIANTカラム(解析済みの文書出力など)に関する質問に、確率、選択肢、スコアを付けて回答します。
ai_extract 定義したフィールドを使用して、テキストまたは解析されたドキュメントから構造化データを抽出します。
ai_fix_grammar テキストの文法エラーを修正します。
ai_forecast 予測:指定した地平線と頻度までの時系列データ。 ai_forecast は、入力テーブル全体を処理するテーブル値関数です。
ai_gen 入力に対してユーザー指定のプロンプトに応答します。
ai_mask 指定したエンティティをテキストでマスクします (識別解除など)。
ai_parse_document 非構造化ドキュメントからテキスト、テーブル、レイアウトを抽出します。
ai_prep_search 解析されたドキュメント出力を、ベクター検索および取得拡張生成 (RAG) パイプライン用の検索対応チャンクに変換します。
ai_query 汎用タスクとモデルの柔軟性のために、サポートされている任意の基礎モデルを使用してプロンプトに回答します。
ai_similarity 2 つの文字列を比較し、セマンティック類似性スコアを返します。
ai_summarize テキストの概要を生成します。
ai_translate 指定したターゲット言語にテキストを変換します。

各関数の詳細については 、「AI関数を使った非構造化データの変換」をご覧ください。

Aggregate

データをグループ化し、集計値を計算して行を集計します。

フィールド Description
集計方法 列を選択し、集計関数を選択し、出力列の名前を指定します。 [ + 集計の追加] をクリックして、さらに追加します。 対応機能: AVG、 COUNT、 COUNT DISTINCT、 MAX、 MEAN、 MEDIAN、 MIN、 PERCENTILE、 STDDEV、 SUM、 VARIANCE。
グループ化基準 グループ化する列を選択します。 [ + グループ化の追加] をクリックして、さらに追加します。 Group by で使用される列は、自動的に出力に含まれます。

マルチローフォーミュラ

他の行の値から新しい列を計算します。例えば、実行合計、行番号やレコードID、順位、過去と次の値、行ごとの差、移動平均などです。 計算が隣接する行に依存する場合はマルチ ロー式 を用いてください。 現在の行の値だけを使う計算には Prepareを使いましょう。 オペレーターメニューで Record IDを検索すればオペレーターも見つけることができます。

演算子は順序付けられた式のリストを保持します。 式は上から下へと進み、各式は出力に1列ずつ加算します。 もしある式の列名が既存の列と一致すると、その式はその列を上書きします。 リストが空であるか、すべての式がオフになっている場合、演算子は入力を変更せずに通過させます。

すべての式タイプには 新しい列名 フィールドがあります。 カスタム 式 を除くすべての型には Order by と Group byがあり、これらは式が見る行のウィンドウを定義します。

フィールド Description
新しい列名 Required. 式が作成または上書きする列の名前。
並べ替え Required. 1列または複数の列があり、それぞれのソート方向が昇順または降順で、行の順序を決めます。 この順序は、現在の行の前後にどの行が来るかを定義します。 「 Add sort column 」をクリックすると、さらに多くの列を追加できます。
グループ化基準 Optional. 例えば、各顧客の累計額など、異なる値ごとに計算を再開する列などです。 グループ化列を追加しなければ、計算はテーブル全体をカバーします。 「 グループ化カラムを追加 」をクリックすると、さらに多くのカラムを追加できます。

Note

2行以上が同じ 値の順序 を持つ場合、その相対的な順序は固定されないため、各行の実行ごとに異なる結果を数式で返すことがあります。 毎回同じ結果を得るために、各行の位置を一意にする2つ目の列 の順序 付け(例えばID列)を追加してください。

フォーミュラの種類

以下の表は、共有されたフィールドに加えて各式の種類とそのフィールドを説明します。

式の種類 Fields Description
ランニングアグリゲート 集計: 合計 (デフォルト)、 平均、 最小、 最大、 またはカウント。
列:集計する列。
グループの最初の行から現在の行までの累積値を計算します。 同じ 順序 値を持つ行でも、一度に1行ずつ積み重なっています。 カウントは 列の非null値のカウントです。
行番号/ランク モード:
  • 行番号(連続):番号は連続して行を配置します。 これが既定値です。
  • ランク(同点は共有、空白はあります):同じ値 の順序 を持つ行はランクを共有し、次のランクは先に進みます。 例えば、1、1、3。
  • 密集ランク(同点は共有、ギャップなし):同じ値 の順序 を持つ行はランクを共有し、次のランクはスキップしません。 例えば、1、1、2。

開始:各グループの第一列に割り当てられた番号。 後の行はそこから数えていきます。 デフォルトは1で、0と負の数は許可されています。 -2,147,483,648から2,147,483,647までの値は整数列を生成し、それ以外の値は64ビットの整数列を生成します。
出力タイプ: Number (デフォルト)は、 開始時に応じて整数または64ビット整数列として数値を書き込みます。 テキスト はテキストと同じ数字を書きます。
各グループ内の行を「 順番」に基づいて番号付けまたはランク付けします。 例えば1001から始まるIDなど、レコードIDを追加するには 行番号 を使いましょう。
行番号モードでは、列ごとの順序によってどの行がどの番号を割り当てられるかが決まります。 毎回同じ数値を得るには、IDやタイムスタンプなど、各行ごとに一意な列で並べ替えてください。 単一の列が一意でない場合は、複数の列でソートし、例えばすべての列で並べ替え、完全に重複する行だけが同点になります。 ランクモードでは、同点の列は設計上ランクを共有します。
別の行からの値 方向:ラグ(前の列)(デフォルト)またはリード(後の列)。
コラム:読むべきコラム。
行数:現在の行の前後に何行読むか。 既定値は 1 です。
そのような行がなければ、 Null (デフォルト)、 ゼロ、または 現在の行値。
同じグループの別の行から列の値を返します。 もしそのような行がなければ、グループの開始または終わり近くの行の値は設定されます。その行は存在しません。 もし他の行が存在していて値がnullなら、結果はnullとなります。
前の列との違い 列:数値列。
後ろの行数:何行後ろに引くか。 既定値は 1 です。
同じグループの前の行の後 ろ 行の値から値から差し引いた値を返します。 各グループの最初の行には以前の行がないため、その結果はnullとなります。
移動平均 列:数値列。
ウィンドウ(行数):現在の行を含めて平均化する行数。 デフォルトは3です。
同じグループ内の現在の行とその前の行を平均します。 グループの始まり近く、利用可能な行数が少ない場所では、存在する行の平均を計算式で算出します。 例えば、ウィンドウが3の場合、最初の行は自分の値を返し、2行目は最初の2行の平均値を返します。
指数平滑化 列:数値列。
平滑化係数(α):0より大きく、最大でも1の値。 デフォルトは0.3です。 値が高いほど最近の行により密接に追いかけ、低い値ほど滑らか化が強くなります。
指数加重移動平均線を計算します。 各グループの第1行はそれぞれの値を返します。 後の各行はα ×(行の値)+ (1−α) ×(前の行の結果)を返します。 null値の行はスキップされるため、前の行の結果を返します。 平滑化因子1を使うと、列の値は変更されずに返されます。
カスタム式 Expression:Spark SQLの表現式です。 この式タイプには 「順序」 や「 グループ別フィールド」 はありません。 通常は独自の OVER 節を持つウィンドウ関数を書いた式を、他の式タイプがカバーしない部分に対して評価します。 例えば、 SUM(amount) OVER (PARTITION BY customer_id) は各顧客の合計をその顧客の各行に加算します。 式は入力列とリスト内の前の式が作成した列を参照できます。

前の行との差分、移動平均、指数平滑化について、Of列は数値列のみを一覧にします。 行は離れ、 行は戻り、 ウィンドウ(行)は 1以上の整数を受け入れます。 分数は切り捨てられ、1より小さい数、空欄、または数値でない値が1を使います。 許容範囲外 の平滑化係数(α )は0.3を使用します。 開始は 任意の整数を受け入れ、空欄は1を使用します。 「 Start at」に分数を入力すると、項目は 「Value」が範囲外 で「 Apply 」は利用できません。

以下の条件により、オペレーターは実行時にエラーを返します。

  • 例えば、上流演算子が名前を変更したり削除したりした後に入力データに含まれていない Of列 。
  • 小数列での指数平滑化。 小数点値を滑らかにするには、まずPrepare Change型 アクションで列をダブルに変換します。
  • 指数平滑化は非常に小さい平滑化係数で、約0.002未満です。 もっと大きな値を使いましょう。
  • 開始時が2,147,483,647以下の場合、整数列が保持する最大の値である行番号/ランク番号。 価値 のある小さなスタート を使いましょう。

数式の設定

設定パネルで式リストを設定するには、以下のコントロールを使用します:

  • 数式を追加してください:「 数式を追加 」をクリックし、式の種類を選択します。 新しい数式はリストの最後にデフォルトのカラム名(例えば running_total)で表示され、そのエディタが起動します。
  • 式を編集する:リスト内の数式をクリックすると、そのエディターを開きます。 各式は型と customer_running_total = sum(amount) (by customer_id; ordered by order_date)のような一行の要約を示します。 行番号/ランクについては、1以外の開始地点とrecord_id = row_number() from 1001 as text (ordered by order_id)などのテキスト出力タイプも要約で示されます。 編集者はキャンバス作業中も開いたままです。 閉じるには 「閉じる」アイコン をクリックしてください。閉じるアイコン。
  • 式の並べ替え:式を上下にドラッグする。 式は順番に動作するため、その式が使う列の下に式を移動させます。
  • 公式をオフまたはオンに切り替える:公式にカーソルを合わせてスイッチをクリックします。 オフにした公式はリストに残りますが実行されません。
  • 公式を複製または削除する:公式にカーソルを合わせ、 Kebabメニューのアイコンをクリックします。 ケバブメニューの上で、「 複製 」または 「削除」を選択します。

変更を保存するには、[ 適用] をクリックします。 オンになっている数式に必須フィールドが欠けている場合、 Apply は利用できず、その横に完了すべきフィールドや数式を示すメッセージが表示されます。

ビジュアルデータ準備の編集権限がない場合は、数式のリストとその要約は見られますが、開いたり追加したり、並べ替えたり変更したりすることはできません。

例:各顧客の合計と変更の実行

この例では、各順序ごとに1行の orders テーブルを使用しています:

注文ID customer_id 注文日 金額
1 101 2026-01-01 100.0
2 101 2026-01-03 50.0
3 102 2026-01-02 200.0
4 101 2026-01-05 75.0
5 102 2026-01-04 125.0
6 103 2026-01-03 300.0

各顧客の累計金額、前回の注文金額、前回の注文からの変更を計算するには、 orders ソースの後にマルチロー数式演算子を追加し、以下の式を設定します。 各式は順位order_date(昇順)およびグループcustomer_idを使用します。

  1. ランニングアグリゲートの公式を追加します。 新しい列名をcustomer_running_totalに、集計を合計に、Of列をamountに設定します。
  2. 別の行の式から値を追加します。 新しい列名をprevious_amountに、方向を遅延(前の行)に、Of列をamountに、行を1に設定します。 Leave With(そのような行がなければNullに設定)を残します。
  3. 前の行の式から差を加算します。 新しい列名をamount_changeに、Of列をamountに、行を1に戻します。
  4. [適用] をクリックします。

以下の表は、顧客と日付で並べ替えた3つの新しい列での出力を示しており、 order_date は省略されています。

注文ID customer_id 金額 customer_running_total previous_amount amount_change
1 101 100.0 100.0 null 値 null 値
2 101 50.0 150.0 100.0 -50.0
4 101 75.0 225.0 50.0 25.0
3 102 200.0 200.0 null 値 null 値
5 102 125.0 325.0 200.0 -75.0
6 103 300.0 300.0 null 値 null 値

各顧客の最初の注文には以前の注文がないため、 previous_amount と amount_change は無効となります。 previous_amountを0で埋めるには、そのような行がなければゼロに設定します。

ピボット

表形式のデータを 2 方向に整形します。 構成ウィンドウの上部にあるタブを使用して、モードを選択します。

列→行 (ピボット)

ある列の個別の値を新しい列ヘッダーに変換し、別の列の集計値でいっぱいにします。

フィールド Description
列をピボットする 個別の値が新しいヘッダーになる列を選択します。
値と集計 ピボットセルを満たすカラムを選択し、集計関数を選択します。 利用可能な関数は、選択された列のデータ型によって異なります。
  • 数値: AVG、 CONCAT、 COUNT、 FIRST、 LAST、 MAX、 MEAN、 MEDIAN、 MIN、 STDDEV、 SUM、 VARIANCE
  • テキスト、日付、タイムスタンプ: CONCAT、 COUNT、 FIRST、 LAST、 MAX、 MIN
  • ブール: ANY、 CONCAT、 COUNT、 EVERY、 FIRST、 LAST、 NONE
  • 複素、二項、地理空間: COUNT、 FIRST、 LAST

ペインで欠損値を処理する方法 (null やゼロなど) を構成します。

行→列 (ピボット解除)

1 つ以上の列を行に折りたたみます。

フィールド Description
列をピボット解除する ピボット解除する列を選択します。
キー列と値列 出力キーと値の列の名前を設定します。

列を含める

どちらのモードでも、ピボットされた値またはピボット解除された値と共に出力に残っている列を選択し、変換の前に不要な列を削除します。 デザイナーは、ピボット、値、ピボット解除の各ロールに割り当てられていない列から固定 (グループ化) 列を推論します。

Code

Python

入力データに対してカスタム Python (PySpark) を実行します。

フィールド Description
result resultに単一の DataFrame を割り当てると、演算子の出力になります。
inputs["data"] 入力データフレームの一覧 (アップストリーム順)。 演算子の詳細ウィンドウには、各入力の名前が順番に表示されます。 たとえば、 Available inputs: inputs["data"][0] (customers), inputs["data"][1] (sales) です。
Parameters dbutils.widgets.get()などのdbutils.widgets.get("environment")を呼び出して、ビジュアル データ準備パラメーターを参照します。 エディターの上に、演算子を編集用に開くと、デザイナーに例が表示されます。 Lakeflow Designerの「Use paracess」を参照してください。

最小パターンは、最初の入力が存在する場合は使用し、それ以外の場合は空の DataFrame を使用します。

# inputs["data"] is a list of input DataFrames

result = inputs["data"][0] if inputs["data"] else spark.createDataFrame([], "col: string")

そこから、割り当てが終了する前に、selectで DataFrame 操作 (filter、withColumn、result、結合など) を連結したり、resultをinputs["data"]から構築された新しい DataFrame に置き換えたりすることができます。

プレビュー中は、オペレーターの出力が出力ペインに流れ込み、レンダリングしたものや display() を印刷したテキストも含まれます。これにより、実行が終わる前に結果を確認できます。

Pythonプレビューモード

ビジュアルデータ準備を作成すると、Designerは各オペレーターの出力をデータのサンプルに対して継続的にプレビューします。 これらのプレビューは、フル実行と同じようにPythonコードを実行させます。 これは、コードが外部APIを呼び出したり、通知を送信したり、Unity Catalog以外のシステムに書き込みをしたりと副作用が出る場合に問題となります。 通常、これらの副作用が毎回プレビューで発生するのは望ましくありません。

コードで両者を区別するために、Designerが設定したブール値 config["is_preview"]読みましょう:

  • True プレビュープレイ中に副作用を避けられるようにしましょう。
  • False フルラン中、例えば 「走る」 時や予定されたラン中などです。

例えば、副作用を回避してプレビュー以外でのみ動作するようにします:

result = inputs["data"][0] if inputs["data"] else spark.createDataFrame([], "col: string")

# Side effects run only on a full run or scheduled job, not during previews.
if not config["is_preview"]:
    write_results_to_external_system(result)

カスタムオペレーターはこの値を受け取るために is_preview 設定プロパティを宣言しなければなりません。 プレビュー 中の副作用をスキップする。

SQL

他の演算子でカバーされていない変換用のカスタム SQL コードを書き込みます。

フィールド Description
SQL エディター SQL SELECT ステートメントを入力します。 入力演算子の出力を参照するには、その演算子の名前をクエリのテーブル名として使用します。 例えば次が挙げられます。
SELECT COUNT(*)
FROM aggregate_2
WHERE 1 = 1
[ コード] アイコン をクリックして、完全な SQL コード ウィンドウを開き、ステートメントが完全なワークフローにどのように適合するかを確認します。
Parameters ビジュアル データ準備パラメーターを参照するには、 :environmentなどの名前付きパラメーター マーカー構文を使用します。 エディターの上に、演算子を編集用に開くと、デザイナーに例が表示されます。 Lakeflow Designerの「Use paracess」を参照してください。

レポート

HTML

出力ペインに組み込みのCSSやJavaScriptを含むカスタムHTMLページをレンダリングします。 1つ以上のオペレーターをHTMLオペレーターに接続して、そのデータをチャート、表、その他のビューとして表示します。 HTML演算子には出力ポートがないため、その後に他の演算子を接続することはできません。

フィールド Description
HTML HTMLドキュメントやフラグメントをレンダリングする。 <style>や<script>タグを含めることができます。
window.inputs 接続されたオペレーターのデータ一覧で、接続順に並べたものです。 各エントリにはname、columnsリスト、rowsリスト、そしてページがすべての行を受け取らなかった場合にtrueされるtruncated値があります。 オペレーターが接続されていない場合はリストが空なので、読む前にエントリが存在するか確認してください。 オペレーターの詳細パネルは最初の3つの入力のインデックスを示します。 たとえば、 Available to scripts as window.inputs: [0] customers, [1] sales です。
window.parameters 各ビジュアルデータ準備パラメータ名を文字列としてその値にマッピングするオブジェクトです。 Lakeflow Designerの「Use paracess」を参照してください。

例えば、次のページでは、最初の連結演算子がページに何行渡したかを示しています:

<h2>Summary</h2>
<p id="summary">Connect an operator to bind data.</p>
<script>
  const input = window.inputs[0];
  if (input) {
    document.getElementById('summary').textContent = input.rows.length + ' rows available.';
  }
</script>

プレビュー中は、各入力がオペレーターの 「行」スキャン 設定によって制限されます。 ページは合計で最大10,000行を受け取り、接続された入力ごとに均等に分割されます。 データ プレビューで処理する量を制御するをご覧ください。

Visualization

入力データから視覚化を作成し、キャンバスに直接レンダリングします。 視覚化演算子を表形式のデータを生成する任意の演算子に接続し、デザイナーを終了せずに結果をグラフ化します。

視覚エフェクトを構成するには、演算子を開き、[ 視覚化 ] の種類を選択し、列をグラフにマップします。

フィールド Description
Visualization 表示するグラフの種類 ( バー、 エリア、 カウンターなど)。

キャンバスツール

Group

キャンバス上の演算子を視覚的にグループ化します。演算子間のデータ フローは変更されません。これは、視覚的なデータ準備が大きくなる場合や、論理ステージを反映したい場合に役立ちます。

フィールド Description
グループに追加 1 つまたは複数の演算子をグループにドラッグして、その演算子をグループに追加します。
選択範囲から作成 1 つまたは複数の演算子を選択し、ショートカット メニューを開き (右クリック)、[ 新しいグループの作成 ] の順に選択して、選択範囲を新しいグループにラップします。
Name グループにわかりやすい名前を付けます。
オートレイアウトグループ グループのツールバーで「 Autoレイアウトグループ 」をクリックすると、グループ内のオペレーターのみを配置できます。 グループ外のオペレーターは動かない。
最小化/展開 最小化または展開をクリックして、キャンバス上のグループの内容を表示または非表示にします。
有効化/無効化 グループのヘッダーを右クリックして「 無効 」を選んで、グループ内のすべてのオペレーターを実行から除外するか、再度「 有効 にして」再度含めてください。 無効化された演算子は出力行を生み出さないため、下流演算子は有効化するまで空の結果を受け取ります。 また、個別のオペレーターを有効化・無効化することも可能です。 「 オペレーターの名前変更、コピー、削除、無効化」を参照してください。

Note

キャンバスにメモを追加して、後でビジュアル データ準備を開くすべてのユーザーの目的、想定、注意事項、ハンドオフ コンテキストなど、ワークフロー自体を文書化できるようにします。

フィールド Description
Content リッチ テキスト エディターを使用して、キャンバス上のノート コンテンツをインラインで編集します。 プレーンテキストでは不十分な見出し、テキストスタイル、リンク、画像、テーブルを追加できます。 メモは、データが演算子を通過する方法には影響しません。

自分でオペレーターを作成してください

組み込みの演算子がロジックをカバーできない場合は、カスタム演算子を作成しましょう。 カスタムオペレーターはローカルまたは共有されています:

  • ローカル:オペレーターは現在のビジュアルデータ準備に所属しています。 変換を記述すると、Genie Codeが演算子を生成します。 あなたはコードを書くわけではありません。 詳細は「 Genie Codeでローカルカスタムオペレーターを作成する」をご覧ください。
  • 共有:オペレーターは登録されており、他のユーザーや視覚データ作成者が利用できるようにしています。 そのロジックはPythonまたはUnity Catalog関数で、YAMLで説明されています。 「 共有オペレーターの作成」を参照してください。

追加リソース