接続の概要
ベータ版
Lakebase Postgres (オートスケール Beta) は、 Lakebase の次のバージョンであり、評価のみに利用できます。 本番運用ワークロードの場合は、 Lakebase Public Previewを使用します。 どのバージョンが適しているかを判断するには、バージョンの選択を参照してください。
Lakebase Postgres データベース プロジェクトに接続する方法を学習します。
クイックスタート: データベースに接続する
次の 2 つの認証方法のいずれかを使用してデータベースに接続します。
- OAuth ロール: OAuth トークンを使用して Databricks ID を使用して認証します。プロジェクトオーナーはすぐに接続できます。他の Databricks ID が OAuth 認証を使用できるようにするには、 databricks_auth拡張機能を使用して Postgres ロールを作成します。「OAuth ロールの作成」を参照してください。
- ネイティブ Postgres パスワード認証: 従来のデータベース パスワードを使用して Postgres ロールで認証します。これらのロールは、Lakebase UI または SQL を使用して作成します。
以下の例では、標準の Postgres クライアントであるpsqlを使用していますが、Lakebase SQL エディター、テーブル エディター、または pgAdmin やその他の Postgres 互換クライアントなどのサードパーティ ツールを通じてデータベースにアクセスすることもできます。その他のオプションについては、 「データのクエリ」を参照してください。
各プロジェクトには、接続できるdatabricks_postgresという名前のデフォルトのデータベースが含まれています。このデータベースは、プロジェクトの作成時に自動的に作成される、Databricks ID の Postgres ロール (たとえば、 user@databricks.com ) によって所有されます。追加の Postgres ロールを作成するには、 「Postgres ロールの管理」を参照してください。
すべてのデータベース接続には、24 時間のアイドル タイムアウトと最大 3 日間の接続寿命が適用されます。詳細:接続タイムアウト
OAuthロールで接続する
OAuth ロールを使用すると、トークンベースの認証で Databricks ID を使用して接続できます。プロジェクトオーナーの OAuth ロールは自動的に作成されます。他の Databricks ID が OAuth 認証を使用できるようにするには、 databricks_auth拡張機能を使用して Postgres ロールを作成する必要があります。「OAuth ロールの作成」を参照してください。
OAuth ロールで接続するには:
- Lakebase アプリからデータベース プロジェクトを選択し、 [接続] をクリックします。
- 接続するブランチ、コンピュート、データベースを選択し、 [ロール] ドロップダウン メニューからDatabricks ID を選択します。
- psql接続スニペットをターミナルにコピーして入力します。
- パスワードの入力を求められた場合は、 「OAuth トークンのコピー」 をクリックし、パスワードとして入力します。

ネイティブPostgresパスワードで接続する
ネイティブ Postgres パスワード認証を使用すると、従来のデータベース パスワードを使用して Postgres ロールに接続できます。
ネイティブ Postgres パスワード認証で接続するには:
- Lakebase アプリからデータベース プロジェクトを選択し、 [接続] をクリックします。
- 接続するブランチ、コンピュート、データベースを選択し、 [ロール] ドロップダウン メニューから Postgres ロールを選択します。
- psql接続スニペットをターミナルにコピーし、入力して接続します。

認証について: Lakebase は、OAuth 認証用の Databricks ID とデータベース アクセス用の Postgres ロールという 2 つの別個のシステムを使用します。詳細:認証
接続文字列を理解する
Lakebase 接続文字列には、ロール、ホスト名、データベース名が含まれます。ネイティブ Postgres パスワード認証の場合、接続文字列にはパスワードも含まれます。psqlを使用した OAuth 認証の場合、プロンプトが表示されたらパスワード (OAuth トークン) を別途入力します。
接続文字列の形式
OAuth認証:
postgresql://your-email@example.com@ep-abc-123.databricks.com/databricks_postgres?sslmode=require
             ^                      ^                         ^
       role -|                      |- hostname               |- database
ネイティブ Postgres パスワード認証:
postgresql://role_name:password@ep-abc-123.databricks.com/databricks_postgres?sslmode=require
             ^         ^        ^                         ^
       role -|         |        |- hostname               |- database
                       |
                       |- password
ホスト名には、 ep-プレフィックスを持つコンピュート エンドポイントの ID が含まれます (例: ep-abc-123 )。 これにより、データベースにサービスを提供する特定のコンピュートが識別されます。
接続文字列コンポーネント
個々のコンポーネントを使用して接続を構成できます。たとえば、これらを.envファイルに配置できます。
PGHOST=ep-abc-123.databricks.com
PGDATABASE=databricks_postgres
PGUSER=role_name
PGPASSWORD=your-password or token
PGPORT=5432
または、 DATABASE_URL変数に割り当てます。
DATABASE_URL="postgresql://role_name:password@ep-abc-123.databricks.com/databricks_postgres?sslmode=require"
接続セキュリティ
Lakebase では、すべての接続で SSL/TLS 暗号化を使用する必要があります。sslmode=require問題はこの要件を強制します。 Lakebase アプリで提供されるすべての接続文字列には、このパラメーターがデフォルトで含まれています。
ポート
Lakebase はデフォルトの Postgres ポート 5432 を使用します。
ネットワーク構成
クラシック コンピュートを Postgres に接続するには、ネットワーク セキュリティ グループで TCP ポート 5432 を 0.0.0.0/0 に開きます。
アプリやフレームワークから接続する
以下の例は、さまざまなプログラミング言語やフレームワークから Lakebase データベースに接続する方法を示しています。Lakebase アプリの [接続] ダイアログからこれらの言語の接続スニペットを取得することもできます。

- Psql
- .env
- Prisma
- .NET
- Django
- SQLAlchemy
- Symfony
- Go
psql 'postgresql://role_name:password@ep-abc-123.databricks.com/databricks_postgres?sslmode=require'
PGHOST=ep-abc-123.databricks.com
PGDATABASE=databricks_postgres
PGUSER=role_name
PGPASSWORD=password
PGPORT=5432
import { PrismaClient } from '@prisma/client';
const prisma = new PrismaClient({
  datasources: {
    db: {
      url: process.env.DATABASE_URL,
    },
  },
});
// Connection string
"Host=ep-abc-123.databricks.com;Database=databricks_postgres;Username=role_name;Password=password"
// with SSL
"Host=ep-abc-123.databricks.com;Database=databricks_postgres;Username=role_name;Password=password;SSL Mode=Require;Trust Server Certificate=true"
// Entity Framework (appsettings.json)
{
  ...
  "ConnectionStrings": {
    "DefaultConnection": "Host=ep-abc-123.databricks.com;Database=databricks_postgres;Username=role_name;Password=password;SSL Mode=Require;Trust Server Certificate=true"
  },
  ...
}
# settings.py
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql',
        'NAME': 'databricks_postgres',
        'USER': 'role_name',
        'PASSWORD': 'password',
        'HOST': 'ep-abc-123.databricks.com',
        'PORT': '5432',
        'OPTIONS': {
            'sslmode': 'require',
        },
    }
}
from sqlalchemy import create_engine
import os
# Using environment variable
database_url = os.getenv('DATABASE_URL')
engine = create_engine(database_url)
# Or construct the connection string
engine = create_engine(
    'postgresql://role_name:password@ep-abc-123.databricks.com:5432/databricks_postgres?sslmode=require'
)
# .env
DATABASE_URL="postgresql://role_name:password@ep-abc-123.databricks.com/databricks_postgres?sslmode=require&charset=utf8"
package main
import (
    "database/sql"
    "fmt"
    "log"
    "os"
    _ "github.com/lib/pq"
    "github.com/joho/godotenv"
)
func main() {
    err := godotenv.Load()
    if err != nil {
        log.Fatalf("Error loading .env file: %v", err)
    }
    connStr := os.Getenv("DATABASE_URL")
    if connStr == "" {
        panic("DATABASE_URL environment variable is not set")
    }
    db, err := sql.Open("postgres", connStr)
    if err != nil {
        panic(err)
    }
    defer db.Close()
    var version string
    if err := db.QueryRow("select version()").Scan(&version); err != nil {
        panic(err)
    }
    fmt.Printf("version=%s\n", version)
}
次のステップ
- 認証- OAuthパスワードと Postgres パスワードの仕組み (VPN 有効期限や接続タイムアウトなど) を理解する
- Postgres ロールの管理- Databricks ID の Postgres ロールを作成および管理し、事前に作成されたロールを理解します
- 権限の管理- 権限を通じてPostgresロールにデータベースアクセスを許可する方法を学びます
- データのクエリ- SQL エディタ、psql、またはその他の Postgres ツールを使用してデータベースをクエリします。