本記事では CData サポート担当からこんなことを聞かれたらどこを確認すべきか?という観点で、よく頂くお問合せ内容をご紹介します。
記事はこちら →インターネット上には、多くのPostgreSQL クライアントがあります。標準のドライバーからBI、アナリティクスツールまで、PostgreSQL はデータアクセスのための一般的なインターフェースです。 JDBC ドライバーを使用することで、簡単に任意の標準クライアントから接続できるPostgreSQL エントリポイントを作成できます。
Sugar CRM にPostgreSQL データベースとしてアクセスするには、CData JDBC Driver for SugarCRM とJDBC foreign data wrapper (FDW) を使用します。ここでは、FDW をコンパイルしてインストールし、PostgreSQL サーバーからSugar CRM にクエリを実行します。
JDBC データソースとしてSugar CRM に接続するには、以下が必要です。
Driver class:
cdata.jdbc.sugarcrm.SugarCRMDriver
本製品をSugarCRM に認証するには、以下を有効なSugarCRM ユーザー資格情報に設定する必要があります。User:SugarCRM アカウントのユーザー。Password:SugarCRM アカウントのパスワード。
OAuth consumer key とconsumer secret は、Admin -> OAuth Keys で生成することができます。OAuthClientId にOAuth consumer key を、OAuthClientSecret にconsumer secret を設定します。
さらに、SugarCRM への接続を確立するには以下を指定します。URL:'http://{sugar crm instance}.com' の形式で、SugarCRM アカウントに紐付いているURL に設定。Platform:認証中にログインの競合が発生した場合は、SugarCRM UI で作成したプラットフォームのいずれかに設定。
SugarCRM メタデータの取得は高負荷になる可能性があることに注意してください。メタデータのキャッシュ で説明しているように、メタデータをローカルに格納することをお勧めします。
JDBC URL の構成については、Sugar CRM JDBC Driver に組み込まれている接続文字列デザイナを使用してください。JAR ファイルのダブルクリック、またはコマンドラインからJAR ファイルを実行します。
java -jar cdata.jdbc.sugarcrm.jar
接続プロパティを入力し、接続文字列をクリップボードにコピーします。
以下は一般的なJDBC URL です。
jdbc:sugarcrm:User=MyUser;Password=MyPassword;URL=MySugarCRMAccountURL;CacheMetadata=True;
FDW は、PostgreSQL を再コンパイルせずに、PostgreSQL の拡張機能としてインストールできます。例としてjdbc2_fdw 拡張子を使用します。
ln -s /usr/lib/jvm/java-6-openjdk/jre/lib/amd64/server/libjvm.so /usr/lib/libjvm.so
make install USE_PGXS=1
拡張機能をインストールした後、以下のステップに従ってSugar CRM へのクエリの実行を開始します。
CREATE EXTENSION jdbc2_fdw;
CREATE SERVER SugarCRM
FOREIGN DATA WRAPPER jdbc2_fdw OPTIONS (
drivername 'cdata.jdbc.sugarcrm.SugarCRMDriver',
url 'jdbc:sugarcrm:User=MyUser;Password=MyPassword;URL=MySugarCRMAccountURL;CacheMetadata=True;',
querytimeout '15',
jarfile '/home/MyUser/CData/CData\ JDBC\ Driver\ for\ Salesforce MyDriverEdition/lib/cdata.jdbc.sugarcrm.jar');
CREATE USER MAPPING for postgres SERVER SugarCRM OPTIONS (
username 'admin',
password 'test');
postgres=# CREATE FOREIGN TABLE accounts (
accounts_id text,
accounts_Name text,
accounts_AnnualRevenue numeric)
SERVER SugarCRM OPTIONS (
table_name 'accounts');
postgres=# SELECT * FROM accounts;