CData Software Blog

クラウド連携のCData Software の技術ブログです。

DBeaver でSalesforce データを管理~クエリからER 図作成まで~

この記事では、データベース管理ツールであるDBeaver からCData JDBC Driver for Salesforce を使って、Salesforce のデータを見たり、ER 図を作成する方法を紹介します。

f:id:cdatasoftware:20190822135727p:plain
DBeaver でSalesforce データを管理

DBeaver とは

DBeaver は、データベース管理ツールです。クロスプラットフォーム(Win/Mac/Linux)をサポートしているほか、多くのSQL やNoSQL データに対応している大変便利なツールです。しかもComunity Edition は無償で利用できます。

dbeaver.io

日本語でも紹介されている方がいますね。インストール方法や基本的な試用方法は以下の記事を参照しました:

qiita.com

dev.classmethod.jp

CData JDBC Drivers

CData JDBC Drivers は、100 を超えるSaaS やNoSQl データソースへのJDBC インターフェースを提供するものです。Salesforce、Dynamics、kintone などのSaaS データをRDB に仮想化してJDBC 経由で標準SQL クエリでアクセスできるようになります。

f:id:cdatasoftware:20190822140015p:plain
CData JDBC Drivers
https://www.cdata.com/jp/jdbc/

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 の[データベース]→[ドライバーマネージャー]を開きます。 f:id:cdatasoftware:20190822140326p:plain

[新規]ボタンをクリックします。 f:id:cdatasoftware:20190822140439p:plain

[ファイルを追加]ボタンから、インストールしたディレクトリのlib フォルダ内のcdata.jdbc.salesforce.jar ファイルを選択します。[クラスを見つける]ボタンを押すと、ドライバのクラスが表示されます。

ドライバの設定を行います:

  • ドライバ名:任意

  • ドライバタイプ:Generic

  • クラス名:cdata.jdbc.salesforce.SalesforceDriver

  • URL テンプレート:jdbc:salesforce:User=myUser;Password=myPassword;Security Token=myToken;

f:id:cdatasoftware:20190822140942p:plain

これでOK を押して、CData JDBC Driver for Salesforce がDBeaver 内で使えるドライバーとして登録されます。

DBeaver のデータベース接続設定

[データベース]→[新しい接続]をクリックします。 f:id:cdatasoftware:20190822141345p:plain

先ほど登録したSalesforce JDBC が使えるデータソースとして表示されます。アイコンをクリックします。 f:id:cdatasoftware:20190822141508p:plain

Salesforce アカウントへの接続は、JDBC ドライバーの登録時に行っているので、そのまま[テスト接続]をおしてSalesforce への接続を確認します。確認できたら[終了]を押して接続を確立します。 f:id:cdatasoftware:20190822141811p:plain

DBeaver からSalesforce データをクエリ

[データベースナビゲータ]で、先ほど作ったデータベース接続をクリックします。するとSalesforce のデータがRDB に仮想化され、テーブル(読み書き双方)、ビュー(読みのみ)という形でツリー表示されます。もうRDB と同じ感覚です。

Account テーブルをダブルクリックすると、[プロパティ]タブにSalesforce のAccount(取引先)エンティティの情報がJDBCスキーマ定義されたカラムとして表示されます。やはり、もうRDB と同じ感覚です。 f:id:cdatasoftware:20190822142041p:plain

では、Account テーブルのデータをクエリしてみます。普通にSELECT 文でクエリ可能です。クエリ結果がテーブルデータになって帰ってきます。ますますRDB と同じ感覚です。

f:id:cdatasoftware:20190822142408p:plain

クエリは、SELECT だけでなく、INSERT、UPDATE、DELETE の各種処理ができます。他のSalesforce エンティティとのJOIN や集計関数や文字列関数も利用可能です。

使用可能なSQL クエリはこちらをご覧ください。 cdn.cdata.com

試しに[ER 図]作成ボタンを押してみたら、ER 図出てきた

ここまでRDB 的にSalesforce データを扱えたので、[ER 図]ボタンを押してみました。なんと出ましたER 図! 

それぞれのRDB 化されたエンティティとエンティティ間のリレーション推定までDBeaver がやってくれました。すばらしいです。

f:id:cdatasoftware:20190822142729p:plain

まとめ

DBeaver はJDBC データソースの管理、クエリを行う便利なツールです。CData JDBC Drivers は、サードパーティJDBC としてDBeaver で動作することが確認できました。

Salesforce の他にもいろいろなデータソースがあるので、是非SaaS データもDBeaver で管理してみてください。