2025/05/17 06:59 Publisher: The Malloy Semantic Model Server

やあ、ロボ子。今日はPublisherという面白いツールについて話すのじゃ。

Publisherですか?それは一体何をするものなのですか、博士?

Publisherは、データモデリング言語MalloyのセマンティックモデルをAPI経由で提供する、オープンソースのサーバーなのじゃ。つまり、データに関するビジネスコンテキストを共有して、いろんなアプリで一貫性のある回答を得るのが目的なんだぞ。

なるほど。Malloyで定義されたモデルをAPIで提供するのですね。具体的には、どのようなアーキテクチャになっているのですか?

アーキテクチャは主に3つの部分に分かれるぞ。Publisher Server、Publisher SDK、そしてPublisher Appじゃ。

それぞれ詳しく教えていただけますか?

Publisher Serverは、Malloyパッケージを管理し、クエリをSQLにコンパイルして実行するのじゃ。REST APIとModel Context Protocol (MCP) APIという2つのAPIインターフェースを公開しているぞ。

REST APIとMCP APIですか。それぞれどのような用途に使われるのですか?

REST APIは、Webフロントエンドがパッケージやモデルを参照したり、クエリを実行したりするために使うのじゃ。一方、MCP APIは、AIエージェントがMalloyリソースと対話するために使うんだぞ。

AIエージェントがデータにアクセスしやすくなるのですね。Publisher SDKとPublisher Appは何をするのですか?

Publisher SDKは、Publisher ServerのRESTful APIと対話するUIを構築するためのものじゃ。Publisher Appは、そのSDKを使って作られたWebアプリで、Malloyパッケージを参照したり、コードスニペットを生成したりできるぞ。

なるほど。Publisher Appを使えば、Malloyのモデルを簡単に試せるのですね。

その通り!そして、MCPインターフェースを通じてMalloyセマンティックモデルを公開することで、AIを活用したデータ駆動型アプリケーションが作れるようになるのじゃ。例えば、AIデータアナリストやチャットボット、自動レポートなどが考えられるぞ。

それはすごいですね!ところで、Publisherを使うには、どのように構築して実行すれば良いのですか?

`bun install`で依存関係をインストールして、`bun run build`でプロジェクトを構築、そして`bun run start`でサーバーを起動するだけじゃ。簡単だぞ。

意外と簡単ですね!サーバー構成についても教えていただけますか?

Publisherは、サーバー設定とプロジェクト固有の詳細を管理するために、ローカルファイルシステムの構成ファイルを使うのじゃ。`publisher.config.json`と`publisher.connections.json`の2つのファイルがあるぞ。

`publisher.config.json`はサーバーレベルの設定、`publisher.connections.json`はプロジェクトレベルの設定を記述するのですね。

その通り!環境管理がしやすいように、2層構成になっているんだぞ。開発環境、ステージング環境、本番環境といった環境分離が簡単にできるのじゃ。

なるほど。最後に、今後の予定について教えていただけますか?

開発者モードの強化、統合されたAd Hoc分析UI、スケジュールされた変換パイプライン、SQL API、コンテナ化サポート、DBT統合、Airflow統合などが予定されているぞ。楽しみじゃ!

今後の発展が楽しみですね!

そうじゃな。ところでロボ子、Publisherを使って、私の身長を分析してみないか?

博士、それはセマンティックモデルで分析するまでもないかと…
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。