はじめに
Databricksとは統合データ分析プラットフォームで、データの取得、ETL処理、DWH機能、分析、可視化、様々な言語(Python、Scala、R、SQL、Markdown)が使用できます。
今回はDatabricksのCommunity EditionでAlwaysFreeのOracle Autonomous Databaseからデータを取得します。他のAWS、Azure、GCPのDatabricksでも可能となります。
Databricksログイン
Community Editionのdatabricksにログインします。
クラスター作成
ログイン後トップ画面に遷移するので、左のメニューから「Compute」をクリックします。
「Cluster Name」を入力して、後はデフォルトのまま「Create Cluster」をクリックします。
クラスター内での使用モジュール設定
以下を参考にPythonでOracle Databaseにアクセス出来るcx_Oracleの使用を考えていましたが、エラーが発生してしまいます。そのためcx_oracleの後継で、Oracle Client不要で接続出来るpython-oracledbを使用します。
クラスター作成完了後、「Libraies」をクリックして「Install new」をクリックします。
Library Sourceを「PyPI」に選択し、Packageに「oracledb」を入力。「Installボタン」をクリックします。
これでクラスター内にモジュールのインストールが完了しました。
Notebook作成
左のメニューから「Create」をクリックし、「Notebook」をクリックします。
Nameに「ノートブック名」を入力し、「Create」ボタンをクリックします。
import oracledb
connection = oracledb.connect(user='',password='',dsn='')
with connection.cursor() as cursor:
try:
sql = """select systimestamp from dual"""
for r in cursor.execute(sql):
print(r)
except oracledb.Error as e:
error, = e.args
print(error.message)
print(sql)
if (error.offset):
print('^'.rjust(error.offset+1, ' '))
Oracle Autonomous Database設定
Autonomous側の設定を行います。
「Mutual TLS (mTLS) authentication」の編集をクリックします。OFFにして「変更の保存」をクリックします。
次に「アクセス制御リスト」の編集をクリックします。
「IP表記法タイプ」を「CIDRブロック」に選択し、「値」を「0.0.0.0/0」を入力して「変更の保存」をクリックします。
この0.0.0.0/0はすべての通信を許可する設定になります。
開発・本番は指定のIPアドレスを指定して保護するように注意してください。
「TLS認証」を「TLS」に選択して、接続したい優先度の「接続文字列」のコピーをクリックして他に保存してきます。
実行
先ほどコピーした内容をdsnに張り付けて、接続するユーザー、パスワードを入力して▲をクリックして実行します。
参考にさせて頂いたサイト
これで以上となります。
見て頂きありがとうございました。