ODBCを使ってデータをインポートするときには、ODBCドライバをインストールし、Exploratoryを接続するデータベースのデータソース名(DSN)を設定することから始めます。
なお、以下は動作確認済みのODBC DSNの作成手順です。
DSNでの接続の場合は、事前にODBC データソース アドミニストレーターを使ってDSNを作成する必要があります。DSNの作成方法については、こちらのノートにて詳細を記載しています。
続いて、プロジェクトメニューから、「データコネクション」メニューを選択します。s
「追加」ボタンをクリックします。
「データベース」タブを選択し、「ODBC」をクリックします。なお、ODBC(Legacy)はExploratoryを古いバージョンからお使いのお客様のためのデータソースとなり、ODBCを利用する際は、原則的に、「ODBC(Oracle, Hive, etc.)」を選択します。
するとコネクションの設定ダイアログが表示されます。
なお、「接続タイプ」では以下の3つがサポートされており、こちらのノートでは「DSN」を例に設定方法を紹介いたします。
ステップ1で作成したDSNを選択し、「コネクションをテスト」ボタンをクリックして接続に成功すると、接続に成功しました、というメッセージが表示されます。
なお、Macでは、 iODBCとunixODBCベースの両方のODBCドライバとDSNをサポートしています。
接続に成功したことを確認したら、「追加」ボタンをクリックしてコネクションを保存できます。
コネクションを追加できたら、データフレームの横の「+」ボタンをクリックし、データベースデータを選択します。
「ODBC(Oracle, Hive, etc.)」を選択します。
クエリの入力が開いたら、以下の手順でデータをインポートします。
インポートダイアログの「パラメーター」ボタンをクリックします。
パラメーターペインが表示されたら「設定」ボタンをクリックします。
次に、パラメーターを定義し、保存ボタンをクリックします。
続いて、以下のように、@で、クエリ内のパラメーター名を囲みます。
select * from testdb.flights
where carrier = @{carrier}
すると、パラメーターボタンをクリックして表示されるパラメーターペインからパラメーターの値を変更して、動的にSQLのクエリ内容を変更できます。
なお、パラメーターの詳細はこちらの記事をご覧ください。
クエリを実行した際の行数は、クエリを再実行しないと取得できないため、パフォーマンスの観点から、デフォルトの設定では取得していません。
もし、クエリのプレビュー画面に実際の行数を表示させたい場合は、「システム設定」から設定します。
データベースタブに移動して、「SQLデータインポートダイアログで実際の行数を表示」を「はい」に設定します。
すると、以下のように「実行」ボタンをクリックした際、実際の行数が表示されるようになります。
ODBCがデータソースとなるコンテンツをパブリッシュした際、シェアードサーバー(Exploratoryユーザーであれば無料で利用ができるサーバー)ではスケジュールを設定してサーバーにパブリッシュしたコンテンツの更新を自動化したり、データソース内にあるパラメーターを実行して、動的にSQLのクエリの内容を動的に変更することはできません。これは、シェアード・サーバーに、デフォルトでサポートしているデータソース以外のODBCドライバがインストールされていないためです。
なお、自分達の組織の専用環境でExploratoryサーバー(オンプレミスまたはホステッド)を利用している方はサーバー環境にODBCドライバをインストールして、サーバーにパブリッシュしたコンテンツの更新を自動化したり、データソース内にあるパラメーターを実行して、動的にSQLのクエリの内容を動的に変更することが可能です。
こちらのセクションは、自分達の組織の専用環境でExploratoryサーバー(オンプレミスまたはホステッド)を利用している方向けのセクションです。
ODBCをデータソースに利用しているコンテンツをExploratoryデスクトップからサーバーにパブリッシュした場合、サーバーにそのコネクション情報を保存し、スケジュールの実行時やデータソースに関わるパラメーターの操作時に、そのコネクション情報を利用します。
また、仮に該当のデータソースにおいて多要素認証を(MFA)を利用している場合、スケジュールの実行(今すぐ実行を含む)やデータソースに関わるパラメーターの操作時には、その都度、多要素認証(例: モバイルアプリを使った認証や、電話による認証)を実施する必要が生じます。
さらに、ODBCをデータソースに利用しているコンテンツを「チーム」でサーバーにパブリッシュした場合、サーバーで利用されるコネクションは、「最後にコンテンツをパブリッシュしたユーザーのコネクション」になります。
そのため、最後にパブリッシュしたユーザーが変われば、サーバーで利用されるコネクション情報も変わることになります。
つまり、多要素認証を採用しチームでコンテンツを運用していると、スケジュールの実行時やデータソースに関わるパラメーターの操作を実行した場合、その時々で、多要素認証を行うべきユーザーが異なってくるケースが生じます。
そこで、自社の専用環境でExploratoryサーバー(オンプレミスまたはホステッド)にExploratoryデスクトップからログインをしているユーザーには、「サーバー用のコネクション」メニューが表示されます。
「サーバー用のコネクションを設定する」にチェックをつけると、サーバーでスケジュールやインタラクティブ・モードを実行するときのコネクションを、ローカルのコネクションとは別に設定することができるようになります。
例えば、チームのメンバー全員が、ここに代表者(アカウント)のコネクションの情報を入力しておくことで、誰がサーバーにコンテンツをパブリッシュしたとしても、設定した代表者のコネクションが利用されるようになるわけです。
このような設定により、多要素認証の通知が様々な人に届くことを回避し、一人に認証の通知が届くような運用が可能です。