Configure BDR AutoPartition with analytics offload

Configure BDR AutoPartition with analytics offload#

階層テーブルを実装するには、PGDテーブルで BDR AutoPartition を構成する必要があります。

これにより、次のことが可能になります。

  • テーブルの自動時間ベースのパーティショニング

  • 古いパーティションのApache Iceberg形式のオブジェクトストレージへの自動オフロード

制御できます

  • 新しいパーティションが作成される頻度

  • パーティションをオフロードするまでの経過日数analytics_offload_period

階層テーブルの仕組みの背景については、次を参照してください。 ハイブリッドマネージャーの階層化テーブル

前提条件#

AutoPartitionを構成する前に

  • 分析オフロード用にPGDノードグループを構成しました。 Configure PGD node group for analytics offload

  • PGFSストレージの場所を作成している、および/またはIcebergカタログを構成している。 Configure PGFS storage for Tiered Tables

  • ターゲットテーブルを作成し、時間ベースの列たとえば event_timestamp によってパーティション化されています。

ステップ#

  1. パーティション分割テーブルを作成しますまだ作成していない場合。

例

CREATE TABLE public.application_logs (
log_id BIGSERIAL,
event_timestamp TIMESTAMP WITH TIME ZONE NOT NULL,
application_name TEXT,
log_level VARCHAR(10),
message TEXT,
PRIMARY KEY (log_id, event_timestamp)
) PARTITION BY RANGE (event_timestamp);
  1. テーブルのAutoPartitionを構成します。

例

SELECT bdr.autopartition (
relation := public.application_logs,
partition_increment := 1 month,
partition_initial_lowerbound := 2023-01-01 00:00:00,
managed_locally := TRUE,
analytics_offload_period := 6 months
);
  • partition_increment — 新しいパーティションを作成する頻度。

  • partition_initial_lowerbound — パーティション作成の開始日。

  • analytics_offload_period — パーティションをオフロードするための年齢しきい値たとえば 6か月。

  1. AutoPartition構成を確認します。

SELECT * FROM bdr.partition_config WHERE relid = public.application_logs::regclass;

パーティショニングポリシーとanalytics_offload_period が表示されます。

  1. パーティションが作成されていることを確認します。

SELECT relname, relkind FROM pg_class WHERE relname LIKE application_logs_part_%;
  1. AutoPartitionタスクを監視します。

wqs.workid, wis.ap_wi_started_at, wis.ap_wi_finished_at,
wis.ap_wi_status, "partition", sql
FROM bdr.taskmgr_local_workitem_status wis
RIGHT JOIN bdr.taskmgr_local_work_queue_status wqs
ON wis.ap_wi_workid = wqs.workid
WHERE relname = public.application_logs AND sql NOT LIKE %bdr.autopartition_create_partition%
ORDER BY ap_wi_finished_at DESC;

注#

  • AutoPartitionは、新しいパーティションを自動的に管理し、パーティションが対象になるとオフロードをトリガーします。

  • 新しい値でbdr.autopartition()を再度実行することにより、いつでも**analytics_offload_periodを調整できます。

  • 必要に応じて、テーブルでAutoPartitionを 一時停止/再開 できます。

次のステップ#

これでAutoPartitionの構成が完了しました。

関連概念#

アーキテクチャの概要と階層テーブルの背後にある概念については、次を参照してください。 ハイブリッドマネージャーの階層化テーブル