從一個OSS、MinIO或HDFS檔案匯入到資料庫。
文法
raster ST_ImportFrom(cstring chunkTableName,
cstring url,
cstring storageOption default '{}',
cstring importOption default '{}');
參數
參數名稱 | 描述 |
chunkTableName | 塊表的名稱,名稱必須符合資料庫表名的規範。 |
url | 外部檔案路徑。更多資訊,請參見Object Storage Service服務路徑。 |
storageOption | JSON字串,用於指定raster對象的儲存資訊。 |
importOption | JSON字串,用於指定匯入選項。 |
storageOption參數說明如下。
參數名稱 | 類型 | 預設值 | 說明 |
chunking | boolean | true | 是否使用分Block Storage。 |
chunkdim | string | 與未經處理資料一致 | 分塊的維度資訊。格式為:(w, h, b)。 說明 當chunking=true時,本參數才生效。 |
compression | string | lz4 | 壓縮演算法類型。取值如下:
預設值:lz4 |
quality | integer | 75 | 壓縮品質。只針對jpeg和jp2k壓縮演算法生效。 |
interleaving | string | 與未經處理資料一致 | 交錯方式。取值如下:
|
blockendian | string | 'NDR' | Block Storage位元組序。取值如下:
|
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}');