
Supabase、オープンソースのFirebaseの代替品であるSupabaseは、データベース管理と開発のための画期的なツール、postgres.newを導入しました。この革新的なプラットフォームは、PostgreSQLの力をブラウザに直接もたらし、人工知能と組み合わせてシームレスで直感的なデータベース体験を作り出します。この包括的なガイドでは、postgres.newを効果的に使用する方法、その機能、およびデータベースのワークフローを革新する方法を探ります。
postgres.newとは何ですか?
postgres.newは、ユーザーがWebブラウザ内で直接複数のPostgresデータベースを即座に作成し管理できるインブラウザPostgreSQLサンドボックスです。その特異さは、大規模な言語モデル(LLM)、特にGPT-4oとの統合にあります。これにより、データベースの作成と操作の過程でAIの支援を受けることができます。
PGlite: postgres.newを支えるもの
postgres.newの中心には、ElectricSQLによって開発されたPGliteがあります。このコアテクノロジーにより、PostgreSQLはWebAssembly(WASM)を使用してブラウザ内で直接実行できます。PGliteは、ブラウザ内のデータ永続性のためにIndexedDBやOPFS(Origin Private File System)、Node.jsのネイティブファイルシステムなど、複数のバックエンドをサポートしています。
拡張機能のサポート
postgres.newは、特にベクトル検索機能のためのpgvectorなどのPostgreSQL拡張機能のサポートを含んでいます。これにより、ブラウザ内のデータベースの機能が拡張され、より複雑な操作やユースケースが可能になります。
オープンソースと寛容なライセンス
postgres.newとそのコンポーネントに関する作業は、オープンソースであり、寛容なライセンスが適用されていることを重要な点として挙げておきます。これにより、コミュニティの貢献や技術の適応が可能になります。
postgres.newを始めよう
Introducing https://t.co/VNOZJJrqvA, the in-browser Postgres sandbox with AI assistance.
— Carlos E. Torres (@cetorres) 2024年8月12日
🔗https://t.co/I48ub8zd7d
🎉Features:
- Unlimited Postgres databases directly in your browser
- AI assistance
- Drag-and-drop CSV import (generate table on the fly)
- Generate and export… pic.twitter.com/sccmVDcEui
ステップ1: プラットフォームにアクセスする
- Webブラウザを開き、https://postgres.newに移動します。
- SQLエディタとAIチャットウィンドウをフィーチャーしたクリーンなインターフェースが表示されます。
ステップ2: 最初のデータベースを作成する
- SQLエディタに以下を入力します:
CREATE DATABASE my_first_db;
- 「実行」ボタンを押すか、キーボードショートカット(通常はCtrl+EnterまたはCmd+Enter)を使用します。
- データベースが作成されたことを示す成功メッセージが表示されます。
ステップ3: テーブルを作成する
- テーブルを作成するには、SQLを手動で記述するか、AIアシスタントを使用することができます。AIアプローチを試してみましょう:
- AIチャットウィンドウに「顧客情報を保存するためのテーブルを作成してください。情報には名前、メール、登録日を含めてください」と入力します。
- AIがSQLを生成します。それはこのようになるかもしれません:
CREATE TABLE customers (
id SERIAL PRIMARY KEY,
name VARCHAR(100) NOT NULL,
email VARCHAR(100) UNIQUE NOT NULL,
registration_date DATE DEFAULT CURRENT_DATE
);
- このSQLをエディタにコピーして実行します。
ステップ4: CSVからデータをインポートする
- 顧客データを含むCSVファイルを用意します。
- インターフェース内の「CSVをインポート」オプションを見つけます。
- 指定の領域にCSVファイルをドラッグ&ドロップします。
- AIがCSVを分析し、テーブル構造を提案します。提案を確認して承認します。
- データが自動的に新しいテーブルにインポートされます。
ステップ5: データをクエリする
- データをクエリするために、手動SQLまたはAIアシスタントのいずれかを使用できます。
- AIに「過去1か月に登録したすべての顧客を表示してください」と尋ねてみましょう。
- AIは次のようなクエリを生成するかもしれません:
SELECT * FROM customers
WHERE registration_date >= CURRENT_DATE - INTERVAL '1 month';
- クエリを実行して結果を表示します。
ステップ6: レポートを生成する
- AIチャットでレポートをリクエストします:「毎月の顧客登録数を示すレポートを生成してください。」
- AIがクエリを作成し、おそらく可視化を提案します:
SELECT DATE_TRUNC('month', registration_date) AS month,
COUNT(*) AS registrations
FROM customers
GROUP BY month
ORDER BY month;
- クエリを実行し、結果を表示します。
- チャート生成機能を使用してデータを可視化します。
ステップ7: データベースダイアグラムを作成する

- AIにデータベースダイアグラムを作成するように頼みます:「現在のデータベーススキーマのER図を作成してください。」
- AIがダイアグラムの視覚的な表現を生成します。
- ダイアグラムを確認し、提供されたダイアグラミングツールを使用して必要に応じて調整します。
ステップ8: SQLマイグレーションを追跡する
- データベーススキーマに変更を加えると、postgres.newはそれらの変更を自動的に追跡します。
- マイグレーション履歴を表示するには、インターフェース内の「マイグレーション」または「スキーマ履歴」オプションを探します。
- 過去の変更を確認し、前の状態に戻したり、新しいマイグレーションスクリプトを作成したりできます。
postgres.newの高度な機能
postgres.newは、データベース管理と開発を向上させるためにAI支援を活用するさまざまな高度な機能を提供します。これらの機能を詳しく見てみましょう:
AI支援によるクエリ最適化(セマンティック検索とRAG)

クエリ最適化はデータベースのパフォーマンスにとって重要であり、postgres.newのAIアシスタントはこの領域で優れています。
SQLエディタに複雑なクエリを書いてみましょう。例えば:
SELECT c.customer_name, o.order_date, p.product_name, oi.quantity
FROM customers c
JOIN orders o ON c.customer_id = o.customer_id
JOIN order_items oi ON o.order_id = oi.order_id
JOIN products p ON oi.product_id = p.product_id
WHERE o.order_date BETWEEN '2023-01-01' AND '2023-12-31'
ORDER BY o.order_date DESC;
AIに尋ねてみましょう:
「このクエリをより良いパフォーマンスのために最適化できますか?」
AIがクエリを分析し、最適化の提案をするかもしれません。それは次のように答えるかもしれません。
「もちろんです!こちらが最適化されたクエリのバージョンです。」
SELECT c.customer_name, o.order_date, p.product_name, oi.quantity
FROM orders o
JOIN order_items oi ON o.order_id = oi.order_id
JOIN customers c ON c.customer_id = o.customer_id
JOIN products p ON oi.product_id = p.product_id
WHERE o.order_date >= '2023-01-01' AND o.order_date < '2024-01-01'
ORDER BY o.order_date DESC;
行った最適化:
- JOIN句の順序を変更して、日付フィルターが適用される可能性が高い'orders'テーブルから開始しました。
- BETWEENの代わりに>=および<を使用して日付範囲の条件を変更しました。これによりインデックスの利用効率が向上します。
- 結合列とorder_date列にインデックスを確保しました。
さらに、次の提案を考慮してください:
- ordersテーブルの(order_date, order_id)に対する複合インデックスを作成します。
- 特定の日付範囲を頻繁にクエリする場合は、dateでordersテーブルをパーティション分割することを検討してください。
その後、これらの提案を実施し、パフォーマンスの向上を試してください。
スキーマ設計の補助
AIは、アプリケーションの要件に基づいて効率的で正規化されたデータベーススキーマを設計する手助けをします。
アプリケーションのデータ要件をAIに説明します。例えば:
「Eコマースプラットフォームを構築しており、製品、カテゴリ、顧客、注文、レビューに関する情報を保存する必要があります。」
正規化されたデータベーススキーマを提案してもらうように頼みます。
AIは次のように応じるかもしれません:
「あなたの要件に基づいて、Eコマースプラットフォームのための正規化されたスキーマの提案は次の通りです。」
CREATE TABLE categories (
category_id SERIAL PRIMARY KEY,
category_name VARCHAR(100) NOT NULL,
parent_category_id INTEGER REFERENCES categories(category_id)
);
CREATE TABLE products (
product_id SERIAL PRIMARY KEY,
product_name VARCHAR(200) NOT NULL,
description TEXT,
price DECIMAL(10, 2) NOT NULL,
stock_quantity INTEGER NOT NULL,
category_id INTEGER REFERENCES categories(category_id)
);
CREATE TABLE customers (
customer_id SERIAL PRIMARY KEY,
first_name VARCHAR(50) NOT NULL,
last_name VARCHAR(50) NOT NULL,
email VARCHAR(100) UNIQUE NOT NULL,
password_hash VARCHAR(255) NOT NULL,
registration_date DATE DEFAULT CURRENT_DATE
);
CREATE TABLE orders (
order_id SERIAL PRIMARY KEY,
customer_id INTEGER REFERENCES customers(customer_id),
order_date TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
total_amount DECIMAL(10, 2) NOT NULL,
status VARCHAR(20) NOT NULL
);
CREATE TABLE order_items (
order_item_id SERIAL PRIMARY KEY,
order_id INTEGER REFERENCES orders(order_id),
product_id INTEGER REFERENCES products(product_id),
quantity INTEGER NOT NULL,
price_at_time DECIMAL(10, 2) NOT NULL
);
CREATE TABLE reviews (
review_id SERIAL PRIMARY KEY,
product_id INTEGER REFERENCES products(product_id),
customer_id INTEGER REFERENCES customers(customer_id),
rating INTEGER NOT NULL CHECK (rating BETWEEN 1 AND 5),
review_text TEXT,
review_date TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
このスキーマには:
- 階層カテゴリー構造用の自己参照カテゴリー テーブル
- カテゴリーにリンクされた製品
- 基本情報を持つ顧客
- 顧客にリンクされた注文
- 注文と製品をリンクする注文アイテム
- 製品と顧客にリンクされたレビュー
頻繁にクエリされる列や外部キーにインデックスを追加することを考慮してください。」
AIの提案を見直し、必要に応じて明確化や修正を求めます。たとえば、次のように尋ねることができます:
「製品画像を保存するためのテーブルを追加し、製品テーブルを修正して製品ごとに複数の画像を含めることはできますか?」
データ分析と洞察
postgres.newのAIは、データを分析して洞察を明らかにするのを助けることができます。

postgres.newにデータセットをインポートします。たとえば、販売データセットをインポートしたとします。
AIに統計分析を実行したり、興味深いパターンを特定したりするように頼んでみます。たとえば:
「私たちの販売データを分析して、トレンドを特定し、洞察を提供することはできますか?」
AIは一連のクエリと説明で応答するかもしれません:
「もちろんです!以下は、販売データに基づく分析と洞察です:
- 月次販売トレンド:
SELECT DATE_TRUNC('month', order_date) AS month,
SUM(total_amount) AS monthly_sales
FROM orders
GROUP BY month
ORDER BY month;
このクエリは、各月の総販売を示し、季節的なパターンや成長トレンドを特定できるようになります。
2. 売上トップ製品:
SELECT p.product_name,
SUM(oi.quantity) AS total_quantity_sold,
SUM(oi.quantity * oi.price_at_time) AS total_revenue
FROM order_items oi
JOIN products p ON oi.product_id = p.product_id
GROUP BY p.product_id, p.product_name
ORDER BY total_revenue DESC
LIMIT 10;
このクエリは、売上に基づいてトップ10製品を特定し、在庫やマーケティングの意思決定に役立ちます。
3. 購入頻度による顧客セグメンテーション:
SELECT
CASE
WHEN order_count >= 10 THEN '高頻度'
WHEN order_count >= 5 THEN '中頻度'
ELSE '低頻度'
END AS customer_segment,
COUNT(*) AS segment_size,
AVG(total_spent) AS avg_customer_value
FROM (
SELECT customer_id,
COUNT(*) AS order_count,
SUM(total_amount) AS total_spent
FROM orders
GROUP BY customer_id
) customer_summary
GROUP BY customer_segment
ORDER BY avg_customer_value DESC;
この分析は、注文頻度に基づいて顧客をセグメント化し、各セグメントの平均顧客価値を計算します。
4. 可視化の例:
これらのクエリに基づいて、次の可視化を生成できます:
- 月次販売トレンドを示す折れ線グラフ
- 売上トップ製品の棒グラフ
- 顧客セグメンテーションを示す円グラフ
洞察:
- あなたの販売は明らかな上昇トレンドを示し、[特定の月]にピークがあります。
- 製品Xはあなたのベストセラーで、総販売のY%を占めています。
- 高頻度の顧客は、顧客基盤のZ%に過ぎませんが、総売上のW%を占めています。
推奨事項:
- 販売ピークの前の月にマーケティング活動を重点的に実施してください。
- 売上が低迷している在庫とともに、売上トップ製品をバンドルすることを検討してください。
- より多くの顧客を高頻度セグメントに転換するために、ロイヤルティプログラムを実施してください。」
生成されたこれらのクエリ、可視化、洞察を利用して、データをより深く理解し、ビジネスの意思決定に役立ててください。
これらの高度な機能を活用することで、postgres.newは単なるデータベース管理ツールではなく、データ駆動型の意思決定とアプリケーション開発のための包括的なプラットフォームとなります。AIアシスタントは、クエリの最適化、スキーマ設計、およびデータ分析タスクを大幅に加速し、結果の解釈とビジネスやアプリケーションへの洞察の実装に集中できるようにします。
postgres.newをApidogと統合してAPI開発する方法
postgres.newはデータベース管理とクエリに優れていますが、しばしばそれは開発エコシステムの一部に過ぎません。ここでApidogが活躍し、API開発においてpostgres.newを完璧に補完します。
Apidogは、APIを簡単に設計、モック、テスト、および文書化できる強力なAPI開発プラットフォームです。postgres.newとApidogを併用することで、データベース設計からAPI実装に至るまで、シームレスなワークフローを作成できます。

次のようにしてpostgres.newをApidogと統合できます:
postgres.newでのデータベース設計:postgres.newを使用してデータベーススキーマを設計し、データをインポートし、クエリを最適化します。
ApidogでのAPI設計:postgres.newに基づいてデータベース構造に基づき、ApidogでAPIエンドポイントを設計します。
クエリのテスト:postgres.newで開発し最適化したクエリをApidogでのAPIレスポンスの基礎として使用します。
モックAPIレスポンス:postgres.newデータベースのデータを使用してApidogでリアルなモックレスポンスを作成します。
APIドキュメント:ApidogでAPIを開発する際に、postgres.newの下にあるデータ構造に関する詳細を含む包括的なドキュメントが自動生成されます。
パフォーマンステスト:Apidogを使用してAPIエンドポイントのパフォーマンスをテストし、postgres.newのクエリをさらに最適化できます。
postgres.newとApidogを組み合わせることで、データベース管理からAPI設計とテストまで、すべてをブラウザベースの共同作業の設定でカバーする強力な開発環境を作成します。
結論
postgres.newは、データベース管理テクノロジーにおいて大きな進歩を表しています。PostgreSQLの力をAIの支援と組み合わせ、すべてをブラウザで実行することで、データベース設計、データ分析、SQL学習の新しい可能性を切り開きます。無限のデータベースを作成し、データを簡単にインポートし、レポートや可視化を生成し、賢い支援を提供するこのプラットフォームは、幅広いユーザーにとって非常に貴重なツールです。
経験豊富なデータベース管理者が迅速なプロトタイピングツールを探している場合、さまざまなソースからの数値を計算する必要があるデータアナリスト、またはSQLの詳細を学んでいる学生であっても、postgres.newはデータベースを扱うためのユニークで強力なプラットフォームを提供します。Apidogのようなツールと組み合わせることで、データベース設計からAPI実装に至るまでの包括的な開発エコシステムの一部となります。
postgres.newが進化を続け、新機能を追加する中で、関係データベースを扱う方法を革命化する可能性があります。データベース管理の未来はここにあり、ウェブブラウザからアクセス可能です。今日、postgres.newを試して、次世代のデータベースツールを体験してください。強力な機能、AIの支援、ユーザーフレンドリーなインターフェースを兼ね備えたpostgres.newは、すべてのデータ専門家のツールキットの重要な部分になることが期待されます。
今すぐpostgres.newのウェブサイトを訪れて、その体験をしてください!
