1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Oracle Cloud InfrastructureAdvent Calendar 2024

Day 15

エクセルファイルからノーコードでデータベースにデータを入れて分析アプリを作ってみた

Last updated at Posted at 2024-12-24

目的

エクセルに入っているデータの分析を簡単にしたい!
データを可視してレポートを見ながら分析したい!

そのために簡単に使えるAutonomous Database の Oracle APEX を活用して数十分でデータ分析アプリを作成してみました。既にOCI環境をお持ちの場合、最短10分程度で構築が可能です。
気軽に分析アプリ開発をしたいという方にお勧めの内容です。

この記事の対象者

初心者からどなたでも
コードを書いたことが無くても簡単なGUI操作でアプリケーション作成が可能です。

概要

エクセルで管理するデータを、データベースに読み込んでそこから簡単に分析アプリケーションを使ってみました。
エクセルファイルを自動で読み込んでテーブル情報を作成し、自動で簡単な分析ダッシュボードまで確認できたのですごく便利です。

GUIで完結するので初心者の方にもおすすめです。

前提条件

  • OCIの無料トライアルアカウントを作成ください。
    アカウントは以下から作成いただけます。

  • 作成したOCIのアカウントにサインインできることをご確認ください。
    ▼ログインURL

  • サンプルとして受発注データ(orders.csv)を用意します(後ほど手順にてダウンロード先を提示)

環境

  • Oracle cloud無料アカウント

  • Autonomous Database (ADB)

  • Oracle Application Express (APEX)

大まかな手順

サンプルデータのダウンロード

OCIコンソールにログイン

コンパートメントを作成

Autonomous Databaseを作成

Databaseの新規ユーザーを作成

データベースにデータをアップロード

Autonomous Database 付属ツールで簡易アプリを作成(Oracle APEX)

作成したアプリケーションを実行する

となります。それではさっそくアプリケーションを作成していきましょう。

サンプルデータのダウンロード

今回はOCIチュートリアルの記事で利用しているサンプルデータセット(orders.csv)を活用します。

orders.csv の受発注データはエクセル表になっており、ORDER_KEY(注文番号)、ORDER_STATUS(注文状況)、UNITS(個数) …etc などの列から構成される、5247行の表となっています。

手元のPCにダウンロードして展開して、この後のデータベースにデータをアップロードの手順で使用します。

OCIコンソールにログイン

  • 以下のページの[Cloud Account Name]を入力
    https://www.oracle.com/cloud/sign-in.html

    • Single Sign-On(SSO)で[Continue]をクリック

    • ユーザー名とパスワードを入力し、[サイン・イン]をクリック

    ※ コンソール画面が英語の場合、右上の地球儀アイコンをクリックし言語設定を日本語に変更できます。

コンパートメントを作成

リージョンを設定し、コンパートメントを用意します。

  • 左上のハンバーガーメニューから[アイデンティティとセキュリティ] > [コンパートメント]をクリック
  - [コンパートメントの作成]をクリック

  - [コンパートメントの作成]画面にて以下を入力または選択
  
    - 名前: APEXapp
    - 説明: APEXapp
    - 親コンパートメント: (ご自身のクラウドアカウント名)(ルート)

    →[コンパートメントの作成]をクリック

  ※ページを更新すると、APEXappというコンパートメントが追加されています。

Autonomous Databaseを作成

  • 左上のハンバーガーメニューから[Oracle Database] > [Autonomous Database]をクリック

    • 左のリスト範囲から前のステップで作成したコンパートメントを選択
      (ルート)と書かれたコンパートメント直下のAPEXappを選択

    • [Autonomous Databaseの作成]をクリック

      • [Autonomous Databaseの作成]画面にて以下を入力または選択。記載されていないものはデフォルトのまま

      - コンパートメント: APEXapp となっていることを確認
      - 表示名: atpapex01
      - データベース名: atpapex01
      - ワークロード・タイプの選択: トランザクション処理
      - デプロイメント・タイプの選択: サーバーレス
      - データベースの構成: Always FreeのトグルボタンをON
      - 管理者資格証明のパスワード: 任意のパスワード (例: Welcome12345#)
      - ネットワーク・アクセスの選択: すべての場所からのセキュア・アクセス
      - ライセンス・タイプの選択: ライセンス込み

      →[Autonomous Databaseの作成]をクリック

image.png

image.png
※私の画面ではAlways Free上限になっていますがAlways Freeで利用可能なのでご自身で選択してください。
image.png

image.png
入力完了後、左下のAutonomous Databaseの作成をクリック
image.png
この画面のようにATPのアイコンが緑色になれば作成完了です。

※2~3分でインスタンスが使用可能になります。
「運用上の通知およびお知らせ用の連絡先」を指定しない場合はテナント管理者に通知が送られます。

ADBのサンプルデータをクエリしてみる(本ステップは省略可)

  • ADBの詳細画面から[データベース・アクション]をクリックし、SQLという項目をクリック

image.png

自動でADMINでサインインした状態になり、起動パッド画面が表示されます

image.png

  • ワークシートに以下のSQL文を貼り付け、緑の実行ボタンを押し実行

      ```
      select * from sh.countries;
      ```
    

image.png
上記画像赤枠のSQL文を入力し、実行ボタンを押す

image.png

23行のデータが取り出せています。

あらかじめADBに準備されていた データベース・サンプル・スキーマをクエリすることができました。
参考までに今回クエリしたサンプルデータセットの概要はこちらになります。

Databaseの新規ユーザーを作成

以下の作業を、ADMINユーザとしてサインインしたDatabase Actionsで行う
image.png
ADBの詳細の画面から [データベース・アクション] → [すべてのデータベース・アクションの表示]
をクリックするとデータベース・アクションが別タブで表示される
管理という項目の[データベース・ユーザー]をクリック
image.png
クリック後に画面が切り替わるので
右の[+ユーザーの作成]をクリック
image.png

[ユーザの作成]画面にて画面にて以下を入力または選択。記載されていないものはデフォルトのまま

		 ユーザー名: QTEAM
		 パスワード: 任意のパスワード (例: Welcome12345#)
		 表領域の割当て制限 DATA: [UNLIMITED]を選択
		 [Webアクセス]ボタンをON
		 [付与されたロール]から、DWROLE, DATA_TRANSFORM_USERのロールの[付与済]と[デフォルト]にチェック

ロールの説明

DWROLEのロールは、ほとんどのデータベース・ユーザーに必要な権限を提供します。ユーザーに付与される権限は次のとおりです:

CREATE ANALYTIC VIEW
CREATE ATTRIBUTE DIMENSION
ALTER SESSION
CREATE HIERARCHY
CREATE JOB
CREATE MATERIALIZED VIEW
CREATE MINING MODEL
CREATE PROCEDURE
CREATE SEQUENCE
CREATE SESSION
CREATE SYNONYM
CREATE TABLE
CREATE TRIGGER
CREATE TYPE
CREATE VIEW
READ,WRITE ON directory DATA_PUMP_DIR
EXECUTE privilege on the PL/SQL package DBMS_CLOUD
EXECUTE privilege on OCI PL/SQL SDK

DATA_TRANSFORM_USER
Autonomous DatabaseにてData Transformsを利用するための権限

image.png
(付与されたロールは一番上のタブで選択すると確認可能)
image.png
入力完了後右下の[ユーザーの作成]をクリックすると、完了後にユーザーが増えていることが確認できます。
その後ログアウトをして再度今新たに作成したQTEAMでログインします。

右上の[ADMIN]と書かれたところをクリック
[サインアウト]をクリック
image.png

再度、[サインイン]をクリックし、以下のQTEAMとしてサインインする

   	 ユーザー名: QTEAM
   	 パスワード: 任意のパスワード (例: Welcome12345#)

image.png

新たに作成したQTEAMでデータベース・アクションにサインインした状態になります。
image.png

手元のPCのデータをADBにロードする(Database Actionsを使用)

QTEAMスキーマにデータをロードします。
今回は序盤のステップでダウンロードしたorders.csv を利用していきます。

ダウンロード元はこちら (orders.csvをダウンロード)

~以下の作業を、QTEAMユーザとしてサインインしたDatabase Actionsで行う~

  • データのロード

  • [メニュー] > [Data Studio] > [データ・ロード]をクリック

image.png

  • 下記を選択

    [データのロード]
    [ローカル・ファイル]

image.png

  • ダウンロードした orders.csv をドラッグアンドドロップ

image.png

  • [開始]をクリック > [実行]をクリック

image.png

  • ロードしたデータの確認

[問い合わせ]をクリック

image.png

  • ワークシートに下記を貼り付けて実行

    select * from orders;
    

image.png
問い合わせができたら図のように画面下半分に結果が出力されます。

Autonomous Database 付属ツールで簡易アプリを作成(Oracle APEX)

前のステップでデータロードとデータがSQLで問い合わせできることが確認出来たら、次はいよいよAPEXでの簡易アプリを作成していきます。

  • APEX管理サービスにサインインしワークスペースを作成する

~OCIコンソールで以下の作業を行う~

  • 作成したADBである「atp01」の詳細ページへ

  • [データベース・アクション]をクリックし、「すべてのデータベース・アクションの表示」をクリック

image.png

  • Database Actions 起動パッド から[開発]グループの[APEX]をクリック

image.png
別タブでAPEXの画面がポップアップします。

~APEXの管理サービスへのサインイン画面 で以下の作業を行う~

  • 表示されたログイン画面で[日本語]を選択
    image.png

  • ADBのADMINユーザのパスワードを入力してログイン
    image.png

  • [ワークスペースの作成]をクリックする

image.png

  • [新規のスキーマ]をクリックする

image.png

  • [ワークスペースの作成ウィザード]にて以下を入力
		- ワークスペース名: APEXDEV1
		- ワークスペース・ユーザー名: APEXDEV1
		- ワークスペース・パスワード: 任意のパスワード (例: Welcome12345#)

image.png

作成したAPEXワークスペースにサインイン

  • 管理サービスをサインアウト

  • 管理サービスの右上の[アカウントメニュー]をクリックしてサインアウト

image.png

サインアウト後、サインインページに戻るをクリック

APEXDEV1のワークスペースにサインイン

  • サインイン・ページに戻り、以下でサインインする
      - ワークスペース名: APEXDEV1
      - ユーザー名: APEXDEV1
      - パスワード: 任意のパスワード (例: Welcome12345#)		
        →[サインイン]をクリック

image.png

  • サインイン後、下記画面のようになるので、左上のアプリケーション・ビルダーをクリック

image.png

  • 左上の[作成]をクリックする

image.png

  • [ファイルからアプリケーションの作成]をクリック

image.png

  • orders.csv をドラッグアンドドロップする、または[ファイルの選択]で選択する

  • [データのロード]画面にて以下を入力または選択。他はデフォルトのままで進めます

 表名: ORDERS	
 データのプレビューで文字化け等が発生していないことを確認します
 入力完了後、[データのロード]をクリック	

image.png

  • [アプリケーションの作成]をクリック
    image.png

  • [アプリケーションの作成]ウィザードにて以下を入力または選択。記載されていないものはデフォルトのまま

名前:オーダー管理
ページの名称変更
    →orders検索:[編集]をクリックし、ページ名:検索に変更し[変更の保存]をクリック
    →ordersレポート:[編集]をクリックし、ページ名:レポートに変更し[変更の保存]をクリック
機能:[すべてをチェック]にチェックを入れる

image.png

  • [アプリケーションの作成]をクリック

image.png

→アプリケーションが作成されアプリケーションのホーム画面が表示される

作成したアプリケーションを実行する

  • [アプリケーションの実行]をクリックする

image.png

  • 別ウィンドウまたは別タブで表示されるアプリケーションへのサインイン画面で以下を入力し新しく設定したパスワードでサインイン
  ユーザ名: APEXDEV1
  パスワード: 任意のパスワード (例: Welcome12345#)

image.png

  • [サインイン]をクリック 

image.png
→作成したアプリケーションが表示されます

ログインが完了すると、画面下端に灰色のメニューバーが表示され、ここからアプリケーションの改修作業を実施できます。(このメニューバーは、アプリケーション・ビルダーから「アプリケーションの実行」でアプリケーション実行した場合に表示されます)

ログイン画面のURLを記憶しておくと、作成したアプリケーションを直接呼び出すことができます。アプリユーザーにはURLのみを渡して利用してもらうといった使い方も可能です。

ダッシュボード

ダッシュボードをクリックします。
image.png

ダッシュボードでは取り込んだデータをもとに、自動的にグラフとして出力されます。
image.png

検索

前の画面に戻って、次に検索をクリックします。

image.png
検索の機能では、取り込んだデータに対して、カテゴリ別に検索ができるようになっており、行単位でデータを絞り込むことができます。

image.png

レポート

  • 前の画面に戻って、レポートをクリックします

image.png

レポートからは、データを昇順・降順に並び替えることや、特定の列を非表示にすることができます。
検索との違いとしては、行単位ではなく列単位で表示を変更することができます。

  • [ProdItemKey]の列ヘッダーをクリックし、[コントロール・ブレイク]をクリック

image.png
→レポートが製品ごとのリストとして表示されます。
image.png

  • [OrderStatus]の列ヘッダーをクリックし、[1-Booked]をクリック

image.png
→1-Bookedのステータスのオーダーのみが表示されます。
image.png
前の条件で指定したものと組み合わせて、製品ごとのリストで表示して、さらに1-Bookedのステータスのオーダーのみが表示されるようになりました。

  • [アクション] → [書式] → [ハイライト] をクリック

image.png

  • 以下の項目を入力し、入力完了後、右下の [適用] をクリック
    名前: 10個以上の注文
    バックグラウンド・カラー: 任意の色 (今回の画像はデフォルトで表示)
    ハイライト条件→列: Units
     演算子:>=
     式: 10

image.png

10個以上のUnitにハイライトが追加されました

image.png

  • [アクション]→[データ]→[集計]をクリック

image.png

  • 以下を選択し、[適用]をクリック
	ファンクション:合計
	列:Revenue

image.png

今までの条件もそのままレポートには適用されています。
この場合、ステータスが、[1-Booked] のオーダーのうち、収益(Revenue)の小計が製品ごとに一目で確認できるようになりました。

image.png

これで現在準備中の商品 (1-Bookedのステータス) の中でも売れ筋の傾向などがぱっと見でつかめるようになったかと思います。

作成したレポートを保存する

  • [アクション]→[レポート]→[レポートの保存]をクリック

image.png

  • 以下を選択または入力し、[適用]をクリック
	保存: 名前付きレポートとして保存
	名前: 最近の売れ筋
    説明: 任意でメモを記載

image.png

適用されたらプライベートのレポートとして保存されているはずです。
image.png

レポートのリセット

いろいろ条件を指定してカスタマイズされたレポートをリセットしたい場合のリセットも可能になっています

  • [プライマリ・レポート]を選択し、、[アクション]→[レポート]→[リセット]をクリック

image.png
レポートをデフォルトの設定に戻しますというポップアップが出るので [適用] をクリックするとリセットが完了します

まとめ

たった10分程度でデータの検索や、レコードの修正&削除、テーブル内の代表的な列についてダッシュボード的に傾向を確認するといった簡単なアプリケーションが作れます。

従来Excelで管理していたデータを、複数のユーザ、複数の部門で活用することができるようになります。

以下のまとめサイトから、データ分析以外のさらなるチュートリアルやユーザ会の資料をご参照ください。
APEX情報まとめサイトはこちら

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?