Blogical

AWS/Salesforceを中心に様々な情報を配信していきます(/・ω・)/

Pythonを使用したデータベースとSalesforceの連携方法(1) - Oracle Databaseインストール方法及びGUI環境構築まで

おはようございます。ロジカル・アーツ株式会社のSE 輪島 幸治です。

Pythonを使用してデータベースとSalesforceを連携するSalesforceインテグレーションの記事を執筆させて頂きます。 目標としては、Pythonプログラムにて、Oracle DatabaseにSQLを実行して取得した結果を加工して、 SalesforceAPI連携できれば、目標達成としています。

ブログの記事構成は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

www.oracle.com

図解入門よくわかる 最新Oracleデータベースの基本と仕組み[第5版] (単行本)

日本データベース学会 - DBSJ - 維持会員一覧

f:id:logicalarts:20210524152741p:plain
日本データベース学会

SalesforceOracle Databaseについて

Salesforceは、Oracleと関連が深かったりします。

まず、Salesforce CEOのMarc Benioffさん*2が、Oracle 出身者とのことです。 また、2020年まで共同CEOだったKeith Blockさんも、Oracle 出身者とのことです。 インフラストラクチャーでもOracle Databaseを使用しているという記載が海外の記事*3*4やTrailheadにも記載が確認できました。

The rise of Marc Benioff, the bombastic owner of Time Magazine who just became Salesforce's sole CEO, has an $8 billion fortune, and owns a 5-acre compound in Hawaii

・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が使用できれば良い方向けの内容を記載させて頂きます。

  • インストールファイル取得
  • Oracle Databaseのインストール
  • Oracle SQL Developerの起動及び設定

各手順について、順に説明させて頂きます。

インストールファイル取得

使用するインストールファイルの取得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)]をダウンロードします。

Oracle Database ソフトウェア・ダウンロード

f:id:logicalarts:20210524155746p:plain
(00)

[ZIP]のリンクを押下すると、ポップアップが表示され、 "You must accept the Oracle License Agreement to download this software."と表示されます。 "Oracle License Agreement"を確認して、ソフトウェアをダウンロードしたい場合は、 "I reviewed and accept the Oracle License Agreement"にチェックを入れて、ダウンロードを行います。

f:id:logicalarts:20210524155802p:plain
(01)

ソフトウェアのダウンロードを行う際に、"Oracleプロファイルへのサインイン"が要求されます。 ユーザー名とパスワードを使用してサインインを行い、ソフトウェアをダウンロードして下さい。

f:id:logicalarts:20210524155815p:plain
(02)

Oracle SQL Developer

Oracle SQL Developerの場合もソフトウェアのダウンロードは、 Oracle Databaseと同じで、URLにアクセスして、[ダウンロード]のリンクから、Oracle SQL Developerをダウンロードして下さい。

Oracle SQL Developer 20.4.1のダウンロード

f:id:logicalarts:20210524160407p:plain
(03)

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を確認します。

f:id:logicalarts:20210523153029p:plain
(04)

2.setup.exeを押下すると、User Account Controlのダイアログが表示されますので、[Yes]を押下します。

f:id:logicalarts:20210523153044p:plain
(05)

  1. [Step 1 of 16]では、Set up Software Onlyを選択して、[Next]を押下します。
    f:id:logicalarts:20210523153058p:plain
    (06)

4.[Next]を押下すると、[Step 2 of 9]となりますので、Single instance database installationを選択して、[Next]を押下します。

f:id:logicalarts:20210523153112p:plain
(07)

5.[Step 3 of 9]では、Enterprise Editionを選択して、[Next]を押下します。

f:id:logicalarts:20210523153126p:plain
(08)

6.[Step 4 of 9]では、Use Virtual Accountを選択して、[Next]を押下します。

f:id:logicalarts:20210523153146p:plain
(09)

7.[Step 5 of 9]では、Oracle DatabaseインストールするディレクトリであるOracle base指定して、[Next]を押下します。この記事の検証は、C:\app\oracleを指定します。

f:id:logicalarts:20210523153159p:plain
(10)

8.[Step 6 of 9]では、[Perform Prerequisite Checks]画面の処理を待ちます。

f:id:logicalarts:20210523153209p:plain
(11)

9.[Step 7 of 9]では、インストール設定の内容であるGlobal settingsInventory informationが表示されますので、内容を確認して、[Install]を押下します。

f:id:logicalarts:20210523153222p:plain
(12)

10.[Step 8 of 9]では、[Install Product]画面の処理を待ちます。

f:id:logicalarts:20210523153234p:plain
(13)

11.Java(TM) Platform SE binaryで、[Windows Security Alert]のポップアップが表示がされましたら、[Allow access]を押下します。

f:id:logicalarts:20210523153249p:plain
(14)

12.[Step 8 of 9]の[Install Product]画面の処理を待ちます。

f:id:logicalarts:20210523153301p:plain
(15)

13.[Step 9 of 9]でThe registration of Oracle Database was successful.が表示されましたら、インストール成功となりますので、[Close]を押下して終了します。

f:id:logicalarts:20210523153316p:plain
(16)

以上で、Oracle Databaseのインストールが完了です。

Net Configuration Assistant(NetCA)

NetCAは、ネットサービス名を新規に作成・変更・削除したりする際に使用するツールです。 クライアントアプリケーションとデータベースサーバーを接続するための独自のミドルウェアです。 この記事では、インストールしたOracle Databaseを使えるようにするための設定方法について記載させて頂きます。

1.まず、スタートメニューから、[Net Configuration Assistant]を開きます。

f:id:logicalarts:20210523153340p:plain
(17)

2.[Net Configuration Assistant]を押下した際に、User Account Control のダイアログが表示されたら、[Yes]を押下します。

f:id:logicalarts:20210523153354p:plain
(18)

3.[Oracle Net Configuration Assistant:Welcome]画面が表示されますので、Lister configuraionを選択して、[Next]を押下します。

f:id:logicalarts:20210523153405p:plain
(19)

この記事では、英語版の環境でインストールしていますが、それぞれ日本語表記だと下記のようになっています。

構成手順 - 英語名 構成手順 - 日本語項目
Listener configuration リスナー構成
Naming Methods configuration ネーミング・メソッド構成
Local Net Service configuration ローカル・ネット・サービス名構成
Directory Usage Configuration ディレクトリ使用構成

4.[Oracle Net Configuration Assistant Listener Configuration, Listener]画面にて、Addを選択して、[Next]を押下します。

f:id:logicalarts:20210523153416p:plain
(20)

5.[Oracle Net Configuration Assistant Listener Configuration, Listener Name]画面にて、Listener nameにLISTENERを設定して、[Next]を押下します。

f:id:logicalarts:20210523153427p:plain
(21)

6.[Oracle Net Configuration Assistant Listener Configuration, Select Protocols]画面にて、Selected ProtocolsにTCPが選択されていることを確認して、[Next]を押下します。

f:id:logicalarts:20210523153439p:plain
(22)

7.[Oracle Net Configuration Assistant Listener Configuration, TCP/IP Protocol]画面にて、Use the standard port number of 1521を選択して、[Next]を押下します。

f:id:logicalarts:20210523153452p:plain
(23)

8.[Oracle Net Configuration Assistant Listener Configuration, More Listeners]画面にて、Noを押下します。

f:id:logicalarts:20210523153504p:plain
(24)

9.[Oracle Net Configuration Assistant Listener Configuration, Listener Configuration Done]画面にて、Listener configuration complete!の表示を確認して、[Next]を押下します。

f:id:logicalarts:20210523153530p:plain
(25)

10.最初の[Oracle Net Configuration Assistant:Welcome]画面が表示されますので、[Finish]を押下して終了します。

f:id:logicalarts:20210523153543p:plain
(26)

以上で、ネットサービスの作成が完了です。

Database Configuraion Assistant(DBCA)

DBCAは、ユーザーデータベースの作成や削除を行う際に使用するツールです。

DBCAでは、下記の5つのことができます。 * データベースの作成 * データベース・オプションの構成 * データベースの削除 * テンプレートの管理 * プラガブルデータベース(PDB)の管理

この記事では、インストールしたOracle DatabaseをOracle SQL Developerで使用するためのデータベースの作成方法について記載させて頂きます。*6

1.スタートメニューから、[Database Configuraion Assistant]を押下します。

f:id:logicalarts:20210523153557p:plain
(27)

2.[Database Configuraion Assistant]を押下した際に、User Account Control のダイアログが表示されたら、[Yes]を押下します。

f:id:logicalarts:20210523153637p:plain
(28)

3.Database Configuraion Assistantが起動したことを確認します。 表示される[Step 1 of 14]のSelect Database Operation画面では、まず、[Next]を押下します。

f:id:logicalarts:20210523153655p:plain
(29)

4.[Step 1 of 14]にて、選択メニューが表示されますので、Create a databaseを選択して、[Next]を押下します。

f:id:logicalarts:20210523153709p:plain
(30)

5.[Step 2 of 14]にて、Advanced configurationを選択して、[Next]を押下します。

f:id:logicalarts:20210523153721p:plain
(31)

6.[Step 3 of 14]にて、Custom Databaseを選択して、他の項目はデフォルト設定で、[Next]を押下します。

f:id:logicalarts:20210523153733p:plain
(32)

7.[Step 4 of 14]にて、Global database nameにorcl.0.2.15、SIDにorclを設定して、他の項目はデフォルト設定で、[Next]を押下します。Grobal database nameとSIDは、データベースに接続する際に、Oracle SQL Developerで使用するため、記録しておきます。

f:id:logicalarts:20210523153748p:plain
(33)

8.[Next]を押下すると、[Step 6 of 16]となりますので、デフォルト設定で、[Next]を押下します。

f:id:logicalarts:20210523153801p:plain
(34)

9.[Step 7 of 14]にて、デフォルト設定で、NetCAで作成したListenerが選択されているので、LISTENERにチェックが入っていることを確認して、[Next]を押下します。

f:id:logicalarts:20210523153818p:plain
(35)

10.[Next]を押下すると、[Step 8 of 15]となります。Database componentsで不要なコンポーネントは、必要がなければチェックを外します。 今回は、すべてチェックを外して、データベースを作成します。すべてのチェックを外して、[Next]を押下します。

f:id:logicalarts:20210523153837p:plain
(36)

11.[Step 9 of 14]では、[Memory]、[Sizing]、[Character Sets]、[Connectioon mode]、[Sample schemas]のタブがあるSpecify Configuration Options画面が表示されます。各タブを設定して、次のタブに移動します。 まず、[Memory]タブにて、Use Automatic Memory Managementを選択して、次のタブである[Sizing]タブを押下します。

f:id:logicalarts:20210523153908p:plain
(37)

12.[Sizing]タブでは、デフォルト設定で変更せずに、次のタブである[Character Sets]タブを押下します。

f:id:logicalarts:20210523153924p:plain
(38)

13.[Character sets]タブでは、National character setDefault languageDefault territoryを設定します。 設定後、次のタブである[Connection mode]タブを押下します。 この記事では、検証で使用している仮想マシンが英語版なので、下記のように設定をしています。

設定値|項目値 National character set |AL16UTF16 - Unicode UTF-16 Universal character set Default language|American Default territory|United States

f:id:logicalarts:20210523153949p:plain
(39)

14.[Connection mode]タブでは、Dedicated server modeを選択して、次のタブである[Sample schemas]を押下します。

f:id:logicalarts:20210523154003p:plain
(40)

15.[Sample schemas]タブでは、デフォルト設定を確認して、[Next]を押下します。

f:id:logicalarts:20210523154026p:plain
(41)

16.[Step 10 of 15]では、デフォルト設定で、[Next]を押下します。

f:id:logicalarts:20210523154044p:plain
(42)

17.[Step 11 of 15]では、Use the same administrative password for all accountsを選択して、パスワードを設定して、[Next]を押下します。

f:id:logicalarts:20210523154103p:plain
(43)

18.[Step 11 of 15]にて、パスワードを設定した際に、Database Configuration Assistantのダイアログが表示されたら、[Yes]を押下します。

f:id:logicalarts:20210523154116p:plain
(44)

19.[Step 12 of 15]にて、Create databaseにチェックを入れて、[Next]を押下します。

f:id:logicalarts:20210523154132p:plain
(45)

20.[Step 13 of 15]にて、データベースの作成内容を確認して、[Finish]を押下します。

f:id:logicalarts:20210523154145p:plain
(46)

21.[Step 14 of 15]にて、データベースの作成が開始されますので、作成完了を待ちます。

f:id:logicalarts:20210523154157p:plain
(47)

22.[Step 15 of 15]にて、Database creation complete. For details check the logfiles at C:\app\oracle\cfgtoollogs\dbca\orcl.の表示を確認して、[Close]を押下します。

f:id:logicalarts:20210523154215p:plain
(48)

以上で、データベースの作成が完了です。

Oracle SQL Developerの起動及び設定

SQL Developerは、スキーマ管理用のJavaプログラムです。 SQLの発行やスキーマオブジェクトの作成、更新、データの参照などを行うことができます。 E-R図の作成方法などもできるそうですが、この記事では、起動と接続方法のみ取り扱いたいと思います。

sqldeveloper.exe

1.まず、データベースの作成が完了しましたらインストールしている仮想マシンを再起動します。

f:id:logicalarts:20210523154251p:plain
(49)

2.次にダウンロードして解凍済みのsqldeveloperのフォルダーを開きます。インストールするタイプのソフトウェアではないため、 sqldeveloper.exeがあるsqldeveloperフォルダを任意のフォルダに移動させます。

f:id:logicalarts:20210523154310p:plain
(50)

3.この記事では、C:\app\配下にsqldeveloper.exeがあるsqldeveloperフォルダを、Oracle Databaseをインストールしたディレクトリと同じディレクトリに移動させて使用します。

f:id:logicalarts:20210523154322p:plain
(51)

4.sqldeveloperフォルダを開き、sqldeveloper.exeを押下します。

f:id:logicalarts:20210523154335p:plain
(52)

5.スプラッシュスクリーンが表示されますので、Oracle SQL Developerの起動を待ちます。

f:id:logicalarts:20210523154347p:plain
(53)

6.Confirm Import Preferencesダイアログが表示されますが、[No]を押下します。

f:id:logicalarts:20210523154401p:plain
(54)

7.スプラッシュスクリーンの表示が終了するまで、起動を待ちます。

f:id:logicalarts:20210523154422p:plain
(55)

8.初回起動で、Oracle Usage Trackingダイアログの表示があるので、Allow automated usage reporting to Oracleのチェックを外して、[OK]を押下します。

f:id:logicalarts:20210523154435p:plain
(56)

New Connection

9.画面左のConnectionsにある[New Connection]を押下します。

f:id:logicalarts:20210523154452p:plain
(57)

10.接続するデータベース情報を入力して[Save]して[Connect]します。 この記事では、下記の6つの設定項目を設定して、接続を行っています。

項目 入力値
Name Oracle Database 19C
Username SYS
Password ***パスワード***
Hostname localhoset
Port 1521
SID orcl.0.2.15

f:id:logicalarts:20210523154505p:plain
(58)

11.設定したOracle Databaseに接続できて、GUI画面からデータベース操作が行えることを確認します。

f:id:logicalarts:20210523154521p:plain
(59)

まとめ

以上が、Oracle Databaseのインストール及び設定方法です。 この記事の範囲であるOracle Databaseをインストールして、SQL DeveloperでGUI表示させるところまではできたと言えます。

次の記事では、Oracle DatabaseとSalesforce連携用のPythonライブラリをご紹介させて頂きます。 Pythonプログラムと連携できると多くのインテグレーションパターンを検討することができます。

よろしくお願いいたします。

備考

この記事は、著者が独自に調査した結果を、ロジカル・アーツ株式会社のブログにて記事化したものです。記載されている手順やアドレスなどは、予告なく変更される場合もあります。 この記事に記載されている会社名、商品名などは一般に各社の商標または登録商標です。なお、本文中には、™、®を明記しておりません。 クラウドアプリケーションは、成長が著しいため、機能更新も早いです。至らない箇所もあると思いますが、お気付きの点がありましたらお問い合わせ下さい。

クラウドアプリケーショントレンド(参考)

Stack Overflow Insights - Stack Overflow Trends

f:id:logicalarts:20210721113843p:plain
Stack Overflow Trends(2009-2021)

Yahoo Finance - Salesforce.com Inc (CRM) Interactive Stock Chart

f:id:logicalarts:20210721113900p:plain
Yahoo Finance Chart(2009-2021)

よろしくお願いいたします。

*1:日本オラクル株式会社は、1985年にできたとのこと。日本だと、日本電信電話株式会社ができた年です(今から30年以上前)。当時は、Oracle Databaseの有償のマニュアルが30万円以上したというお話があるぐらい高嶺の花だったそうです。

*2:Marc Benioff

*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が必須とのことです。