メインコンテンツまでスキップ

従来のノートブックウィジェット: ${param}

:::warning 非推奨

ウィジェットの値にアクセスするための ${param} 構文は、Databricks Runtime 15.2 以降で非推奨になりました。代わりに、現在の Databricks ウィジェット構文 (:param) を使用してください。

:::

このページでは、Databricks Runtime 15.1 以下で実行されているノートブック ウィジェットの従来の ${param} 構文を使用する方法について説明します。Databricks では、 現在の構文に移行することをお勧めします。

Databricks Runtime 15.1 以下でウィジェットの値を使用する

このセクションでは、Databricks ウィジェットの値を Databricks Runtime 15.1 以前の %sql ノートブック セルに渡す方法について説明します。

  1. テキスト値を指定するウィジェットを作成します。
Python
dbutils.widgets.text("database", "")
dbutils.widgets.text("table", "")
dbutils.widgets.text("filter_value", "100")
  1. ウィジェットの値は、 ${param} 構文を使用して渡します。

    SQL
    SELECT *
    FROM ${database}.${table}
    WHERE col == ${filter_value}
    LIMIT 100
注記

SQL 文字列リテラル内の $ 文字をエスケープするには、\$を使用します。たとえば、文字列 $1,000を表すには、 "\$1,000"を使用します。 SQLの識別子 では、$文字は、エスケープできません。

パラメーター マーカーへの移行

次の表は、パラメーター、元の Databricks ウィジェット構文 ( Databricks Runtime 15.2 以降で非推奨)、名前付きパラメーター マーカー構文を使用した同等の構文 ( Databricks Runtime 15.2 以降でサポート) の一般的な使用例を示しています。

パラメーターの使用例

${param} 元のウィジェット構文 (Databricks Runtime 15.2 以降で非推奨)

:param パラメーター マーカー構文 (Databricks Runtime 15.2 以降でサポートされています)

指定した日付より前のデータのみをロードする

WHERE date_field < '${date_param}'

date パラメーターと中かっこを引用符で囲む必要があります。

WHERE date_field < :date_param

指定した数値より小さいデータのみをロードする

WHERE price < ${max_price}

WHERE price < :max_price

2 つの文字列を比較する

WHERE region = ${region_param}

WHERE region = :region_param

クエリで使用するテーブルを指定します

SELECT * FROM ${table_name}

SELECT * FROM IDENTIFIER(:table)

ユーザーがこのパラメーターを入力するときは、テーブルを識別するために完全な 3 レベルの名前空間を使用する必要があります。

クエリで使用されるカタログ、スキーマ、およびテーブルを個別に指定します

SELECT * FROM ${catalog}.${schema}.${table}

SELECT * FROM IDENTIFIER(:catalog || '.' || :schema || '.' || :table)

より長い書式設定された文字列のテンプレートとして「パラメーター」を使用する

"(${area_code}) ${phone_number}"

パラメーターの値は文字列として自動的に連結されます。

format_string((%d) %d, :area_code, :phone_number)

完全な例については、「 複数のパラメーターの連結 」を参照してください。

インターバルを作成する

SELECT INTERVAL ${p} MINUTE

SELECT CAST(:param as INTERVAL MINUTE)

可能な値のリストによるフィルタリング

SELECT * from table WHERE value IN (${list_parameter})

SELECT * FROM samples.nyctaxi.trips WHERE array_contains(TRANSFORM(SPLIT(:list_parameter, ','), s -> TRIM(s)), dropoff_zip)