從一個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 | 壓縮算法類型。取值如下:
默認值: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}');