从一个OSS、MinIO或HDFS文件导入到数据库。
语法
raster ST_ImportFrom(cstring chunkTableName,
cstring url,
cstring storageOption default '{}',
cstring importOption default '{}');
参数
参数名称 | 描述 |
chunkTableName | 块表的名称,名称必须符合数据库表名的规范。 |
url | 外部文件路径。更多信息,请参见对象存储服务路径。 |
storageOption | JSON字符串,用于指定raster对象的存储信息。 |
importOption | JSON字符串,用于指定导入选项。 |
storageOption参数说明如下。
参数名称 | 类型 | 默认值 | 说明 |
chunking | boolean | true | 是否使用分块存储。 |
chunkdim | string | 与原始数据一致 | 分块的维度信息。格式为:(w, h, b)。 说明 当chunking=true时,本参数才生效。 |
compression | string | lz4 | 压缩算法类型。取值如下:
默认值:lz4 |
quality | integer | 75 | 压缩质量。只针对jpeg和jp2k压缩算法生效。 |
interleaving | string | 与原始数据一致 | 交错方式。取值如下:
|
blockendian | string | 'NDR' | 块存储字节序。取值如下:
|
celltype | string | 与原始数据一致 | 像素类型。取值如下:
|
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}');