おはようございます。ロジカル・アーツ株式会社のSE 輪島 幸治です。
Pythonを使用してデータベースとSalesforceを連携するSalesforceインテグレーションの記事を執筆させて頂きます。 目標としては、Pythonプログラムにて、Oracle DatabaseにSQLを実行して取得した結果を加工して、 SalesforceにAPI連携できれば、目標達成としています。
ブログの記事構成は3部構成となっており、(1)Oracle Databaseインストール方法及びGUI環境構築、 (2)Pythonライブラリインストール・データ取得・インポート、 (3)Pythonを用いたOracle DatabaseとSalesforceの連携という3つの記事構成になっています。
このブログ記事の範囲としては、(1)Oracle Databaseインストール方法及びGUI環境構築の記事です。 データベースとして、Oracle Databaseを使用します。 初心者向けに、Oracle Databaseをインストールして、Oracle SQL Developerでレコードデータを表示させる手順までを紹介させて頂きます。
はじめに
この記事の目的
SalesforceはPaaSとして使用できることから、クラウドデータベースとしての機能があります。 各種APIやインデックスにも対応していることから、Salesforce上にすべてのデータを格納することで、 多くのアプリケーションへの連携を容易に行うことができます。
その一方で、既存システムはSalesforceでないデータベースが使用されている場合も多く、 すべてのデータをSalesforce上に格納することは現実的ではありません。 このため、外部システムやデータベースから、Salesforceへの連携方法が必要とされている場合もあります。
この記事では、初心者向けにSalesforce以外のデータベースシステムのうち、 Oracle Databaseに着目して、Pythonプログラムを使用してデータ連携を行う方法について執筆させて頂きます。
対象者
この記事では、一般的なデータベースを使用しているユーザが、 Webのフロントシステムとの連携を検討した際に、Salesforceを使用したインテグレーションを検討する方向け。 あるいはSalesforceしかエンタープライズアプリケーションを使用したことがない方や、 Salesforceを使用したことがないデータベースを使用しているユーザが、 システムインテグレーションを検討することを想定しています。
目標
Pythonプログラムにて、データベースからSalesforce連携を行う場合に、設定理解を目標とした記事です。 データベースやSalesforceの設定をする時間がないので、 画像だけで設定概要を知りたいという方が設定方法の流れを知って頂くことも目標としています。 Oracle Databaseのインストール・設定、Pythonアプリケーションのライブラリインストール、 プログラムを使用したSalesforce連携手順を画像付きでご紹介させて頂きます。
Oracle Databaseについて
さて、Oracle Databaseとは、SQLに準拠して開発された世界初の商用リレーショナルデータベースです。 日本の学会の維持会員一覧にもあるぐらい有名なデータベースプロダクトで40年以上の歴史があるそうです。*1
図解入門よくわかる 最新Oracleデータベースの基本と仕組み[第5版] (単行本)
SalesforceとOracle Databaseについて
Salesforceは、Oracleと関連が深かったりします。
まず、Salesforce CEOのMarc Benioffさん*2が、Oracle 出身者とのことです。 また、2020年まで共同CEOだったKeith Blockさんも、Oracle 出身者とのことです。 インフラストラクチャーでもOracle Databaseを使用しているという記載が海外の記事*3*4やTrailheadにも記載が確認できました。
・Benioff worked at Oracle for 13 years before leaving the company to work on Salesforce full time.
・In August 2018, Salesforce named one-time Oracle exec Keith Block the company's co-CEO, putting him on an even keel with Benioff. Block stepped down a year-and-a-half later.
・Trailhead - データベースと .NET の基本 - 効率的なクエリの作成
Force.com クエリオプティマイザ
Salesforce のバックエンドデータベースは Oracle を使用していますが、Force.com では独自のバージョンのクエリオプティマイザを使用してコストベースでクエリを評価します。
データベースに興味もった方は、Salesforceのデータベース機能についても確認してみて下さい。*5
設定手順
Oracle Databaseのインストール手順ですが、Salesforceエンジニア向けのブログ記事なので、 Oracle Databaseのインストールファイルの取得から記載させて頂きます。
この記事では、Oracle Databaseのインストールや概要のみを取り扱いますが、 各種設定の詳細については、Oracle Databaseエンジニアのブログ記事をご確認下さい。 ここでは、検証のためにOracle Databaseのインストールを行って、 SQLが使用できれば良い方向けの内容を記載させて頂きます。
各手順について、順に説明させて頂きます。
インストールファイル取得
使用するインストールファイルの取得URLです。 この記事では、Oracle DatabaseとOracle SQL Developerを使用します。 ソフトウェアのダウンロードには、Oracleプロファイルへのサインインが必要なので、 必要に応じて、オラクルのアカウントを作成して下さい。
Oracle Database
Oracle Database ソフトウェアのダウンロード手順を記載させて頂きます。 まず、URLを押下して、[19.3 - Enterprise Edition (also includes Standard Edition 2)]セクションにある[ZIP]のリンクを押下します。 今回は、検証で使用するOSがWindows 10(64bit)なので、[Microsoft Windows x64(64-bit)]をダウンロードします。
[ZIP]のリンクを押下すると、ポップアップが表示され、 "You must accept the Oracle License Agreement to download this software."と表示されます。 "Oracle License Agreement"を確認して、ソフトウェアをダウンロードしたい場合は、 "I reviewed and accept the Oracle License Agreement"にチェックを入れて、ダウンロードを行います。
ソフトウェアのダウンロードを行う際に、"Oracleプロファイルへのサインイン"が要求されます。 ユーザー名とパスワードを使用してサインインを行い、ソフトウェアをダウンロードして下さい。
Oracle SQL Developer
Oracle SQL Developerの場合もソフトウェアのダウンロードは、 Oracle Databaseと同じで、URLにアクセスして、[ダウンロード]のリンクから、Oracle SQL Developerをダウンロードして下さい。
Oracle SQL Developer 20.4.1のダウンロード
Oracle Databaseのインストール
Oracle Databaseを起動するまでには、3つの手順が必要です。 手順は大きく分けて、setup.exeによるインストール、Net Configuration AssistantによるOracleリスナーの設定、Database Configuraion Assistantによるデータベースの作成です。 データベースの作成が完了することで、GUIツールであるOracle SQL DeveloperでOracle Databaseを表示することができます。
インストールの順に、setup.exe、Net Configuration Assistant、 Database Configuraion Assistantとインストール手順をご紹介させて頂きます。 データベースの詳細な設定は行っておらず、手順自体を簡略化して、最小限の設定で起動するまでを記載しています。 手順自体は難しくないので、連携データベースを検討する場合に検討してみて下さい。
setup.exe
oracle.comからダウンロードしたファイルであるWINDOWS.X64_193000_db_home.zip
を解凍した際に、
フォルダ内にあるsetup.exe
でインストールを行います。
1.インストールファイルのディレクトリを開いて、setup.exe
を確認します。
2.setup.exe
を押下すると、User Account Controlのダイアログが表示されますので、[Yes]を押下します。
- [Step 1 of 16]では、
Set up Software Only
を選択して、[Next]を押下します。
4.[Next]を押下すると、[Step 2 of 9]となりますので、Single instance database installation
を選択して、[Next]を押下します。
5.[Step 3 of 9]では、Enterprise Edition
を選択して、[Next]を押下します。
6.[Step 4 of 9]では、Use Virtual Account
を選択して、[Next]を押下します。
7.[Step 5 of 9]では、Oracle DatabaseインストールするディレクトリであるOracle base
指定して、[Next]を押下します。この記事の検証は、C:\app\oracle
を指定します。
8.[Step 6 of 9]では、[Perform Prerequisite Checks]画面の処理を待ちます。
9.[Step 7 of 9]では、インストール設定の内容であるGlobal settings
とInventory information
が表示されますので、内容を確認して、[Install]を押下します。
10.[Step 8 of 9]では、[Install Product]画面の処理を待ちます。
11.Java(TM) Platform SE binary
で、[Windows Security Alert]のポップアップが表示がされましたら、[Allow access]を押下します。
12.[Step 8 of 9]の[Install Product]画面の処理を待ちます。
13.[Step 9 of 9]でThe registration of Oracle Database was successful.
が表示されましたら、インストール成功となりますので、[Close]を押下して終了します。
以上で、Oracle Databaseのインストールが完了です。
Net Configuration Assistant(NetCA)
NetCAは、ネットサービス名を新規に作成・変更・削除したりする際に使用するツールです。 クライアントアプリケーションとデータベースサーバーを接続するための独自のミドルウェアです。 この記事では、インストールしたOracle Databaseを使えるようにするための設定方法について記載させて頂きます。
1.まず、スタートメニューから、[Net Configuration Assistant]を開きます。
2.[Net Configuration Assistant]を押下した際に、User Account Control のダイアログが表示されたら、[Yes]を押下します。
3.[Oracle Net Configuration Assistant:Welcome]画面が表示されますので、Lister configuraion
を選択して、[Next]を押下します。
この記事では、英語版の環境でインストールしていますが、それぞれ日本語表記だと下記のようになっています。
構成手順 - 英語名 | 構成手順 - 日本語項目 |
---|---|
Listener configuration | リスナー構成 |
Naming Methods configuration | ネーミング・メソッド構成 |
Local Net Service configuration | ローカル・ネット・サービス名構成 |
Directory Usage Configuration | ディレクトリ使用構成 |
4.[Oracle Net Configuration Assistant Listener Configuration, Listener]画面にて、Add
を選択して、[Next]を押下します。
5.[Oracle Net Configuration Assistant Listener Configuration, Listener Name]画面にて、Listener nameにLISTENER
を設定して、[Next]を押下します。
6.[Oracle Net Configuration Assistant Listener Configuration, Select Protocols]画面にて、Selected ProtocolsにTCP
が選択されていることを確認して、[Next]を押下します。
7.[Oracle Net Configuration Assistant Listener Configuration, TCP/IP Protocol]画面にて、Use the standard port number of 1521
を選択して、[Next]を押下します。
8.[Oracle Net Configuration Assistant Listener Configuration, More Listeners]画面にて、No
を押下します。
9.[Oracle Net Configuration Assistant Listener Configuration, Listener Configuration Done]画面にて、Listener configuration complete!
の表示を確認して、[Next]を押下します。
10.最初の[Oracle Net Configuration Assistant:Welcome]画面が表示されますので、[Finish]を押下して終了します。
以上で、ネットサービスの作成が完了です。
Database Configuraion Assistant(DBCA)
DBCAは、ユーザーデータベースの作成や削除を行う際に使用するツールです。
DBCAでは、下記の5つのことができます。 * データベースの作成 * データベース・オプションの構成 * データベースの削除 * テンプレートの管理 * プラガブルデータベース(PDB)の管理
この記事では、インストールしたOracle DatabaseをOracle SQL Developerで使用するためのデータベースの作成方法について記載させて頂きます。*6
1.スタートメニューから、[Database Configuraion Assistant]を押下します。
2.[Database Configuraion Assistant]を押下した際に、User Account Control のダイアログが表示されたら、[Yes]を押下します。
3.Database Configuraion Assistantが起動したことを確認します。 表示される[Step 1 of 14]のSelect Database Operation画面では、まず、[Next]を押下します。
4.[Step 1 of 14]にて、選択メニューが表示されますので、Create a database
を選択して、[Next]を押下します。
5.[Step 2 of 14]にて、Advanced configuration
を選択して、[Next]を押下します。
6.[Step 3 of 14]にて、Custom Database
を選択して、他の項目はデフォルト設定で、[Next]を押下します。
7.[Step 4 of 14]にて、Global database nameにorcl.0.2.15
、SIDにorcl
を設定して、他の項目はデフォルト設定で、[Next]を押下します。Grobal database nameとSIDは、データベースに接続する際に、Oracle SQL Developerで使用するため、記録しておきます。
8.[Next]を押下すると、[Step 6 of 16]となりますので、デフォルト設定で、[Next]を押下します。
9.[Step 7 of 14]にて、デフォルト設定で、NetCAで作成したListenerが選択されているので、LISTENER
にチェックが入っていることを確認して、[Next]を押下します。
10.[Next]を押下すると、[Step 8 of 15]となります。Database componentsで不要なコンポーネントは、必要がなければチェックを外します。 今回は、すべてチェックを外して、データベースを作成します。すべてのチェックを外して、[Next]を押下します。
11.[Step 9 of 14]では、[Memory]、[Sizing]、[Character Sets]、[Connectioon mode]、[Sample schemas]のタブがあるSpecify Configuration Options画面が表示されます。各タブを設定して、次のタブに移動します。
まず、[Memory]タブにて、Use Automatic Memory Management
を選択して、次のタブである[Sizing]タブを押下します。
12.[Sizing]タブでは、デフォルト設定で変更せずに、次のタブである[Character Sets]タブを押下します。
13.[Character sets]タブでは、National character set
、Default language
、Default territory
を設定します。
設定後、次のタブである[Connection mode]タブを押下します。
この記事では、検証で使用している仮想マシンが英語版なので、下記のように設定をしています。
設定値|項目値
National character set |AL16UTF16 - Unicode UTF-16 Universal character set
Default language|American
Default territory|United States
14.[Connection mode]タブでは、Dedicated server mode
を選択して、次のタブである[Sample schemas]を押下します。
15.[Sample schemas]タブでは、デフォルト設定を確認して、[Next]を押下します。
16.[Step 10 of 15]では、デフォルト設定で、[Next]を押下します。
17.[Step 11 of 15]では、Use the same administrative password for all accounts
を選択して、パスワードを設定して、[Next]を押下します。
18.[Step 11 of 15]にて、パスワードを設定した際に、Database Configuration Assistantのダイアログが表示されたら、[Yes]を押下します。
19.[Step 12 of 15]にて、Create database
にチェックを入れて、[Next]を押下します。
20.[Step 13 of 15]にて、データベースの作成内容を確認して、[Finish]を押下します。
21.[Step 14 of 15]にて、データベースの作成が開始されますので、作成完了を待ちます。
22.[Step 15 of 15]にて、Database creation complete. For details check the logfiles at C:\app\oracle\cfgtoollogs\dbca\orcl.
の表示を確認して、[Close]を押下します。
以上で、データベースの作成が完了です。
Oracle SQL Developerの起動及び設定
SQL Developerは、スキーマ管理用のJavaプログラムです。 SQLの発行やスキーマオブジェクトの作成、更新、データの参照などを行うことができます。 E-R図の作成方法などもできるそうですが、この記事では、起動と接続方法のみ取り扱いたいと思います。
sqldeveloper.exe
1.まず、データベースの作成が完了しましたらインストールしている仮想マシンを再起動します。
2.次にダウンロードして解凍済みのsqldeveloper
のフォルダーを開きます。インストールするタイプのソフトウェアではないため、
sqldeveloper.exe
があるsqldeveloperフォルダ
を任意のフォルダに移動させます。
3.この記事では、C:\app\
配下にsqldeveloper.exe
があるsqldeveloperフォルダ
を、Oracle Databaseをインストールしたディレクトリと同じディレクトリに移動させて使用します。
4.sqldeveloperフォルダ
を開き、sqldeveloper.exe
を押下します。
5.スプラッシュスクリーンが表示されますので、Oracle SQL Developerの起動を待ちます。
6.Confirm Import Preferencesダイアログが表示されますが、[No]を押下します。
7.スプラッシュスクリーンの表示が終了するまで、起動を待ちます。
8.初回起動で、Oracle Usage Trackingダイアログの表示があるので、Allow automated usage reporting to Oracle
のチェックを外して、[OK]を押下します。
New Connection
9.画面左のConnectionsにある[New Connection]を押下します。
10.接続するデータベース情報を入力して[Save]して[Connect]します。 この記事では、下記の6つの設定項目を設定して、接続を行っています。
項目 | 入力値 |
---|---|
Name | Oracle Database 19C |
Username | SYS |
Password | ***パスワード*** |
Hostname | localhoset |
Port | 1521 |
SID | orcl.0.2.15 |
11.設定したOracle Databaseに接続できて、GUI画面からデータベース操作が行えることを確認します。
まとめ
以上が、Oracle Databaseのインストール及び設定方法です。 この記事の範囲であるOracle Databaseをインストールして、SQL DeveloperでGUI表示させるところまではできたと言えます。
次の記事では、Oracle DatabaseとSalesforce連携用のPythonライブラリをご紹介させて頂きます。 Pythonプログラムと連携できると多くのインテグレーションパターンを検討することができます。
よろしくお願いいたします。
備考
この記事は、著者が独自に調査した結果を、ロジカル・アーツ株式会社のブログにて記事化したものです。記載されている手順やアドレスなどは、予告なく変更される場合もあります。 この記事に記載されている会社名、商品名などは一般に各社の商標または登録商標です。なお、本文中には、™、®を明記しておりません。 クラウドアプリケーションは、成長が著しいため、機能更新も早いです。至らない箇所もあると思いますが、お気付きの点がありましたらお問い合わせ下さい。
クラウドアプリケーショントレンド(参考)
Stack Overflow Insights - Stack Overflow Trends
Yahoo Finance - Salesforce.com Inc (CRM) Interactive Stock Chart
よろしくお願いいたします。
*1:日本オラクル株式会社は、1985年にできたとのこと。日本だと、日本電信電話株式会社ができた年です(今から30年以上前)。当時は、Oracle Databaseの有償のマニュアルが30万円以上したというお話があるぐらい高嶺の花だったそうです。
*3:The database architecture of salesforce.com, force.com, and database.com
*4:Salesforce.com unveils Database.com
*5:Salesforceにはインデックス設定や、Force.com クエリオプティマイザ、スキニーテーブルなど、データベースとしても使用できる機能も多く、大量データの管理も行うことができます。
*6:OSがWindows 10を使用した場合の手順を記載させて頂きますが、UNIXであれば、X Window Systemが必須とのことです。