Parameter
動的なNotebookとReportを作成する。
最終更新
動的なNotebookとReportを作成する。
最終更新
NotebookでParameterを使用することで、NotebookとReportを動的かつインタラクティブにすることができます。これにより、SQLに直接アクセスすることなくParameterを通じて埋め込まれたSQLを制御し、必要に応じてカスタマイズされた出力を得ることができます。
NotebookとReportの動的化:
NotebookとReportをダイナミックかつインタラクティブにします。
様々な種類のParameter:
多様なデータ型と関連する入力ウィジェットから選択できます。
2種類のスコープ:
Notebook全体で使用するParameterか、ページごとに使用するParameterかを選択できます。
Parameterの上書き:
SQLを連鎖させる際にParameterを上書きすることで、きめ細かな制御が可能です。
Parameterを作成すると、Notebook内のSQL Blockで/param/{param_name}
という構文を使用して参照できます。
例えば、param1
という名前の文字列Parameterを作成し、値としてval1
を入力した場合、以下のSQL:
は以下のように変換されます:
シンプルな文字列入力フィールドです。
フォーマット:
SQLではシングルクォート('
)で囲まれます。
例:'val1'
に変換されます
空の場合:
''
複数の文字列を入力するフィールドです。
フォーマット:
SQLではシングルクォート('
)で囲まれます。
例:'val1', 'val2'
に変換されます
空の場合:
''
単一の文字列値を選択するドロップダウンです。
ソースオプション:
固定リストまたはテーブル値またはクエリ結果
フォーマット:
SQLではシングルクォート('
)で囲まれます。
空の場合:
''
複数の文字列値を選択するドロップダウンです。
ソースオプション:
固定リストまたはテーブル値またはクエリ結果
フォーマット:
SQLではシングルクォート('
)で囲まれます。
例:'val1', 'val2'
に変換されます
空の場合:
''
シンプルな数値入力フィールドです。
オプション:
min, max, steps (間隔)
空の場合:
0
単一の数値を選択するドロップダウンです。
ソースオプション:
固定リストまたはテーブル値またはクエリ結果
空の場合:
0
シンプルな日付入力フィールドです。カレンダーからの選択または日付の入力が可能です。
オプション:
Unit:
Date, Week, Month, Year
Start day of week(カレンダーに表示される最初の曜日):
Sun, Mon, Tue, Wed, Thu, Fri, Sat
Relative valid range(相対日付での有効範囲):
Days before today:この制限より前の日付は選択不可になります。例えば、'90'と入力すると、90日前より前の日付が選択不可になります。
Days after today:この制限より後の日付は選択不可になります。例えば、'0'と入力すると翌日以降の日付が選択不可に、'-1'と入力すると今日以降の日付が選択不可になります。
Absolute valid range(絶対日付での有効範囲):
Lower date:指定した日付より前の日付が選択不可になります。
Upper date::指定した日付より後の日付が選択不可になります。
フォーマット:
SQLではyyyy-MM-dd
形式でクォート('
)付きで展開されます。
例:'2024-01-01'
に変換されます
開始日と終了日をペアで指定します。
オプション:
日付入力(DATE)と同じ
SQLでの参照構文:
開始日:/param/param_name.StartDate
終了日:/param/param_name.EndDate
シンプルな真偽値のチェックボックスです。
フォーマット:
SQLではTRUE/FALSEとして展開されます。
Parameterのコンテキストに基づいてSQLインジェクション保護と値のエスケープを処理します。このメカニズムはセキュリティを提供するだけでなく、テーブル名などの動的な識別子の生成も可能にします。
Parameterは自動的にシングルクオートで囲まれます。
値内のシングルクオートとダブルクオートの両方がバックスラッシュでエスケープされます。
ダブルクオートまたはシングルクオート内:
ダブルクオートとシングルクオートの両方がバックスラッシュでエスケープされます
バッククォート内:
バッククォートのみがバックスラッシュでエスケープされます
その他の引用符は変更されません
通常のコンテキスト: 日付は'YYYY-MM-DD'形式でフォーマットされます
BigQueryでテーブル名に使用する場合: 日付は'YYYYMMDD'形式(ハイフンなし)でフォーマットされます
引用符のエスケープルールは文字列Parameterと同様に適用されます
このようなコンテキストに合わせた処理が可能なことにより、安全な値の処理に加えてダイナミックな識別子生成(テーブル名、列名)も可能になります:
Parameterを引用符内に配置することで、テーブル名や列名などのSQL識別子を安全に生成することができます。
選択Parameterでは、選択可能な値を生成するために3種類のソースオプションをサポートしています:
固定の値から選択したい場合に使用します。
設定:
CSV Text:
CSV形式のテキストで選択肢を定義します。各項目は改行で区切ります。表示名を指定する場合は、同じ行にカンマ(,)で区切って記述します。
例:
特定のテーブルのフィールドから選択可能な値を生成したい場合に使用します。
設定:
Source Table:値を取得するテーブルを選択します。
Value Field:選択肢の値として使用するフィールドを指定します。
Label Field:表示ラベルとして使用するフィールドを指定します。
指定したSQLクエリの結果に基づいて選択肢を生成したい場合に使用します。
設定:
Connection:
クエリに使用するデータベース接続を選択します。
SQL:
選択肢の値を返すSQLクエリを入力します。クエリが複数のカラムを返す場合、最初のカラムが選択肢の値として、2番目のカラム(存在する場合)が表示ラベルとして使用されます。
選択肢用のSQLクエリは頻繁に実行されるため、パフォーマンスを最適化するために、遅いクエリやリソースを多く消費するクエリの使用は避けてください。
Parameterは2種類のスコープから作成できます:
Notebook共通
Notebookのすべてのページで共有されるParameter
値は各ページで保持されます
ページ固有
各ページに固有のParameter
Notebook共通Parameterは、例えば、Doc PageのSQLから作成されたチャートなど、Grid Page上のコンポーネントを同じParameterで制御したい場合に使用できます。
ページ固有Parameterは、例えば、特定のページ以外に影響を与えたくない場合に使用できます。
SQLを連鎖させる際に、Parameterの依存関係を切断したい場合があります。例えば:
ページをまたいでSQLを連鎖させる際に、各ページで固有のParameterを設定する。
同じベースSQLから派生した異なるSQLで異なるParameterを使用する。
SQL BlockでSQLを参照している箇所にカーソルを合わせると表示されるポップアップで、Parameterを上書きできます。
NotebookのParameter値と実行結果はユーザー間で同期されます。ただし、Notebook VersionとReportを使用することで、Parameter値と実行結果の変更がユーザー間で同期されず、値を変更したユーザーにのみ変更が反映されるようになります。
詳細については、Notebook Versionを参照してください。