清水理史の「イニシャルB」

NASでも動く! Excel感覚で使えるウェブデータベース「Baserow」と「NocoDB」

 ローコードプラットフォームの一種として、「Airtableの代替(Alternative)」をうたうサービスが増えてきた。

 Excelライクにデータベースを扱えるサービスで、KintoneやPower Appsよりもカジュアルな簡易ウェブアプリ開発環境といったところだ。

 中でもオープンソースとして無料で提供される「Baserow」と「NocoDB」はNASでも動くため、個人や小規模オフィスの業務効率化に一役買う可能性がある。実際にテストしてみた。

「Airtable」の代替をうたうウェブデータベースサービスが登場している。画面は「Baserow」

Excelライクなウェブデータベース

 顧客名簿や売上管理、日報、経費精算などの業務に、Excelを使っているというケースは、小規模なオフィスなら多いだろう。

 今回取り上げるBaserowやNocoDBは、こうした業務をウェブ上のデータベースで実現するサービスだ。

データ入力用のフォームなども作成できる

 実質的には、MySQLやPostgreSQLなどのデータベースにデータを保存するサービスだが、見た目はExcelのような表データとして手軽に扱えるようになっていて、データ入力用のフォームなども手軽に作成できる。

 Excelというよりは、ずばりAccessと言った方が適切かもしれないし、クラウドに馴染み深いなら、GoogleスプレッドシートとGoogleフォームを合わせたようなサービスと考えた方が分かりやすいかもしれない。

 先行するサービスとして、海外で注目されつつある「Airtable」が挙げられるが、BaserowやNocoDBも、現時点ではAirtableほど多機能ではないもの、両者とも「Airtable Alternative(代替)」を大々的にうたっている。

 ちなみに、国内では有名な「Kintone」ほど多機能ではなく、あくまでも表計算が主体で、フォームはおまけ程度だ。Excelを使った業務を改善したいが、Excel的な操作感は維持したいというイメージだろうか。

NASで動く

 こうしたサービスは、いずれもクラウド上で提供されるのが一般的で、フリープランを利用すれば無料で利用することができる。データ数が少なければ、こうしたクラウドサービスを利用する方が効率的だ。

Airtable

https://www.airtable.com/

 この分野のベンチマーク的存在のサービス。クラウドのみで英語のみの提供。フリープランは1200レコード、2GBまで利用可能だ。

Baserow

https://baserow.io/

 クラウドとオンプレの両方を利用可能なサービス。英語のみ。クラウドのフリープランは3000レコード、2GBまで。オンプレのオープンライセンス版はデータ制限なしも一部機能制限あり。

NocoDB

https://www.nocodb.com/

 2022年7月時点ではオープンソースのオンプレ版のみ提供するサービス。一部日本語対応。

 業務によっては、レコード数やデータ容量における制限がネックになる場合もあるだろう。せっかくなら制限なしに利用したいところだ。

 そこで活用したいのがNASだ。SynologyやQNAPなど、自宅やオフィスで利用しているNASがDockerをサポートしていれば、こうしたオープンソースのアプリを簡単にNAS上で稼働させることができる。

 Docker対応のNASに限られるため、ARM系CPU搭載の家庭向けNASでは利用できない場合があるが、NASで動けば無料で業務システムとして活用できる。

 今回は、BaserowとNocoDBの2つを、筆者の手元にあったSynology「DS716+」を使って試してみた。

Dockerに対応したNASがあれば、こうしたサービスをローカルで手軽に利用できる

Baserowを試す

 まずはBaserowから動かしてみよう。と言っても、シンプルに動かすだけなら、設定らしい設定は不要で、手順も以下の通りと、それなりに簡単だ。

  1. 「パッケージセンター」で「Docker」をインストールしておく
  2. Dockerの「レジストリ」で「baserow」を検索し、「baserow/baserow」をダウンロード
  3. 「イメージ」でダウンロードしたイメージを選択し「起動」をクリック
  4. ウィザードに従って以下を設定
    A)「詳細設定」の「変数」に「BASEROW_PUBLIC_URL」を追加し「http://NASのIP:ポート」を指定(例:http://192.168.200.171:8000)
    B)「ポート設定」でコンテナポートの「80」に対して「8000」などのポートを設定(上のポートと一致させること)
    C)「ボリューム設定」で「/docker/brdat」などのNAS上のフォルダーを作成し、コンテナの「/baserow/data」にマウント
詳細設定から環境変数でデータの保存先を指定
データ保存先をNAS上のフォルダーにマウントする

 これでコンテナを起動すれば、「http://192.168.200.171:8000」へウェブブラウザーからアクセスすることで、Baserowを利用できる。

 このイメージを使った場合、データベースはコンテナ内部に含まれているため、データのみがNAS上にマウントされた「/docker/brdat」フォルダーに保存されるかたちとなる。このため、バックアップはこれを取得しておけばいい。

 使ってみた印象としては、粗削りだが現時点ではかなりAirtableに近い印象だ。コラムをドラッグ&ドロップで移動させられたり、Excelからコピーした範囲をそのまま貼り付けられたり、間違った操作を[Ctrl]+[Z]キーでやり直せたりと、なかなか扱いやすい。

現時点での完成度は高い。ドラッグでのコラムの移動やアンドゥなどができるのは秀逸

 テンプレートが豊富に用意されているのも特徴で、コンテンツ管理や教育機関向けの生徒管理システム、レストラン向けシステムなど、さまざまなひな型を利用可能だ。

テンプレートも豊富

 もちろん、データベースらしく、テーブルのリンクも簡単だ。コラムのプロパティで「Link to table」を選び、リンク先のテーブルを選択するだけでいい。これで、例えばマスタデータから商品の商品名や金額などを参照するといったことができる。

 また、関数も利用可能だ。「field('価格')*field('個数')」といった計算をしたり、「if(field('売上小計')>1000,0,500)」といった条件を指定することも可能だ。

関数を利用可能

 ただ、データやフォームで日本語を使うことは可能だが、UIは、残念ながら英語のみとなる。また、データのインポートはCSVからは可能だが、Excel(.xlsx)からは現状はサポートしていない。

 このほか、無料版では、利用できるビューが「Grid」「Gallery」「Form」のみに制限される。オンプレ版でも月額で5米国ドルの有料版にすると「Kanban」が利用可能になる仕組みだ。

NocoDBを試す

 続いてNocoDBだが、これは2通りの方法がある。1つはデータベースに内部のSQLiteを利用する方法で、もう1つは外部のデータベースを利用する方法だ。

 簡単なのは、前者のSQLiteを利用する方法だ。コンテナの設定でポートとフォルダーのマウント先のみを設定すれば動作する。しかし、この場合、一度、コラムのプロパティを設定すると後から変更できないので、あまりお勧めしない。

 NASの場合、パッケージでデータベースをインストール可能なので、これを利用する方が本来の実力を発揮させられるため、こちらの方法を紹介しよう。こちらのウェブページも参考にして欲しい。

  1. パッケージセンターからMariaDBとphpMyAdminをインストールする
  2. MariaDBでTCP接続を有効化する
  3. phpMyAdminを利用してNocoDB用ユーザーを作成。ホスト名を「172.17.%」のように設定しコンテナからのアクセスを許可しておく
  4. Dockerのレジストリから「nocodb/nocodb」をダウンロード
  5. コンテナの詳細設定で以下を設定
    A)NC_DBにデータベースの接続情報を設定(mysql2://NASのIP:ポート?u=データベースユーザー名&p=データベースパスワード&d=データベース名)
  6. ポート設定でコンテナの「8080」を任意のポート(例えば5080など)に割り当て
  7. ボリューム設定でコンテナの「/usr/app/data」をNASの「/docker/nocodata」などにマウント(SQLite用の設定。外部DBの場合はなくても動作する)
NAS上のMariaDBにコンテナからアクセス可能なユーザーを作成しておく
環境変数として外部データベースに接続するためのパラメーターを設定しておく

 使用感としては、かなり粗削りでα版といわざるを得ないような機能もあるが、将来性は感じられる。

 Baserowとの違いで言えば、現状のバージョンではテンプレートが用意されない。また、ドラッグ&ドロップによるコラム移動や、レコードのコピー&ペースト不可、アンドゥなしとなっており、Excel的な操作と呼ぶには、少々物足りないところもある。

 このほか、リンクしたテーブルを参照する際に選択候補としてキー列のデータしか表示されない。このため、商品マスタを参照して、商品名やコード、金額などを入力したくても、コード番号などのキー列のデータしか見えないため、値を選びにくい。

リンク先のテーブルの主キーの値しか参照できない
Baserowでは参照先のテーブル全体が表示されるためコードや金額などのデータも参照しながら値を選択できる

 ただし、Excelとの連携はBaserowより優秀だ。テーブル作成時にExcelファイルを指定すると、Excelの複数シートのテーブルを自動的に認識してくれる。その代わり、CSVはUTF-8以外が文字化けするので要注意だ。なお、Baserowは文字コードを選択してインポートできる。

Excelファイルのインポートに対応。複数シートも認識してくれる

 また、現状はデータを表示するビューが「グリッド」「ギャラリー」「フォーム」のみだが、開発のロードマップでは「カンバン」と「カレンダー」が計画されており、今後のバージョンで提供される予定だ。おそらく無料だと考えられるので、今後、開発が進み、細かな改善や機能強化が実現すれば、かなり完成度が高くなりそうな有望株といったところか。

NASをファイル保存にだけ使うのはもったいない

 以上、BaserowとNocoDBをNASで利用する方法を解説した。ビジネス向けのDocker対応NASなら簡単に動かすことができるので、試してみる価値はあるだろう。

 今回試した2製品は進化途中のため、商用サービスと比べると、まだ機能が物足りない印象がある上、ビジネスシーンでの実用も限定的かと思われる。しかし、NASを単なるファイルサーバーとしてだけでなく、業務サーバーとしても活用できる道が開けるはずだ。

 もちろん、Excelの進化も著しいので、今のレベルのサービスなら、オンライン版Excelの共同編集でよくないか? という気もする。

 なので、この手のサービスの課題としては、今後テンプレートをいかに充実させるか、カンバンやカレンダーなどのビューをいかに増やせるか、BI的なダッシュボードをどこまで実装できるかが課題になりそうだ。

 現段階では、まだまだお試しという色合いが強いので、今後のバージョンアップにも注目していきたいところだ。

清水 理史

製品レビューなど幅広く執筆しているが、実際に大手企業でネットワーク管理者をしていたこともあり、Windowsのネットワーク全般が得意ジャンル。最新刊「できる Windows 10 活用編」ほか多数の著書がある。