ST_ImportFrom

从一个OSS、MinIO或HDFS文件导入到数据库。

语法

raster ST_ImportFrom(cstring chunkTableName, 
                     cstring url, 
                     cstring storageOption default '{}',
                     cstring importOption default '{}');

参数

参数名称

描述

chunkTableName

块表的名称,名称必须符合数据库表名的规范。

u​rl

外部文件路径。更多信息,请参见对象存储服务路径

storageOption

JSON字符串,用于指定raster对象的存储信息。

importOption

JSON字符串,用于指定导入选项。

storageOption参数说明如下。

参数名称

类型

默认值

说明

chunking

boolean

true

是否使用分块存储。

chunkdim

string

与原始数据一致

分块的维度信息。格式为:(w, h, b)。

说明

chunking=true时,本参数才生效。

compression

string

lz4

压缩算法类型。取值如下:

  • none

  • jpeg

  • zlib

  • png

  • lzo

  • lz4

  • snappy

  • zstd

  • jp2k

默认值:lz4

quality

integer

75

压缩质量。只针对jpeg和jp2k压缩算法生效。

interleaving

string

与原始数据一致

交错方式。取值如下:

  • bip : Band interleaved by pixel

  • bil : Band interleaved by line

  • bsq : Band Sequential

blockendian

string

'NDR'

块存储字节序。取值如下:

  • NDR:little endian

  • XDR:big endian

celltype

string

与原始数据一致

像素类型。取值如下:

  • 1bb :1 bit

  • 2bui:2bit unsigned integer

  • 4bui : 4bit unsigned integer

  • 8bsi : 8bit signed integer

  • 8bui : 8bit unsigned integer

  • 16bsi : 16bit signed integer

  • 16bui : 16bit unsigned integer

  • 32bsi : 32bit signed integer

  • 32bui : 32bit unsigned integer

  • 32bf : 32bit float

  • 64bsi : 64bit signed integer

  • 64bui : 64bit unsigned integer

  • 64bf : 64bit float

importOption参数说明如下。

参数名称

类型

默认值

说明

mapping_oss_file

boolean

false

是否将OSS上文件映射为内存文件。

说明

栅格数据读取时部分驱动未对OSS存储的数据进行优化,会产生大量小数据量请求导致性能较低。此参数可以将OSS完整映射为内存对象从而提升性能。文件总大小由GUC参数ganos.raster.memory_oss_file_max_size设置。

parallel

integer

使用GUC参数ganos.parallel.degree的值。

设置操作并行度。取值范围为1~64。

compute_stats

boolean

false

导入时是否自动计算波段统计信息。

approx

boolean

false

是否使用采样方式计算。

说明

当设置为true时,采用采样方式计算统计值,结果可能会不精确。

factor

integer

4

采样因子,表示如果采样时,n个象元作为一个采样单元,仅在approx设置为true时有效。

exclusive_nodata

boolean

true

是否排除nodata。

描述

函数将创建一个raster对象,并将外部、MinIO或HDFS文件导入到该对象中。

支持的数据类型请通过ST_RasterDrivers函数获取。

示例

-- 基于OSS存储,指定accessID,accessKEY,endpoint
Select ST_ImportFrom('chunk_table','OSS://<ak>:<ak_secret>@oss-cn-beijing-internal.aliyuncs.com/mybucket/data/image.tif');

-- 指定schema
Select ST_ImportFrom('schema.chunk_table','OSS://<ak>:<ak_secret>@oss-cn-beijing-internal.aliyuncs.com/mybucket/data/image.tif');

-- 基于Minio,指定host和port
Select ST_ImportFrom('chunk_table', 'MIO://<ak>:<ak_secret>@10.0.0.1:443/mybucket/data/image.tif');

-- 基于HDFS,指定user_name
Select ST_ImportFrom('chunk_table', 'HDFS://<user_name>@10.0.0.1:8020/path/image.tif');

-- 指定具有Subset的NetCDF对应的影像
Select ST_ImportFrom('chunk_table','OSS://<ak>:<ak_secret>@oss-cn-beijing-internal.aliyuncs.com/mybucket/data/image.nc:hcc');

-- 指定具有Subset的HDF5对应的影像
Select ST_ImportFrom('chunk_table','OSS://<ak>:<ak_secret>@oss-cn-beijing-internal.aliyuncs.com/mybucket/data/image.hdf5://ds/hcc');

-- 导入时指定分块大小与压缩类型
Select ST_ImportFrom('chunk_table','OSS://<ak>:<ak_secret>@oss-cn-beijing-internal.aliyuncs.com/mybucket/data/image.tif', '{"chunkdim":"(128,128,3)", "compression":"none"}');

-- 导入时指定并行度
Select ST_ImportFrom('chunk_table','OSS://<ak>:<ak_secret>@oss-cn-beijing-internal.aliyuncs.com/mybucket/data/image.nc:hcc', '{}', '{"parallel": 4}');

--oss文件映射为内存对象
Select ST_ImportFrom('chunk_table','OSS://<ak>:<ak_secret>@oss-cn-beijing-internal.aliyuncs.com/mybucket/data/image.nc:hcc', '{}', '{"parallel": 4, "mapping_oss_file":true}');

--入库自动计算统计信息
Select ST_ImportFrom('chunk_table','OSS://<ak>:<ak_secret>@oss-cn-beijing-internal.aliyuncs.com/mybucket/data/image.tif','','{"compute_stats":true}');