Dynamics 365 のデータ の PostgreSQL インターフェースを作成(MySQL リモーティング経由の JDBC)
PostgreSQL には多くの対応クライアントがあります。標準のドライバーから BI、アナリティクスツールまで、PostgreSQL はデータ接続の人気のインターフェースです。JDBC ドライバーのリモーティング機能を使用することで、任意の標準クライアントから接続できる PostgreSQL エントリポイントを簡単に作成できます。
Dynamics 365 のデータ に PostgreSQL データベースとしてアクセスするには、CData JDBC Driver for Dynamics 365 のリモーティング機能と、EnterpriseDB の MySQL Foreign Data Wrapper(FDW)を使用します。この記事では、FDW をインストールし、PostgreSQL Server からDynamics 365 のデータにクエリを実行する方法を説明します。
Dynamics 365 データ連携について
CData は、Microsoft Dynamics 365 のライブデータへのアクセスと統合を簡素化します。お客様は CData の接続機能を以下の目的で活用しています:
- Sales、Customer Service、Finance & Operations、Marketing など、Dynamics 365 エコシステム全体のデータの読み取りと書き込みができます。
- カスタマイズ可能なキャッシュと、インテリジェントなクエリ集約・分離により、Dynamics CRM のネイティブ機能を拡張できます。
- Azure Active Directory、Azure マネージド サービス ID 認証情報、クライアントシークレットまたは証明書を使用した Azure サービスプリンシパルなど、さまざまな方法で Dynamics 365 に安全に認証できます。
- SQL ストアドプロシージャを使用して、Dynamics 365 エンティティを管理できます。エンティティ間の関連付けの一覧表示、作成、削除などが可能です。
CData のお客様は、データをデータウェアハウスにレプリケートしたい場合(他のデータソースと併せて)や、Microsoft エコシステム内のお気に入りのデータツール(Power BI、Excel など)または外部ツール(Tableau、Looker など)からライブ Dynamics 365 データを分析したい場合など、さまざまな理由で当社の Dynamics 365 接続ソリューションを使用しています。
はじめに
Dynamics 365 への接続を設定
以下の手順に従って、Dynamics 365 への接続に必要な認証情報やその他の接続プロパティをドライバーの MySQL デーモンに設定します。MySQL デーモンは、Dynamics 365 のデータ を CDataDynamics365 という名前の MySQL データベースとして公開します。デーモンの設定ファイル内の databases セクションに接続プロパティを追加します。設定ファイルは、ドライバーのインストールディレクトリの lib サブフォルダにあります。
以下は一般的な接続文字列です:
[databases] dynamics 365 = "OrganizationUrl=https://myaccount.operations.dynamics.com/;Edition=Sales;"
また、users セクションにユーザーを作成します。
MySQL デーモンのすべての設定オプションについては、ヘルプドキュメントをご参照ください。
リモーティングサービスを開始
以下の手順に従って、CData JDBC Driver for Dynamics 365 の MySQL リモーティング機能を有効にします。
ドライバーはテスト用に適したデフォルト設定を作成します。サービスを開始するだけでDynamics 365 のデータに接続できます。
- 以下のコマンドで MySQL リモーティングサービスを開始します:
java -jar cdata.jdbc.dynamics365.jar -f cdata.jdbc.dynamics365.remoting.ini
MySQL Foreign Data Wrapper をビルドしてインストール
Foreign Data Wrapper は、PostgreSQL を再コンパイルせずに、PostgreSQL の拡張機能としてインストールできます。
お使いの OS で pgxn が利用可能な場合は、以下のコマンドでインストールできます:
pgxn install mysql_fdw USE_PGXS=1
利用できない場合は、以下の手順で自分でビルドしてください:
- MySQL C クライアントライブラリをインストールし、EnterpriseDB の MySQL 用 FDW のソースを取得します(例:GitHub から)。
- FDW をビルドします。pg_config と mysql_config の実行ファイルを PATH に追加してください:
env PATH=/usr/local/pgsql/bin:/usr/local/mysql/bin:$PATH make USE_PGXS=1
-
FDW をインストールします:
make USE_PGXS=1 install
インストールを完了するには、libmysqlclient ライブラリを環境にロードする必要があります(例:パスに追加するなど)。
Dynamics 365 のデータ を PostgreSQL データベースとしてクエリ
拡張機能をインストールした後、以下の手順に従ってDynamics 365 のデータへのクエリ実行を開始します:
- データベースにログインします。
-
データベースの拡張機能をロードします:
postgres=#CREATE EXTENSION mysql_fdw;
-
Dynamics 365 のデータ 用のサーバーオブジェクトを作成します:
postgres=# CREATE SERVER Dynamics365 FOREIGN DATA WRAPPER mysql_fdw OPTIONS (host '127.0.0.1', port '3309');
-
MySQL デーモンに認識されているユーザーのユーザー名とパスワードでユーザーマッピングを作成します:
postgres=# CREATE USER MAPPING for postgres SERVER Dynamics365 OPTIONS (username 'admin', password 'test');
-
ローカルスキーマを作成します:
postgres=# CREATE SCHEMA Dynamics365_db;
-
デーモン設定ファイルで定義した Dynamics 365 データベース内のすべてのテーブルをインポートします:
postgres=# IMPORT FOREIGN SCHEMA "Dynamics365" FROM SERVER Dynamics365 INTO Dynamics365_db;
これで Dynamics 365 に対して 読み取り/書き込み コマンドを実行できます:
postgres=# SELECT * FROM Dynamics365_db."goalheadings";