4.13 スクラッチパッドの使用

スクラッチパッドを使用すると、SQL文、PL/SQLスクリプト、RスクリプトおよびPythonスクリプト(名前の変更が可能)を実行するために、ワンクリックで簡単にノートブックにアクセスできます。スクラッチパッドは、Oracle Machine Learningユーザー・インタフェース(UI)ホームページで使用できます。

ノート:

スクラッチパッドは、4つのパラグラフ(%sql、%script%pythonおよび%r)が事前に移入された標準のノートブックです。

スクリプトを実行すると、「ノートブック」ページで、スクラッチパッドがデフォルト名のScratchpadでノートブックとして自動保存されます。後から「ノートブック」ページでこれにアクセスできます。すべてのパラグラフをまとめて実行することも、パラグラフを1つずつ実行することもできます。
  1. スクラッチパッドを開いて使用するには、Oracle Machine UIホームページの「クイック・アクション」で、「スクラッチパッド」をクリックします。スクラッチパッドが開きます。スクラッチパッドには3つのパラグラフがあり、それぞれに次のディレクティブがあります:
    • %sql — SQL文を実行できます。
    • %script — PL/SQLスクリプトを実行できます。
    • %python — Pythonスクリプトを実行できます。
    • %r — Rスクリプトを実行できます。

    図4-27 スクラッチパッド

    スクラッチパッド
  2. SQLスクリプトを実行するには:
    1. %sqlディレクティブのあるパラグラフに移動します。
    2. 次のコマンドを入力し、「実行」アイコンをクリックします。あるいは、[Shift]を押しながら[Enter]キーを押して、パラグラフを実行することもできます。
      SELECT * FROM SH.SALES;
    この例では、SQL文によって、SALES表から製品売上に関するすべてのデータがフェッチされます。ここで、SHはスキーマ名、SALESは表名です。Oracle Machine Learning UIによってデータベースから関連データがフェッチされ、データが表形式で表示されます。

    図4-28 スクラッチパッドでのSQL文

    スクラッチパッドでのSQL文
  3. PL/SQLスクリプトを実行するには:
    1. %scriptディレクティブのあるパラグラフに移動します。
    2. 次のPL/SQLスクリプトを入力し、「実行」アイコンをクリックします。あるいは、[Shift]を押しながら[Enter]キーを押して、パラグラフを実行することもできます。
      CREATE TABLE small_table
      	(
      	 NAME VARCHAR(200),
      	 ID1 INTEGER,
      	 ID2 VARCHAR(200),
      	 ID3 VARCHAR(200),
      	 ID4 VARCHAR(200),
      	 TEXT VARCHAR(200)
      	);
      
      	BEGIN 
      		FOR i IN 1..100 LOOP
      				INSERT INTO small_table VALUES ('Name_'||i, i,'ID2_'||i,'ID3_'||i,'ID4_'||i,'TEXT_'||i);
      		END LOOP;
      		COMMIT;
      	END;
      PL/SQLスクリプトにより、表SMALL_TABLEが正常に作成されます。この例のPL/SQLスクリプトは、2つのパートで構成されます:
      • スクリプトの最初の部分には、small_table.という名前の表を作成するためのSQL文CREATE TABLEが含まれます。表名、表の列、データ型およびサイズを定義します。この例では、列名はNAME、ID1、ID2、ID3、ID4およびTEXTです。
      • スクリプトの2番目の部分は、キーワードBEGINで始まります。表small_tableに100行が挿入されます。

      ノート:

      主キーとともにCREATE文を使用すると失敗し、「権限の不足」というエラー・メッセージが表示されます。このエラーは、データベース内のロックダウン・プロファイルにより発生します。このエラーが発生した場合は、データベース管理者または指定されたセキュリティ管理者に連絡して必要な権限の付与を依頼します。

      図4-29 スクラッチパッドでのPL/SQLスクリプト

      スクラッチパッドでのPL/SQLプロシージャ
  4. pythonスクリプトを実行するには:
    1. OML4Pyを使用するには、まずomlモジュールをインポートする必要があります。omlは、表やビューなどのOracle Databaseオブジェクトの操作、埋込み実行を使用したユーザー定義Pythonファンクションのコール、およびデータベース機械学習アルゴリズムの使用を可能にするOML4Pyモジュールです。%pythonディレクティブのあるパラグラフに移動します。omlモジュールをインポートするには、次のコマンドを入力して、「実行」アイコンをクリックします。あるいは、[Shift]を押しながら[Enter]キーを押して、パラグラフを実行することもできます。
      import oml
    2. omlモジュールがOracle Databaseに接続されているかどうかを確認するには、oml.isconnected()と入力して、「実行」アイコンをクリックします。あるいは、[Shift]を押しながら[Enter]キーを押して、パラグラフを実行することもできます。
      oml.isconnected()
    3. これで、Pythonスクリプトを実行する準備ができました。次のPythonコードを入力し、実行アイコンをクリックします。あるいは、[Shift]を押しながら[Enter]キーを押して、パラグラフを実行することもできます。
      import matplotlib.pyplot as plt
      import numpy as np
      
      list1 = np.random.rand(10)*2.1
      list2 = np.random.rand(10)*3.0
      
      plt.subplot(1,2,1) # 1 line, 2 rows, index nr 1 (first position in subplot)
      plt.hist(list1)
      plt.subplot(1, 2, 2) # 1 line, 2 rows, index nr 2 (second position in subplot)
      plt.hist(list2)
      plt.show()
      この例のコマンドは、2つのpythonパッケージをインポートして、list1およびlist2の2つのヒストグラムでデータを計算およびレンダリングします。Pythonパッケージは次のとおりです。
      • Matplotlib — グラフをレンダリングするためのPythonパッケージ。
      • Numpy — 計算用のPythonパッケージ。

      図4-30 スクラッチパッドでのPythonスクリプト

      スクラッチパッドでのPythonスクリプト

      次のスクリーンショットに示すように、pythonエンジンによってlist1およびlist 2の2つのグラフが生成されます。

  5. スクリプトを作成してスクラッチパッドで実行すると、「ノートブック」ページで、スクラッチパッドがデフォルト名Scratchpadでノートブックとして自動保存されます。「編集」をクリックして、ノートブックの名前を編集し、新しい名前で保存できます。