メインコンテンツへジャンプ

Databricksでパラメータを一元管理しましょう!

ジェイソン・メッサー
Chris Eubank
プラナヴ・クリシュナン
Share this post

本日、SQLエディタで名前付きパラメータマーカーのサポートを発表できることを嬉しく思います。この機能により、SQLエディタでパラメータ化されたコードを記述でき、そのままダッシュボードやノートブックで構文を変更せずにコピーして実行することが可能になります。これは、クエリ、ノートブック、ダッシュボード全体でパラメータを統一するための重要なマイルストーンとなります。

1

名前付きパラメータマーカーを使用する

パラメータを使用することで、実行時にデータセットのクエリに値を代入し、日付や商品カテゴリなどの条件でデータをフィルタリングできます。これにより、SQLクエリでデータが集約される前に、より効率的なクエリと精度の高い分析が可能になります。

パラメータマーカーは、クエリ、ノートブック、ダッシュボード、ワークフロー、SQL Execution APIでサポートされています。これらは厳密に型指定されており、提供された値をSQL文から明確に分離することで、SQLインジェクション攻撃に対する耐性も強化されています。名前付きパラメータマーカーの構文は、アルファベット単語の先頭にコロン(:)を付けるだけで使用可能です。例えば、:parameter_nameや:`スペース付きのパラメータ`のようにします。

1

キーワード、例えば列名やテーブル名を指定するには、 identifier()節をラッパーとして使用します。例えば、identifier(:parameter_name)のようにします。

3

既存のパラメータを名前付きパラメータマーカー構文を使用して更新することをお勧めします。近く、パラメータを自動的に変換するアシスタントアクションを提供する予定です。

4

一般的なユースケース

以下は、パラメータが役立ついくつかの使用例です:


特定の時間枠内のレコードを選択するためのパラメータ化された日付範囲をクエリに追加します。

SELECT * FROM samples.nyctaxi.trips
WHERE tpep_pickup_datetime 
BETWEEN :start_date AND :end_date
5

動的にカタログ、スキーマ、テーブルを選択または作成します。

SELECT * FROM IDENTIFIER(:catalog || '.' || :schema || '.' || :table)
6
CREATE TABLE IDENTIFIER(:catalog || '.' || :schema || '.' || :table) 
AS SELECT 1;
7

パラメータでクエリスキーマを定義します。

USE SCHEMA IDENTIFIER(:selected_schema)
8

出力をフォーマットするためにテンプレート化された文字列をパラメータ化します。例えば、電話番号など。

SELECT format_string("(%d) %d", :area_code, :phone_number) 
As phone_number
9

日、月、または年ごとにロールアップをパラメータ化します。

SELECT DATE_TRUNC(:date_granularity, tpep_pickup_datetime) AS 
date_rollup, 
          COUNT(*) AS total_trips 
FROM trips 
GROUP BY date_rollup
10

単一のクエリで複数のパラメータ値を選択します。

SELECT * FROM trips WHERE

  array_contains(

    TRANSFORM(SPLIT(:list_parameter, ','), s -> TRIM(s)),

    dropoff_zip

  )
11

近日更新予定

フィールドとパラメータのフィルタリングをさらにシンプルで柔軟に提供することを楽しみにしています。日付範囲 および 複数値パラメータ。例えば、

SELECT * FROM trips where tpep_pickup_datetime 
BETWEEN :date.min AND :date.max 

SELECT * FROM trips 
WHERE array_contains(:zipcodes, dropoff_zip)

名前付きパラメータマーカー構文を始めましょう

クエリ、ノートブック、ダッシュボード、ワークフロー、SQL Execution APIの名前付きパラメータマーカー構文は、今日から利用可能です。フィードバックや質問がある場合は、以下のアドレスまでお問い合わせください。[email protected]。詳細なリソースについては、ドキュメンテーションページをご覧ください。Databricksでのパラメータの使い方について詳しく説明しています。


Databricks SQLについて詳しく知りたい方は、私たちのウェブサイトをご覧いただくか、ドキュメンテーションをご覧ください。また、Databricks SQLのプロダクトツアーもご覧いただけます。既存のウェアハウスを高性能でサーバーレスのデータウェアハウスに移行し、優れたユーザーエクスペリエンスと低コストを実現したい場合、Databricks SQLが解決策です。 無料でお試しいただけます。