Table options#
PGAAテーブルオプション#
CREATE TABLE 、ALTER TABLE ステートメントは、
USING PGAA WITH ... 句と次のオプションを使用して実行できます。
Option |
Type |
Description |
|---|---|---|
pgaa.storage_location |
text |
PGFSストレージ場所の名前。 |
pgaa.path |
text |
保存場所内のパス。 |
pgaa.format |
enum |
テーブル形式。有効な値は`delta`、iceberg、および`parquet`です。機能によってはサポートされていない場合があります。 |
pgaa.managed_by |
text |
カタログ管理テーブルのカタログ名。 |
pgaa.catalog_namespace |
text |
カタログ内の名前空間/スキーマ。 |
pgaa.catalog_table |
text |
カタログ内のテーブル名。 |
pgaa.auto_truncate |
boolean |
アクセス方法がPGAAに切り替わると、ヒープデータが切り捨てられます。 PGD統合が必要です。詳細については、 アナリティクスへのオフロード を参照してください。 |
pgaa.purge_data_if_exists |
boolean |
`CREATE TABLE AS`の実行時に既存の分析データをパージします。 |
pgaa.tiered_table |
boolean |
階層テーブルとしてマークします。 PGD統合が必要です。詳細については、 階層テーブルの実装 を参照してください。 |
例#
カタログ管理テーブルの作成
CREATE TABLE managed_sales_data (
id BIGINT,
sale_date TIMESTAMP,
amount NUMERIC
)
USING PGAA
WITH (
pgaa.format = iceberg,
pgaa.managed_by = my_iceberg_catalog,
pgaa.catalog_namespace = public,
pgaa.catalog_table = managed_sales_data
);
注釈
列定義を空の`()` のままにすると、PGAAは、最初にテーブルを照会したときにメタデータファイルからスキーマを自動的に検出し、リモートのIceberg/DeltaメタデータまたはParquetヘッダーで見つかったフィールドに名前で列をマップします。
前の例からテーブルを変更して、PGFSストレージ場所をポイントします。
ALTER TABLE managed_sales_data
SET ACCESS METHOD PGAA,
SET (
pgaa.format = iceberg,
pgaa.storage_location = my_lake_data,
pgaa.path = warehouse_data
);
PGDテーブルオプション#
ヒープまたはHTAPテーブルに対してCREATE TABLE 、ALTER TABLE
ステートメントを実行し、次のPGDオプションを指定できます。
Option |
Type |
Description |
|---|---|---|
pgd.replicate_to_analytics |
boolean |
オブジェクトストレージへの継続的レプリケーションを有効または無効にします。詳細については、 アナリティクスへの複製 を参照してください。 |
pgd.purge_analytics_target |
boolean |
既存のテーブルをオブジェクトストアディレクトリまたはカタログエントリから削除します。詳細については、 階層テーブルの実装 を参照してください。 |
例#
既存のテーブルを変更して、オブジェクトストレージへの継続的レプリケーションを有効にします。
ALTER TABLE my_table SET (pgd.replicate_to_analytics = TRUE);
アクセス方法の管理#
テーブルのアクセス方法を変更することにより、トランザクションストレージと分析ストレージ間でテーブルを移行します。これは、ローカルのPostgresディスクとオブジェクトストレージ間でデータを手動で移動する直接方法を提供します。詳細は、 アナリティクスへのオフロード を参照してください。
HTAPからPGAAへの切り替え
HTAPテーブルをオブジェクトストレージにオフロードし、ローカルディスク領域を再利用するには、アクセス方法をPGAAに変更します。ローカルデータは削除され、データはデータレイクにのみ残ります。これは、自動化されたライフサイクルオフロードの手動代替です。
ALTER TABLE sales SET ACCESS METHOD PGAA;
SET (
pgaa.auto_truncate = true,
pgaa.format = iceberg,
pgaa.storage_location = my_lake_data,
pgaa.path = analytical_data
);
PGAAからヒープへの切り替え
分析テーブルをローカルトランザクションテーブルに復元するには、アクセス方法をPGAAからヒープに変更します。 Postgresはオブジェクトストレージからデータをプルし、ローカルストレージページに再構成します。これは、以前にオフロードされたデータに高頻度の更新を実行する必要がある場合に使用します。
ALTER TABLE sales_history SET ACCESS METHOD HEAP;