Functions#

リファレンスセクションは、Analytics Acceleratorで使用可能な機能のリストです。

PGAAの保存場所を作成する方法の詳細については、

PGFS functions for Pipelines を参照してください。

テーブルファンクション#

pgaa.list_analytics_tables()#

PGAAによって管理されているすべての分析テーブルのリストを返します。構成、ストレージ統計、現在のレプリケーションステータスを含みます。

概要

SELECT * FROM pgaa.list_analytics_tables();

パラメーター

なし。

戻り値

Column

Type

Description

nspoid

OID

テーブルを含む名前空間スキーマのOID。

reloid

OID

テーブルリレーションのOID。

schema_name

TEXT

Postgresスキーマの名前。

table_name

TEXT

分析テーブルの名前。

format

pgaa.table_format

保存形式`delta`、iceberg、または`parquet`。

object_storage_snapshot_size_bytes

BIGINT

オブジェクトストレージ内の最新のテーブルスナップショットのバイト単位のサイズ。

object_storage_total_size_bytes

BIGINT

オブジェクトストレージ内のこのテーブルのすべてのバージョン/ファイルのバイト単位の合計サイズ。

replication_status

pgaa.replication_status

データ移動の現在の状態 enabled、disabled、または`initial_offload` 。 PGD統合が必要です。

storage_location_name

TEXT

テーブルに関連付けられているPGFS格納場所の名前。

storage_location_path

TEXT

データが存在するストレージ場所内のパス。

catalog_name

TEXT

外部カタログの名前該当する場合。

catalog_namespace

TEXT

外部カタログ内の名前空間。

catalog_table

TEXT

外部カタログで定義されたテーブル名。

テーブルには、格納場所またはカタログを持つことができます。両方を持つことはできません。

カタログの詳細は、オブジェクトストレージへのカタログ管理オフロードまたはレプリケーションを実行する場合はレプリケーションターゲット、または Integrating with Iceberg catalogs の場合はソースカタログの場所を参照します。

pgaa.lakehouse_table_stats()#

特定の分析テーブルのストレージ統計を返します。最新のアクティブなスナップショットのサイズ、オブジェクトストレージに保存されているすべてのデータバージョン履歴データとログの合計累積サイズを含みます。

概要

SELECT * FROM pgaa.lakehouse_table_stats(table_name::regclass);

パラメーター

Parameter

Type

Description

relation

REGCLASS

調査する分析テーブルの名前またはOID。

戻り値

Column

Type

Description

latest_snapshot_size

BIGINT

テーブルの最新のアクティブなスナップショットのバイト単位のサイズ。

total_size

BIGINT

メタデータ、トランザクションログ、履歴スナップショットを含む、オブジェクトストレージのテーブルに関連付けられているすべてのファイルのバイト単位の合計サイズ。

pgaa.test_storage_location()#

定義された保存場所の接続と構成をテストし、読み取りまたは書き込み権限を確認します。

概要

SELECT pgaa.test_storage_location(location_name, test_writes:= true);

パラメーター

Parameter

Type

Description

name

TEXT

テストする保存場所の名前。

test_writes

BOOLEAN

`true`の場合、ファンクションは書き込み操作を試行して権限を確認します。 `false`の場合、読み取りのみがテストされます。

戻り値

テストが成功した場合はNULL を返します。テストが失敗した場合、説明的なエラーメッセージを返します。

pgaa.pgaa_version()#

特定のビルドバージョン、ビルド日、Gitコミットハッシュを含むEDB Postgres Analytics Acceleratorのバージョン情報を返します。

pgaa.add_catalog#

SELECT pgaa.pgaa_version();

パラメーター

なし。

戻り値

現在のインストールの一意のGit識別子、セマンティックバージョン、ビルドタイムスタンプ、および一意のGit識別子を含む文字列。

カタログファンクション#

pgaa.add_catalog()#

新しいIcebergカタログをPGAAに登録します。この機能は、カタログがシステムに登録される前に、自動接続チェックを実行して、資格情報とアクセス可能性を検証します。

概要

SELECT pgaa.add_catalog(catalog_name, catalog_type, catalog_options::json);

パラメーター

Parameter

Type

Description

catalog_name

VARCHAR

PGAA内のカタログの一意の名前。

catalog_type

pgaa.catalog_type

カタログタイプ。サポートされている値は、iceberg-rest Iceberg RESTカタログ、および`iceberg-s3tables`AWS S3テーブルです。

catalog_options

JSON

接続パラメーターと認証パラメーターを含むJSONオブジェクト。

使用するストレージに応じて、catalog_options のJSONファイルは別のオプションを指定する必要があります。

  • RESTカタログの場合

{
"url": "https://your-catalog-endpoint.com",
"warehouse_name": "your_warehouse_name",
"warehouse": "your_warehouse_id",
"token": "your_secret_auth_token"
"danger_accept_invalid_certs": "false"
}

そこで

  • url RESTカタログサービスのベースHTTP(S)エンドポイント。 - warehouse_name ウェアハウスIDに代わる人間が判読可能な代替。構成を簡単にするために一部のRESTプロバイダーでサポートされています。 - warehouse カタログサービス内の特定のウェアハウスの一意の識別子。 - danger_accept_invalid_certs true に設定されている場合、PostgresはSSL証明書の検証をスキップします。これは、内部テストまたは自己署名証明書を使用する場合にのみ使用します。機密のパブリック接続には決して使用しないでください。

Snowflake Open Catalogのような一部のIceberg RESTカタログプロバイダーは、別のパラメーターを想定する場合があります。次のOAuthオプションを指定します。

{
"oauth2.grant_type": "client_credentials",
"oauth2.client_id": "oauth-client-id",
"oauth2.client_secret": "oauth-client-secret",
"oauth2.token_uri": "https://EXAMPLE-polaristest.snowflakecomputing.com/polaris/api/catalog/v1/oauth/tokens",
"oauth2.scope": "PRINCIPAL_ROLE:read_only"
}

そこで

  • oauth2.grant_type OAuth2フローを指定します。サービス間通信の最も一般的な値はclient_credentials です。 - oauth2.client_id IDプロバイダーに登録されたアプリケーションの一意の識別子。 - oauth2.client_secret クライアントIDの認証に使用される秘密キー。 - oauth2.token_uri PGAAが資格情報を送信してアクセストークンを要求する完全なHTTP(S)エンドポイント。 - oauth2.scope オプショナル クライアントがアクセスを要求している権限またはリソースのスペース区切りリスト。

  • AWS S3テーブルの場合

{
"arn": "arn:aws:s3tables:us-east-1:1234567890:bucket/my-bucket",
"region": "us-east-1"
}

そこで

  • arn S3テーブルバケットの一意の識別子であるAmazonリソースネームARNを指定します。 - region S3テーブルバケットが存在するAWSデータセンターの物理的な場所を指定します。

戻り値

成功するとカタログの名前を返します。

pgaa.update_catalog()#

既存のIcebergカタログの構成オプションJSONオブジェクトを更新します。 pgaa.add_catalog() と同様に、このファンクションは検証チェックを実行して、変更を適用する前に新しい接続パラメーターが機能していることを確認します。

概要

SELECT * FROM pgaa.update_catalog(catalog_name, new_options::json);

パラメーター

Parameter

Type

Description

catalog_name

VARCHAR

PGAA内のカタログの一意の名前。

new_options

JSON

更新された接続パラメーターと認証パラメーターを含むJSONオブジェクト。

各カタログタイプに必要なJSONフィールドの詳細については、 pgaa.add_catalog() を参照してください。

戻り値

更新が成功すると、カタログの名前を返します。

例

OAuth2トークンをローテーションします。

SELECT * FROM pgaa.lakehouse.update_catalog(
    marketing_lakehouse,
    {
        "url": "https://iceberg.example.com",
        "oauth2.client_id": "pgaa_service_user",
        "oauth2.client_secret": "new_secure_secret_2026",
        "oauth2.token_uri": "https://auth.example.com/token"
    }::json
);

pgaa.delete_catalog()#

登録されたカタログをデータベースから削除します。偶発的なデータの損失を防ぐため、カタログで管理されているテーブルがまだ存在する場合、このファンクションではカスケードパラメーターを明示的にtrueに設定する必要があります。

概要

SELECT * FROM pgaa.delete_catalog(catalog_name, cascade := true);

パラメーター

Parameter

Type

Description

catalog_name

VARCHAR

削除するカタログの名前。

cascade

BOOLEAN

`true`の場合、PGAAは、カタログエントリを削除する前に、このカタログで管理されているすべてのローカルテーブル定義を自動的に削除します。デフォルトは`false`です。

戻り値

正常に完了すると、削除されたカタログの名前を返します。

pgaa.list_catalogs()#

システム内に登録されているすべてのカタログのリストを返します。接続構成、メタデータ同期タイムスタンプ、現在の動作ステータスを含みます。

概要

SELECT * FROM pgaa.list_catalogs();

パラメーター

なし。

戻り値

Column

Type

Description

name

TEXT

カタログの名前。

type

pgaa.catalog_type

カタログタイプ。サポートされている値は、iceberg-rest Iceberg RESTカタログ、および`iceberg-s3tables`AWS S3テーブルです。

options

JSON

このカタログに使用される接続パラメーターURL、ARNなど。

status

pgaa.catalog_status

カタログの現在のヘルス detached、attached、refresh_retry、または`refresh_failed` 。

created_at

TIMESTAMPTZ

カタログが最初に登録されたときのタイムスタンプ。

last_refreshed_at

TIMESTAMPTZ

PGAAが最後にこのカタログからメタデータを正常に同期した時間。

pgaa.import_catalog()#

ワンタイムスキャンを実行し、登録済みのIcebergカタログからPostgresにテーブル定義のインポートを実行します。このファンクションは、PGAAがリモートテーブルを照会するために必要なローカルメタデータを作成します。これは手動で1回限りのインポートであり、自動で継続的な同期は有効になりません。

概要

SELECT pgaa.import_catalog(catalog_name, namespace_filter);

パラメーター

Parameter

Type

Description

catalog_name

VARCHAR

インポートする以前に登録したカタログの名前。

namespace_filter

VARCHAR

指定した場合、この特定のIceberg名前空間内のテーブルのみがインポートされます。省略または`NULL`の場合、すべての名前空間のすべてのテーブルがインポートされます。デフォルトは`NULL`です。

戻り値

なし。

pgaa.attach_catalog()#

以前に登録したIcebergカタログの継続的なメタデータの同期を有効にします pgaa.add_catalog() を使用接続されると、PGAAはリモートカタログの変更を自動的に監視し、それに応じてローカルPostgresメタデータを更新します。ポーリングレート構成については、 カタログの同期 を参照してください。

概要

SELECT pgaa.attach_catalog(catalog_name);

パラメーター

Parameter

Type

Description

catalog_name

VARCHAR

同期を開始する登録済みカタログの名前。

戻り値

なし。

pgaa.detach_catalog()#

登録されたIcebergカタログの継続的なメタデータの同期を停止し、detached 状態に移動します。 cascade がtrue の場合、デタッチする前にカタログによって管理されているすべてのテーブルを削除します。 cascade がfalse の場合、テーブルはデータベースに残りますが、同期は停止します。

概要

SELECT * FROM pgaa.detach_catalog(catalog_name, cascade := true);

パラメーター

Parameter

Type

Description

catalog_name

VARCHAR

切り離す登録済みカタログの名前。

cascade

BOOLEAN

オプショナル。 `true`の場合、PGAAは、デタッチする前に、このカタログに関連付けられているすべてのローカルテーブル定義を自動的に削除します。デフォルトは`false`です。

戻り値

ファンクションは、デタッチされるカタログのpgaa.catalog システムテーブルから行を結果ます。

Column

Type

Description

name

TEXT

分離されたカタログの名前。

type

pgaa.catalog_type

カタログタイプ。

status

pgaa.catalog_status

新しいステータスは`detached`になります。

pgaa.test_catalog()#

登録されたIcebergカタログの接続と構成をテストします。このファンクションは、 Postgresインスタンスがリモートカタログエンドポイントと通信できることを確認し、オプションで提供された資格情報に書き込み権限があることを検証します。

概要

SELECT pgaa.test_catalog(catalog_name, test_writes:=true);

パラメーター

Parameter

Type

Description

name

TEXT

テストする登録済みカタログの名前。

text_writes

BOOLEAN

`true`の場合、ファンクションはカタログメタデータサービスへの書き込み操作を試行して、権限を確認します。 `false`の場合、読み取り権限のみがテストされます。

戻り値

テストが成功した場合はNULL を返します。テストが失敗した場合、説明的なエラーメッセージを返します。

pgaa.list_catalog_tables()#

登録されたIcebergカタログで使用可能なすべてのテーブルとビューのリストを返します。この機能を使用すると、最初にテーブルをローカルデータベースにインポートまたは接続することなく、リモートカタログのコンテンツを探索できます。

概要

SELECT * FROM pgaa.list_catalog_tables(catalog_name, namespace_filter);

パラメーター

Parameter

Type

Description

catalog_name

TEXT

探索する登録済みカタログの名前。

namespace_filter

TEXT

提供する場合、フィルターするIceberg名前空間スキーマを指定します。省略または`NULL`の場合、カタログ内のすべてのテーブルが返されます。デフォルトは`NULL`です。

戻り値

Column

Type

Description

schema_name

TEXT

リモートのIceberg名前空間/スキーマ。

table_name

TEXT

テーブルまたはビューの名前。

pgaa.drop_catalog_tables()#

特定のIcebergカタログによって管理されているすべてのローカルPostgresテーブルとビュー定義を削除します。cascade がtrue の場合、依存オブジェクトを含みます。リモートのIcebergカタログのテーブルには影響しません。

概要

SELECT * FROM pgaa.drop_catalog_tables(catalog_name, cascade := true);

パラメーター

Parameter

Type

Description

catalog_name

VARCHAR

管理テーブルが削除される登録済みカタログの名前。

cascade

BOOLEAN

`true`の場合、ファンクションはこれらのテーブルに依存するオブジェクトを自動的に削除します。デフォルトは`false`です。

戻り値

Column

Type

Description

schema_name

TEXT

テーブルが存在したローカルPostgresスキーマ。

table_name

TEXT

削除されたローカルテーブルの名前。

Sparkファンクション#

pgaa.spark_sql()#

構成済みのSpark Connectエンドポイントを介してPostgresクラスターでSpark SQLクエリーを直接実行します。これにより、Postgresで使用できないIceberg圧縮ルーチンまたはSparkファンクションを実行できます。

使用可能なプロシージャーのリストについては、 Spark procedures を参照してください。

このファンクションを実行するには、構成パラメーターpgaa.spark_connect_url を設定して、使用可能なSpark Connectサービスをポイントする必要があります。

概要

単一のカタログの場合

SELECT pgaa.spark_sql(query, catalog_name);

複数のカタログの場合

SELECT pgaa.spark_sql(query, ARRAY[catalog1, catalog2]);

パラメーター

Parameter

Type

Description

query

TEXT

実行するSpark SQLステートメント。

catalog

TEXT or TEXT[]

クエリーに使用する単一のカタログ名、またはカタログ名の配列。

戻り値

JSONオブジェクトとしてフォーマットされたSparkクエリの結果セット。

例

rewrite_data_files Sparkタスクを介してメタデータのオーバーヘッドを削減します。

SELECT pgaa.spark_sql($$
            CALL preexisting.system.rewrite_data_files(
              table => "preexisting"."ns-1"."table-1",
              strategy => sort,
              sort_order => value DESC,
              options => map(rewrite-all, true)
            )
        $$);

pgaa.execute_compaction()#

圧縮を実行して、分析Icebergテーブルのパフォーマンスとストレージ効率を向上させます。 pgaa.spark_connect_url 構成パラメーターを介してSpark Connectを構成する必要があります。

注釈

ファンクション`pgaa.execute_compaction()` は非推奨で、pgaa.launch_task() を優先します。

概要

SELECT pgaa.execute_compaction(table_name::regclass, settings::json);

パラメーター

Parameter

Type

Description

relation

REGCLASS

圧縮する分析テーブルの名前またはOID。

settings

JSON

現在サポートされていません。圧縮動作を定義するオプションのJSONオブジェクト。

注釈

パラメーター`settings` は現在サポートされていません。代わりに、 pgaa.spark_sql() を使用して、クラスターでSparkクエリを直接実行します。

戻り値

なし。

例

SELECT pgaa.execute_compaction(lakehouse.inventory_iceberg::regclass);

バックグラウンドタスクファンクション#

pgaa.launch_task()#

分析デルタまたはアイスバーグテーブルのバックグラウンドメンテナンスタスクをスケジュールします。

注釈

Delta Lakeは使用可能なすべてのタスクタイプをサポートしていますが、Icebergテーブルは現在`compaction` オペレーションのみをサポートしています。さらに、Icebergコンパクションは、 dry_run を除き、Delta Lakeで使用可能な詳細な構成キーをサポートしていません。

概要

SELECT pgaa.launch_task(
    table_name::regclass,
    task_type,
    task_options::jsonb,
    scheduled_at::timestamp
);

パラメーター

Parameter

Type

Description

table_name

REGCLASS

タスクを実行する分析テーブルの名前またはOID。

task_type

TEXT

メンテナンスオペレーション compaction、zorder、vacuum、または`purge`。

task_options

JSONB

タスクタイプに固有の構成以下を参照してください。

scheduled_at

TIMESTAMP

指定された場合、タスクはこの時間まで待機して実行されます。デフォルトは`NULL`です。

JSONB task_options の値は、各task_type によって異なります。 columns を必要とするzorder と、 storage_location とpath の両方を必要とするpurge を除き、すべてのオプションはオプショナル。

  • compaction 小さなファイルを大きなファイルにマージして、分析スキャンを高速化します。使用可能なtask_options は次のとおりです。

{
"target_size": 536870912,
"preserve_insertion_order": true,
"max_concurrent_tasks": 10,
"max_spill_size": 2147483648,
"min_commit_interval": 60,
"dry_run": false
}

そこで

  • target_size デルタのみ 出力ファイルのサイズをバイト単位で指定します。 - preserve_insertion_order デルタのみ 行の既存のソート順を維持するかどうか。 - max_concurrent_tasks デルタのみ エグゼキューターが実行できる並列タスクの数を制限します。 - max_spill_size デルタのみ プロセス中にディスクに流出できる最大データサイズをバイト単位で設定します。 - min_commit_interval デルタのみ 最小待機時間を秒単位で設定します デルタログの更新をコミットする。 - dry_run true の場合、オペレーションを計算およびログに記録しますが、圧縮は実行しません。

  • zorder デルタのみ 複数の列にわたってデータを再編成して、これらの列にフィルタを使用したクエリの「データスキップ」を向上させるクラスタリング手法。使用可能なtask_options は次のとおりです。

{
"columns": ["customer_id", "transaction_date"],
"target_size": 1073741824,
"preserve_insertion_order": false,
"max_concurrent_tasks": 4,
"max_spill_size": 2147483648,
"min_commit_interval": 30
}

そこで

  • columns 必須 Zオーダーに使用される列を表す文字列の配列。 - target_size 出力ファイルのサイズをバイト単位で指定します。 - preserve_insertion_order 行の既存のソート順を維持するかどうか。 - max_concurrent_tasks エグゼキューターが実行できる並列タスクの数を制限します。 - max_spill_size プロセス中にディスクに流出できる最大データサイズをバイト単位で設定します。 - min_commit_interval デルタログの更新をコミットするまでの最小待機時間を秒単位で設定します。

  • vacuum Deltaのみ デルタトランザクションログによって参照されなくなった古いデータファイルを削除し、オブジェクトストレージの領域を解放します。使用可能なtask_options は次のとおりです。

{
"retention_period": "168 hours",
"dry_run": false,
"enforce_retention_duration": true
}

そこで

  • retention_period 参照されていないファイルが削除の対象となる年齢を定義します。 - dry_run true の場合、削除されるファイルを計算およびログに記録しますが、削除は実行しません。 - enforce_retention_duration true の場合、タスクはシステムのグローバル最小安全制限に対してretention_period を検証します。

  • purge デルタのみ 特定のストレージパスからデータを明示的に削除します。使用可能なtask_options は次のとおりです。

{
"storage_location": "s3_main",
"path": "archive/2023/temp/"
}

そこで

  • storage_location 必須。保存場所の名前。 - path 完全に削除する必要がある保存場所内の相対ディレクトリパスまたはファイル接頭辞。

戻り値

タスクの一意のタスクID。

pgaa.background_task テーブルと提供されたタスクIDを照会することにより、タスクのステータスを確認できます。

例

  • 過去7日間より前の古いデータファイルを削除します。

SELECT pgaa.launch_task(
    sales.transactions,
    vacuum,
    {"retention_period": "7 days", "dry_run": false}::jsonb
);
  • 圧縮を実行します

SELECT pgaa.launch_task(
    telemetry.logs,
    compaction,
    {
        "target_size": 536870912,
        "max_concurrent_tasks": 2
    }::jsonb
);
  • 列region およびcustomer_id でクラスタリングすることによりデータ行を再編成します。

SELECT pgaa.launch_task(
    crm.customers,
    zorder,
    {
        "columns": ["region", "customer_id"],
        "target_size": 1073741824
    }::jsonb
);

Postgres DistributedPGD統合機能#

pgaa.convert_to_analytics()#

PGDレプリケートテーブルHTAPをPGAA アクセス方法に変換します。このファンクションは、レプリケーションを介して同期されたオブジェクトストレージアイスバーグまたはデルタ形式にある分析データを直接ポイントします。

概要

CALL pgaa.convert_to_analytics(relation_name::regclass);

パラメーター

Parameter

Type

Description

relation

REGCLASS

アナリティクスに変換するPGDレプリケートテーブルHTAPの名前またはOID。

戻り値

なし。

注釈

ヒープ分析テーブルをPGAAテーブルに変換するために、 ALTER TABLE コマンドと`SET ACCESS METHOD PGAA` を実行することもできます。詳細は、 Table options を参照してください。

pgaa.convert_to_tiered_table()#

自動パーティション化と分析オフロードを使用して、ヒープテーブルをPGD管理の階層テーブルに変換します。この機能は、パーティション化されたステージングテーブルの作成を自動化し、既存のデータを移行し、ホット層とコールド層の両方のライフサイクルポリシーを構成します。詳細は、 階層テーブルの実装 を参照してください。

概要

CALL pgaa.convert_to_tiered_table(
    relation := relation_name::regclass,
    range_partition_column := column_name,
    partition_increment := interval_string,
    analytics_offload_period := interval,
    initial_lower_bound := start_date_string,
    retention_period := interval DEFAULT NULL,
    enable_replication := boolean DEFAULT false,
    minimum_advance_partitions := integer DEFAULT 2,
    maximum_advance_partitions := integer DEFAULT 5,
    drop_after_retention_period := boolean DEFAULT true,
    purge_analytics_target := boolean DEFAULT false
);

注釈

レンジパーティションに使用される列は、主キーである必要があります。

シーケンスまたは外部キー制約を含むテーブルは、階層テーブルではサポートされていません。階層テーブルに変換する前に、シーケンスまたはコンストレインを削除する必要があります。

パラメーター

Parameter

Type

Description

relation

REGCLASS

階層テーブルに変換するヒープテーブルの名前またはOID。

range_partition_column

TEXT

レンジパーティション化に使用される列。 `DATE`または`TIMESTAMP`であり、主キーに含まれる必要があります。

partition_increment

TEXT

'1 month'など、各パーティションのサイズを定義する時間間隔。

analytics_offload_period

INTERVAL

パーティションがローカルストレージからデータレイクのコールド層に移動されるまでのしきい値は経過時間です。

initial_lower_bound

TEXT

最初のパーティションの下限の開始値。

retention_period

INTERVAL

(オプショナル)データがコールド層からパージされるまでの期間。デフォルトは`NULL`です。

enable_replication

BOOLEAN

(オプション) `true`の場合、アクティブなパーティションのオブジェクトストレージへのリアルタイムレプリケーションをHTAPテーブルとして有効にします。デフォルトは`false`です。

minimum_advance_partitions

INTEGER

(オプショナル) 維持する将来のパーティションの最小数。デフォルト2です。

maximum_advance_partitions

INTEGER

(オプショナル) 維持する将来のパーティションの最大数。デフォルト5です。

drop_after_retention_period

BOOLEAN

(オプショナル) 保持期間の有効期限が切れた後、パーティションをローカルにドロップするかどうか。デフォルトは`true`です。

purge_analytics_target

BOOLEAN

(オプション) `true`の場合、オブジェクトストアディレクトリまたはカタログエントリに既存のテーブルが削除されます。 `false`に設定されており、既存のテーブルが検出された場合、コマンドはエラーで失敗します。 PGD 6.3+でサポートされています。デフォルトは`false`です。

戻り値

なし。

例

ヒープテーブルを階層構造に変換し、データが月ごとにパーティション化され、リアルタイム分析のためにクラウドにレプリケートされ、3か月以上古いとコールドストレージに自動的にオフロードされます。

CALL pgaa.convert_to_tiered_table(
    relation                    := public.sensor_readings::regclass,
    range_partition_column      := reading_time,
    partition_increment         := 1 month,
    analytics_offload_period    := 3 months,
    initial_lower_bound         := 2026-01-01,
    retention_period            := 2 years,
    enable_replication          := true,
    minimum_advance_partitions  := 3,
    maximum_advance_partitions  := 6,
    drop_after_retention_period := true,
    purge_analytics_target      := true
);

pgaa.disable_analytics_replication()#

HTAPテーブルのオブジェクトストレージへのPGDレプリケーションを無効にします。このファンクションは、オブジェクトストレージへの連続レプリケーションストリームを停止することにより、テーブルをHTAP状態からヒープ状態に戻します。詳細は、 アナリティクスへの複製 を参照してください。

概要

CALL pgaa.disable_analytics_replication(relation_name::regclass);

パラメーター

Parameter

Type

Description

relation

REGCLASS

分析レプリケーションを無効にするHTAPテーブルの名前またはOID。

戻り値

なし。

注釈

HTAPテーブルのレプリケーションを無効にするには、 ALTER TABLE コマンドと`SET pgd.replicate_to_analytics = FALSE` を実行することもできます。詳細は、 Table options を参照してください。

pgaa.enable_analytics_replication()#

分析用のオブジェクトストレージへのヒープテーブルのPGDレプリケーションを有効にします。このファンクションは、分析エンジンへの連続レプリケーションストリームを開始することにより、標準のヒープテーブルをHTAPテーブルに移行します。詳細は、 アナリティクスへの複製 を参照してください。

概要

CALL pgaa.enable_analytics_replication(
    relation regclass,
    purge_analytics_target boolean DEFAULT false
);

パラメーター

Parameter

Type

Description

relation

REGCLASS

分析レプリケーションを有効にするヒープテーブルの名前またはOID。

purge_analytics_target

BOOLEAN

(オプション) `true`の場合、レプリケーションを開始する前に分析ターゲットの既存のデータをパージします。 PGD 6.3以降が必要です。デフォルトは`false`です。

戻り値

なし。

注釈

ヒープテーブルのレプリケーションを有効にするには、 ALTER TABLE コマンドと`SET pgd.replicate_to_analytics = TRUE` を実行することもできます。詳細は、 Table options を参照してください。

pgaa.htap_table_stats_uncached()#

PGD環境のHTAPテーブルの統計を結果ます。

概要

SELECT * FROM pgaa.htap_table_stats_uncached(
    htap_catalog text,
    htap_catalog_namespace text,
    htap_catalog_table text,
    htap_storage_location text,
    htap_storage_path text,
    htap_format text
);

パラメーター

Parameter

Type

Description

htap_catalog

TEXT

HTAPカタログの名前。

htap_catalog_namespace

TEXT

HTAPカタログ内の名前空間/スキーマ。

htap_catalog_table

TEXT

HTAPカタログ内の特定のテーブル名。

htap_storage_location

TEXT

オブジェクト保存場所のURIまたは識別子。

htap_storage_path

TEXT

データが存在するストレージ場所内の特定のパス。

htap_format

TEXT

ストレージで使用されるデータ形式。

戻り値

Column

Type

Description

latest_snapshot_size

BIGINT

最新のデータスナップショットのバイト単位のサイズ。

total_size

BIGINT

テーブルに関連付けられているすべてのデータの合計累積サイズのバイト単位。

pgaa.list_tiered_tables()#

パーティション設定、データ保持ポリシー、分析オフロード構成、ストレージサイズメトリックなど、PGD管理の階層化テーブルに関する詳細情報を返します。

概要

SELECT * FROM pgaa.list_tiered_tables();

パラメーター

なし。

戻り値

Column

Type

Description

schema_oid

OID

スキーマの内部オブジェクト識別子。

table_oid

OID

テーブルの内部オブジェクト識別子。

schema_name

TEXT

階層化テーブルを含むスキーマの名前。

table_name

TEXT

階層テーブルの名前。

partition_increment

INTERVAL

自動パーティション化のために定義された間隔。

retention

INTERVAL

データがドロップされるまで保持される期間。

analytics_offload

INTERVAL

データが分析エンジンにオフロードされるまでの期間。

replication_enabled

BOOLEAN

アナリティクスへのレプリケーションがアクティブかどうかを示します。

tiered_data_size

BIGINT

オブジェクトストレージに格納されているデータの合計サイズのバイト単位。

untiered_data_size

BIGINT

ローカルストレージに残っているデータの合計サイズのバイト単位。

pgaa.restore_from_analytics()#

オブジェクトストレージにあるPGAA分析テーブルを標準のPostgreSQLヒープアクセス方法に変換します。

概要

CALL pgaa.restore_from_analytics(relation_name::regclass);

パラメーター

Parameter

Type

Description

relation

REGCLASS

ヒープテーブルに復元するPGAA分析テーブルの名前またはOID。

戻り値

なし。

注釈

PGAA分析テーブルをヒープに変換するために、 ALTER TABLE コマンドと`SET ACCESS METHOD heap` を実行することもできます。詳細については、 Table options を参照してください。

ユーティリティファンクション#

pgaa._bench_replication()#

pgbenchのような合成ベンチマークを実行して、指定された保存場所へのデータの取り込みのパフォーマンスを測定します。初期データのロード速度と持続的なトランザクションスループットを計算します。

概要

SELECT * FROM pgaa._bench_replication(
    storage_location text,
    format text DEFAULT iceberg,
    scale integer DEFAULT 100,
    transactions integer DEFAULT 100000,
    dry_run boolean DEFAULT false
);

パラメーター

Parameter

Type

Description

storage_location

TEXT

ベンチマークデータが書き込まれるPGFS宛先保存場所の名前。

format

TEXT

ベンチマークに使用するテーブル形式。デフォルトは'iceberg'です。

scale

INTEGER

ベンチマークのスケール係数、初期データセットのサイズを決定します。デフォルト100です。

transactions

INTEGER

スループットテスト中にシミュレートするトランザクションの合計数。デフォルトは100000です。

dry_run

BOOLEAN

`true`の場合、ファンクションは実際のベンチマークを実行せずにパラメーターと接続を検証します。デフォルトは`false`です。

戻り値

Column

Type

Description

initial load speed (MB/s)

DOUBLE PRECISION

初期データセットがストレージに書き込まれた速度。

throughput (TPS)

DOUBLE PRECISION

ベンチマーク中に達成された1秒ごとのトランザクションの持続数。