【OCI SQL Developer Web】オブジェクトストレージからのデータロード

 2021.04.27  株式会社テリロジー 技術統括部

こんにちは!テリロジーのY.Tです。

今回は、「【SQL Developer Web】データのアップロード」の記事でご紹介したSQL Developer Webのデータロードから、AWS、OCIのオブジェクトストレージからデータをロードしてみたいと思います。

はじめに、SQL Developer Webから他クラウドへ接続する設定画面を確認し、AWS、OCIで実際にテスト用の バケット、また、アクセス用アカウントを作成してデータをロードしていきます。

SQL Developer Webからクラウドストレージへの接続

「【OCI SQL Developer Web】データのアップロード」の記事を参考に、SQL Developer Webにアクセスし、「データのロード」を選択します。

SQL Developer Webからクラウドストレージへの接続 画像1

「クラウドの場所」を選択後、左上の「+クラウド・ストレージの追加」をクリックし、接続可能なクラウドサービスと接続に必要なパラメータを確認します。

SQL Developer Webからクラウドストレージへの接続 画像2

「クラウド・ストア」から、データベースと接続可能な以下のオブジェクトストレージが、ドロップダウン形式で 選択できます。

  • AWS S3
  • Azure
  • OCI オブジェクトストレージ
  • GCP
  • その他クラウドストレージサービス

また、接続するために入力が必要な情報は、主にストレージへのURI、ストレージにアクセスするアカウント名、 認証情報になります。
ここではAWS S3、OCIにテスト用のバケットを作成し、バケット内のデータをSQL Developer Webからデータベースにロードしたいと思います。

AWS S3でテスト用バケット、アカウントの作成

AWS S3からSQL Developer Web経由でOCI上のデータベースにデータをロードするためには、 以下の4つの情報が必要になります。

  • ストレージへのパス(URI)
  • 接続時のアカウント名
  • 接続するアカウントのアクセスキー
  • 接続するアカウントのシークレットアクセスキー

実際にAWSへログインし、AWS S3にテスト用バケットを作成し、アクセス用のアカウントを作成していきます。

1.バケットの作成とデータの追加

「S3」>「バケットを作成」から新規にバケットを作成していきます。必要な事項を入力しバケットを作成します。

バケットの作成とデータの追加 画像1

作成したバケットにテキストやCSV、JSONなど任意のデータをアップロードします。

バケットの作成とデータの追加 画像2

アップロードしたデータを選択し、「URLをコピー」をクリックし、URLを確認します。

バケットの作成とデータの追加 画像3

オブジェクト名までコピーできてしまいますが、SQL Developer Webではバケットを接続先のURIとして指定する ため、以下のようにSQL Developer Webへ接続する際はオブジェクト名を削除したURIを指定します。

コピーしたURI:https://<バケット名>.s3-<リージョン名>.amazonaws.com/<オブジェクト名>
OCIに接続する際のURIhttps://<バケット名>.s3-<リージョン名>.amazonaws.com/

2.S3接続用のアカウントの作成

バケットの作成完了後、SQL Developer Webから、作成したバケットへアクセス際に利用するIAMユーザを作成 します。「IAM」>「ユーザー」>「ユーザを追加」をクリックし、IAMユーザの作成を行っていきます。 今回はS3に対してフルアクセス可能なポリシーを、作成するアカウントに付与します。

  • ユーザ名:任意に入力
  • アクセスの種類:プログラムによるアクセス
  • 割り当てるポリシー:AmazonS3FullAccess

S3接続用のアカウントの作成 画像1

ユーザの作成後、シークレットアクセスキーと、アクセスキーを確認します。

S3接続用のアカウントの作成 画像2

これでSQL Developer WebからAWS S3への接続に必要な情報の確認ができました。

OCIでテスト用バケットの作成

OCIのオブジェクトストレージからSQL Developer Web経由でOCI上のデータベースにデータをロードするためには、
以下の4つの情報が必要になります。

  • ストレージへのパス(URI)
  • 接続ユーザのトークン名
  • 接続ユーザ名
  • 接続ユーザのトークン

OCIでテスト用のストレージを作成していきます。アクセスユーザは既存のユーザで接続を行っていきます。

1.バケットの作成とデータの追加

「オブジェクト・ストレージ」>「オブジェクト・ストレージ」へ推移し、「バケットの作成」をクリックします。

バケットの作成とデータの追加

2.URIの確認

作成したバケットを選択後、「アップロード」から任意のデータをアップロードます。

URIの確認 画像1

データをアップロード後、右側のメニューから「オブジェクト詳細の表示」を選択し、URIを確認します。 オブジェクト名より前の部分までをコピーします。

確認可能なURI:
https://<ストレージ名>.<リージョン名>.oraclecloud.com/n/<ネームスペース>/b/<バケット名>/o/<オブジェクト名>

OCIに接続する際のURI
https://<ストレージ名>.<リージョン名>.oraclecloud.com/n/<ネームスペース>/b/<バケット名>/o/

URIの確認 画像2

URIの確認 画像3

3.ユーザ名の確認とトークンの作成

次に、現在ログインしているIDCSユーザでトークンを作成していきます。
OCI管理コンソール左メニューの「アイデンティティ」>「ユーザー」をクリックし、現在ログインしているユーザを 選択します。その後、「認証トークン」の「トークンの作成」から、トークンの作成を行います。
作成したトークン名とトークンを確認します。

ユーザ名の確認とトークンの作成

これでSQL Developer WebからOCI オブジェクトストレージへの接続に必要な情報の確認ができました。

SQL Developer WebからAWS S3、OCIオブジェクトストレージへ接続

今まで確認した、AWS S3とOCIオブジェクトストレージに接続するために必要な情報をSQL Developer Webに登録し、データベースで各々のストレージのデータを取得していきます。
SQL Developer Webに移動し、「クラウドの場所」を選択後、左上の「+クラウド・ストレージの追加」をクリックし、必要な情報を入力します。

ここでは、先ほど確認したOCI オブジェクトストレージの接続情報を入力し、「テスト」をクリックし接続できるか 確認します。テストに成功すると以下のように「クラウド・ストレージURIは指定された資格証明で有効です」と表示されます。「作成」をクリックしてSQL Developer Webからの接続を作成します。
また、AWSも同様に接続情報を入力し、作成します。

SQL Developer WebからAWS S3、OCIオブジェクトストレージへ接続 画像1

次に、実際にOCI上のバケット内のデータを取得したいと思います。「データのロード」、「クラウドストレージ」を選択します。

SQL Developer WebからAWS S3、OCIオブジェクトストレージへ接続 画像2

先ほど接続した、AWSとOCIのバケットが選択できるようになっており、バケット内のオブジェクトも確認できます。実際にオブジェクトをドラッグ&ドロップし、実行ボタンをクリックすると、ロードすることができます。

SQL Developer WebからAWS S3、OCIオブジェクトストレージへ接続 画像3

まとめ

今回はSQL Developer Webとオブジェクトストレージを接続する方法についてご紹介していきました。 AzureやGCPなど主要なクラウドサービスと接続ができること、また、クエリ文を使わずに接続できることで容易に データ連携が可能になり、とても便利だと思いました!
最後までお読みいただき、ありがとうございました。🙇


RECENT POST「OCIサービス紹介」の最新記事


OCIサービス紹介

テリロジーが提供しているOCIの4つのサービス

OCIサービス紹介

Oracle FunctionsのスクリプトをAPIGW経由で確認 Part1

OCIサービス紹介

Oracle FunctionsのスクリプトをAPIGW経由で確認 Part2

OCIサービス紹介

OCIのDNSサービス

【OCI SQL Developer Web】オブジェクトストレージからのデータロード