この記事では、データベース管理ツールであるDBeaver からCData JDBC Driver for Salesforce を使って、Salesforce のデータを見たり、ER 図を作成する方法を紹介します。
DBeaver とは
DBeaver は、データベース管理ツールです。クロスプラットフォーム(Win/Mac/Linux)をサポートしているほか、多くのSQL やNoSQL データに対応している大変便利なツールです。しかもComunity Edition は無償で利用できます。
日本語でも紹介されている方がいますね。インストール方法や基本的な試用方法は以下の記事を参照しました:
CData JDBC Drivers
CData JDBC Drivers は、100 を超えるSaaS やNoSQl データソースへのJDBC インターフェースを提供するものです。Salesforce、Dynamics、kintone などのSaaS データをRDB に仮想化してJDBC 経由で標準SQL クエリでアクセスできるようになります。
DBeaver からのCData JDBC Driver for Salesforce の使い方
DBeaver のセットアップ方法については、前述の記事を参照してください。
JDBC Driver for Salesforce は、こちらから30日の無償版がDL 可能です。
https://www.cdata.com/jp/drivers/salesforce/jdbc/
DBeaver にJDBC Driver for Salesforce を登録
まずは、DBeaver の[データベース]→[ドライバーマネージャー]を開きます。
[新規]ボタンをクリックします。
[ファイルを追加]ボタンから、インストールしたディレクトリのlib フォルダ内のcdata.jdbc.salesforce.jar ファイルを選択します。[クラスを見つける]ボタンを押すと、ドライバのクラスが表示されます。
ドライバの設定を行います:
ドライバ名:任意
ドライバタイプ:Generic
クラス名:cdata.jdbc.salesforce.SalesforceDriver
URL テンプレート:jdbc:salesforce:User=myUser;Password=myPassword;Security Token=myToken;
これでOK を押して、CData JDBC Driver for Salesforce がDBeaver 内で使えるドライバーとして登録されます。
DBeaver のデータベース接続設定
[データベース]→[新しい接続]をクリックします。
先ほど登録したSalesforce JDBC が使えるデータソースとして表示されます。アイコンをクリックします。
Salesforce アカウントへの接続は、JDBC ドライバーの登録時に行っているので、そのまま[テスト接続]をおしてSalesforce への接続を確認します。確認できたら[終了]を押して接続を確立します。
DBeaver からSalesforce データをクエリ
[データベースナビゲータ]で、先ほど作ったデータベース接続をクリックします。するとSalesforce のデータがRDB に仮想化され、テーブル(読み書き双方)、ビュー(読みのみ)という形でツリー表示されます。もうRDB と同じ感覚です。
Account テーブルをダブルクリックすると、[プロパティ]タブにSalesforce のAccount(取引先)エンティティの情報がJDBC でスキーマ定義されたカラムとして表示されます。やはり、もうRDB と同じ感覚です。
では、Account テーブルのデータをクエリしてみます。普通にSELECT 文でクエリ可能です。クエリ結果がテーブルデータになって帰ってきます。ますますRDB と同じ感覚です。
クエリは、SELECT だけでなく、INSERT、UPDATE、DELETE の各種処理ができます。他のSalesforce エンティティとのJOIN や集計関数や文字列関数も利用可能です。
使用可能なSQL クエリはこちらをご覧ください。 cdn.cdata.com
試しに[ER 図]作成ボタンを押してみたら、ER 図出てきた
ここまでRDB 的にSalesforce データを扱えたので、[ER 図]ボタンを押してみました。なんと出ましたER 図!
それぞれのRDB 化されたエンティティとエンティティ間のリレーション推定までDBeaver がやってくれました。すばらしいです。
まとめ
DBeaver はJDBC データソースの管理、クエリを行う便利なツールです。CData JDBC Drivers は、サードパーティのJDBC としてDBeaver で動作することが確認できました。
Salesforce の他にもいろいろなデータソースがあるので、是非SaaS データもDBeaver で管理してみてください。