先日参加した db tech showcase 2025 にて、東芝デジタルソリューションズさんのブースで "GridDB"というデータベース製品のお話を伺い、少し興味を持ちました。
https://griddb.net/ja/
ダウンロード版(on RockyLinux 9.4 or Ubuntu 22.04)とクラウド版(GridDB Cloud)があるそうで、とりあえず雰囲気を見てみたいだけなので、まずクラウド版を使ってみました。本質的には商用製品ですのでそれなりのお値段がするのですが(下記リンク)、Freeプランならば、データサイズやリクエスト数などに制約はあるものの、無期限で無料で使用可能なものです。
https://www.global.toshiba/jp/products-solutions/ai-iot/griddb/product/griddb-cloud.html
今回のコンセプト
今回「さわってみる」のコンセプトとして、「マニュアルや資料を読まないでやる」ことにしました。まず直感で、雰囲気で、ある程度触れるものでなければ、多くの人に受け入れてもらうのは難しいからです。 ・・・・誰ですか、読むのが面倒なだけだろうと言っている人は。 そういうことは思っていても口に出してはいけません。なんといっても、図星なのですから...
このエントリはそんなわけで「ただ触ってみた」だけの記録です。深いことも難しいこともやっていませんので、乞う NOT ご期待。
アカウント作成
東芝デジタルソリューションズのサイトに行って、アカウントを作ります。メールアドレスを入れて仮登録。受信したメールに書かれているURL先にしたがって詳細情報を入力して本登録。
https://digitalsolution.shop.toshiba/
GridDB Freeプランの「購入」
画面上から GridDB Cloud の情報を探して

「GridDB Cloud 共用環境無料プラン 共用環境無料プラン 」をカートに入れて「購入」します。画面上には「参考価格」という曖昧な言葉で書かれていて一瞬怯みますが、あとで「あれは単なる参考だから」と言って課金されたりしないことを祈りながら先に進みます。クレジットカード情報の入力は不要です。

最初の仮登録用のメールアドレス入力から「DBが使えるようになりましたよ」のメールが来るまで、5分弱程度でした。
はじめての管理画面
「購入」時にログインしていますが、まだの場合は改めてログインすると GUIの管理画面にたどり着くことができます(この画面に行く前に最初に「サブスクリプション」的な画面があった気もするけど、ワンクリックでこの画面にたどり着けるはずです)。


テーブル作成
とりあえず簡単なテーブルを作ってデータを出し入れしてみたいので、「データベース」タブをクリックしてみる(この画面キャプチャは既にひとつ "sampl01" テーブルを作成した後のものです)。

まず目に入るは「コンテナ」の文字。続くブロックには「ビュー」とか「ユーザ」とかの文字も見えるので、きっとテーブルのことをコンテナと呼んでいるのだろうと想像して続行(マニュアル読め!)。「コンテナを作成」ボタンを押します。いかにもテーブル定義を入力しそうなフォームになったので、適当にカラム名とデータ型を指定。

なお、「コンテナタイプ」には "COLLECTION" と "TIMESERIES" があります。おそらく前者は普通のテーブル、後者が GridDBが得意とする時系列データに特化したと想像します。
「データ型」は、STRING, BOOL, BYTE, SHORT, INTEGER, LONG, FLOAT, DOUBLE, TIMESTAMP各種、GEOMETRY, BLOB そして左記各種の *_ARRAY型がありました。MySQLには配列型はないので、そのあたり、新鮮。 そして個人的には GEOMETRY型に期待が膨らみます。
はじめてのデータ登録(失敗)
なにやら左側のアイコンメニューに「クエリ」があったので、ここでSQL文を発行できると想像して作業継続。

何はなくともデータを入れないと話にならないので、INSERT文を実行。GEOMETRY型のところは ST_GeomFromText()等何かの関数を噛ませる必要があるはずだけど、最初からココでハマりたくないので、null としてやりすごす作戦。
INSERT INTO sample01 VALUES (1, 'data01', null, now());
しかーし!
エラー。
[240000:SQL_COMPILE_UNSUPPORTED] Target column type='GEOMETRY' is not writable in current version on updating (sql="INSERT INTO sample01 VALUES (1, 'data01', null, now());") (db='XXXXXkKv') (user='M035XXXXXX') (appName='managementgui-692bXXX-27XX-4dXX-9fXX-d6a2XXXXXXX') (clientId='41d46XX-3fef-45b9-aaXX-71ddXXXXXX0:1') (source={clientId=2, address=172.25.XX.XX:50434}) (address=172.25.XX.XX:20001, partitionId=7889)そういえば、Free版では地理情報機能を使えないという話を dbtsで伺っていたような気がします。普通に管理画面で選ぶことができたので、使えるものと思い込んで作業をしてしまいました。 しかし、この制限は残念。こここそが私の最大の関心事項だったので。
新たなテーブルで再トライ
直にSQL文で指示できるなら、もう怖いものなんかない。鬼に金棒、馬子にも衣装、豚に真珠(意味が違う)。
無難そうなデータ型を使って、新たに sample02 テーブルを作ります。先ほどのGUI画面でデータ型は目にしているので、そのあたりを使ってみることにしました。
create table sample02 (id integer, name string, dt timestamp)
データの登録も。きっと now()関数はあるだろうと適当に打ってみたら、無事受け入れてもらえたようです。
INSERT INTO sample02 VALUES (1, 'data01', now())
登録したデータを見てみると、正しく登録されたっぽい。
SELECT * FROM sample02; → 1 data01 2025-07-22T07:22:06.690Z

やはり GEOMETRY型がNGだったのかもしれません。ただ、エラーメッセージを見ると not writable なだけなので、INSERT文以外の方法で登録する手段があるのでは?と、少し期待はしています(ないかなー)。
今後の(私の)課題
とりあえずテーブル(コンテナ)を作ってデータを入れたりSELECT文で確認したりという基本動作が、ブラウザGUI上で行えることまでは確認できました。でも、こんなGUI画面からSQL操作をするためにデータベースを使うわけじゃないので、まずは「外から」データベースにアクセスできる方法は習得しておきたいところです。URL/ポート/認証方法/Connectorの選定 あたりを把握できれば、と考えています。ここから先はとにかく「マニュアル読め!」ですね。
外からのアクセスとして、SQL操作ができるGUIツールを使うことを念頭に置いていたのですが、私がよく使うツール DBeaver では GridDBへのアクセス機能は備えていないようです。 このツールはTiDBにも対応しているので、諸プロダクトへの対応が消極的であるということは決してなく、こういったところに GridDB に対応してもらうような働きかけなども、普及には大切な一面なのではないかな、と感じました。

いずれにせよ、、Pythonなどでプログラムを書く形でも構わないので、外からアクセスしてみたい、というのと、mysql や psql みたいな標準的なコマンドラインクライアントからのアクセスは、知っておきたいところです。
あとは、普通にDBMSとして使うだけなら私はMySQLやPostgreSQL(+PG-Strom)などで十分なシーンが多いので、GridDBが得意とする 時系列データ処理について、他のDBMSと比べてどのような強みがあるのか、もう少し知ってみたいと思いました。