5 Oracle Machine Learning Notebooksについて

1つのノートブックに多数のパラグラフを含めることができます。パラグラフは、SQL文、PL/SQLスクリプト、RおよびPythonコード、およびconda命令を記述して実行できるノートブックのコンポーネントです。パラグラフは個別に実行することも、1つのボタンでノートブック内のすべてのパラグラフを実行することもできます。

1つのパラグラフに入力セクションと出力セクションがあります。入力セクションでは、コードまたはテキストとともに実行するインタープリタを指定します。この情報はインタープリタに送信されて実行されます。出力セクションにインタープリタの結果が表示されます。

「ノートブック」ページには、選択したプロジェクトと関連付けられているすべてのノートブックがリストされます。ここでノートブックを作成、編集および実行できます。

「ノートブック」ページでは、次のタスクを実行できます。

「ノートブック」ページとOML Notebooks EAオプション
  • OML Notebooks EAに移動: OML Notebooks EAに移動をクリックして、Oracle Machine Learning Notebooks Early Adopterページに移動します。

    ノート:

    EAはEarly Adopterの略です。
  • 作成: 「作成」をクリックして、新しいノートブックを作成します。

  • 編集:ノートブック行をクリックして選択し、「編集」をクリックします。「ノートブックの編集」ダイアログ・ボックスで、ノートブック名を編集し、コメントを追加できます。

  • 削除:ノートブック行をクリックして選択し、「削除」をクリックします。

  • 複製: ノートブック行をクリックして選択し、「複製」をクリックします。これによりノートブックのコピーが作成され、ノートブック名に接尾辞_1が付いた重複コピーが「ノートブック」ページにリストされます。

  • 移動: ノートブックを選択し、「移動」をクリックして、ノートブックを同じワークスペースまたは別のワークスペース内の別のプロジェクトに移動します。プロジェクトおよびワークスペース間でノートブックを移動するには、管理者または開発者権限が必要です。ジョブからノートブックを実行するとノートブックのコピーが実行されるため、ジョブから実行中のノートブックを移動できます。

    ノート:

    ノートブックがRUNNING状態の場合、または同じ名前のノートブックがターゲット・プロジェクトにすでに存在する場合は、ノートブックを移動できません。
  • コピー: ノートブックを選択し、「コピー」をクリックして、同じワークスペースまたは別のワークスペース内の別のプロジェクトにノートブックをコピーします。異なるプロジェクトおよびワークスペースでノートブックをコピーするには、管理者または開発者権限が必要です。
  • テンプレートとして保存: ノートブックをテンプレートとして保存するには、ノートブックを選択して、「テンプレートとして保存」をクリックします。「テンプレートとして保存」ダイアログで、テンプレートの場所を定義して、「テンプレート」の下の「個人用」または「共有」に保存できます。

  • インポート: ノートブックを.jsonファイルとしてインポートするには、「インポート」をクリックします。ノートブックをインポートするプロジェクトおよびワークスペースを選択します。

  • エクスポート: ノートブックをエクスポートするには、「エクスポート」をクリックします。ノートブックは、Zeppelin形式(.json)ファイルとJupyter形式(.ipynb)でエクスポートし、後で同じ環境または別の環境にインポートできます。
  • バージョン: ノートブックのバージョンを作成するには、ノートブックを選択して、「バージョン」をクリックします。ノートブックのバージョンを作成してそのノートブックを試してから、「バージョンを戻す」をクリックして前のバージョンに戻すことができます。

    ノート:

    ノートブックを開いて「バージョニング」オプションバージョニングをクリックすることで、ノートブックのバージョンを設定することもできます。このオプションを使用して、新しいバージョンの作成、バージョン履歴の表示、古いバージョンのリストア、および開いた古いバージョンのノートブックの削除を実行できます。
  • OML Notebook EAにコピー:選択したノートブックを、接尾辞_eaが付いた元の名前で、アーリー・アダプタ・インタフェースにコピーします。このノートブックにアクセスするには、左側のナビゲーション・メニューでNotebooks EAをクリックするか、このページの右上隅にあるOML Notebooks EAに移動をクリックします。
  • ノートブックを開いて実行するには、そのノートブックをクリックします。ノートブックが編集モードで開きます。

5.1 ノートブックの作成

ノートブックは、データ分析、データ検出、データ・ビジュアライゼーションおよびコラボレーションのためのWebベース・インタフェースです。

ノートブックを作成するたびに、インタープリタ設定の指定があります。ノートブックには、インタープリタ・バインディングの順序を決定する内部バインディング・リストが含まれています。ノートブックは、SQL文の記述、PL/SQLスクリプトの実行およびPythonコマンドの実行が可能なノートブック・コンポーネントであるパラグラフで構成されています。1つのパラグラフに入力セクションと出力セクションがあります。入力セクションでは、テキストとともに実行するインタープリタを指定します。この情報はインタープリタに送信されて実行されます。出力セクションにインタープリタの結果が表示されます。
ノートブックを作成するには:
  1. Oracle Machine Learning UIホームページで、「ノートブック」をクリックします。「ノートブック」ページが開きます。
  2. 「ノートブック」ページで「作成」をクリックします。
    「ノートブックの作成」ウィンドウが表示されます。
  3. 「名前」フィールドに、ノートブックの名前を入力します。
  4. 「コメント」フィールドに、コメントを入力します(ある場合)。
  5. 「OK」をクリックします。
ノートブックが作成され、ノートブック・エディタで開きます。これを使用して、SQL文の実行、PL/SQLスクリプトの実行、Python、RおよびCondaコマンドの実行ができます。そのためには、パラグラフの入力セクションに次のいずれかのディレクティブを指定します。
  • %sql — SQLインタープリタをコールしてSQL文を実行する場合
  • %script — PL/SQLインタープリタをコールしてPL/SQLスクリプトを実行する場合
  • %md — MarkdownインタープリタをコールしてMarkdownプレーン・テキストから静的htmlを生成する場合
  • %python — PythonインタープリタをコールしてPythonスクリプトを実行する場合
  • %r — RインタープリタをコールしてRスクリプトを実行する場合。
  • %conda — Condaインタープリタに接続し、ノートブック・セッション内にサードパーティのPythonおよびRライブラリをインストールする場合。

5.2 ノートブックの編集

ノートブックを作成すると、自動的に開き、デフォルトの%sqlインタプリタを使用しているパラグラフが1つ表示されます。%script、%python%sql%r%mdまたは%condaのいずれかを明示的に指定することでインタープリタを変更できます。

ノートブックが関連付けられているプロジェクトでコンテキストを設定します。
プロジェクト内で既存のノートブックを編集できます。既存のノートブックを編集するには:
  1. Oracle Machine Learning UIホームページで、ノートブックが使用可能なプロジェクトを選択します。
  2. Oracle Machine Learning UIナビゲータに移動し、「ノートブック」を選択します。または、ホームページの「ノートブック」クイック・リンクをクリックすることもできます。
    右ペインに、プロジェクト内で使用可能なすべてのノートブックがリストされます。
  3. 開いて編集するノートブックをクリックします。
    選択したノートブックが編集モードで開きます。
  4. 編集モードでは、Oracle Machine Learningのノートブックのツールバー・オプションを使用して、構成設定および表示オプション用にパラグラフ内のコードを実行できます。

    図5-1 ノートブック・ツールバー

    ノートブック・ツールバー
    次のタスクを実行できます。
    • データをフェッチするコードの記述
    • 実行をクリックして、ノートブック内の1つまたはすべてのパラグラフを実行します。
    • コードの非表示/表示をクリックして、ノートブック内のすべてのパラグラフのすべてのコードを非表示にします。再度クリックすると、コードが表示されます。
    • 出力の非表示/表示をクリックして、ノートブック内のすべてのパラグラフのすべての出力を非表示にします。再度クリックすると、出力が表示されます。
    • 出力のクリアをクリックして、ノートブック内のすべてのパラグラフのすべての出力を削除します。出力を表示するには、実行アイコンを再度クリックします。
    • ノートブックのクリアをクリックして、ノートブック内のすべてのパラグラフを削除します。
    • ノートブックのエクスポートをクリックして、ノートブックをエクスポートします。
    • コードの検索をクリックして、ノートブックに存在するコード内の情報を検索します。
    • キーボード・ショートカットをクリックして、キーボード・ショートカットのリストを表示します。
    • インタープリタ・バインディングをクリックして、ノートブックのインタープリタ・バインディングの順序を設定します。
    • ノートブックの表示オプションをクリックして、3つのノートブックの表示オプションのいずれかを選択します。
      • 「デフォルト」をクリックして、ノートブック内のすべてのパラグラフのコード、出力およびメタデータを表示します。
      • 「シンプル」をクリックして、ノートブックのすべてのパラグラフのコードと出力のみを表示します。このビューでは、ノートブック・ツールバーおよびすべての編集オプションが非表示になります。編集オプションを表示するには、マウス・ポインタを重ねる必要があります。
      • 「レポート」をクリックして、ノートブックのすべてのパラグラフの出力のみを表示します。
    • 編集オプションをクリックして、出力のクリア、パラグラフの削除、幅の調整、フォント・サイズ、選択したパラグラフの上または下のすべてのパラグラフの実行など、パラグラフ固有の編集オプションにアクセスします。
    • 入力項目の選択を簡単にし、ノートブック内のデータのフィルタ処理を簡単にするための動的フォーム(テキスト入力フォーム、選択フォーム、チェック・ボックス・フォームなど)の追加。Oracle Machine Learningでは、次のApache Zeppelin動的フォームをサポートしています。
      • テキスト入力フォーム — テキスト入力用の簡単なフォームを作成できます。

      • 選択フォーム — ユーザーが選択できる一連の値を含むフォームを作成できます。

      • チェック・ボックス・フォーム — 入力項目を複数選択するためのチェック・ボックスを挿入できます。

    ノート:

    Apache Zeppelinの動的フォームは、SQLインタープリタのノートブックでのみサポートされています。
  5. ノートブックの編集を完了したら、「戻る」をクリックします。
    これにより、「ノートブック」ページに戻ります。

5.2.1 ノートブックのエクスポート

ノートブックは、Zeppelin形式(.json)ファイルとJupyter形式(.ipynb)でエクスポートし、後で同じ環境または別の環境にインポートできます。

ノートブックをエクスポートするには:
  1. 「ノートブック」ページで、エクスポートするノートブックを選択します。1つ以上またはすべてのノートブックをエクスポートするオプションがあります。
  2. ノートブック・エディタの上部パネルで、「エクスポート」をクリックしてから、次のいずれかのオプションをクリックします。
    エクスポートでサポートされるノートブックの形式
    • エクスポートするノートブック — ノートブックをエクスポートするには、次をクリックします。
      • すべて — すべてのノートブックをエクスポートします。
      • 選択されたもの — 選択したノートブックをエクスポートします。
    • 形式 — ノートブックをエクスポートする形式を選択します。
      • Zeppelin — ノートブックを.json (JavaScript Object Notation)ファイルとしてエクスポートします。
      • Jupyter — ノートブックを.ipynbファイルとしてエクスポートします。
    エクスポートされたノートブックは、.jsonファイルまたは.ipynbファイルとして圧縮フォルダに保存されます。

5.2.2 ノートブックのインポート

プラガブル・データベース(PDB)にわたるノートブックを自分のワークスペースにインポートできます。JupyterノートブックをOracle Machine Learning UIにインポートすることもできます。

Oracle Machine Learning UIでは、Zeppelin (.json)ノートブックとJupyter (.ipynb)ノートブックの両方のインポートがサポートされています。

ノート:

Oracle Database 20c以降、「データベース」とは、マルチテナント・コンテナ・データベース(CDB)、プラガブル・データベース(PDB)またはアプリケーション・コンテナのデータ・ファイルを指します。
ノートブックをインポートするには:
  1. Oracle Machine Learning UIホームページで、「ノートブック」をクリックします。
  2. 「ノートブック」ページで、「インポート」をクリックします。
    これにより、ファイル・アップロード・ダイアログが開きます。インポートするノートブックを参照して選択します。

    ノート:

    ノートブックをインポートするには、そのノートブックが.jsonファイルとして保存されている必要があります。Oracle以外のApache Zeppelin環境からエクスポートしたノートブックをインポートできますが、実行できるのはサポートされているパラグラフ・タイプのみです。
  3. ファイル・アップロード・ダイアログで、.jsonファイルを参照して選択し、「オープン」をクリックします。
    これにより、ノートブック・ファイルがワークスペースにインポートされます。
  4. インポートしたノートブックをクリックして開きます。「ノートブック」ページで、歯車アイコンをクリックすると、インタープリタ・バインディングが表示されます。

5.2.3 ノートブックでのチェック・ボックス・フォームの作成

チェック・ボックス・フォームでは、1つのパラグラフ内で複数の入力を選択することがサポートされます。ノートブックでは、これらの入力はチェック・ボックス・オプションとして選択可能になります。

チェック・ボックス・フォームを作成するには:
  1. チェック・ボックス・フォームを追加するノートブックを開きます。
  2. SQL文で、次の構文を使用してチェック・ボックス・フォームを定義します。
    ${checkbox:formName=defaultValue1|defaultValue2...,option1|option2...}
    たとえば、次のSQL文を実行します。
    SELECT ${checkbox:whichcolumn=OWNER|OBJECT_TYPE, OWNER|OBJECT_NAME|OBJECT_TYPE|CREATED|STATUS} FROM ALL_OBJECTS WHERE OBJECT_TYPE IN ('VIEW', 'TABLE', 'INDEX', 'SYNONYM');
    この例では、次のようになります。
    • チェック・ボックス・フォームはWhichColumnです
    • チェック・ボックスで使用可能な複数選択オプションは、OWNER、OBJECT_NAME、OBJECT_TYPE、CREATEDおよびSTATUSです
    • フィールドOWNERおよびOBJECT_TYPEがデフォルトとして定義されています
    • 表名はALL_OBJECTSです
    • 表示のために構成されている列は、OWNER、OBJECT_NAME、OBJECT_TYPE、CREATEDおよびSTATUSです
  3. ノートブックを実行します。スクリーンショットに示すように、WhichFormという名前のチェック・ボックス・フォームがノートブックで使用可能になります。checkbox_form

5.2.4 ノートブックでの選択フォームの作成

選択フォームでは、値のリストから入力値を選択し、選択した値をパラグラフで定義されたとおりに動的に取得できます。

選択フォームを作成するには:
  1. テキスト入力フォームを追加するノートブックを開きます。
  2. SQL文で、次の構文を使用して選択フォームを定義します。
    ${formName=defaultValue,option1|option2...}.
    たとえば、次のSQL文を実行します。
    SELECT * FROM ALL_OBJECTS WHERE OBJECT_TYPE = '${OBJ=INDEX,INDEX|TABLE|VIEW|SYNONYM}';
    select_form
    この例では、次のようになります。
    • フォーム名はobjです
    • 使用可能な値は、INDEX、TABLE、VIEW、SYNONYMです。
    • 表名はALL_OBJECTSです
    • 列名はOBJECT_TYPEです
    objフォームのドロップダウン・リストから、値を選択します。選択した値が、ALL_OBJECTS表のOBJECT_TYPE列内に取り込まれます。

5.2.5 ノートブックでのテキスト入力フォームの作成

テキスト入力フォームでは、ノートブックで定義されたとおりに値を動的に取得できます。

テキスト入力フォームを作成するには:
  1. テキスト入力フォームを追加するノートブックを開きます。
  2. SQL文で、次の構文を使用してテキスト入力フォームを定義します。
    ${formName}
    たとえば、次のSQL文を実行します。
    SELECT * FROM ALL_OBJECTS WHERE OBJECT_TYPE = '${OBJ}';
    この例では、次のようになります。
    • フォーム名はobjです
    • 表名はALL_OBJECTSです
    • 列名はOBJECT_TYPEです
    ここでは、表ALL_OBJECTS内の列OBJECT_TYPEに対してテキスト・フォームobjが作成されます。フォーム・フィールドobjに様々な値を入力してノートブックを実行すると、列OBJECT_TYPEに対応する値が取り込まれます。
  3. パラグラフを実行します。スクリーンショットに示すように、ノートブックにテキスト入力フォーム・フィールドobjが表示されます。objフィールドに値を入力してノートブックを実行すると、表ALL_OBJECTSの列OBJECT_TYPEに対応する値が取り込まれます。
    • スクリーンショットに示すように、objフィールドにTABLEを入力してノートブックを実行すると、ノートブックの列OBJECT_TYPE内にTABLEが取り込まれます。オブジェクト・タイプがtableのテキスト入力フォーム
    • スクリーンショットに示すように、objフォーム・フィールドにVIEWを入力してノートブックを実行すると、ノートブックの列OBJECT_TYPE内に値VIEWが取り込まれます。オブジェクト・タイプがviewのテキスト入力フォーム
  4. 次の構文を使用して、フォームにデフォルト値を割り当てることもできます。
    ${formName=defaultValue}
    テキスト入力フォームにデフォルト値を割り当てるには、SQL文を次のように変更します。
    SELECT * FROM ALL_OBJECTS WHERE OBJECT_TYPE = '${obj=TABLE}'
    ここでは、フォームに割り当てられたデフォルト値はTABLEですパラグラフを実行すると、スクリーンショットに示すように、デフォルト値TABLEが列OBJECT_TYPEで取得されます。
    デフォルト値が設定されたテキスト入力フォーム

5.3 ノートブックのバージョニング

ノートブックをバージョニングするかバックアップを作成し、ノートブックを試してから、必要に応じて元のノートブックに戻すことができます。

ノートブックをバージョニングするには:
  1. 「ノートブック」ページで、バージョニングするノートブックをクリックし、「バージョン」をクリックします。
    「バージョン」ページが開きます。
  2. 選択したノートブックの「バージョン」ページで、バージョンの追加をクリックします。
    「バージョンの作成」ダイアログ・ボックスが開きます。
  3. 「バージョンの作成」ダイアログ・ボックスで、特定のノートブック・バージョンに関するコメントを入力し、「OK」をクリックします。
  4. バージョニングされたノートブックが、「バージョン」ページに表示されます。次のタスクを実行できます。
    • 前のノートブック・バージョンに戻す場合は、「バージョンを戻す」をクリックします。
    • 選択したノートブック・バージョンを削除する場合は、「削除」をクリックします。
    • 選択したノートブック・バージョンから新規のノートブックを作成する場合は、「新規ノートブック」をクリックします。

5.4 ノートブックをテンプレートとして保存

既存のノートブックをテンプレートとして「個人用」または「共有」に保存できます。

ノートブックをテンプレートとして保存するには:
  1. 「ノートブック」ページで、テンプレートとして保存するノートブックを選択し、「テンプレートとして保存」をクリックします。
    「テンプレートとして保存」ダイアログ・ボックスが開きます。
  2. 「名前」フィールドに、ノートブック・テンプレートの名前を入力します。
  3. 「コメント」フィールドに、コメントを入力します(ある場合)。
  4. 「タグ」フィールドに、テンプレートのタグを入力します。
  5. 「保存先」で、次のいずれかを選択します。
    • 個人用: このノートブック・テンプレートを個人用に保存して、自分のアカウントのみがこのノートブックを表示または使用できるようにする場合。
    • 共有: このノートブック・テンプレートを保存して共有し、他のユーザーが実行および編集可能なノートブックをこのテンプレートから表示および作成できるようにする場合。

5.5 ノートブックのパラグラフでのSQLインタープリタの使用

Oracle Machine Learningノートブックでは、複数の言語がサポートされています。各パラグラフは、特定のインタープリタに関連付けられています。たとえば、SQL文を実行するには、SQLインタープリタを使用します。PL/SQL文を実行するには、scriptインタープリタを使用します。

Oracle Machine Learning UIのノートブックには複数のパラグラフを追加でき、各パラグラフをSQLやPythonなどの様々なインタープリタに接続できます。使用するインタープリタを識別するには、%の後に使用するインタープリタ(sqlscriptrpythoncondamarkdown)を続けて指定します。

1つのパラグラフに入力セクションと出力セクションがあります。入力セクションでは、テキストとともに実行するインタープリタを指定します。この情報はインタープリタに送信されて実行されます。出力セクションにインタープリタの結果が表示されます。
ノートブックのパラグラフでは次のディレクティブを使用できます。
  • %sql — 標準のSQL文をサポートします。%sqlでは、SELECT文の結果が表ビューアに直接表示され、他のビジュアライゼーション・オプションにアクセスできます。チャート設定のオプションを使用して、グループ化、集計およびその他の操作を実行します。
  • %script — SQL文とPL/SQLの両方をサポートします。%scriptでは、SELECT文の結果がテキスト文字列で出力されます。
  • %conda — Conda環境をサポートします。パラグラフの先頭に%condaと入力してConda環境に接続し、Pythonのサードパーティ・ライブラリを操作します。
  • %r — Rスクリプトをサポートします。Rインタープリタに接続するには、パラグラフの先頭に%rと入力します。
  • %python — Pythonスクリプトをサポートします。Pythonインタープリタに接続するには、パラグラフの先頭に%pythonと入力します。
  • %md — Markdownマークアップ言語をサポートします。

ノート:

すべてのデータに対してグループ化を実行する場合は、SQLスクリプトを使用してデータベース内でグループ化を行い、ノートブックにチャートのサマリー情報を返すことをお薦めします。ノートブック・レベルでのグループ化は、小さなデータ・セットの場合にうまく機能します。ノートブックにプルするデータが多すぎると、メモリー不足のために問題が発生することがあります。「接続グループ」ページのオプションレンダリング行制限を使用して、ノートブックの行制限を設定できます。
データをノートブック内にフェッチして可視化するには:
  1. 「ノートブック」ページで、実行するノートブックをクリックします。
    ノートブックが編集モードで開きます。
  2. %SQLと入力してSQLインタープリタをコールし、[Enter]を押します。ノートブックでSQL文を実行する準備ができました。
  3. Oracle DatabaseからデータをフェッチするSQL文を入力します。たとえば、SELECT * FROM TABLENAMEと入力して実行アイコンをクリックします。あるいは、[Shift]を押しながら[Enter]キーを押して、ノートブックを実行します。

    ノート:

    ノートブックは、通常のユーザー(管理者以外のユーザー)として開く必要があります。管理者は、ノートブックの実行オプションを使用できません。
    これにより、データがノートブック内にフェッチされます。
  4. データがパラグラフの出力に表示されます。
    インタープリタの結果は、出力セクションに表示されます。パラグラフの出力セクションは、結果をグラフィカルな出力で表示するチャート・コンポーネントで構成されます。チャート・インタフェースでは、ノートブック・パラグラフ内の出力と対話できます。ノートブック内の1つまたはすべてのパラグラフを実行および編集するオプションもあります。
    「表オプション」で、「設定」をクリックして次を選択します:
    • useFilter: 列のフィルタを有効にします。

    • showPagination: 拡張ナビゲーションのためのページ区切りを有効にします。

    • showAggregationFooter: フッターに集計値を表示できるようにします。

    列名の横にある下矢印をクリックして列をソートすることもできます。

    表形式のデータを可視化するには、次に示すように、各グラフ表示のそれぞれのアイコンをクリックします:
    • 棒グラフをクリックすると、データが棒グラフで表されます。
    • 円グラフをクリックすると、データが円グラフで表されます。
    • 面グラフをクリックすると、データが面グラフで表されます。
    • 折れ線グラフをクリックすると、データが折れ線グラフで表されます。
    • 散布図をクリックすると、データが散布図で表されます。

5.5.1 Oracle Machine Learning for SQLについて

Oracle Machine Learning for SQL (OML4SQL)は、Oracle Database内で強力な最先端の機械学習機能を提供します。Oracle Machine Learning for SQLを使用して、予測的かつ記述的な機械学習モデルを構築してデプロイし、既存および新規アプリケーションにインテリジェント機能を追加できます。

Oracle Machine Learning for SQLは、様々な機械学習タスク(分類、回帰、異常検出、特徴抽出、クラスタリング、マーケット・バスケット分析など)を実行するための幅広いデータベース内アルゴリズム・セットを提供します。OML4SQLのプログラム・インタフェースは、モデルの作成と維持のためのPL/SQLと、スコアリングのためのSQL関数群です。

Oracle Machine Learning Notebookと、SQLおよびPL/SQLインタープリタを使用して、それぞれSQL文(%SQL)およびPL/SQLスクリプト(%script)を実行します。Oracle Machine Learning for SQLを使用すると、次のことができます。
  • データ探索およびデータ分析の実行
  • 機械学習モデルの構築、評価およびデプロイ、および
  • それらのモデルを使用したデータのスコアリング

5.5.2 ノートブックでの出力形式の設定

Oracle Machine Learning Notebooksでは、ノートブックでの問合せ出力の形式を事前に設定できます。

問合せ出力の形式を事前に設定するには、次に示すようにコマンドSET SQLFORMATを使用する必要があります。
  1. Oracle Machine Learningでノートブックを開きます。
  2. コマンドを入力します。
    %script
    SET SQLFORMAT format_option
    たとえば、出力をansiconsole形式で表示する場合は、次に示すように、SQL問合せに続けてコマンドを入力します。
    SET SQLFORMAT ansiconsole;
    SELECT * FROM HR.EMPLOYEES;
    ここでは、出力形式がansiconsoleで、表名がHR.EMPLOYEESです。

    ノート:

    この形式設定は、Scriptインタープリタで使用可能です。したがって、この例に示すように接頭辞%scriptを追加する必要があります。

5.5.3 SET SQLFORMATコマンドでサポートされる出力形式

SET SQLFORMATコマンドを使用すると、様々な形式の問合せ出力を生成できます。

ノート:

これらの形式設定は、Scriptインタープリタで使用可能です。したがって、接頭辞%scriptを追加する必要があります。
使用可能な出力形式は次のとおりです。
  • CSV — CSV形式では、文字列値が二重引用符で囲まれた標準のカンマ区切り変数出力が生成されます。構文は次のとおりです。

    %script

    SET SQLFORMAT CSV

  • HTML — HTML形式では、レスポンシブ表に対するHTMLが生成されます。表の内容は、テキスト・フィールドに入力された検索文字列と一致するように動的に変更されます。構文は次のとおりです。

    %script

    SET SQLFORMAT HTML

  • XML — XML形式では、タグ・ベースのXMLドキュメントが生成されます。すべてのデータはCDATAタグとして表示されます。構文は次のとおりです。

    %script

    SET SQLFORMAT XML

  • JSON — JSON形式では、列の定義とそれに含まれるデータからなるJSONドキュメントが生成されます。構文は次のとおりです。

    %script

    SET SQLFORMAT JSON

  • ANSICONSOLE — ANSICONSOLE形式では、領域を節約するために列のサイズがデータの幅に合せて変更されます。また、別々の行で出力が表示されるのではなく、列に下線が引かれます。構文は次のとおりです。

    %script

    SET SQLFORMAT ANSICONSOLE

  • INSERT — INSERT形式では、表の行を再作成するために使用できるINSERT文が生成されます。構文は次のとおりです。

    %script

    SET SQLFORMAT INSERT

  • LOADER — LOADER形式では、文字列値が二重引用符で囲まれたパイプ区切りの出力が生成されます。列名は出力に含まれません。構文は次のとおりです。

    %script

    SET SQLFORMAT LOADER

  • FIXED — FIXED形式では、すべてのデータが二重引用符で囲まれた固定幅の列が生成されます。構文は次のとおりです。

    %script

    SET SQLFORMAT FIXED

  • DEFAULT — DEFAULTオプションを使用すると、以前のSQLFORMAT設定がすべてクリアされ、デフォルトの出力に戻ります。構文は次のとおりです。

    %script

    SET SQLFORMAT DEFAULT

    ノート:

    形式名DEFAULTなしで、SET SQLFORMATと入力するのみでも、このコマンドを実行できます。
  • DELIMITED — DELIMITED形式では、デリミタ文字列および文字列値で囲まれた文字を手動で定義できます。構文は次のとおりです。

    %script

    SQLFORMAT DELIMITED delimiter left_enclosure right_enclosure

    たとえば、

    %script

    SET SQLFORMAT DELIMITED ~del~ " "

    SELECT * FROM emp WHERE deptno = 20;

    出力:

    "EMPNO"~del~"ENAME"~del~"JOB"~del~"MGR"~del~"HIREDATE"~del~"SAL"~del~"COMM"~del~"DEPTNO"

    この例では、デリミタ文字列は~del~であり、EMPNO、ENAME、JOBなどの文字列値が二重引用符で囲まれています。

5.6 ノートブックのパラグラフでのPythonインタープリタの使用

Oracle Machine Learningノートブックでは、複数の言語がサポートされています。各パラグラフは、特定のインタープリタに関連付けられています。ノートブック内でPythonコマンドを実行するには、まずPythonインタープリタに接続する必要があります。OML4Pyを使用するには、omlモジュールをインポートする必要があります。

Oracle Machine Learning UIのノートブックには複数のパラグラフを追加でき、各パラグラフをSQLやPythonなどの様々なインタープリタに接続できます。使用するインタープリタを識別するには、%の後に使用するインタープリタ(sqlscriptrpythoncondamarkdown)を続けて指定します。

この例では、次の方法を示します:
  • ノートブックでPythonコマンドを実行するためのPythonインタープリタへの接続
  • Pythonモジュール(omlmatplotlibおよびnumpy)のインポート
  • omlモジュールがOracle Databaseに接続されているかどうかの確認

ノート:

zは予約済キーワードであるため、Oracle Machine Learning UIのノートブックの%pythonパラグラフで変数として使用することはできません。
前提: この例では、Py Noteという名前の新しいノートブックをすでに作成していることを前提としています。
  1. Py Noteノートブックを開き、インタープリタ・バインディング・アイコンをクリックします。使用可能なインタープリタ・バインディングが表示されます。
  2. Pythonインタープリタに接続するには、%pythonと入力します
    これで、ノートブックでPythonスクリプトを実行する準備ができました。
  3. OML4Pyモジュールを使用するには、omlモジュールをインポートする必要があります。次のPythonコマンドを入力してomlモジュールをインポートし、実行アイコンをクリックします。または、[Shift]キーを押しながら[Enter]キーを押してノートブックを実行します。
    import oml
  4. omlモジュールがデータベースに接続されているかどうかを確認するには、次のように入力します:
    oml.isconnected()
    ノートブックが接続されると、コマンドはTRUE.を返しますノートブックがPythonインタープリタに接続され、ノートブックでpythonコマンドを実行する準備ができました。

Pythonモジュール(matplotlibおよびnumpy)の使用方法を示し、ランダム・データを使用して2つのヒストグラムをプロットするための例。

  1. 次のコマンドを入力して、モジュールをインポートします:
    %python
    import matplotlib.pyplot as plt
    import numpy as np
    • Matplotlib - グラフをレンダリングするためのPythonモジュール
    • Numpy - 計算用のPythonモジュール
  2. 次のコマンドを入力して、2つのヒストグラムでデータを計算してレンダリングします。
    
    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 the subplot)
    plt.hist(list1)
    plt.subplot(1, 2, 2) # 1 line, 2 rows, index nr 2 (second position in the subplot)
    plt.hist(list2)
    plt.show()
    この例のコマンドは、2つのPythonモジュールをインポートして、2つのヒストグラムlist1およびlist2でデータを計算およびレンダリングします。
  3. 「実行」をクリックします。
    スクリーンショットに示すように、チャート・コンポーネントを含むパラグラフの出力セクションに、2つのヒストグラム(list1とlist2)で結果が表示されます。

5.6.1 Oracle Machine Learning for Pythonについて

Oracle Machine Learning for Python (OML4Py)は、Oracle Autonomous Databaseのコンポーネントであり、Oracle Autonomous Data Warehouse (ADW)、Oracle Autonomous Transaction Processing (ATP)およびOracle Autonomous JSON Database (AJD)で構成されます。Oracle Machine Learning UIのノートブックを使用すると、Oracle Databaseを高パフォーマンスのコンピューティング環境として利用しながら、データを探索および準備するためにデータに対してPythonファンクションを実行できます。Oracle Machine Learningユーザー・インタフェース(UI)は、Autonomous Data Warehouse (ADW)サービス、Autonomous Transaction Processing (ATP)サービスおよびAutonomous JSON Database (AJD)サービスを介して使用できます。

Oracle Machine Learning for Python (OML4Py)により、オープン・ソースのスクリプト言語であるPythonとその環境をエンタープライズおよびビッグ・データに対応させることができます。Oracle Machine Learning for Pythonは、大量のデータと少量のデータの両方に関連する問題に対処できるように設計されており、PythonをOracle Autonomous Databaseと統合することで、その強力なデータベース内機械学習アルゴリズムを取り込み、Pythonコードのデプロイメントを可能にしています。

Oracle Machine Learning for Pythonを使用すると、次のことができます:
  • Oracle Databaseを高パフォーマンスのコンピュート・エンジンとして利用しながら、Pythonを使用したデータ調査、データ分析および機械学習を実行します
  • 機械学習モデルを構築して評価し、データベース内アルゴリズムを活用して統合Python APIからこれらのモデルを使用してデータをスコアリングします
  • RESTインタフェースを介して、データ・パラレル処理およびタスク・パラレル処理により、ユーザー定義Pythonファンクションをデプロイします

Pythonインタープリタは、Python 3.8.5を使用してOracle Machine Learning UIのノートブックでPythonスクリプトを処理します。このインタープリタを使用するには、パラグラフの先頭に%pythonディレクティブを指定します。Pythonインタープリタは、次のPythonモジュールをサポートしています:

  • cx_Oracle 7.3.0
  • cycler 0.10.0
  • joblib 0.14.0
  • kiwisolver 1.1.0
  • matplotlib 3.1.2
  • numpy 1.18.1
  • pandas 0.25.3
  • pyparsing 2.4.0
  • python-dateutil 2.8.1
  • pytz 2019.3
  • scikit_learn 0.22.1
  • scipy 1.4.1
  • six 1.13.0

5.7 ノートブックのパラグラフでのRインタープリタの使用

Oracle Machine Learningノートブックでは、複数の言語がサポートされています。各パラグラフは、特定のインタープリタに関連付けられています。Oracle Machine LearningノートブックでRファンクションを実行するには、まずRインタプリタに接続する必要があります。

Oracle Machine Learning UIのノートブックには複数のパラグラフを追加でき、各パラグラフをR、SQLまたはPythonなどの様々なインタープリタに接続できます。使用するインタープリタを識別するには、%の後に使用するインタープリタ(sqlscriptrpythoncondamarkdown)を続けて指定します。

このサンプルは、次の方法を示します。
  • ノートブックでRコマンドを実行するためのRインタープリタへの接続
  • Oracle Autonomous Databaseへの接続の確認、および
  • OREライブラリのロード
  1. Rインタプリタに接続するには、ノートブック・パラグラフの先頭に次のディレクティブを入力し、[Enter]を押します。
    %r
  2. データベース接続を確認するには、次のコマンドを入力して[Enter]を押します。
    ore.is.connected()
    ノートブックが接続されると、次のスクリーンショットに示すように、コマンドはTRUEを返します。これでノートブックがRインタープリタに接続され、ノートブックでRコマンドを実行する準備ができました。

    図5-2 データベース接続のテスト

    Oracle Databaseへの接続のテスト
  3. Rライブラリをインポートするには、次のコマンドを実行します。
    library(ORE)
    library(OREdplyr)
    パッケージが正常にロードされると、次のスクリーンショットに示すように、OREパッケージのリストが表示されます。下にスクロールしてリスト全体を表示します。

    図5-3 Rパッケージをロードするコマンド

    Rパッケージのロード

5.7.1 Oracle Machine Learning for Rについて

Oracle Machine Learning for R (OML4R)は、Oracle Machine Learning製品ファミリのコンポーネントで、RをOracle Autonomous Databaseと統合します。

Oracle Machine Learning for Rにより、オープン・ソースのスクリプト言語であるRとその環境をエンタープライズおよびビッグ・データに対応させることができます。これは、データ量が大きい場合と小さい場合の両方に関連する問題に対応するように設計されています。OML4Rを使用すると、統計や機械学習用のRコマンドおよびスクリプトを実行したり、R構文を使用してデータベース表およびビューに対して視覚化分析を実行できます。

Oracle Machine Learning for Rは、Oracle Machine Learning UIで使用でき、現在Autonomous Data WarehouseAutonomous Transaction ProcessingAutonomous JSON Databaseなど、Oracle Autonomous Databaseを介して使用できます。Oracle Machine Learning for RのEmbedded R Execution機能は、SQLおよびREST APIを介してAutonomous Databaseにデプロイできます。

Oracle Machine Learning for Rを使用すると、次のことができます。

  • Oracle Databaseを高パフォーマンスのコンピューティング環境としてシームレスに利用しながら、データ探索およびデータ準備を実行する。
  • システムでサポートされているデータ・パラレル機能とタスク・パラレル機能を使用して、データベースで生成および制御されたRエンジンでユーザー定義Rファンクションを実行する。
  • R言語から強力なインデータベース機械学習アルゴリズムにアクセスして使用する。

Rインタープリタを使用するには、パラグラフの先頭に%rディレクティブを指定します。Oracle Machine Learning for Rをサポートするために、次のRパッケージがインストールされています。

サポートされているOracle Machine Learning for R固有のRパッケージ

サポートされているOracle Machine Learning for R固有のRパッケージは、次のとおりです。

  • ORE_1.5.1
  • OREbase_1.5.1
  • OREcommon_1.5.1
  • OREdm_1.5.1
  • OREdplyr_1.5.1
  • OREeda_1.5.1
  • OREembed_1.5.1
  • OREgraphics_1.5.1
  • OREmodels_1.5.1
  • OREpredict_1.5.1
  • OREstats_1.5.1
  • ORExml_1.5.1

サポートされているオープン・ソースRモジュール

Oracle Machine Learning for Rでは、次のオープン・ソースRパッケージがサポートされています。

  • R-4.0.5
  • Cairo_1.5-15
  • ROracle_1.4-1: DBI_1.1-2
  • arules_1.7-3
  • png_0.1-7
  • randomForest_4.6-14
  • statmod_1.4-36
  • dplyr_1.0-9:
  • R6_2.5.1
  • assertthat_0.2.1
  • cli_3.3.0
  • crayon_1.5.1
  • ellipsis_0.3.2
  • fansi_1.0.3
  • generics_0.1.2
  • glue_1.6.2
  • lazyeval_0.2.2
  • lifecycle_1.0.1
  • magrittr_2.0.3
  • pillar_1.7.0
  • pkgconfig_2.0.3
  • purrr_0.3.4
  • rlang_1.0.2
  • tibble_3.1.7
  • tidyselect_1.1.2
  • utf8_1.2.2
  • vctrs_0.4.1

Oracle Machine Learning for Rインタプリタの要件

Rインタプリタには、次のオープン・ソースRパッケージが必要です。
  • Rkernel 1.3:
    • base64enc 0.1-3
    • cli 3.3.0
    • crayon 1.5.1
    • digest 0.6.29
    • ellipsis 0.3.2
    • evaluate 0.15
    • fansi 1.0.3
    • fastmap 1.1.0
    • glue 1.6.2
    • htmltools 0.5.2
    • IRdisplay 1.1
    • jsonlite 1.8.0
    • lifecycle 1.0.1
    • pbdZMQ 0.3-7
    • pillar 1.7.0
    • repr 1.1.4
    • rlang 1.0.2
    • utf8 1.2.2
    • uuid 1.1-0
    • vctrs 0.4.1
  • knitr 1.39:
    • evaluate_0.15
    • glue_1.6.2
    • highr_0.9
    • magrittr_2.0.3
    • stringi_1.7.6
    • stringr_1.4.0
    • xfun_0.31
    • yaml_2.3.5

5.8 ノートブックのパラグラフでのCondaインタープリタの使用

Oracle Machine Learning Notebooksには、管理者がサードパーティのカスタムPythonおよびRライブラリを使用し、conda環境を作成するためのCondaインタープリタが用意されています。作成後は、Condaインタープリタを使用してノートブック・セッション内でConda環境をダウンロードし、アクティブ化できます。

Oracle Machine Learningノートブックでは、複数の言語がサポートされています。このために、SQL問合せを実行するためのパラグラフと、PL/SQLスクリプトを実行するためのパラグラフが含まれるノートブックを作成する必要があります。ノートブックを異なるスクリプト言語で実行するには、最初にノートブック・パラグラフをそれぞれのインタープリタ(SQL、PL/SQL、R、Python、Condaなど)に接続する必要があります。

このトピックでは、Conda環境で作業を開始する方法について説明します:
  • Condaインタープリタへの接続
  • Conda環境のダウンロードおよびアクティブ化
  • Conda環境のパッケージのリストの表示
  • Pythonファンクションの実行によるIrisデータ・セットのインポートおよびビジュアライゼーション用のseabornパッケージの使用
  1. パラグラフの先頭に%condaと入力してCondaインタープリタに接続し、[Enter]を押します。
    %conda
  2. 次に、Conda環境をダウンロードしてアクティブ化します。次のように入力します。
    download sbenv
    activate sbenv
    この例では、Conda環境がダウンロードされてアクティブ化されます。この例のConda環境の名前はsbenvです。Conda環境のダウンロードおよびアクティブ化
  3. Conda環境に存在するすべてのパッケージを表示できます。パッケージのリストを表示するには、listと入力します。
    seabornライブラリ内のパッケージのリスト
  4. 次に、ビジュアライゼーションにseabornライブラリ・パッケージを使用する方法を示す例を示します。Seabornは、matplotlibに基づくPythonビジュアライゼーション・ライブラリです。これは、魅力的な統計グラフィックを描くための高レベルのインタフェースを提供します。たとえば、次のとおりです
    • Pandasおよびseabornのインポート
    • Irisデータ・セットのロード
    • データポイント、つまり、アイリスの花の3つの異なる種であるSetosa、Virginica、およびVersicolorをその寸法に基づいてプロットします。散布図を作成します
    次のように入力します。
    %python
    
    def sb_plot():
        import pandas as pd
        import seaborn as sb
        from matplotlib import pyplot as plt
        df = sb.load_dataset('iris')
        sb.set_style("ticks")
        sb.pairplot(df,hue = 'species',diag_kind = "kde",kind = "scatter",palette = "husl")
        plt.show()
    コマンド
  5. Pythonのパラグラフでファンクションを実行します。
    次のように入力します。
    %python 
    sb_plot()
    Seaborn Pythonライブラリを使用したビジュアライゼーション

5.8.1 Conda環境およびCondaインタープリタについて

Condaは、サードパーティのPythonおよびRライブラリが含まれる環境の使用を可能にするオープンソースのパッケージおよび環境管理システムです。Oracle Machine Learningユーザー・インタフェース(UI)には、ノートブック・セッション内にサードパーティのPythonおよびRライブラリをインストールするためのCondaインタープリタが用意されています。

Oracle Machine Learning Notebooksにインストールされているサードパーティ・ライブラリは、次の場所で使用できます:
  • 標準Python
  • 標準R
  • Python、SQLおよびREST APIからのOracle Machine Learning for PythonのEmbedded Python Execution
  • R、SQLおよびREST APIからのOracle Machine Learning for RのEmbedded R Execution

Conda環境で作業を開始するには:

  1. Conda環境がオブジェクト・ストレージに保存されていることを確認するか、新しいバージョンをインストールして既存のパッケージを更新します。

    ノート:

    Conda環境は、ADMINユーザーによってOML_SYS_ADMINロールで作成されます。管理者は、環境に対するパッケージの追加または削除、環境の削除など、環境のライフサイクルを管理します。Conda環境は、Autonomous Databaseに関連付けられたオブジェクト・ストレージ・バケットに格納されます。
  2. Oracle Machine Learning UIにサインインし、Conda環境をダウンロードします。Conda環境をダウンロードするには、次のように入力します:
    %conda 
    download myenv
  3. Conda環境をアクティブ化します。Conda環境をアクティブにするには、次のように入力します:
    activate myenv

    ノート:

    特定の時点でアクティブなConda環境は1つのみです。
  4. ノートブックを作成し、Condaインタープリタを使用してオブジェクト・ストレージでサードパーティ・ライブラリを使用します。Condaインタープリタを使用するには、パラグラフの先頭に%condaと入力してConda環境に接続し、Pythonのサードパーティ・ライブラリを操作します。インストール済のConda環境を切り替えることができます。たとえば、グラフ分析を操作するための環境と、Oracle Machine Learning分析用の別の環境を設定できます。
  5. Conda環境を非アクティブ化します。ベスト・プラクティスとして、機械学習分析での作業が終了したら、Conda環境を非アクティブ化します。環境を非アクティブにするには、次のように入力します:
    deactivate

5.8.2 Condaインタープリタ・コマンド

この表は、Condaインタープリタのコマンドを示しています。

Condaインタープリタ・コマンド

表5-1 Condaインタープリタ・コマンド

タスク コマンド ロール
Conda環境を作成します。 create -n <env_name> <python_version>
  • ADMIN
指定したconda環境からパッケージのリストを削除します。これは、conda uninstallの別名でもあります。 remove -n <env_name> --all

ノート:

Conda環境がユーザー・セッションから削除されます。
  • ADMIN
  • OMLユーザー
ユーザーが作成したローカル環境をリストします。 env list
  • ADMIN
  • OMLユーザー
ユーザーが作成したローカル環境を削除します。 env remove -n <env_name>
  • ADMIN
  • OMLユーザー
アクティブな環境にインストールされているすべてのパッケージとバージョンをリストします。 list
  • ADMIN
  • OMLユーザー
ユーザーが作成したローカル環境をアクティブ化します。 activate -n <env_name>
  • ADMIN
  • OMLユーザー
現在の環境の非アクティブ化 deactivate
  • ADMIN
  • OMLユーザー
パブリックCondaチャネルから外部パッケージをインストールします。 install -n <env_name> <package_name>
  • ADMIN
Conda環境から特定のパッケージをアンインストールします。これは、removeの別名でもあります。 uninstall -n <env_name> <package_name>
  • ADMIN
現在のcondaインストールに関する情報を表示します。 info
  • ADMIN
  • OMLユーザー
コマンドライン・ヘルプを表示します。 COMMANDNAME --help
  • ADMIN
  • OMLユーザー
Conda環境をオブジェクト・ストレージにアップロードします。

ノート:

これはAutonomous Database固有のコマンドです。
upload --overwrite <env_name> --description 'some description' -t <name> <value>

ノート:

多数のタグを指定できます。例: -t <name1> <value1> -t <name2> <value2> ..
  • ADMIN
オブジェクト・ストレージから特定のConda環境をダウンロードして解凍します。

ノート:

これはAutonomous Database固有のコマンドです。
download --overwrite <env_name>
  • ADMIN
  • OMLユーザー
ユーザーが使用できるローカル環境をリスト示します。 list-local-envs
  • ADMIN
  • OMLユーザー
オブジェクト・ストレージ内のすべてのConda環境をリストします。

ノート:

これはAutonomous Database固有のコマンドです。
list-saved-envs --installed-packages -e <env_name>
  • ADMIN
  • OMLユーザー
Conda環境を削除します。

ノート:

これはAutonomous Database固有のコマンドです。
delete <env_name>

ノート:

Conda環境がオブジェクト・ストレージから削除されます。
  • ADMIN
condaパッケージを最新の互換性のあるバージョンに更新します。 update
  • ADMIN
現在のcondaパッケージをアップグレードします。これは、conda updateの別名でもあります。 upgrade
  • ADMIN
パッケージを検索し、関連する情報を表示します。入力は、condaパッケージの問合せ言語であるMatchSpecです。 search
  • ADMIN
  • OMLユーザー

5.9 MarkdownインタープリタをコールしてMarkdownプレーン・テキストから静的htmlを生成

Markdownインタープリタを使用し、Markdownプレーン・テキストから静的htmlを生成します。

MarkdownインタープリタをコールしてMarkdownプレーン・テキストから静的htmlを生成するには:
  1. ノートブックで、%mdと入力して[Enter]を押します。
  2. "Hello World!"と入力し、「実行」をクリックします。次のスクリーンショットに示すように、静的htmlテキストが生成されます。
    静的htmlテキスト
  3. テキストを太字で書式設定できます。テキストを太字で表示するには、同じテキストを2つのアスタリスクのペア内に記述し、「実行」をクリックします。
    太字のテキスト
  4. テキストを斜体で表示するには、スクリーンショットに示すように、同じテキストをアスタリスクのペアまたはアンダースコアのペア内に記述し、「実行」をクリックします。
    斜体のテキスト
  5. テキストを箇条書きリストに表示するには、次のスクリーンショットに示すように、テキストの前に*(アスタリスク)を付けます。
    箇条書きのテキスト
  6. テキストをヘッダー1、ヘッダー2およびヘッダー3に表示するには、テキストの前に# (ハッシュ)を付けて、「実行」をクリックします。H1、H2およびH3について、それぞれ1個、2個および3個のハッシュを前に付ける必要があります。
    ヘッダー

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

スクラッチパッドを使用すると、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スクリプトを実行できます。

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

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

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

      図5-6 スクラッチパッドでの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パッケージ。

      図5-7 スクラッチパッドでのPythonスクリプト

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

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

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

5.11 Oracle Machine Learningでのコラボレーション

複数のユーザーがコラボレーションしてOracle Machine Learningユーザー・インタフェース(UI)のノートブックを他のユーザーと共有できます。

次の方法でコラボレーションできます:

  • 他のユーザーのワークスペースへのアクセス権を付与
  • 「エクスポート」オプションを使用
  • Oracle Machine Learning UIノートブック・テンプレートを使用

チュートリアル・アイコン Oracle Machine Learningでのコラボレーション