すべてのプロダクト
Search
ドキュメントセンター

PolarDB:ST_BuildPyramid

最終更新日:Mar 28, 2026

ラスターオブジェクトのピラミッドを構築し、マルチ解像度レンダリングおよびズームレベルクエリを高速化します。

構文

raster ST_BuildPyramid(raster source,
                       integer pyramidLevel default -1,
                       ResampleAlgorithm algorithm default 'Near',
                       cstring chunkTableName default '',
                       cstring storageOption default '{}',
                       cstring buildOption default '{}');

パラメーター

パラメーター説明
sourceピラミッドを構築するラスターオブジェクト。
pyramidLevel作成するピラミッドレベル数。-1 を指定すると、イメージサイズに基づいて最大レベル数が自動的に設定されます。デフォルト値:-1
algorithmリサンプリングアルゴリズム。有効な値:NearAverageBilinearCubic。デフォルト値:Near
chunkTableNameピラミッドデータを格納するチャンクテーブルの名前。ラスターオブジェクトが Object Storage Service (OSS) バケットに格納されている場合にのみ有効です。
storageOptionピラミッドのチャンクストレージ設定を指定する JSON 文字列。ラスターオブジェクトが OSS バケットに格納されている場合にのみ有効です。詳細については、「ストレージオプション」をご参照ください。
buildOptionピラミッド構築設定を指定する JSON 文字列。parallel パラメーターをサポートしており、並列処理の次数を制御できます。詳細については、「ビルドオプション」をご参照ください。

ストレージオプション

storageOption パラメーターは、以下のフィールドを持つ JSON オブジェクトを受け入れます。

フィールド説明
chunkdim文字列(w, h, b) 形式でのチャンクディメンション。デフォルトでは元のイメージデータのチャンクサイズが使用されます。
interleaving文字列バンドインターリーブ方式。有効な値:bip(ピクセル単位バンドインターリーブ、BIP)、bil(ライン単位バンドインターリーブ、BIL)、bsq(バンドシーケンシャル、BSQ)、auto(自動選択)。デフォルト値:bsq
compression文字列圧縮フォーマット。有効な値:nonejpegzlibpnglzoLZ4zstdsnappyjp2k。デフォルト値:LZ4
quality整数圧縮品質。JPEG および JPEG 2000(jp2k)圧縮の場合にのみ適用されます。有効な値:1~99。デフォルト値:75。

ビルドオプション

buildOption パラメーターは、以下のフィールドを持つ JSON オブジェクトを受け入れます。

フィールド説明
parallel整数ピラミッド構築時の並列処理の次数。有効な値:1~64。指定しない場合は、GUC パラメーター ganos.parallel.degree の値が使用されます。
重要

並列ピラミッド構築はトランザクションをサポートしていません。ビルドが失敗した場合やロールバックが必要な場合は、ST_deletePyramid を呼び出して、不完全なピラミッドを削除してください。

説明

この関数は GPU アクセラレーションによる計算をサポートしています。利用可能な GPU が存在する環境では、Ganos がデフォルトでこの関数の GPU アクセラレーションを有効にします。

デフォルト設定でピラミッドを構築します:

UPDATE raster_table SET raster_obj = ST_BuildPyramid(raster_obj) WHERE id = 1;

ピラミッドデータを指定されたチャンクテーブルに格納してピラミッドを構築します:

UPDATE raster_table SET raster_obj = ST_BuildPyramid(raster_obj, 'chunk_table') WHERE id = 2;

JPEG 2000 圧縮、256×256 の固定チャンクサイズ(各チャンクあたり 4 バンド)、および自動バンドインターリーブ方式でピラミッドを構築します:

UPDATE raster_table SET raster_obj = ST_BuildPyramid(
    raster_obj,
    -1,
    'Near',
    'chunk_table',
    '{"compression":"jp2k", "quality": 75, "chunkdim":"(256,256,4)", "interleaving":"auto"}'
) WHERE id = 3;

上記と同じピラミッドを 4 スレッドの並列処理で構築します:

UPDATE raster_table SET raster_obj = ST_BuildPyramid(
    raster_obj,
    -1,
    'Near',
    'chunk_table',
    '{"compression":"jp2k", "quality": 75, "chunkdim":"(256,256,4)", "interleaving":"auto"}',
    '{"parallel":4}'
) WHERE id = 3;