メインコンテンツまでスキップ

Postgres の互換性

備考

プレビュー

この機能は、us-east-1us-west-2eu-west-1ap-southeast-1ap-southeast-2eu-central-1us-east-2ap-south-1のリージョンでパブリック プレビューとして提供されています。

このページでは、Lakebase データベースインスタンスが Postgres とどのように互換性があるかについて説明します。マネージド Postgres サービスとして、いくつかの違いと機能上の制限があります。

important

Databricks データベース インスタンスでは、Postgres 16 のみがサポートされます。

クエリの最適化

pg_stat_statements 拡張機能は、クエリのパフォーマンスに関する詳細情報を提供し、遅いクエリを特定して最適化するのに役立ちます。

ユーザーは、クエリのクエリ テキストと、権限を継承するロールを確認できます。ロールに対する ADMIN 特権があり、そのロールのクエリテキストが表示されない場合は、そのロールのメンバーシップを自分に付与します。ロールに対する権限がない場合、セキュリティ上の理由から、そのクエリテキストは表示されません。

Postgres パラメーター設定

マネージドPostgresサービスとして、データベースパラメータはインスタンスサイズに基づいて設定されます。 以下を使用してすべてのパラメーター設定を表示します。

SQL
SHOW ALL;

セッション、データベース、またはロールレベルで user コンテキストを持つパラメーターを構成できます。 インスタンスレベルでパラメーターを設定することはできません。

  • セッション、データベース、またはロールレベルで設定できるパラメーターを表示します。

    SQL
    SELECT name
    FROM pg_settings
    WHERE context = 'user';
  • セッションのパラメーターを設定します。

    SQL
    SET maintenance_work_mem='1 GB';
  • データベースに接続されているすべてのセッションのパラメーターを設定する

    SQL
    ALTER DATABASE databricks_postgres SET maintenance_work_mem='1 GB';
  • 特定のユーザーからのすべてのセッションにパラメーターを設定します。

    SQL
    ALTER USER "john@company.com" SET maintenance_work_mem='1 GB';

サポートされているエンコードと照合順序

デフォルトでは、C.UTF-8照合順序が使用されます。C.UTF-8 は、UTF-8 でエンコードされた文字の全範囲をサポートします。

UTF8 エンコーディング (Unicode、8 ビット可変幅エンコーディング) がサポートされています。

データベースのエンコードと照合順序を表示するには、次のクエリを実行します。

SQL
SELECT
pg_database.datname AS database_name,
pg_encoding_to_char(pg_database.encoding) AS encoding,
pg_database.datcollate AS collation,
pg_database.datctype AS ctype
FROM
pg_database
WHERE
pg_database.datname = 'your_database_name';
注記

Postgresでは、データベースの作成後にデータベースのエンコーディングや照合順序を変更することはできません。

機能の制限

役割と権限

  • ホストオペレーティングシステムにアクセスできません。
  • Postgres superuserを使用して接続することはできません。
    • superuser権限またはローカルファイルシステムの直接アクセスを必要とする機能は許可されません。
    • databricks_superuserは、Postgres superuserの役割に取って代わります。情報 このロールに関連付けられている特権については、「 データベース ロールの種類とアクセス許可」を参照してください。

複製

レプリケーションスロット、サブスクリプション、またはパブリケーションの作成はサポートされていません。

イベントトリガー

Postgres イベントトリガー はサポートされていません。

クライアント クエリのキャンセル

Postgres キャンセルプロトコル を使用して、進行中のクエリをキャンセルすることはできません。

代わりに、新しい接続を作成し、 pg_cancel_backend(pid) を実行します。

SQL
SELECT pg_cancel_backend(pid)
FROM pg_stat_activity
WHERE pid <> pg_backend_pid() AND
query = '{The query you want to cancel}';

サポートされている拡張機能

拡張機能

バージョン

address_standardizer

3.3.3

address_standardizer_data_us

3.3.3

autoinc

1

bloom

1

btree_gin

1.3

btree_gist

1.7

citext

1.6

cube

1.5

dict_int

1

earthdistance

1.2

fuzzystrmatch

1.2

HLLの

2.18

hstore

1.8

insert_username

1

intagg

1.1

intarray

1.5

isn

1.2

lo

1.1

lツリー

1.2

moddatetime

1

pg_graphql

1.5.9

pg_jsonschema

0.3.3

pg_prewarm

1.2

pg_stat_statements

1.10

pg_trgm

1.6

pgcrypto

1.3

pgrowlocks

1.2

plpgsql

1

postgis

3.3.3

postgis_raster

3.3.3

postgis_sfcgal

3.3.3

postgis_tiger_geocoder

3.3.3

postgis_topology

3.3.3

refint

1

seg

1.4

tablefunc

1

tcn

1

tsm_system_rows

1

tsm_system_time

1

unaccent

1.1

uuid-ossp

1.1

vector

0.8.0

xml2

1.1