パラメータ
動的なノートブックとレポートを作成する。
最終更新
役に立ちましたか?
動的なノートブックとレポートを作成する。
最終更新
役に立ちましたか?
ノートブックでパラメータを使用することで、ノートブックとレポートを動的かつインタラクティブにすることができます。これにより、SQLに直接アクセスすることなくパラメータを通じて埋め込まれたSQLを制御し、必要に応じてカスタマイズされた出力を得ることができます。
ノートブックとレポートの動的化:
ノートブックとレポートをダイナミックかつインタラクティブにします。
様々な種類のパラメータ:
多様なデータ型と関連する入力ウィジェットから選択できます。
2種類のスコープ:
ノートブック全体で使用するパラメータか、ページごとに使用するパラメータかを選択できます。
パラメータの上書き:
SQLを連鎖させる際にパラメータを上書きすることで、きめ細かな制御が可能です。
パラメータを作成すると、ノートブック内のSQLブロックで/param/{param_name}
という構文を使用して参照できます。
例えば、param1
という名前の文字列パラメータを作成し、値として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として展開されます。
パラメータのコンテキストに基づいてSQLインジェクション保護と値のエスケープを処理します。このメカニズムはセキュリティを提供するだけでなく、テーブル名などの動的な識別子の生成も可能にします。
パラメータは自動的にシングルクオートで囲まれます。
値内のシングルクオートとダブルクオートの両方がバックスラッシュでエスケープされます。
ダブルクオートまたはシングルクオート内:
ダブルクオートとシングルクオートの両方がバックスラッシュでエスケープされます
バッククォート内:
バッククォートのみがバックスラッシュでエスケープされます
その他の引用符は変更されません
通常のコンテキスト: 日付は'YYYY-MM-DD'形式でフォーマットされます
BigQueryでテーブル名に使用する場合: 日付は'YYYYMMDD'形式(ハイフンなし)でフォーマットされます
引用符のエスケープルールは文字列パラメータと同様に適用されます
このようなコンテキストに合わせた処理が可能なことにより、安全な値の処理に加えてダイナミックな識別子生成(テーブル名、列名)も可能になります:
パラメータを引用符内に配置することで、テーブル名や列名などのSQL識別子を安全に生成することができます。
選択パラメータでは、選択可能な値を生成するために3種類のソースオプションをサポートしています:
固定の値から選択したい場合に使用します。
設定:
CSV Text:
CSV形式のテキストで選択肢を定義します。各項目は改行で区切ります。表示名を指定する場合は、同じ行にカンマ(,)で区切って記述します。
例:
特定のテーブルのフィールドから選択可能な値を生成したい場合に使用します。
設定:
Source Table:値を取得するテーブルを選択します。
Value Field:選択肢の値として使用するフィールドを指定します。
Label Field:表示ラベルとして使用するフィールドを指定します。
指定したSQLクエリの結果に基づいて選択肢を生成したい場合に使用します。
設定:
Connection:
クエリに使用するデータベース接続を選択します。
SQL:
選択肢の値を返すSQLクエリを入力します。クエリが複数のカラムを返す場合、最初のカラムが選択肢の値として、2番目のカラム(存在する場合)が表示ラベルとして使用されます。
パラメータの選択肢にSQLクエリを使用する場合、以下のタイミングでクエリが実行されます:
ノートブックページが読み込まれたとき:
そのページで使用されているパラメータのSQLクエリはページの初期化時に実行されます
現在のページで使用されていないパラメータは初期化されず、そのSQLクエリも実行されません
パラメータのドロップダウンが開かれたとき:
ドロップダウンメニューが最初に開かれたときにSQLクエリが実行されます
検索フィールドに入力するとき:
初回のクエリ実行後は、すでに取得したデータを使用してクライアント側でフィルタリングが行われます
キーストロークごとにSQLが再実行されることはありません
パラメータ用のSQLクエリは、通常のノートブックSQLブロックと同じキャッシュメカニズムを使用します:
結果はバックエンドで最大24時間キャッシュされます
同一のクエリ(パラメータ値を含む)はキャッシュされた結果を使用します
フロントエンドも現在のセッション中はメモリキャッシュを維持します
これにより、パラメータのドロップダウンが頻繁に開かれたとしても、実際のデータベースクエリはキャッシュ期間内に1回だけ実行され、パフォーマンスが大幅に向上します。
SQLクエリのキャッシュについての詳細は、クエリの実行とキャッシュを参照してください。
パラメータは2種類のスコープから作成できます:
ノートブック共通
ノートブックのすべてのページで共有されるパラメータ
値は各ページで保持されます
ページ固有
各ページに固有のパラメータ
ノートブック共通パラメータは、例えば、ドキュメントページのSQLから作成されたチャートなど、グリッドページ上のコンポーネントを同じパラメータで制御したい場合に使用できます。
ページ固有パラメータは、例えば、特定のページ以外に影響を与えたくない場合に使用できます。
SQLを連鎖させる際に、パラメータの依存関係を切断したい場合があります。例えば:
ページをまたいでSQLを連鎖させる際に、各ページで固有のパラメータを設定する。
同じベースSQLから派生した異なるSQLで異なるパラメータを使用する。
SQLブロックでSQLを参照している箇所にカーソルを合わせると表示されるポップアップで、パラメータを上書きできます。
ノートブックのパラメータ値と実行結果はユーザー間で同期されます。ただし、ノートブックバージョンとレポートを使用することで、パラメータ値と実行結果の変更がユーザー間で同期されず、値を変更したユーザーにのみ変更が反映されるようになります。
詳細については、ノートブックバージョンを参照してください。