SQLクエリの中でパラメータを利用すると、クエリ自体を変更せずにSQLのクエリを動的に生成できます。
以下はMySQL データベースからインポートされた売上データです。
Clicking on the token inside the Source step to open the SQL editor.
データソースのステップのトークンをクリックしてSQLエディターを開きます。
以下のようにシンプルなSQLのクエリがあったとします。
ここで、この SQLのクエリをパラメータ化して、必要に応じてクエリ自体を変更することなく、「Order Date(注文日)」と「Market(マーケット)」の値を動的に設定できるようにします。
パラメーターボタンをクリックして、パラメーターペインを開きます。
この時点ではパラメーターはありません。パラメーターペイン上部の「パラメーターを作成」ボタンをクリックして、パラメーターの設定ダイアログを開きます。
今回は、2つのパラメータを作成します。1つは、「Order Date(注文日)」の条件に使用される「Date(日付)」型のパラメーターで、もう 1 つは、「Market(マーケット)」の値を設定するために使用される「Character(文字)」型のパラメーターです。
パラメーターの設定ダイアログの上部の「+(プラス)」ボタンをクリックすることで、新しいパラメーターの作成が可能です。
なお「Order Date(注文日)」の列は日付型のデータのため、データ型に「Date(日付)」を選択することを忘れないでください。
続いてデフォルトの値を設定します。今回は、「特定の日」を選択し、「2012-01-01」を設定します。
日付の入力が完了したら、「保存」ボタンをクリックします。
次に、「Market」のパラメーターを作成します。
再度、パラメーターの新規作成ボタンをクリックし、名前に「Market」と入力し、データ型に「Character(文字)」を選択します。
なお今回はドロップダウンのパラメーターを作成し、複数の値を選択できるようにします。
そのため、入力タイプとして「値のリスト(複数選択)」を選択し、スタイルに「ドロップダウン」を選択します。
ここで重要なことがあります。
仮にドロップダウンのパラメーターで何も値を選択しなかったときに、SQLのクエリでは全ての値が選択されるように、言い換えれば、全てのマーケットのデータを返したかったとします。
そのようなときには、「値の指定がない場合は全選択とする」にチェックをつけてください。ことき「全ての値を返す」を選択します。これにより、パラメーターのドロップダウンで値を選択しなかった場合、すべてのマーケットの値が返されるようになります。
SQLのクエリを書いて、全てのマーケットの値を含むデータフレームをすでにインポートしている場合は、「データフレームから値を取得」を選択して、データフレームを選択することが可能です。
ただし、今回は想定されるマーケットの値を直接入力します。
なお、パラメーターではデフォルト値を設定することができますが、その必要はありません。なぜなら、今回は「値の指定がない場合は全選択とする」オプションを設定しているからです。
デフォルトの値を設定しない場合、このパラメーターはSQLのクエリで全ての値を返すようになります。つまり、全てのマーケットのデータが返されるということです。
問題がなければ、「保存」ボタンをクリックします。
いよいよこれらのパラメーターを使用します。
SQLエディターに戻り、元の日付の値を「Order_Date」のパラメーターに置き換えます。
「@」を入力すると、選択できるパラメーターのリストが表示されます。
同じように、元のマーケットの値を「Market」パラメーターに置き換えます。
「@」と入力するとパラメーターのリストが表示されるので、「Market」のパラメーターを選択します。
このとき、パラメーターを括弧で囲むことを忘れないでください。
SQLに埋め込んだパラメーターを試していきます。
「パラメーター」ペインの上部にある「更新」アイコンをクリックします。
するとSQLのクエリの実行に必要なパラメーターが検索されたうえで、パラメーターが表示されます。
これでOrder Date(注文日)とMarket(マーケット)の両方のパラメーターで値を選択し、「実行」ボタンをクリックできるようになります。
すると、クエリ内のパラメーターを選択・記述した箇所が、選択された値に置き換えられ、更新されたSQL クエリが実行され、MySQLデータベースからデータが取得されます。
なお、先程、Marketのパラメーターを作成した際、「値の指定がない場合は全選択とする」オプションを設定したことを思い出してください。
仮にドロップダウンから何も値を選択せず、クエリを実行したとします。
すると全てのマーケットの値が返ります。
SQLのクエリでパラメーターを設定したら、ほとんどの場合、SQL エディターを開いてパラメーターの値を変更することはありません。
その代わりに、サマリー、テーブル、チャート、アナリティクスなどのビューの1つから直接、パラメーターペインを開き、パラメーターの値を変更できます。
すると、更新されたクエリが実行され、データがインポートされ、表示されているビューが動的に更新されます。
ステップの右側上部のパラメーターボタンをクリックしてパラメーターペインを開きます。
続いて任意の値を選択して「実行」ボタンをクリックします。
すると更新されたデータを確認できます。
今回はデータのみでパラメーターを使用する例でしたが、チャートを作成し、そのチャートをダッシュボードまたはノートに埋め込むことで、ダッシュボードあるいはノートのUIからパラメーターの値を変更し、新しくインポートされたデータでダッシュボードやノートの出力を再生成することができます。
多くの場合、このパラメーター化されたデータを他のユーザーに共有して、SQLのクエリを書かずにパラメーターの値を変更しクエリを実行して、データを取得できるようにしたいと考えます。
そういったときには、データを Exploratoryサーバーにパブリッシュできます。
サーバーにデータをパブリッシュしたら、Web ブラウザからパブリッシュされたデータを開きます。
パラメーターをExploratoryサーバーで使用するときには、「インタラクティブ・モード」をオンにします。
「インタラクティブ・モード」をオンにすると、サーバーでもExploratoryデスクトップと同じように、パラメーターの利用が可能です。