Crée un objet raster dans Ganos et y importe des données depuis un objet Object Storage Service (OSS), un objet Multi-Cloud Object Storage (MinIO) ou un fichier Hadoop Distributed File System (HDFS).
Pour vérifier les formats de données pris en charge, appelez ST_RasterDrivers.
Syntaxe
raster ST_ImportFrom(cstring chunkTableName,
cstring url,
cstring storageOption default '{}',
cstring importOption default '{}');
Paramètres
| Paramètre | Description |
|---|---|
chunkTableName |
Nom de la table de chunks. Doit respecter les conventions de nommage des tables Ganos. |
url |
URL de l'objet OSS, de l'objet MinIO ou du fichier HDFS. Pour le format d'URL propre à chaque type de stockage, consultez Chemins d'accès au stockage d'objets. |
storageOption |
Chaîne JSON qui contrôle le mode de stockage de l'objet raster. Valeur par défaut : {}. |
importOption |
Chaîne JSON qui contrôle le processus d'importation. Valeur par défaut : {}. |
Champs storageOption
| Champ | Type | Valeur par défaut | Description |
|---|---|---|---|
chunking |
Booléen | true |
Indique si les données raster doivent être stockées sous forme de chunks. |
chunkdim |
string | Identique à la source | Dimensions du chunk au format (w, h, b). Prend effet uniquement lorsque chunking est défini sur true. |
compression |
string | lz4 |
Format de compression. Valeurs valides : none, jpeg, zlib, png, lzo, lz4, snappy, zstd, jp2k. |
quality |
entier | 75 |
Qualité d'image de l'objet raster après compression. Prend effet uniquement lorsque compression est défini sur jpeg ou jp2k. |
interleaving |
string | Identique à la source | Méthode d'entrelacement des bandes. Valeurs valides : bip (Band Interleaved by Pixel), bil (Band Interleaved by Line), bsq (Band Sequential). |
blockendian |
string | NDR |
Ordre des octets pour les chunks de données. Valeurs valides : NDR (little endian), XDR (big endian). |
celltype |
string | Identique à la source | Type de pixel de l'objet raster. Valeurs valides : 1bb, 2bui, 4bui, 8bsi, 8bui, 16bsi, 16bui, 32bsi, 32bui, 32bf, 64bsi, 64bui, 64bf. |
Champs importOption
| Champ | Type | Valeur par défaut | Description |
|---|---|---|---|
mapping_oss_file |
Booléen | false |
Indique s'il faut mapper l'objet OSS vers un fichier en mémoire dans Ganos. Activez cette option lorsque le pilote génère de nombreuses petites requêtes de lecture vers OSS, ce qui dégrade les performances. La taille maximale du fichier pour le mappage en mémoire est contrôlée par le paramètre Grand Unified Configuration (GUC) ganos.raster.memory_oss_file_max_size. |
parallel |
entier | Identique à ganos.parallel.degree GUC |
Degré de parallélisme lors de l'importation. Valeurs valides : 1–64. |
compute_stats |
Booléen | false |
Indique s'il faut calculer automatiquement les statistiques de bande lors de l'importation. |
approx |
Booléen | false |
Indique s'il faut utiliser l'échantillonnage lors du calcul des statistiques de bande. Si la valeur est true, les résultats peuvent être moins précis. |
factor |
entier | 4 |
Facteur d'échantillonnage. Chaque unité d'échantillonnage couvre n pixels. Prend effet uniquement lorsque approx est défini sur true. |
exclusive_nodata |
Booléen | true |
Indique s'il faut exclure les valeurs nodata. |
Exemples
Tous les exemples utilisent la même signature de fonction ; seuls le schéma d'URL et les valeurs des options diffèrent selon le type de stockage et le cas d'utilisation.
Importation depuis 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'
);
Importation depuis 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'
);
Importation depuis 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'
);
Importation de fichiers avec des sous-ensembles
Pour les formats multivariables tels que NetCDF et HDF5, ajoutez l'identifiant de sous-ensemble à l'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'
);
Contrôle de la disposition du stockage et du parallélisme
-- 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
);
Calcul des statistiques de bande lors de l'importation
-- 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
);