USER MANUALS

組み込み PostgreSQL

Denodo 組み込み MPP には、 組み込み Hive メタストア のメタデータを保存する組み込み PostgreSQL が付属しています。

組み込み PostgreSQL は Kubernetes Persistent Volume を使用してメタデータの永続性を保証します。

values.yamlpostgresql セクションでは、永続性オプションを構成します。

postgresql:
  enabled: true

  pvClaim:
    annotations:
      # Add the following annotation if you want to preserve
      # Embedded MPP metadata after cluster removal
      "helm.sh/resource-policy": keep

    storage: 5Gi
    storageClassName: ""
  • pvClaim.annotations: 組み込み PostgreSQL で使用されている永続ボリューム要求のアノテーション。

    クラスタが削除された後も Denodo 組み込み MPP メタデータを保持するには、以下のアノテーションを追加する必要があります。

    "helm.sh/resource-policy": keep

  • pvClaim.storage: 組み込み PostgreSQL で使用可能なストレージ。

    デフォルトサイズは 5Gi ですが、これはメタデータのサイズに影響を及ぼすので、シナリオおよびクエリするデータ量に合わせて構成する必要があります。

  • pvClaim.storageClassName: 「 永続ボリューム 」のセクションを参照してください。

永続ボリューム

組み込み PostgreSQL は、永続ボリュームを使用して、Postgres データを保存し、永続性を保証します。

ただし、Denodo 組み込み MPP のデプロイには、 永続ボリュームオブジェクトは存在しません 。なぜなら、このデプロイをインスタンス化したユーザーが永続ボリュームを作成する権限を持っていない可能性があるからです。このデプロイには永続ボリューム要求が含まれており、これをストレージクラスとともに使用することによって動的に永続ボリュームを要求します。したがって、少なくとも 1 つのストレージクラスをクラスタに定義する必要があります。

Denodo 組み込み MPP のストレージクラスを構成するには、以下の 2 つの選択肢があります。

  1. 実際の定義 pvClaim.storageClassName: "" を使用します。これにより、デフォルトのストレージクラスの永続ボリュームが、自動的にクラスタにプロビジョニングされます。多くのクラスタ環境には、デフォルトストレージクラスがインストールされています。または、Kubernetes 管理者がストレージクラスを作成できます。

  2. pvClaim.storageClassName: フィールドにストレージクラス名を指定します。

kubectl を使用して、ストレージクラスオブジェクトをチェックします。

# sc is an acronym for StorageClass
kubectl get sc

NAME                         PROVISIONER               AGE
standard (default)           kubernetes.io/gce-pd      1d
gold                         kubernetes.io/gce-pd      1d

デフォルトストレージクラスは (default) で示されます。

バックアップ

Denodo 組み込み MPP が利用するメタデータ (テーブル定義) を失わないように、組み込み PostgreSQL の永続ボリュームのバックアップ戦略を定義する必要があります。

その方法は、ストレージプロバイダーに応じてさまざまな方法から選択できます。

組み込み PostgreSQL データをバックアップする 1 つの方法は、それをダンプすることです。このダンプにより、SQL コマンドを含むテキストファイルが生成されます。これを組み込み PostgreSQL にフィードバックすると、データベースがダンプしたときと同じ状態で再作成されます。

組み込み PostgreSQL のダンプ
kubectl exec <PostgreSQL Pod> -- bash -c "PGPASSWORD=hive pg_dump -c -U hive -h localhost metastore" > database.sql
組み込み PostgreSQL の復元
cat database.sql | kubectl exec -i <PostgreSQL Pod> -- bash -c "PGPASSWORD=hive psql -U hive -h localhost -d metastore"

Kubernetes の CPU とメモリの管理

Kubernetes は、CPU とメモリに対する リソースの要求と制限事項 に基づいて、ノード間でポッドをスケジュールします。コンテナーポッドが requests で特定の値の CPU やメモリを要求した場合、Kubernetes は、それらのリソースを保証できるノードにのみ、そのポッドをスケジュールします。一方、limits は、コンテナーポッドが使用するリソースが決して一定値を超えないことを保証します。

postgresql:
 resources:
   limits:
     cpu: 1
     memory: 1Gi
   requests:
     cpu: 1
     memory: 1Gi

resources は、Kubernetes クラスタ管理者が選択できるように、コメントアウトされています。

Add feedback