カラム型エンジンのトラブルシューティング

このページでは、AlloyDB for PostgreSQL カラム型エンジンに関する一般的な問題と質問に対する推奨される修正と情報を提供します。

参照列をカラム型エンジンに追加したが、SELECT クエリで使用されていない

説明: カラム型エンジンを使用するには、クエリ フラグメントで参照されるすべての列(結合やスキャンなど)がカラム型ストアに存在している必要があります。参照される列がカラム型エンジンにない場合、クエリ フラグメントはデフォルトで行ベースのストアになります。

このコンテキストのクエリ フラグメントは、複数のスキャンノードを持つことができるクエリです。たとえば、クエリ フラグメントに結合用の 2 つのスキャンノードを含めることができます。1 つのスキャンノードが非列形式を使用し、別のスキャンノードが列形式を使用する場合があります。スキャンノードのすべての列(フィルタ列と射影列)は、列形式で入力する必要があります。同様に、クエリには、列形式のパーティションと非列形式のパーティションを含めることができます。

推奨される修正: 参照されているすべての列が列エンジンにあることを確認する手順は次のとおりです。

  1. サポートされているデータ型を確認します。

    AlloyDB が、カラム型エンジンで使用する予定の列のすべてのデータ型をサポートしていることを確認します。詳細については、サポートされているデータ型をご覧ください。AlloyDB が重要なデータ型をサポートしていない場合は、Google Cloud サポートにお問い合わせください。

  2. サポートされている演算子を確認します。

    AlloyDB がカラム型エンジンのデータ型の演算子をサポートしていることを確認します。サポートされている演算子の詳細については、カラム型エンジンのメリットを享受できるクエリタイプをご覧ください。

  3. EXPLAIN COLUMNAR_ENGINE コマンドを実行します。

    特定のクエリで列形式エンジンを使用できない問題を特定して解決するには、次の EXPLAIN COLUMNAR_ENGINE コマンドを実行します。

    EXPLAIN (COLUMNAR_ENGINE, ANALYZE) SELECT column1, column2 FROM my_table WHERE column3 > 100;
    

カラム型エンジンでテーブルを追加または削除できない

説明: カラム型エンジンでテーブルを追加または削除します。

推奨される解決策: ユーザー権限を確認します。カラム型エンジンでテーブルを追加または削除できるのは、テーブルに対する読み取り権限がある場合のみです。

カラム型データのサイズが割り当てられたメモリを超えている

説明: カラム型データのサイズがカラム型エンジンに割り当てられたメモリを超えると、パフォーマンスやデータ処理の問題が発生します。

推奨される修正: 最適なパフォーマンスを実現するには、AlloyDB の推奨機能を使用して、列エンジンにデータを入力する最適なテーブルと列を特定します。

推奨されるテーブルと列がカラム型エンジンの物理メモリを超えると、超過分のカラム型データは超高速キャッシュ レイヤの一部を使用します。テーブル内の残りのデータ(カラム型エンジンにないデータ)に対するクエリは、行ストアを透過的に使用します。

カラム型エンジンのメモリとストレージ キャッシュの割り当てを調整することもできます。カラム型エンジンは、メモリとストレージ キャッシュのデフォルト サイズでプロビジョニングされます。メモリとストレージのキャッシュは手動で構成できます。カラム型エンジンに割り当てられるメモリまたはストレージ キャッシュの量を変更するには、カラム型エンジンのメモリを構成するをご覧ください。