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

PolarDB:ST_ImportOSGB

最終更新日:Nov 10, 2025

このトピックでは、ST_ImportOSGB 関数について説明します。この関数は、OSGB 形式のオブジェクトストレージベースの斜め写真プロジェクトをデータベースにインポートします。

構文

boolean ST_ImportOSGB(cstring table_name, cstring url, cstring options default '{}');

パラメーター

パラメーター

説明

table_name

osg テーブルの名前と、そのタイルテーブルのプレフィックス。

url

Object Storage Service (OSS) バケット内のファイルのパス。

説明

データアクセスを確保するには、クラスターと OSS が同じリージョンにあり、アクセスに内部エンドポイントを使用していることを確認してください。詳細については、「オブジェクトストレージサービスのパス」をご参照ください。

options

インポートのフィールド。

  • schema: インポート先テーブルのスキーマ名。データ型: 文字列。デフォルト値: public。

  • parallel: 並列処理の次数。並列処理を増やすとデータのインポートが高速化されますが、大量のメモリを消費する可能性があります。実際のデータまたはデータベースの実行状況に基づいて適切な値を指定できます。このフィールドは 16 未満の値に設定することをお勧めします。値が 1 未満の場合、値は無視されます。データ型: 整数。デフォルト値: 1。

  • batch_size: 一度に実行される SQL 文のサイズ。データ型: 整数。有効な値: 1 ~ 2147483647。デフォルト値: 10000。

  • project: プロジェクト名。このフィールドの値は、各レコードの project_name フィールドに渡されます。データ型: 文字列。

  • srid: データの空間参照識別子 (SRID)。データ型: 整数。

  • gateway: ゲートウェイモードでデータをインポートするかどうかを指定します。ゲートウェイモードを使用する場合、データは参照としてデータベースに格納されます。データが呼び出されると、データは参照アドレスからリアルタイムで取得されます。これにより、データベースのストレージ使用量が大幅に削減されますが、データ呼び出しが遅くなる可能性があります。データ型: ブール値。デフォルト値: false。

  • tileset_prefix: 生成される 3D Tiles アドレスのプレフィックス。このプレフィックスを指定すると、リバースプロキシを便利な方法でカスタマイズできます。データ型: 文字列。

説明

この関数は、オブジェクトストレージベースの OSGB ファイルをデータベースにインポートします。

インポートの制限:

  • OSGB ファイルのみがサポートされています。

  • metadata.xml という名前のファイルが指定されたディレクトリに存在する必要があります。ファイルはルートディレクトリまたはサブディレクトリに配置できます。

  • 完全な OSGB ファイルをインポートする必要があります。そうしないと、データが失われます。

  • クライアントを使用してデータベースに接続し、大量の OSGB ファイルをインポートする場合は、タイムアウトエラーによるインポートの失敗を回避するために、クライアントのタイムアウト期間を調整してください。

インポートが成功すると、データベースに 2 つのテーブルが生成されます。

プライマリテーブル

テーブル名形式: [table_name]

説明: このテーブルには、斜め写真プロジェクトのメタデータが格納されます。

テーブルスキーマ:

フィールド

データ型

説明

project_id

uuid

プロジェクトの ID。自動的に生成されます。

project_name

text

プロジェクトの名前。

project_name フィールドの値を指定しない場合、列は空になります。

ほとんどの場合、プロジェクトは複数のサブプロジェクトのテーブルを格納するために使用されます。

srid

integer

プロジェクトの SRID。

デフォルトでは、metadata.xml ファイルの ModelMetadata/SRS フィールドから値が取得されます。options パラメーターの srid フィールドを指定した場合、指定された値が優先的に使用されます。

ref_point

geometry

プロジェクトが固定されている 3D ポイント。

デフォルトでは、metadata.xml ファイルの ModelMetadata/SSRSOrigin フィールドから値が取得されます。値は Point3DZ 型です。

extent

geometry

プロジェクトのおおよその範囲。値は PolygonZ 型です。

aux

text

メタデータ。値は metadata.xml ファイルの内容です。

tiletable

varchar(64)

タイルテーブルの名前。

タイルテーブル

テーブル名形式: [table_name]_tile

説明: このテーブルには、プロジェクトのすべてのタイルデータが格納されます。

テーブルスキーマ:

フィールド

データ型

説明

project_id

uuid

プロジェクトの ID。プライマリテーブルのプロジェクト ID と同じです。

project_name

text

プロジェクトの名前。プライマリテーブルのプロジェクト名と同じです。

uid

uuid

タイルの ID。自動的に生成されます。

lod

integer

タイルの詳細レベル (LOD)。Tile_L14_0.osgb などのファイル名に基づいて値を決定できます。ファイル名に基づいて LOD を決定できない場合は、値 0 が使用されます。

precision

float8

推定タイル精度。3D Tiles のエクスポートに使用されます。

parent

uuid

タイルの親タイルの ID。

ルートノードが使用されている場合、値は空になります。

children

uuid[]

タイルのすべてのサブタイルの ID。

サブタイルが存在しない場合、値は空になります。

aux

jsonb

タイルのメタデータ。

値は、タイルの相対ルートディレクトリのファイル名です。file_name ノードから値を取得できます。

tile

scene

タイルのエンティティ。

重要

並列処理の次数が 1 でない場合、テーブルの自動作成はサポートされていません。事前に次の文を実行して、手動でテーブルを作成する必要があります。

# この例では、デフォルトスキーマに test_osgb という名前のテーブルを作成します。
# プライマリテーブルを作成します。
CREATE TABLE IF NOT EXISTS test_osgb(
    project_id uuid primary key,
    project_name text, 
    srid integer,
    ref_point geometry, 
    extent geometry,
    aux text, 
    tiletable varchar(64) NOT null
);

# タイルテーブルを作成します。
CREATE TABLE IF NOT EXISTS test_osgb_tile(
    project_id uuid NOT NULL,
        project_name text, 
        uid uuid NOT NULL,
        lod integer, 
     		precision float8,
        parent uuid, 
     		children uuid[],
        aux jsonb, 
     		tile scene NOT NULL,
        PRIMARY KEY(project_id, uid)
);

-- 標準インポート
SELECT ST_ImportOSGB('test_osgb', 'OSS://<ak>:<ak_secret>@oss-cn-beijing-internal.aliyuncs.com/mybucket/path_to_oblique_project/');

---------
t

-- 並列インポート
SELECT ST_ImportOSGB('test_osgb', 'OSS://<ak>:<ak_secret>@oss-cn-beijing-internal.aliyuncs.com/mybucket/path_to_oblique_project/', '{"parallel": 4}');

---------
t