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

各オペレーターは、その機能のAI生成された説明を表示します。この説明はオペレーターのエディターとしても機能します。説明を編集すると、オペレーターが説明に合わせて再構成されます。
組み込みの演算子タスクに適合しない場合は、 独自の演算子を作成できます。
入力と出力
ソース
DesignerにUnity Catalogテーブルまたはその他のサポートされているソースからデータをインポートします。ソースを選択するには、名前でテーブルまたはファイルを検索するか、カタログとスキーマで参照します。このペインから新しいテーブルを作成することもできます。
テーブルを選択すると、ペインにテーブルの名前、所有者、最終更新時刻が表示されます。ソースを変更するには、「**新しいデータソースを選択**」をクリックします。ソースを変更すると、すべてのダウンストリームオペレーターの出力キャッシュが無効になります。
Unity Catalogメトリクスビューをソースとして使用することもできます。メトリクスビューを選択すると、含めるディメンションと測定値を選択し、Designerがアグリゲートクエリーを生成します。
Unity Catalog のボリュームまたはフォルダー全体をターゲットにすることを含め、データ取り込みオプションの全範囲については、Lakeflow Designer へのデータの取り込み」を参照してください。
データを入力
スプレッドシート形式のエディターに値を入力してテーブルを作成します。個別のソーステーブルを作成せずに、ルックアップ値やテストデータなどの少量の参照データを追加するには、このオペレーターを使用します。
フィールド | 説明 |
|---|---|
テーブルデータ | データをテーブルとして入力してください。最初の行は列ヘッダーを定義し、残りの行はデータです。Designerは、各列のデータ型をその値から推測します。 |
出力
設計者からデータをエクスポートします。出力演算子は、結果を Unity Catalog テーブルに書き込んだり、マテリアライズドビューとして公開したり、Unity Catalog ボリューム、Google Drive、または SharePoint 内のファイルに書き込んだりできます。 Output type で、 Table 、 マテリアライズドビュー 、または File を選択します。ファイル出力の場合、 Destination で書き込み先を選択します。
出力タイプ | 説明 |
|---|---|
テーブル | 結果をマネージドUnity Catalogテーブルに書き込みます。 **テーブル名**と**出力場所** (カタログおよびスキーマ)を設定し、**書き込みモード**を選択してください。 |
マテリアライズドビュー | ビジュアルデータ準備の実行時に更新されるUnity Catalogのマテリアライズドビューとして、結果を発行します。 |
ファイル | 結果をCSV、Excel、またはJSONとして書き込みます。 [送信先] 、 [ファイルの種類] 、 [ファイル名] を選択します。 |
Table 出力または Unity Catalog ボリューム内の File 出力の場合、 Write mode を選択します。
書き込みモード | 説明 |
|---|---|
上書き | 既存のコンテンツを現在のランの結果に置き換えます。これがdefaultです。 |
追加 | 現在のラン結果を既存の行に追加します。 |
マージ | 指定した Merge キーに一致することで、ターゲット テーブルに行をアップサートします。テーブル出力で使用できます。 |
ラン をクリックして、ビジュアルデータ準備を実行し、結果を書き込みます。テーブル出力の場合、テーブルが存在しないと、オペレーターが作成します。スケジュールされたランは、同じ書き込みモードを使用して宛先に書き込みます。
出力 演算子が Unity Catalog テーブル、マテリアライズドビュー、またはボリュームファイルを書き込んだら、送信ポートを接続してワークフローを続行します。テーブル、マテリアライズドビュー、およびプレーンな単一ファイル出力の場合、送信ポートは 出力 演算子が書き込んだ永続アセットから直接読み取ります。分割出力、Excel範囲書き込み、およびヘッダーなしファイルの場合、送信ポートは入力行をそのまま渡します。
Unity Catalog ボリュームへのファイル出力の場合、 詳細 を展開して次のオプションを構成します。
- 一意の値で分割 :個別の一意の値ごとに1つのファイルを書き込む列を選択します。Excel出力の場合は、代わりに各値を1つのブック内の個別のワークシートに書き込むことができます。1つのランで最大50個のファイルまたはワークシートを作成できます。
- シート名 :Excel出力の場合は、対象のワークシートを設定します。
- ヘッダー行を含める :CSVまたはExcel出力に列名を含めます。
- セル範囲 : [上書き] モードでの Excel 出力の場合は、開始セルとオプションの終了セルを設定します。Designer は範囲外の書式設定を保持し、データが固定範囲に収まらない場合はランを失敗させます。セル範囲を 個別の値による分割 と組み合わせることはできません。
Overwrite モードで出力が複数のファイルに分割される場合、Designer は生成された名前パターンに一致する既存のファイルを削除します。これには、ボリューム フォルダー内で同じパターンを持つ手動で作成されたファイルが含まれる場合があります。
ファイルに書き込むには、GoogleドライブまたはSharePointに:
- Output type を File に設定し、 Destination を Google Drive または SharePoint 用の Microsoft 365 に設定します。
- 対応する Genie Code コネクタを有効にし、プロンプトが表示されたら Connect を選択します。宛先フォルダへの書き込みアクセス権を持つアカウントでサインインします。
- フォルダ URL に、Google Drive または SharePoint フォルダへのLinkを貼り付けます。SharePoint で、 Linkをコピー を使ってLinkを取得します。
- File name を入力し、 File type を選択して、 ラン をクリックします。
各ランはファイルを作成するか、同じ名前の既存ファイルの全コンテンツ(すべてのExcelワークシートを含む)を置き換えます。エクスポートは、最大2.75 MiBの1つのファイルに収まる必要があります。プレビューでは、ファイルを書き込まずに入力データを表示できます。スケジュールされたランは、実行ユーザーのアカウントとコネクターの資格情報を使用します。
クリーン
フィルター
グラフィカルな条件ビルダーを使用して、1 つ以上の条件を満たすかどうかに基づいて行を分割します。
フィールド | 説明 |
|---|---|
条件 | 各条件について、条件付きで一致させる*列*、*条件タイプ*、および*値*を選択します。サポートされている条件タイプ:
日付列の条件の場合、日付ピッカーは年と月の間を移動するのに対応しています。 条件が列の値と一致する場合(例: Is one of )、値リストには、入力に基づいてその列の一意の値のサンプルが表示されます。 Load more を選択して、必要に応じて追加の値をフェッチします。 |
条件を組み合わせて複雑なフィルタを整理するには、
- 「 条件を追加 」をクリックし、列、演算子、値を設定します。
- すべて を選択してすべての条件が一致する必要があるようにするか、 いずれか を選択して少なくとも1つの一致が必要であるようにします。
- 条件をネストするには、条件の
( 条件オプション ) を開き、 グループに変換 を選択します。グループ内に条件を追加し、そのグループに対して すべて または いずれか を選択します。たとえば、行がリージョン条件といくつかのステータス条件のいずれかに一致する必要があります。
- 適用 をクリックしてフィルターを適用します。
条件を逆転させるには、その ( 条件オプション )を開き、 条件を反転 を選択します。グループの入れ子を解除するには、グループのメニューを開き、 グループ解除 を選択します。
条件を並べ替えるには、 ( 条件の並べ替え ) をクリックし、条件をドラッグして配置し、「 並べ替え完了 」をクリックします。
フィルター演算子には 2 つの出力があり、条件を満たすかどうかに基づいてデータをBranchできます。
出力 | 説明 |
|---|---|
含まれるもの | フィルター条件を満たす行。 |
除外 | フィルター条件を満たさない行。これには、条件がnullと評価される行も含まれます。 |
ガードレール
受信データを順序付けられたチェックリストに照らして検証し、合格した行と不合格の行を分離します。
フィールド | 説明 |
|---|---|
チェック | 必須列 、 行数 、 NULL 以外 、 一意 、 許容値 、 許可されない値 、 値の範囲 、 正規表現一致 、または 式 のチェックを追加します。 |
チェックが失敗した場合 | 出力および下流の動作を制御するには、3つのオプションから1つを選択します。 |
-
警告を表示し、合格した行で続行 :
- 下流の実行が継続されます。
- 有効なすべてのチェックに合格した行は、 Passed に送信されます。
- 有効になっているチェックのいずれか1つで失敗した行は、 [Failed] に送信されます。
- Errors には、失敗したチェックごとに1つの行が含まれ、その種類、重大度、メッセージが示されます。
-
合格した出力に対し警告およびブロックする :
- チェックが失敗した場合、下流の実行は継続されますが、 Passed には行が含まれません。
- 失敗 には失敗した行が引き続き含まれ、 エラー には失敗の詳細が引き続き含まれます。
- 合格した行の下流処理を防止しながら、 Failed および Errors の下流処理を許可するには、このオプションを使用します。
-
ワークフローを失敗させる :
- チェックが失敗した場合、下流の演算子が実行される前に実行が停止します。
- これらは Passed 、 Failed 、または Errors の出力を受け取りません。
- スケジュールされたジョブでは、ランが失敗としてマークされ、ジョブ通知など、設定済みの失敗処理がTriggerされる可能性があります。
Guardrailsオペレーター自体をプレビューする場合でも、 Fail the workflow モードで3つの出力すべてを検査できます。
いずれかの警告モードで出力から行を永続化するには、それを Output 演算子に接続します。
制限
指定した最大行数までしか処理を通過させないことで、行数を制限します。
フィールド | 説明 |
|---|---|
最大行数 | 渡す行の最大数を指定してください。 |
準備
入力データに1つ以上のアクションを連結することで、列をクリーンアップして導出します。 「+ Add action」をクリックし、アクションを選択します。 必要なだけアクションを追加します。それらは順番に適用されます。
操作 | 説明 |
|---|---|
公式 | 自然言語またはSQL式を使用して、新しい列を作成するか、既存の列を上書きします。 |
複数列の数式 | 選択した列に1つのSQL式を適用し、 |
タイプを変更 | 列を別のデータ型に変換します。 |
値を置き換えます | 列の値を検索および置換 |
null値を埋める | Null値を定数で置き換えます。 |
テキストの大文字・小文字 | 大文字、小文字、またはタイトルケースに変更します。 |
空白を削除 | 両端または片方から空白を削除します。 |
正規表現置換 | 正規表現パターンに一致するテキストを置換します。 |
抽出(Extract) | 正規表現グループに一致する部分文字列を抽出。 |
日付を解析 | 文字列を日付やTimestampに変換します。 |
JSON 構え | JSONデータから行または列を抽出します。 |
列の名前を変更 | 複数の列の名前を、接頭辞、接尾辞、大文字小文字の変更、または検索と置換によって変更します。 |
数式 および JSONを解析 以外のすべての操作は、複数の列をサポートしています。
アクションを削除するには、その行にカーソルを合わせ、 をクリックします。
カスタム列
「**Formula**」アクションにより、式エディターが開き、自然言語またはSQLコードを使用して新しい列を作成したり、既存の列を上書きしたりできます。エディターには2つの入力ボックスがあり、双方向です:
- 説明 : カラムに何をさせたいのかを自然言語で説明します。DesignerはGenie Codeを使用して、下の対応するコード式を生成します。
- 式 : コードを直接記述または編集する場合は、式の編集ボタンをクリックします。式を編集すると、自然言語による説明が自動的に生成されます。
式エディターで @ と入力すると、演算子の入力列と組み込み SQL 関数のメニューが開きます。@ の後に入力してリストをフィルタリングし、エントリを選択して挿入します。列を選択するとその名前が挿入され、関数を選択すると括弧内にカーソルが置かれた状態で関数呼び出しが挿入されます。同じ @ メニューは、カスタムフィルタや結合条件など、他の演算子の式エディタでも使用できます。
準備アクションは一度に1行ずつ機能します。ランニングトータルや前の行の値など、他の行の値から列をコンピュートするには、マルチ行計算式を使用します。
選択
入力データから列を選択、名前変更、並べ替えを行います。
フィールド | 説明 |
|---|---|
列を含める/除外する | **すべての列を含めて開始**または**列なしで開始**を選択し、チェックボックスを使用して個々の列を含めるか除外します。列をドラッグして並べ替えます。 |
列の名前を変更する | 任意の列の横にある [名前の変更] フィールドに、新しい名前を入力します。 |
列を動的に選択 | 列を個別に選択するのではなく、ルールに基づいて列を選択することで、入力スキーマの変更に合わせて出力が適応するようにします。 一致する列を保持 するか、 一致する列を削除 するかを選択し、次の基準で列を一致させます:
|
ソート
1つまたは複数の列で行を順序付けします。
フィールド | 説明 |
|---|---|
並べ替え順 | 各列に対して、 ASC (昇順)または DESC (降順)を選択します。追加の列で並べ替えるには、 + ソート式を追加 をクリックします。並べ替えは標準の辞書式順序に従います。 |
ユニーク
入力データから重複行を削除します。defaultでは、この演算子はすべての列を対象に重複排除を行います。代わりに、列のサブセットをキーとして選択し、行を並び替えることで、どの重複行を保持するかを制御できます。
フィールド | 説明 |
|---|---|
一意の基準: | すべての列で同一の行を削除するには [すべての列] を選択し、キーとして選択した列のみで重複している行を削除するには [選択した列] を選択します。 |
並べ替え | オプション:1 つ以上の列と並べ替え順序を選択して、重複セットごとにどの行を保持するかを制御します。順序を設定しない場合、演算子は最初に見つかった行を保持します。 |
結合
組み合わせる
セット操作を使用して、複数のテーブルからのデータを単一の出力に結合します。
フィールド | 説明 |
|---|---|
設定操作 | Union 、 Intersect 、または Except を選択してください。 |
マージ戦略 | 出力から重複する行を除外するには**Distinct**を選択し、重複する行を含むすべての行を保持するには**All**を選択します。 |
Union by name | Union では、位置ではなく名前別に列を一致させるために、 [Advanced] の下にある [Union by name] を選択します。 |
Allow missing columns | Union では、まず [Union by name] を選択し、次に [Allow missing columns] を選択して、入力から欠落している列を null 値で埋めます。このオプションがオフの場合、各入力には同じ一連の列が含まれている必要があります。 |
結合
一致する列値に基づいて入力データセットを結合することにより、テーブルの Link を作成します。
フィールド | 説明 |
|---|---|
入力テーブル | 結合する 2 つの入力テーブルを選択します。3 つ以上のテーブルを結合するには、 [Advanced options] を展開し、 [Join more than three tables] を選択して、追加のテーブルごとに [Add input] をクリックします。 |
結合条件 | 2 つのテーブルから一致する列を選択して、少なくとも 1 つの結合条件を指定します。 + Add join expression をクリックして、さらに条件を追加します。オプション: 2 つのテーブル間の矢印をクリックしてカスタム結合条件を追加し、AI 生成の説明を編集するか SQL を記述します。3 つ以上の入力がある場合、追加された各テーブルは、別の入力に対する 1 つの関係を定義する必要があります。 |
大文字と小文字の区別 | オフの場合(default)、文字列結合キーは大文字と小文字を区別せずに照合されます(先頭と末尾の空白は無視されます)。文字列キーを完全に照合するには、「大文字と小文字を区別」をオンにします。このオプションは、カスタム結合条件ではなく、結合キーに適用されます。 |
結合タイプ | 2つの入力テーブルについて、結合タイプを選択します。defaultでは、Join演算子は結果を3つの出力に分割します(次のセクションを参照してください)。代わりに Full join 、 Inner join 、 Left join 、または Right join を選択して、単一の結合された出力を作成します。3つ以上の入力がある場合、演算子は構成されたテーブル関係に従い、内部結合を使用し、単一の結合された出力を生成します。 |
出力列 | オプション: 含める列を選択します。defaultでは、各入力テーブルの列が含まれます。2つの入力がある場合、右側のテーブルからの重複する名前には |
カスタム式列 | オプション: 結合された結果に基づいて、カスタム式列を追加します。 |
2つの入力がある場合、Joinオペレーターにはdefaultで3つの出力があるため、結合結果に基づいてワークフローをbranchさせることができます。
出力 | 説明 |
|---|---|
一致しないまま | 右側の入力に一致するものがない左側の入力の行。 |
一致しました | 両方の入力にわたって一致する行。 |
右側の不一致 | 左側の入力に一致しない右側の入力の行。 |
2 つの入力がある場合、特定の [Join type] (full、inner、left、または right) を選択すると、3 つの分割された出力の代わりに単一の結合された出力が生成されます。
変換
AI機能
組み込みのAI操作をデータ上で実行します。設定ペインで、「関数の選択」を開き、以下の表のいずれかの関数を選択します。各関数は、入力用(例:列、プロンプト、ラベル、または言語)および出力用として、ペインにオプションを提供します。
関数 | 説明 |
|---|---|
| 入力テキストに対して感情分析を実行します。 |
| ユーザーが指定したラベルを使用して、テキストまたは解析済みドキュメントを分類します。 |
| テキスト列またはVARIANT列に関する質問に回答します(解析されたドキュメントの出力、確率、選択肢、スコアなど)。 |
| 定義したフィールドを使用して、テキストまたは解析済みドキュメントから構造化データを抽出します。 |
| テキスト内の文法的な誤りを修正します。 |
| 指定した予測期間と頻度まで時系列データを予測します。 |
| 入力内容に対して、ユーザーが指定したプロンプトに回答します。 |
| テキスト内の特定のエンティティをマスクします(たとえば、匿名化のため)。 |
| 非構造化ドキュメントからテキスト、表、Layoutを抽出します。 |
| 解析されたドキュメントの出力を、ベクトル検索と検索拡張生成(RAG)パイプライン用の検索に対応したチャンクに変換します。 |
| 汎用的なタスクとモデルの柔軟性のために、サポートされている任意の基盤モデルを使用してプロンプトに応答します。 |
| 2つの文字列を比較し、意味的な類似度スコアを返します。 |
| テキストの要約を生成します。 |
| 指定した言語にテキストを翻訳します。 |
クリーンな出力 を選択すると、 ai_classify 、 ai_extract 、 ai_decide 、または ai_query からの応答値をダウンストリームオペレーターで使用できます。 ai_query の場合、関数が failOnError => false を使用するときにクリーンアップが適用されます。このオプションは、 ai_forecast などのテーブル値関数では使用できません。他の関数出力は変更されません。
answerという名前の各クリーニング済み出力について、演算子は以下を返します。
answer: クリーニングされた回答。フィールドが 1 つのai_extractまたは質問が 1 つのai_decideの場合、これは型指定された値です。複数のフィールドまたは質問は、構造体を生成します。answer_ai_error:関数が失敗したときはエラーメッセージ、成功したときは null です。失敗した行には null の回答が含まれます。answer_raw:検証またはトラブルシューティングのために、メタデータを含む完全なレスポンスを表示します。
各関数の詳細については、AI関数を使用した非構造化データの変換を参照してください。
集計
データをグループ化し、集計値を計算することで、行を要約します。
フィールド | 説明 |
|---|---|
集計条件 | + 集計の追加 をクリックし、1つ以上の列を選択してから、集計関数を選択します。複数の列を選択すると、列ごとに個別の集計行が作成されます。各行を編集して、関数または出力名を調整します。サポートされている関数: |
グループ | グループ化する列を選択してください。[ + グループ化を追加 ] をクリックします。 Group by で使用される列は、自動的に出力に含まれます。 |
複数行の数式
ランニング・トータル、行番号とレコードID、ランク、以前の値と次の値、行ごとの差分、移動平均など、他の行の値から新しい列をコンピュートします。計算が隣接する行に依存する場合は、 複数行の数式 を使用します。現在の行の値のみを使用する計算には、準備を使用してください。演算子メニューで Record ID を検索して演算子を見つけることもできます。
演算子は、式の順序付きリストを保持します。数式は上から下へランし、各数式によって出力に1つの列が追加されます。数式の列名が既存の列と一致する場合、その数式によって当該列が上書きされます。リストが空であるか、すべての数式がオフになっている場合、オペレーターは入力をそのまま渡します。
すべての数式タイプには、 新しい列名 フィールドがあります。 カスタム式 以外のすべてのタイプには、 並べ替え および グループ化 フィールドも含まれており、数式が参照する行のウィンドウを定義します。
フィールド | 説明 |
|---|---|
新しい列名 | 必須。計算によって作成または上書きされる列の名前。 |
並べ替え | 必須。行の順序を設定する1つ以上の列。各列には、 昇順 または 降順 のソート方向が設定されます。順序によって、どの行が現在の行の前または後になるかが定義されます。 [ソート列の追加] をクリックして、列を追加します。 |
グループ | オプション。各個別値の計算をリスタートする列(例:各顧客のランニングトータル)。グループ化列を追加しない場合、計算はテーブル全体に対して実行されます。 グループ化列の追加 をクリックして、他の列を追加します。 |
2つ以上の行が同じ Order by 値を持つ場合、それらの相対的な順序は固定されないため、数式はランごとにそれらの行に対して異なる結果を返す可能性があります。すべてのランで同じ結果を得るには、各行の位置を一意にする2番目の Order by 列(ID列など)を追加します。
数式の型
次の表に、共有フィールドに加えて、各数式タイプとそのフィールドの説明を示します。
数式タイプ | フィールド | 説明 |
|---|---|---|
実行中の集計 | 集計 : 合計 (default)、 平均 、 最小 、 最大 、または カウント 。 列の : 集計する列。 | グループの最初の行から現在の行までの累積値をコンピュートします。同じ Order by の値を持つ行も、一度に1行ずつ累積されます。 Count は、列のNULL以外の値をカウントします。 |
行番号 / 順位 | Mode :
起動位置 : 各グループの最初の行に与えられる番号。以降の行は、そこからカウントアップされます。defaultは1で、0と負の数も指定できます。-2,147,483,648から2,147,483,647の値は整数列を作成し、他の値は64ビット整数列を作成します。 出力タイプ : Number (default) は、 Start at に応じて、数値を整数または64ビット整数列として書き込みます。 Text は、同じ数値をテキストとして書き込みます。 | Order by に基づいて、各グループ内の行に番号またはランクを付けます。 行番号 を使用して、レコードIDを追加します(例: 1001から始まるID)。 行番号 モードでは、 オーダーバイ 列によって各行の番号が決定されます。すべての実行で同じ番号を取得するには、IDやTimestampなど、各行で一意の列で並べ替えます。単一の列が一意でない場合は、すべての列など、複数の列で並べ替えて、完全に重複する行のみが同順位になるようにします。ランクモードでは、同順位の行は設計上、同じランクを共有します。 |
別の行の値 | 方向 : Lag (前の行) (default) または Lead (次の行) 。 列の : 読み込む列。 Rows away :現在の行の前または後の何行を読み取るか。defaultは1です。 If no such row : Null (default)、 Zero 、または Current row value 。 | 同じグループの別の行から列の値を返します。 そのような行がない場合 は、グループの起動または終了に近い行の値を設定します。これは、他の行が存在しないためです。他の行が存在するが、その値がnullである場合、結果はnullになります。 |
前の行との差分 | 列の : 数値列。 過去の行 : 減算する過去の行数。defaultは1です。 | 現在の行の値から、同じグループ内の Rows back 行前の値を引いた値を返します。各グループの最初の行には前の行がないため、その結果はnullになります。 |
移動平均 | 列の : 数値列。 ウィンドウ(行) :現在の行を含む平均を計算する行数。defaultは 3です。 | 現在の行と、同じグループのそれより前の行の平均を計算します。グループの先頭近くで使用できる行が少ない場合、この数式は存在する行の平均を計算します。たとえば、ウィンドウ・サイズが3の場合、最初の行はその値を返し、2番目の行は最初の2行の平均を返します。 |
指数平滑化 | 列の : 数値列。 スムージング係数 (α) :0より大きく1以下の値。defaultは0.3です。値が大きいほど最近の行に近くなり、値が小さいほど平滑化が強くなります。 | 指数平滑移動平均をコンピュートします。各グループの最初の行は、それ自体の値を返します。それ以降の各行は、α × (その行の値) + (1 − α) × (前の行の結果) を返します。null値を持つ行はスキップされるため、前の行の結果が返されます。平滑化係数1は、列の値を変更せずに返します。 |
カスタム式 | 式 : Spark SQL式。この数式タイプには、 順序 フィールドや グループ フィールドはありません。 | 記述する式(通常は独自の「 |
前の行からの差分 、 移動平均 、および 指数平滑法 の場合、 列の には数値列のみが一覧表示されます。 行数(後) 、 行数(前) 、および ウィンドウ(行) は、1以上の整数を受け取ります。小数は切り捨てられ、1より小さい数値、空のフィールド、または数値ではない値には1が使用されます。許可された範囲外の 平滑化係数(α) には0.3が使用されます。 開始位置 は任意の整数を受け取り、空のフィールドには1が使用されます。 開始位置 に小数を入力すると、フィールドに 値が範囲外です と表示され、 適用 は使用できません。
次の条件では、オペレーターのラン時にエラーが発生します。
- 入力データにない Of column 。例えば、上流の演算子がそれを名前変更または削除した後。
- Decimal列の 指数平滑化 。Decimal値を平滑化するには、最初に データ型の変更 アクションなどで列をDoubleに変換してください。
- 0.002より小さい非常に小さい平滑化係数を持つ 指数平滑化 。より大きな値を使用してください。
- Start at が2,147,483,647以下の場合、 Row number / rank の番号付けが整数列が保持できる最大値である2,147,483,647を超えます。より小さい Start at 値を使用します。
数式の構成
設定ペインで数式リストを設定するには、次のコントロールを使用します。
- 数式の追加 : [数式の追加] をクリックし、数式のタイプを選択します。新しい数式は、
running_totalのようなdefault列名でリストの最後に追加され、そのエディターが開きます。 - 数式の編集 :リストの数式をクリックしてエディターを開きます。各数式には、タイプと
customer_running_total = sum(amount) (by customer_id; ordered by order_date)のような1行の概要が表示されます。 行番号 / ランク の場合、概要には1以外の 開始位置 とrecord_id = row_number() from 1001 as text (ordered by order_id)のような テキスト 出力タイプも表示されます。エディターは、キャンバスで作業している間も開いたままになります。閉じるには、閉じるアイコンをクリックします。
- 数式の並べ替え : 数式を上にドラッグするか下にドラッグします。数式は順番にランされるため、その列を使用する数式よりも下に数式を移動します。
- 数式を無効または有効にする : 数式にカーソルを合わせ、スイッチをクリックします。無効になっている数式はリストに残りますが、実行されません。
- 数式の複製または削除 :数式にマウスカーソルを合わせ、
ケバブメニューをクリックして、 複製 または 削除 を選択します。
変更を保存するには、 適用 をクリックします。有効になっている数式に必要なフィールドがない場合、 適用 は使用できず、横にメッセージが表示されて完了する必要のあるフィールドまたは数式が示されます。
視覚的データ準備を編集する権限がない場合、数式のリストとそれらの概要を参照することはできますが、それらを開いたり、追加したり、並べ替えたり、変更したりすることはできません。
例:顧客ごとの累計と変更
この例では、各注文に1行が含まれる orders テーブルを使用します。
order_id | customer_id | order_date | 金額 |
|---|---|---|---|
1 | 101 | 2026/01/01 | 100.0 |
2 | 101 | 2026年1月3日 | 50.0 |
3 | 102 | 2026/01/02 | 200.0 |
4 | 101 | 2026年1月5日 | 75.0 |
5 | 102 | 2026年1月4日 | 125.0 |
6 | 103 | 2026年1月3日 | 300.0 |
各顧客の累計、前回の注文金額、前回の注文からの変化をコンピュートするには、 orders ソースの後に「複数行の数式」オペレーターを追加し、次の数式を構成します。各数式は、 order_date の Order by ( 昇順 ) と customer_id の グループ by を使用します。
- 累積集計 式を追加します。 新しい列名 に
customer_running_total、 集計 に 合計 、 対象の列 にamountを設定します。 - 別の行からの値 式を追加します。 新しい列名 を
previous_amountに設定し、 方向 を ラグ (前の行) に設定し、 列の をamountに設定し、 離れた行 を 1 に設定します。 このような行がない場合 は Null のままにします。 - 前の行との差分 の数式を追加してください。 新しい列名 を
amount_changeに、 対象列 をamountに、 遡る行数 を1に設定してください。 - [適用] をクリックします。
次の表は、order_dateを省略して、顧客と日付でソートされた3つの新しい列の出力を示しています:
order_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はnullになります。代わりにprevious_amountを0で埋めるには、 該当する行がない場合 を ゼロ に設定します。
ピボット
表形式データを双方向に整形します。構成ペインの上部にあるtabを使用して、モードを選択してください。
行 → 列 (ピボット)
1つの列にある異なる値を新しい列ヘッダーに変換し、別の列からの集計値で埋めます。
フィールド | 説明 |
|---|---|
ピボット列 | 一意の値が新しいヘッダーになる列を選択します。 |
値&集計 | ピボットされたセルに値が埋め込まれる列を選択し、集約関数を選択します。利用可能な関数は、選択した列のデータ型によって異なります。
ペインで利用できる場合は、欠損値の処理方法(null またはゼロなど)を構成します。 |
列 → 行 (アンピボット)
1つまたは複数の列を行に折りたたみます。
フィールド | 説明 |
|---|---|
列をアンピボット | アンピボットする列を選択してください。 |
キーと値の列 | 出力キーと値の列の名前を設定します。 |
列を含める
どちらのモードでも、ピボットまたはアンピボットされた値とともに、出力に残す列を選択し、変換前に不要な列は削除します。デザイナーは、ピボット、値、またはアンピボットのロールに割り当てていない列から、固定 (グループ化) 列を推測します。
コード
Python
入力データに対してカスタム Python (PySpark) を実行します。
フィールド | 説明 |
|---|---|
| 単一のDataFrameを |
| 入力 DataFrames のリストを、アップストリームの順に示します。オペレーターの詳細ペインには、各入力の名前が順番に表示されます。たとえば、 |
パラメータ |
|
最小限のパターンとしては、入力値が存在する場合は最初の入力値を使用し、存在しない場合は空のDataFrame使用する方法があります。
# inputs["data"] is a list of input DataFrames
result = inputs["data"][0] if inputs["data"] else spark.createDataFrame([], "col: string")
そこから、代入が終了する前にresultに対して DataFrame の操作 (例えば、 select 、 filter 、 withColumn 、または結合) を連鎖させたり、 result inputs["data"]から構築された新しい DataFrame に置き換えたりすることができます。
プレビュー中、演算子の出力は生成されると同時に出力ペインにストリームされます。これには display() でレンダリングしたものや出力したテキストが含まれるため、ランが終了する前に結果を確認できます。
Python プレビューモード
ビジュアルデータの準備を作成する際、Designerはデータのサンプルを使用して、各演算子の出力を継続的にプレビューします。これらのプレビューは、フルランと同じ方法でPythonコードを実行します。これは、外部APIの呼び出し、通知の送信、Unity Catalog外のシステムへの書き込みなど、コードに副作用がある場合に問題となります。通常、プレビューのたびにそのような副作用が発生することは望ましくありません。
コードで両者を区別できるようにするため、Designer が設定する Boolean 値である 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コードを作成します。
フィールド | 説明 |
|---|---|
SQLエディタ | SQL SQL
|
パラメータ | ビジュアルデータの準備のパラメーターを参照するには、 |
レポート
HTML
組み込みのCSSとJavaScriptを含むカスタムHTMLページを出力ペインにレンダリングします。1つ以上のオペレーターをHTMLオペレーターに接続して、データをチャート、テーブル、または他のビューとして表示します。HTMLオペレーターには出力ポートがないため、その後に他のオペレーターを接続することはできません。
フィールド | 説明 |
|---|---|
HTML | レンダリングするHTMLドキュメントまたはフラグメント。 |
| 接続された演算子のデータのリスト。接続した順序でリストされます。各エントリには |
| 各ビジュアルデータ準備のパラメーター名と、それに対応する値を文字列としてマッピングするオブジェクト。「Lakeflow Designerでパラメーターを使用する」を参照してください。 |
たとえば、次のページは、最初に接続されたオペレーターがページに渡す行数を示しています:
<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行が受信され、接続された入力間で均等に分割されます。プレビューで処理するデータの量を制御するを参照してください。
可視化
入力データから可視化を作成し、それをキャンバスに直接レンダリングします。表形式データを生成する任意の演算子に可視化演算子を接続し、Designerを離れることなく結果をグラフ化します。
ビジュアライゼーションを構成するには、演算子を開き、 ビジュアライゼーション の種類を選択してから、列をチャートにマップします。
フィールド | 説明 |
|---|---|
可視化 | レンダリングするチャートの種類は、**棒グラフ**、**面グラフ**、または**カウンター**などです。 |
キャンバスツール
グループ
キャンバス上の演算子を視覚的にグループ化し、データの流れを変更することなく、視覚的なデータ準備が大規模になる場合や論理的な段階を反映したい場合に役立ちます。
フィールド | 説明 |
|---|---|
グループに追加します | 1つまたは複数のオペレーターをグループにドラッグして追加してください。 |
選択から作成 | 1つまたは複数の演算子を選択し、ショートカットメニューを開いて(右クリック)、 [新しいグループを作成] を選択して、選択範囲を新しいグループにまとめます。 |
名前 | グループに説明的な名前を付けます。 |
グループの自動Layout | グループのツールバーで、 オート Layout グループ をクリックして、グループ内の演算子のみを配置します。グループの外側の演算子は移動しません。 |
最小化 / 拡大 | キャンバスでグループのコンテンツを表示または非表示にするには、**最小化**または**拡大**をクリックします。 |
有効/無効 | グループのヘッダーを右クリックし、 「無効化」 を選択してグループ内のすべての演算子をランから除外するか、 「有効化」 を選択して再び含めます。無効な演算子は出力行を生成しないため、有効にするまでダウンストリームの演算子は空の結果を受け取ります。個々の演算子を有効または無効にすることもできます。演算子の名前変更、コピー、削除、および無効化を参照してください。 |
注記
キャンバスにメモを追加して、ワークフロー自体(目的、前提条件、注意事項、視覚的なデータ準備を後で開く人への引き渡しコンテキスト)を文書化できるようにします。
フィールド | 説明 |
|---|---|
コンテンツ | リッチテキストエディターを使用して、キャンバスでメモの内容をインライン編集します。プレーンテキストでは不十分な場合、見出し、テキストのスタイル設定、Link、画像、テーブルを追加できます。ノートは、オペレーターを介したデータの流れに影響しません。 |
独自の演算子を作成する
ロジックをカバーする組み込み演算子がない場合は、カスタム演算子を作成します。カスタム演算子はローカルまたは共有になります。
- ローカル :演算子は現在の視覚的データ準備に属します。変換を記述すると、Genie Codeが演算子を生成します。コードを記述する必要はありません。Genie Codeによるローカルカスタム演算子の作成を参照してください。
- 共有 : オペレーターは登録されているため、他のユーザーやビジュアルデータの準備で使用できます。そのロジックはPythonまたはUnity Catalog関数であり、YAMLで説明されています。共有オペレーターの構築」を参照してください。