はじめに
今回の記事は、OCI初心者である筆者が、Oracle Cloud Infrastructure(OCI)のAutonomous Database(以下ADB)のチュートリアルを実践し、その過程や学びを共有していきます。
対象チュートリアル
OCIチュートリアル Oracle Database編~ADBを使ってみよう~
【基礎編】
101:ADBインスタンスを作成してみよう
102:ADBにデータをロードしよう(Database Actions)※ローカルファイル編
前提条件
- OCIアカウントを持っていること
- リージョンの選択・コンパートメントの作成までが終わっていること
実践
それではここからチュートリアルを実践していきます。
ADBインスタンスを作成してみよう
コンパートメントの作成までが終わっていることを前提にしているのでチュートリアル101の頭からではなく、チュートリアル101「2.ADBインスタンスを作成してみよう」から始めていきます。
Autonomous Databaseでは利用用途によってさまざまなインスタンスタイプを選択することができますが、ここでは汎用的な用途で利用可能なAutonomous Transaction Processing(ATP)インスタンスを作成します。
サービス一覧から [Oracle Database]»[Autonomous Database] を選択し、ADBのサービス画面を表示します。
[Autonomous Database] の作成 をクリックすると作成ウィンドウが立ち上がります。
各項目を入力します。
コンパートメント:(自身のコンパートメントになっているか確認してください)
表示名:atp01
データベース名:atp01
ワークロード・タイプの選択:トランザクション処理
※OCIチュートリアルではデプロイメント・タイプの選択項目で「共有インフラストラクチャ」を選択するよう記載がありますが、サーバーレスを選んでいただければ問題ありません。
デプロイメント・タイプの選択:サーバーレス
AlwaysFree:OFF
データベース・バージョンの選択:19c
※OCIチュートリアルではOCPUでの記載になっていますが、Autonomous Databaseでは今後OCPUモデルは廃止予定のため今回はECPUで作成しています。
(1OCPU=4ECPUのため今回の設定値は4にしていますが、最小では2ECPUから作成が可能です。)
ECPU数:4
※今回はOCIチュートリアルに倣い下記の設定していますがストレージ構成は20Gまで小さくすることが可能です。
ストレージ:1
ストレージ単位サイズ:TB
自動スケーリングの計算:ON
ストレージの自動スケーリング:OFF
※今回はOCIチュートリアルに倣い下記の設定していますがECPUで作成しているためバックアップ日数は1~60日の間で選択可能です。
※ただし、OCPUは保持期間60日固定で自動バックアップストレージの保持費用が無償なのに対し、ECPUは自動バックアップストレージの保持費用が必要となります。
バックアップ保持:60日
管理者資格証明ユーザー名:ADMIN
管理者資格証明パスワード:Welcome12345#
ネットワーク・アクセスの選択:すべての場所からのセキュアアクセスを許可
※OCIチュートリアルでは「ライセンスタイプの選択」とありますが下記「ライセンスとOracle Databaseエディションの選択」と同じです。
ライセンスとOracle Databaseエディションの選択:ライセンス込み
連絡先の電子メール:今回は空欄にしました
全て入力できたことを確認し、[Autonomous Databaseの作成]をクリックします。
画面左上のオレンジ色のプロビジョニング中アイコンが、緑色の使用可能に変わればインスタンスの作成が完了です。
Database Actionsで操作してみよう
ADBインスタンスの作成が完了したので、次は作成したDatabaseに対しての操作を行ってみます。
ADBにはインスタンスを作成後すぐ使用できる様々な開発ツールが用意されています。
ここではデータベースオブジェクトの管理、SQL作成など様々な操作を実行できるDatabase Actionsを利用し、作成したADBインスタンスにアクセスして操作してみましょう。
【Database Actions(データベース・アクション)について】
Database Actionsとは
Oracle Database Actionsは、多くのデータベース開発、管理およびモニタリング機能を提供するブラウザ・ベースのアプリケーションであり、Autonomous Databaseに組み込まれています。
このため、追加のソフトウェアをシステムにダウンロードしたりインストールしなくても使用できます。
Database Actionsの以前の名称は、SQL Developer Webです。
引用:Oracle Database Actionsとの接続
また、同引用先に
Database Actionsにサインインするには、使用しているシステムにAutonomous Databaseへのネットワーク・アクセスが必要です。
とある通り、Database Actionsにアクセスするためには前項でADBインスタンス作成時にネットワーク・アクセスの選択:すべての場所からのセキュアアクセスを許可
を設定していなければいけません。
(もしくは別途FastConnect/VPN などの閉域網接続が必要です)
それではDatabase Actionsにアクセスしていきましょう。
ADBインスタンスの詳細画面を表示します。
※OCIチュートリアルでは[ツール・タブ]から[データベース・アクションを開く]をクリック
と記載がありますが
2024年3月時点ではUIの変更があり後述の画面になっていました。
データベース名下にある[データベース・アクション]»[すべてのデータベース・アクションの表示]をクリックしてください。
もしログイン認証を要求された場合は、インスタンス作成時の
ユーザー名:ADMIN
パスワード:Welcome12345##
でログインしてください。
ログインできたら
Database Actionsのランディングページで[SQL]をクリックします。
SQLワークシートが起動します。
ADBインスタンスを操作できるか確認するために、ワークシートに下記のSQLを貼り付け、上部にある緑色の実行ボタンをクリックします。
以下は例として接続しているユーザーのユーザー名を確認するSQLです。
1 |
SELECT USERNAME FROM USER_USERS ; |
データベース・ユーザーを作成してみよう(Database Actions使用編)
※Database Actionsを使用した場合のユーザー作成手順を実践します。
ADBインスタンスを作成するとデフォルトでADMINユーザが作成されていますが、アプリケーションを構成する場合はADMINではなく、個別にデータベース・ユーザー(スキーマ)を作成することが多いです。
ここではADBにおけるデータベース・ユーザーの作成してみます。
Database Actionsのランディングページで[データベース・ユーザー]をクリックします。
データベース・ユーザーの管理画面で、[ユーザーの作成]をクリックします。
ユーザーの作成にて、
ユーザー名:ADBUSER
パスワード:Welcome12345#
を入力します。
表領域の割り当て制限をUNLIMITED(無制限)
に設定します。
上の[付与されたロール]タブをクリックすると自動でCONNECTとRESOURCEの「付与済」にチェックが入り、事前定義されているDWROLEロールの割り当てが行われることが確認できます。
ロールについて詳しくはOracle Databaseセキュリティガイド「権限とロール認可の構成」を参照してください。
RESOURCE:そのユーザーに関連付けられたスキーマで特定タイプのスキーマ・オブジェクトの作成・変更および削除を可能にするロール
CONNECT:ユーザーのDBへの接続を可能にするロール
権限が問題なく付与されていることが確認出来たら[ユーザーの作成]をクリックします。
ADBUSERという名前の新しいユーザーが作成されたことが確認できます。
データベース・ユーザーを作成してみよう(コマンドライン使用編)
※コマンドラインを使用した場合のユーザー作成手順を実践します。
※このために前項終了後、一度作成したABDUSERを削除しています。
Database Actionsのランディングページで[SQL]をクリックします。
Database Actionsにて、ADMINユーザーが選択されていることを確認します。
以下のSQLをワークシートに貼り付け、実行ボタンをクリックし、新規データベース・ユーザー(スキーマ)を作成します。
ここでは、
ユーザ名:adbuser
パスワード:Welcome12345#
で新規作成しています
1 |
CREATE USER adbuser IDENTIFIED BY Welcome12345#; |
結果表示画面に「User ABDUSERは作成されました。」と表示されれば成功です。
以下のSQLをワークシートに貼り付け、実行ボタンをクリックし、操作権限(ロール)をユーザーに付与します。
※前述のDataBase Actions使用編ではユーザー作成時に自動で付与が行わましたが、コマンドラインでは別途操作が必要になります。
ここでは例としてAutonomous Databaseで事前定義されている DWROLE ロール を付与しています。
(要件に応じて、従来の権限(Connect, Resource,等々)を個別に付与することも可能です)
1 |
GRANT DWROLE TO adbuser; |
結果表示画面に「Grantが正常に実行されました。」と表示されれば成功です。権限が付与されました。
次にデータ利用の上限を設定します。
インスタンス作成時のストレージを1TBと指定した場合、その1TBの中で各ユーザがどれだけ利用できるかを設定できます。
以下をワークシートに貼り付け、緑色の実行ボタンをクリックします。
ここでは例として上限を10GBにしています。
1 2 3 4 5 6 |
BEGIN DBMS_CLOUD_ADMIN.GRANT_TABLESPACE_QUOTA( username => 'adbuser', tablespace_quota => '10G' ); END; / |
結果表示画面に「PL/SQLプロシージャが正常に完了しました。」と表示されれば成功です。上限の設定ができました。
画面左側に新規ユーザ(ここではADBUSER)が作成されたことを確認してください。
筆者はこの時点ではADBUSERが出てきませんでしたが、ブラウザをリフレッシュ(F5)すると表示されるようになりました。
以上でチュートリアル101は終了です。
手元のPCからCSVデータをロードしてみよう
ADBインスタンスとデータベースユーザーの作成が完了したので、次はチュートリアル102「1. 手元のPCからCSVデータをロードしてみよう」を行ってみましょう。
まず手元のPC上のデータをADBインスタンスにロードしてみましょう。
サンプルデータとしてsales_channels.csvファイルを利用します。
※こちらのサンプルデータもOCIチュートリアル内で用意されています。事前にダウンロードして解凍しておいてください。
Database Actionsを起動しランディングページの[データ・ロード]を選択します。
[データのロード]を選択します。
※OCIチュートリアルでは
このような画面になる旨が案内されていますが、2024年3月時点ではUIの変更があり後述の画面になっていました。
画面左上のデータの場所で[ローカル・ファイル]を選択して、画面中央の[ファイルの選択]をクリックし、ダウンロードして解凍した sales_channels.csv を選択します。
sales_channels.csvがロードできる状態になりました。
※こちらもOCIチュートリアルでは
このような画面になる旨が案内されていますが、2024年3月時点ではUIの変更があり後述の画面になっていました。
ロード前にペンアイコンをクリックすると、ファイルの詳細設定を確認・変更できます。
sales_channels.csvの表定義等のデータのプレビューを確認したら[閉じる]をクリックして戻ります。
[開始]をクリックし、データのロードを開始します。
ポップアップが表示されるので、実行 をクリックします。
読み込み中の画面です。
「完了」が表示されればロード完了です。
ロードされたsales_channels.csvが表として格納されたのかワークシートで確認していきます。ランディングページに戻り[SQL]をクリックします。
ロードされたデータの内容・件数を確認するために以下のSQLをワークシートに貼り付けて実行します。
1 |
select * from sales_channels; |
結果表示画面にsales_channels.csvの中身が表示されていれば成功です。
これで、手元のPCのローカルファイルからデータをADBにロードするチュートリアルが完了しました。
以上で102:「ADBにデータをロードしよう(Database Actions)」のローカルファイル編までが終了です。
実践してみての感想
今回はAutonomous Databaseを使うための一番最初のステップであるインスタンス及びデータベースユーザーの作成、ローカルファイルからのデータロードの方法について学びました。
UIや入力項目にいくつかの変更が見受けられたものの、概ねチュートリアル通りで問題なく進めることができました。
今回は汎用的に使えるAutonomous Transaction Processingインスタンスを作成しましたが、このチュートリアルを基に用途に合わせてAutonmous Data Warehouse (ADW)やAutonomous JSON Database (AJD)タイプのインスタンスの作成も行えるとのことなので筆者も実践してみます。
インスタンス作成やデータのロードに関しては、Autonomous Databaseを使っていくための基本的な部分なので、チュートリアルがなくても自身で細かい設定まで理解してやれるよう引き続き学習を進めていきたいと思います。
では、次回はオブジェクトストレージからのデータロード・クラウドストレージのデータフィードを行う予定です。