Cria um objeto raster no Ganos e importa dados de um objeto do Object Storage Service (OSS), de um objeto do Multi-Cloud Object Storage (MinIO) ou de um arquivo do Hadoop Distributed File System (HDFS) para ele.
Para verificar quais formatos de dados são suportados, chame ST_RasterDrivers.
Sintaxe
raster ST_ImportFrom(cstring chunkTableName,
cstring url,
cstring storageOption default '{}',
cstring importOption default '{}');Parâmetros
| Parâmetro | Descrição |
|---|---|
chunkTableName | O nome da tabela de chunks. Deve estar em conformidade com as convenções de nomenclatura de tabelas do Ganos. |
url | A URL do objeto OSS, do objeto MinIO ou do arquivo HDFS. Para o formato de URL de cada tipo de armazenamento, consulte Caminhos de armazenamento de objetos. |
storageOption | Uma string JSON que controla como o objeto raster é armazenado. O padrão é {}. |
importOption | Uma string JSON que controla o processo de importação. O padrão é {}. |
Campos de storageOption
| Campo | Tipo | Padrão | Descrição |
|---|---|---|---|
chunking | Boolean | true | Especifica se os dados raster serão armazenados como chunks. |
chunkdim | string | Igual à origem | As dimensões dos chunks no formato (w, h, b). Entra em vigor somente quando chunking é true. |
compression | string | lz4 | O formato de compressão. Valores válidos: none, jpeg, zlib, png, lzo, lz4, snappy, zstd, jp2k. |
quality | integer | 75 | A qualidade de imagem do objeto raster após a compressão. Entra em vigor somente quando compression é jpeg ou jp2k. |
interleaving | string | Igual à origem | O método de intercalação de bandas. Valores válidos: bip (Band Interleaved by Pixel), bil (Band Interleaved by Line), bsq (Band Sequential). |
blockendian | string | NDR | A ordem de bytes para chunks de dados. Valores válidos: NDR (little endian), XDR (big endian). |
celltype | string | Igual à origem | O tipo de pixel do objeto raster. Valores válidos: 1bb, 2bui, 4bui, 8bsi, 8bui, 16bsi, 16bui, 32bsi, 32bui, 32bf, 64bsi, 64bui, 64bf. |
Campos de importOption
| Campo | Tipo | Padrão | Descrição |
|---|---|---|---|
mapping_oss_file | Boolean | false | Especifica se o objeto OSS será mapeado para um arquivo em memória no Ganos. Ative esta opção quando o driver gerar muitas requisições de leitura pequenas contra o OSS, o que degrada o desempenho. O tamanho máximo do arquivo para mapeamento em memória é controlado pelo parâmetro ganos.raster.memory_oss_file_max_size Grand Unified Configuration (GUC). |
parallel | integer | Igual ao parâmetro GUC ganos.parallel.degree | O grau de paralelismo durante a importação. Valores válidos: 1–64. |
compute_stats | Boolean | false | Define se as estatísticas de banda serão calculadas automaticamente durante a importação. |
approx | Boolean | false | Especifica se a amostragem será utilizada ao calcular as estatísticas de banda. Se true, os resultados podem ser menos precisos. |
factor | integer | 4 | O fator de amostragem. Cada unidade de amostragem cobre n pixels. Entra em vigor somente quando approx é true. |
exclusive_nodata | Boolean | true | Indica se os valores nodata serão excluídos. |
Exemplos
Todos os exemplos usam a mesma assinatura de função — apenas o esquema de URL e os valores de opção variam conforme o tipo de armazenamento e o caso de uso.
Importar do OSS
-- Basic import: AccessKey ID, AccessKey secret, and endpoint embedded in the URL
SELECT ST_ImportFrom(
'chunk_table',
'OSS://<ak>:<ak_secret>@oss-cn-beijing-internal.aliyuncs.com/mybucket/data/image.tif'
);
-- Import into a specific schema
SELECT ST_ImportFrom(
'schema.chunk_table',
'OSS://<ak>:<ak_secret>@oss-cn-beijing-internal.aliyuncs.com/mybucket/data/image.tif'
);Importar do MinIO
-- MinIO URL includes host and port
SELECT ST_ImportFrom(
'chunk_table',
'MIO://<ak>:<ak_secret>@10.0.0.1:443/mybucket/data/image.tif'
);Importar do HDFS
-- HDFS URL includes the username and NameNode address
SELECT ST_ImportFrom(
'chunk_table',
'HDFS://<user_name>@10.0.0.1:8020/path/image.tif'
);Importar arquivos com subconjuntos
Para formatos com múltiplas variáveis, como NetCDF e HDF5, adicione o identificador do subconjunto à URL.
-- NetCDF: append subset name after a colon
SELECT ST_ImportFrom(
'chunk_table',
'OSS://<ak>:<ak_secret>@oss-cn-beijing-internal.aliyuncs.com/mybucket/data/image.nc:hcc'
);
-- HDF5: append dataset path after ://
SELECT ST_ImportFrom(
'chunk_table',
'OSS://<ak>:<ak_secret>@oss-cn-beijing-internal.aliyuncs.com/mybucket/data/image.hdf5://ds/hcc'
);Controlar o layout de armazenamento e o paralelismo
-- Set chunk dimensions to 128x128 pixels with 3 bands, disable compression
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"}' -- storageOption
);
-- Set the degree of parallelism to 4 to speed up large imports
SELECT ST_ImportFrom(
'chunk_table',
'OSS://<ak>:<ak_secret>@oss-cn-beijing-internal.aliyuncs.com/mybucket/data/image.nc:hcc',
'{}',
'{"parallel": 4}' -- importOption
);
-- Map the OSS object to an in-memory file to reduce small read overhead,
-- then import in parallel with 4 workers
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}' -- importOption
);Calcular estatísticas de banda durante a importação
-- Automatically calculate band statistics during import
SELECT ST_ImportFrom(
'chunk_table',
'OSS://<ak>:<ak_secret>@oss-cn-beijing-internal.aliyuncs.com/mybucket/data/image.tif',
'',
'{"compute_stats": true}' -- importOption
);