1
0

More than 1 year has passed since last update.

[Oracle Cloud] OCI Data Sciense ノートブック・セッションの作成してみた(2023/08/15)

Last updated at Posted at 2023-08-15

はじめに

Oracle Cloud Infrastructure Data Scienceでノートブック・セッションを作成し、OCI Object StorageのCSVファイルの取り込み、Autonomous Databaseの表データの取得を実施してみた。

作業ステップ

  1. 前提条件の設定
  2. プロジェクトの作成
  3. ノートブック・セッションの作成
  4. OCI Object Storage上のCSVファイルの取り込み
  5. Autonomous Databaseの表データの取得

前提条件の設定

OCI Webコンソールメニューから「アナリティクスとAI」「データ・サイエンス」を選択
image.png

データ・サイエンスの前提条件の「詳細情報の表示」をクリック
image.png

image.png

ステップ1) VCNとサブネットの作成

仮想クラウド・ネットワーク > VCNウィザードの起動 > 「インターネット接続性を持つVCN」オプションを使ってVCNを作成。
(事前構成済のサービス管理VCNおよびサブネットの利用も可能)

ステップ2) 動的グループの作成

次の一致ルールをもつ動的グループを作成、
ALL { resource.type = 'datasciencenotebooksession' }

ステップ3) ポリシーの作成

次を作成

3.1 サービス・ポリシー
allow service datascience to use virtual-network-family in tenancy
3.2 非管理者ユーザー・ポリシー
allow group to use virtual-network-family in tenancy
allow group to manage data-science-family in tenancy
3.3 動的グループ・ポリシー
allow dynamic-group to manage data-science-family in tenancy

プロジェクトの作成

OCI Webコンソールメニューから「アナリティクスとAI」「データ・サイエンス」を選択
「プロジェクトの作成」をクリック
image.png

「名前」を入力し、「作成」をクリック
image.png

ノートブック・セッションの作成

プロジェクトの詳細画面で「ノートブック・セッションの作成」をクリック
image.png

「名前」を入力
「シェイプ」を選択
「ネットワーキング・リソース」で作成したVCNを使用する場合は、「カスタム・ネットワーキング」を選択し、VCN/サブネットを選択。
事前構成済のサービス管理VCNおよびサブネットを使用する場合は、「デフォルト・ネットワーキング」を選択
「作成」をクリック
image.png

※ 3分程度で作成完了

サポートされているコンピュート・シェイプ

シェイプ OCPU メモリ(GB)
VM.Standard.E3.Flex 1–64 1-1024 (OCPU数に依存)
VM.Standard.E4.Flex 1–64 1-1024 (OCPU数に依存)
VM.Standard3.Flex 1–32 1-512 (OCPU数に依存)
VM.Optimized3.Flex 1–18 1-256 (OCPU数に依存)
VM.Standard2.1 1 15
VM.Standard2.2 2 30
VM.Standard2.4 4 60
VM.Standard2.8 8 120
VM.Standard2.16 16 240
VM.Standard2.24 24 320

そのほか GPUシェイプの選択も可能

ノートブックを開く

「ノートブック・セッションの詳細」画面から「開く」を選択
image.png

テナンシ名を確認し「Continue」をクリック
image.png
image.png

ノートブック・セッションが開く
image.png

サンプルノートブックの確認

「Notebook Explorer」からサンプルのノートブックを参照可能
image.png

「Notebook Explorer」のフィルタに「autonomous database」を入力
image.png

「Loading Data With Pandas & Dask」を参照

OCI Object Storage上のCSVファイルの取り込み

「Python [conda env:root] *」 の「Create Notebook」を選択
image.png

ノートブックで以下の入力

必要なライブラリのインストール

!pip install -U oracle-ads
!pip install geopandas
!pip install datefinder

ライブラリのインポートとリソースプリンシパル認証

import ads
import logging
import numpy as np
import os
import pandas as pd
from ads.dataset.factory import DatasetFactory
from os import path
import ads
ads.set_auth(auth='resource_principal')

OCI Object Storageのnamespace名、バケット名、オブジェクト名(CSVファイル)を指定して CSVファイルを読み込み

namespace = "<namespace名>"
bucket_name = "<バケット名?"
file_name = "<オブジェクト名?"
df = pd.read_csv(
    f"oci://{bucket_name}@{namespace}/{file_name}",
    storage_options=ads.common.auth.default_signer(),
)

データセットの確認

df.head()

Name	PClass	Age	Sex	Survived
0	Allen, Miss Elisabeth Walton	1st	29.00	female	1
1	Allison, Miss Helen Loraine	1st	2.00	female	0
2	Allison, Mr Hudson Joshua Creighton	1st	30.00	male	0
3	Allison, Mrs Hudson JC (Bessie Waldo Daniels)	1st	25.00	female	0
4	Allison, Master Hudson Trevor	1st	0.92	male	1
ds = DatasetFactory.from_dataframe(df)
ds.show_in_notebook()

python SDKを使った認証の場合

上述のリソースプリンシパルのかわりにPython SDKを使った認証も可能

ノートブックLauncher から「Terminal」を開き
image.png

$ oci setup config

でコンフィグを設定し、以下で認証

import ads
import logging
import numpy as np
import os
import pandas as pd
from ads.dataset.factory import DatasetFactory
from os import path
import oci
from oci.data_science import DataScienceClient
rps = oci.auth.signers.get_resource_principals_signer()
dsc = DataScienceClient(config={}, signer=rps)

Autonomous Databaseの表データの取得

WalletのZipファイルをUpload
image.png

必要なライブラリのインストール

!pip install -U oracle-ads
!pip install geopandas
!pip install datefinder

Autonomous Databaseに接続

Walletファイル名、Databaseユーザ名、パスワード、サービス名を指定

connection_parameters = {
    "user_name": "<ユーザ名>",
    "password": "<パスワード>",
    "service_name": "adb_low",
    "wallet_location": "<Walletファイル名>",
}

SELECT文の実行

import pandas as pd
import ads

df = pd.DataFrame.ads.read_sql(
    "SELECT * FROM SH.SALES",
    connection_parameters=connection_parameters,
)

データの確認

df.head()

PROD_ID	CUST_ID	TIME_ID	CHANNEL_ID	PROMO_ID	QUANTITY_SOLD	AMOUNT_SOLD
0	13	524	1998-01-20	2	999	1.0	1205.99
1	13	2128	1998-04-05	2	999	1.0	1250.25
2	13	3212	1998-04-05	2	999	1.0	1250.25
3	13	3375	1998-04-05	2	999	1.0	1250.25
4	13	5204	1998-04-05	2	999	1.0	1250.25
from ads.dataset.factory import DatasetFactory
import pandas as pd
ds = DatasetFactory.from_dataframe(df)
ds.show_in_notebook()

image.png

おわりに

OCI Data Scienceでノートブック・セッションを作成し、
パブリックIPアドレスアクセスするOCI Object Storage、Autonomous Databaseからデータを取得してみました。

参考情報

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0