Windows PC で Mashu サーバーを評価する
はじめに
弊社が Data Fabric を構成する第一弾のサービスとして、8/4 にローンチしたデータカタログ(メタデータ管理)サービス「Mashu」の提供する機能のうち、オンプレミスのデータベースのメタ情報をクラウドへ連携するための仕組み「Mashu サーバー」を評価頂くための記事です。
弊社が提唱する Data Fabric の考え方につきましては、以下の記事をご参照ください。
また、Mashu の製品情報に関する詳細につきましては、以下のサイトをご覧ください。
評価しましょう
Mashu とは
- SaaS で提供されるデータカタログ(メタデータ管理システム)です
- RDBMS や Datalake など「データを管理しているシステム」からメタデータを取り込みます
- 「データを管理しているシステム」を変更しても、変更後のメタデータをマージできます
- 全てのメタデータを一元管理するので、全てのメタデータを対象とした検索が可能です
Mashu は、30メタデータ(テーブル)までは、クレジットカード登録不要(無料)で評価することができます。
Mashu サーバーとは
Mashu は、クラウドネイティブな SaaS なので、Datalake などインターネット経由でアクセス可能な「データを管理しているシステム」との連携は可能ですが、オンプレミスのプライベートなネットワークに置かれた RDBMS との連携を直接は行うことができません。
Mashu では、このようなオンプレミスのプライベートなネットワークで動作する Docker ベースのアプリケーションを Docker Hub で配布しており、このアプリケーションを使用することでオンプレミスのメタデータを含めた全てのメタデータの一元管理を実現しています。
Mashu サーバーとは、この Docker Hub で配布しているアプリケーションで、Mashu サーバー自体の使用に対する費用は発生しません。(Mashu サーバー経由で Mashu に取り込まれたメタデータについては他の Mashu が管理するメタデータと同様に費用が発生します)
評価環境
PC
- CPU:Intel Pentium 4415Y @ 1.60GHz
- Mem:8.0 GB
- SSD:128 GB
OS
- Windows 10 Pro 22H2
RDBMS
- Oracle Database 21c Express Edition for Windows x64
今回の評価に使用できて、今回の評価を実施する PC から接続可能な Oracle サーバがあれば、ローカル PC に Oracle を導入する必要はありません。
もしも、Azure AD 管理の Microsoft アカウントを使用していて Oracle XE の導入でエラーになった場合には、以下の記事も参照ください。
Oracle 以外のデータベースで評価頂く場合は、適宜読み替えて頂ければと思います。
評価の準備
Oracle にユーザーとテーブルを用意する
既存の Oracle サーバへ接続できる場合は、このステップは不要です。
C:\> sqlplus sys/■■■ as sysdba
SQL> alter session set container = XEPDB1;
セッションが変更されました。
SQL> show con_name
CON_NAME
------------------------------
XEPDB1
SQL> create user ●●● identified by "▲▲▲" default tablespace users temporary tablespace temp;
ユーザーが作成されました。
SQL> grant connect, resource, unlimited tablespace to ●●●;
権限付与が成功しました。
SQL> exit
C:\> sqlplus ●●●/▲▲▲@//localhost:1521/xepdb1
SQL>@foo.sql
CREATE TABLE CUSTOMER (
CUSTOMER_ID int,
NAME nvarchar2(16),
ADDRESS nvarchar2(128),
CONSTRAINT PK_CUSTOMER PRIMARY KEY(CUSTOMER_ID)
);
COMMENT ON TABLE CUSTOMER IS '顧客マスタ';
COMMENT ON COLUMN CUSTOMER.CUSTOMER_ID IS '顧客ID';
COMMENT ON COLUMN CUSTOMER.NAME IS '氏名';
COMMENT ON COLUMN CUSTOMER.ADDRESS IS '住所';
CREATE TABLE ORDER_HEADER (
ORDER_ID int,
CUSTOMER_ID int,
ORDER_DATE date,
CONSTRAINT PK_ORDER_HEADER PRIMARY KEY(ORDER_ID)
);
COMMENT ON TABLE ORDER_HEADER IS '注文';
COMMENT ON COLUMN ORDER_HEADER.ORDER_ID IS '受注ID';
COMMENT ON COLUMN ORDER_HEADER.CUSTOMER_ID IS '顧客ID';
COMMENT ON COLUMN ORDER_HEADER.ORDER_DATE IS '受注日';
CREATE TABLE ORDER_DETAIL (
ORDER_ID int,
ROW_NUM int,
PRODUCT_ID int,
QUANTITY int,
PRICE_PER_UNIT int,
CONSTRAINT PK_ORDER_DETAIL PRIMARY KEY(ORDER_ID, ROW_NUM)
);
COMMENT ON TABLE ORDER_DETAIL IS '注文明細';
COMMENT ON COLUMN ORDER_DETAIL.ORDER_ID IS '受注ID';
COMMENT ON COLUMN ORDER_DETAIL.ROW_NUM IS '行番号';
COMMENT ON COLUMN ORDER_DETAIL.PRODUCT_ID IS '製品ID';
COMMENT ON COLUMN ORDER_DETAIL.QUANTITY IS '数量';
COMMENT ON COLUMN ORDER_DETAIL.PRICE_PER_UNIT IS '販売単価';
CREATE TABLE PRODUCT (
PRODUCT_ID int,
NAME nvarchar2(64),
PRICE_PER_UNIT int,
CONSTRAINT PK_PRODUCT PRIMARY KEY(PRODUCT_ID)
);
COMMENT ON TABLE PRODUCT IS '製品マスタ';
COMMENT ON COLUMN PRODUCT.PRODUCT_ID IS '製品ID';
COMMENT ON COLUMN PRODUCT.NAME IS '製品名';
COMMENT ON COLUMN PRODUCT.PRICE_PER_UNIT IS '標準単価';
Docker Desktop をインストールする
以下に説明がありますが、順に説明します。
WSL2 を有効にする
コマンドプロンプトを「管理者として実行」します。
C:\WINDOWS\system32>wsl --install
インストール中: 仮想マシン プラットフォーム
仮想マシン プラットフォーム はインストールされました。
インストール中: Linux 用 Windows サブシステム
Linux 用 Windows サブシステム はインストールされました。
インストール中: Linux 用 Windows サブシステム
Linux 用 Windows サブシステム はインストールされました。
インストール中: Ubuntu
Ubuntu はインストールされました。
要求された操作は正常に終了しました。変更を有効にするには、システムを再起動する必要があります。
再起動します。
Ubuntu は既にインストールされています。
Ubuntu を起動しています...
Installing, this may take a few minutes...
仮想マシンまたはコンテナーからの応答が受信されなかったため、操作がタイムアウトしました。
Error code: Wsl/Service/CreateInstance/HCS_E_CONNECTION_TIMEOUT
Please create a default UNIX user account. The username does not need to match your Windows username.
For more information visit: https://aka.ms/wslusers
Enter new UNIX username: ●●●
adduser: unrecognized option '--quiet'
ここで怒り出しますが、スルーしてください。何行か出力されるエラーを省略しますが、待っていると、もう一度、ユーザーを作れそうな感じになるので、ユーザーを作成します。
Enter new UNIX username: ●●●
New password: ▲▲▲
Retype new password: ▲▲▲
passwd: password updated successfully
Installation successful!
To run a command as administrator (user "root"), use "sudo <command>".
See "man sudo_root" for details.
Welcome to Ubuntu 22.04.2 LTS (GNU/Linux 5.15.90.1-microsoft-standard-WSL2 x86_64)
* Documentation: https://help.ubuntu.com
* Management: https://landscape.canonical.com
* Support: https://ubuntu.com/advantage
This message is shown once a day. To disable it please create the
/home/●●●/.hushlogin file.
●●●@■■■:~$ sudo apt update && sudo apt upgrade
最後にシステムを更新しておきます。
Docker Desktop をインストールする
このサイト の「Docker Desktop for Windows」のリンクからインストーラ(Docker Desktop Installer.exe)がダウンロードできます。インストーラを起動したら、「User WSL 2 Instead of Hyper-V
」にチェックを入れてインストールします。
Mashu サーバー
イメージを pull します
Docker Hub から Mashu サーバーを持ってきます(プルします)。
再起動後などの場合は、Docker Desktop を一度起動しておきます。
Linux など Windows 以外の OS で評価頂く場合でも、docker コマンドは同じです。
c:\> docker pull roboninc/mashu
Using default tag: latest
latest: Pulling from roboninc/mashu
f56be85fc22e: Pull complete
07f9b5de219e: Pull complete
159795e526f5: Pull complete
987dad55bbcb: Pull complete
1a1063a89f44: Pull complete
967452810d7d: Pull complete
Digest: sha256:e4b89b6a487b42aacd846fbb84f6645598bd2fa55f13ee007f1faabe461c3093
Status: Downloaded newer image for roboninc/mashu:latest
docker.io/roboninc/mashu:latest
What's Next?
View summary of image vulnerabilities and recommendations → docker scout quickview roboninc/mashu
コンテナを起動します
既に 80 番、3000 番ポートを使用している場合は、別のポートを指定して起動してください。
C:\>docker container run --name mashu -p 80:80 -p 3000:3000 roboninc/mashu
2023/07/04 02:33:55 api router listen on port[3000]
2023/07/04 02:33:55 static router listen on port[80]
2回目以降は、以下のように起動できます。
C:\>docker container start mashu
mashu
コンテナに接続します
ブラウザで localhost へ接続します。
起動時に 80 番ポートを変更した場合は、変更したポート番号を指定して接続します。
以降は、Mashu にメタデータを同期する に続きます。
コンテナを停止します
C:\>docker container stop mashu
mashu
評価が終わったら、コンテナとイメージを削除しておきましょう
C:\>docker rm mashu
mashu
C:\>docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
roboninc/mashu latest c9136c33a071 7 weeks ago 46.4MB
C:\>docker rmi c9136c33a071
Untagged: roboninc/mashu:latest
Untagged: roboninc/mashu@sha256:e4b89b6a487b42aacd846fbb84f6645598bd2fa55f13ee007f1faabe461c3093
Deleted: sha256:c9136c33a071ff4a8da1b19b27a83afdf1f27493385a159c827f1eb54218d305
Deleted: sha256:d62aef6273b3d42c483695f84aa2fad0fb284c45936df20a529d566aac9394b8
Deleted: sha256:767d7bb11dce8742dfe4a543cd2d75017c436fdf1cdf6ee918a9d349d5e5d44b
Deleted: sha256:c029e7e660f4effdfd62b5665069695fceeeb0c2aa583dc80c51a749acd174c5
Deleted: sha256:aeb6f8092507e7407ac1550096ab921f1f20c376e066d40d2184ee761bca6347
Deleted: sha256:1d4395380b55f989d4f0ebab743637861f7c9978dd1c31bf2476ac6311e25402
Deleted: sha256:f1417ff83b319fbdae6dd9cd6d8c9c88002dcd75ecf6ec201c8c6894681cf2b5
Mashu にメタデータを同期する
ユーザーを登録します
ブラウザで localhost へ接続して コンテナに接続します の画面を表示します。
ブラウザのアドレスバーは、localhost になっていますが、localhost を経由して、クラウド上の Mashu と通信をしていますので、ユーザーを登録すると、クラウド上の Mashu にユーザーを登録したことになります。
初回は、アカウント作成
からユーザー登録を行います。
上から ユーザー名(識別子)、メールアドレス、パスワード を入力して アカウント作成
ボタンを押すと、入力したメールアドレスに確認コードが送られますので、以下の アカウントの確認
画面で コード欄に入力して アカウントの確認
ボタンで登録します。
最初の サインイン
画面に戻るので、上の段には、ユーザー名
かメールアドレス
で指定した文字列を、下の段にはパスワード
で指定した文字列を入力して、Mashu にサインイン
します。
この画面で言語やタイムゾーンの設定ができます。また、この画面の設定は後から変更可能です。
組織を作成します
組織は、Mashu が管理するメタデータのオーナーです。管理しているメタデータに対する請求は組織の決済管理者に対して行われます。
組織には複数のユーザーが所属できます。組織の管理するメタデータは、組織に所属するユーザーだけが操作できます。ユーザーは複数の組織に所属することができます。
Mashu では、サインイン時に、必ず、どの組織のユーザーとして作業をするかを選択します。組織を選択する
画面では、すでに参加済みの組織
、招待された場合など参加できる組織
が表示されますが、初回は、組織を作成する
ボタンを押して組織を作成します。
組織の情報は、請求書にも記載されますので正しく入力してください。この画面の設定もあとから変更可能です。組織を作成するとその組織の管理者で決済管理者になります。Mashu を使用する組織が選択可能になりましたので、作成した組織を選択します。
プロジェクトを作成します
プロジェクトは、組織内のメタデータをグルーピングする単位です。メタデータは、RDBMS や Datalake などデータを管理するシステム毎に取り込み、同期を行いますが、この単位を Mashu ではデータソースと呼びます。言い換えると、プロジェクトはデータソース単位でメタデータをグルーピングすることになります。
新しいプロジェクト
ボタンを押します。
プロジェクト名
などの項目を入力して 作成する
ボタンを押します。
Oracle をデータソースとしてメタデータを抽出します
上のプロジェクトの データソース
タブで 新しいデータソース
ボタンを押して、新しいデータソース
を 作成する
。タイプ
欄は、接続するシステムの種別を設定しますので、今回は、OracleDB
を選びます。
とデータソース画面になりますので、ここで 接続設定
タブを選びます。
ここで Hostname は、Oracle サーバの Hostname になりますが、この Hostname に「Mashu サーバー」が接続するため、localhost
は使用せず、ローカルPC に接続できる Hostname か IP アドレスにしてください。Port は、デフォルトでは 1521
番ですが、変更している場合はその番号を設定してください。
Username、Password は、今回は、この記事内でテーブルを作ったオーナーのものを使用しますが、メタデータ管理対象のテーブルのみに読み込み権限を付与したユーザーを用意するとよりセキュアになります。ServiceName は、この記事の場合、xepdb1
になります。
保存したときに、パラメータの下にスキーマ選択
カードが表示されます。ここで、Mashuサーバー設定ができていない場合は、以下のような状態になります。
設定画面へ
リンクをクリックして、ユーザー設定画面のMashuサーバー設定を行います。ブラウザからMashuサーバーへのWebAPI接続の設定になりますので、今回の場合は、http://localhost:3000
のように入力して保存する
ボタンを押します。
戻る
リンクで、データソース画面に戻って、接続設定
タブのスキーマ選択
カードで、目的のテーブルが格納されているスキーマを選択します。
メタデータ
タブに戻って、メタデータ同期
ボタンを押すと、同期中になります。
この記事の非力な PC の場合は 10 秒後に メタデータ同期
の右側のリロードボタンを押しました。
この記事の SQL で作成したテーブルが一覧表示されます。テーブルの情報を見るには、テーブルのカードをクリックします。
カラムの情報を見るには、カラム
タブへ移動します。
さいごに
Mashu には、この記事ではご紹介できなかった機能がまだまだあります。
まずは、この記事のように Mashu にメタデータを取り込んで、評価してみてください。
データがバラバラであっても、『欲しいデータを』『欲しい時に』『欲しい場所で』見つけることができる Data Fabric の第一歩を Mashu からはじめてみませんか。
データレイクのデータカタログに連携しての評価をご希望の方は、こちらの YouTube 動画が参考になるかと思います。
Discussion