Developer toolchainPalantir 拡張機能 for Visual Studio Codeトランスフォームのプレビュー

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

トランスフォームのプレビュー

Visual Studio Code 用の Palantir 拡張機能を使用すると、ローカルの Visual Studio Code 環境や Palantir プラットフォーム内の VS Code ワークスペースから直接 Python トランスフォームをプレビューできます。この機能により、コードエディタを終了することなくトランスフォームを迅速にテストできます。現在、この機能は Python トランスフォームのみに利用可能です。

プレビューの開始

ローカルの Visual Studio Code 環境やプラットフォーム内の VS Code ワークスペースで、以下の 4 つの方法でプレビューを開始できます。

  • コマンドパレットから Run preview コマンドを選択します。

コマンドパレットで "Run preview" コマンドを見つけます。

  • ツールバーから Run preview アイコンを選択します。

VS Code ツールバーの "Run preview" アイコン (早送りシンボル) を選択します。

  • トランスフォームの上部にある Preview を選択します。

例として示されている Python トランスフォームの上部にある "Preview" オプションを選択します。

  • Preview パネルを開き、コードファイル名の横にある Preview ボタンを選択します。

VS Code "Preview" パネルの "Preview" ボタンを選択します。

プレビューのプロセス

拡張機能は、トランスフォームをプレビューするための 2 つの方法を提供します。

1. Code Assist ワークスペースを使用したリモートプレビュー (ローカルでの Palantir 拡張機能の使用のみ)

Palantir Code Assist を Palantir 拡張機能と共に使用することは、ローカル開発中の標準的なプレビュー方法です。

Python トランスフォームのリポジトリをクローンし、Python ファイルを開くと、Palantir 拡張機能はプラットフォーム内のコードリポジトリ環境と同様に、リモートの Code Assist ワークスペースへの接続を確立します。

ローカルの VS Code 環境で Code Assist ワークスペースを設定します。

Code Assist が準備完了すると、拡張機能は開いているファイル内のすべてのトランスフォームを識別します。

プレビューするトランスフォームを選択すると、プレビューはリモートの Code Assist ワークスペースで実行されます。

2. ローカルプレビュー

ローカルプレビューは、プラットフォーム内の VS Code ワークスペース で作業するユーザーにとってデフォルトのプレビュー方法です。また、スタック管理者がローカルプレビューを有効にしている場合、ローカル開発においてもデフォルトのプレビュー方法となります。

ローカル開発の場合、ローカルプレビューはプラットフォーム管理者が コードリポジトリのControl Panelページ で有効にする必要があります。

Palantir リポジトリを開くと、拡張機能は環境を設定します。環境が設定され、トランスフォームが検出されると、ローカルでプレビューを実行できるようになります。これを行うために、拡張機能はデータセットの一部をユーザーのマシンに一時的にダウンロードし、適切なデータのアクセス権を持っている場合に限り保存します。

プレビュー方法の比較

Code Assist プレビューと Preview Engine プレビューは異なる実行モデルを使用します。Code Assist プレビューは transforms ライブラリのプレビュー版を使用します。これは、プラットフォーム内のビルド時に使用される実際の transforms ライブラリの再実装に近いものです。これにより、精度を犠牲にして広範な機能サポートが得られます。プレビュー版とビルド版の transforms ライブラリの間には微妙な実装の違いがあり、非直感的で時には誤解を招くプレビュー結果をもたらすことがあります。

一方、Preview Engine は元の transforms ライブラリを使用してユーザーコードを実行します。このようにして、プレビュー モードで変換が実行されているという事実は、基礎となるコードにほとんど感知されず、より高い精度とパフォーマンスが得られます。主な欠点は、アーキテクチャの下位にある各ライブラリプリミティブのサポートを追加する必要があるため、執筆時点でサポートされている機能が少ないことです。

Preview Engine におけるサンプルなし vs. サンプルされたデータセットのロード

Preview Engine にはサンプルなしデータセットロードオプションがあります。その重要性を理解するために、Code Assist プレビューと Preview Engine プレビューの両方の入力ロード方法を見てみましょう。入力データセットが要求されると、プレビューが実際に実行される前に入力データセットの特定のサブセットがディスクにダウンロードされます。このサブセットは入力から均等にサンプリングされ、行数はユーザーが設定でき、デフォルトは 10,000 行です。いくつかの使用例では、このサンプリングは適切であり、統計的バイアスを導入しません。しかし、ナローフィルターや複数の入力間の結合など特定のトランスフォームにとっては、フィルタリング式の一致値の可能性が低くなり、結合式の場合は結合された入力の数に対して指数関数的に可能性が低くなるため、結果が欺瞞的に短くなる可能性があります。

サンプルなしデータセットロードの場合、事前サンプリングは行われません。代わりに、Preview Engine は Spark や Polars などの最新のデータ処理エンジンに依存して、プッシュダウンプレディケート ↗ をデータソースレベルにプッシュダウンし、クエリに一致する可能性が最も高いデータセットのチャンクのみをダウンロードします。これにより、トランスフォームコード内のどこかで使用されるフィルターやその他のナローワリング式がプッシュダウンの対象となり、追加の計算時間をほとんどかけずに完全に正確なプレビュー結果が得られます。

一部のパイプラインでは、フィルター式を含まないパイプラインなど、プレディケートプッシュダウンの利点を完全に活用することはできません。このような場合、パイプラインの著者はコードにいくつかの条件付きフィルター式を導入して、開発中のプレビュー実行を高速化できます。

特定の入力に対してサンプリングされたデータセットロードまたはサンプルなしデータセットロードのどちらを選択するかを決定する際に、もう 1 つの注意点があります。サンプリングされた入力はローカルにディスクにキャッシュされますが、サンプルなしロードではキャッシュはサポートされていません。つまり、入力が結合式で使用されず、パイプラインプレビューの正確性に対するフィルターの統計的特性がそれほど重要でない場合、サンプリングされたデータセットロードはより高速なプレビューのための優れた選択です。それ以外のすべての場合では、サンプルなしデータセットロードを優先する必要があります。

異なるプレビュー方法でサポートされている機能

以下の表は、異なるプレビュー実行モデルの現在のサポートマトリックスを示しています。コードリポジトリプレビュー は、コードリポジトリだけでなく、Visual Studio Code 拡張機能のリモートプレビューモードでも使用されます。ローカルモードでプレビューする場合、ユーザーは Full dataset (サンプルなしと同じ) と Sampled データセットロードモードを使用することができます。

コードリポジトリ (Code Assist)サンプルなしプレビュー (Preview Engine)サンプル済みプレビュー (Preview Engine)
デバッグサポートサポートサポート
Foundry データセットスキーマ付きの表形式および生ファイル表形式データセットのみスキーマ付きの表形式および生ファイル
トランスフォームジェネレータサポートサポートサポート
軽量トランスフォームサポート非サポートサポート
ビュー & オブジェクトの実体化サポート非サポート非サポート
インクリメンタリティ無視非サポート非サポート
外部トランスフォームソースおよび出力ポリシーの両方Code Workspaces のソースをサポートCode Workspaces のソースをサポート
メディアセットサポート非サポート非サポート
モデルサポート非サポート非サポート
暗号サポート非サポート非サポート
言語モデルサポート非サポート非サポート
データ期待値サポート非サポート非サポート
仮想テーブルサポート非サポート非サポート
Spark サイドカー非サポート非サポート非サポート

Code Workspaces 内の外部トランスフォームは厳格な輸出規制を施行します。Code Workspaces アプリケーションはワークスペースの入力の履歴を保持しているため、追加のセキュリティマーキングを含む以前の入力により、マーキング違反のためにプレビューが停止することがあります。さらに、アプリケーションはワークスペースがマーキングセキュリティチェックと輸出規制を計算する際に、以前に組み込まれたすべてのコンテナマーキングを考慮し、マーキングされたデータの不適切な露出を避けます。

ワークスペースに外部トランスフォームと互換性のないマーキングが含まれている場合、チェックポイントなしでワークスペースを再起動して追跡されたマーキングをクリアします。追加情報については、外部トランスフォームのドキュメント を参照してください。

ローカル開発および VS Code ワークスペースの両方で、サンプルなしデータセットロードがトランスフォームのプレビューに使用されているが、トランスフォームがサポートされていない機能も使用している場合、プレビューはサンプル済みデータセットロードにフォールバックします。この動作は、拡張機能のログで警告として表示されます。