Mengimpor objek dari Object Storage Service (OSS), MinIO, atau file Hadoop Distributed File System (HDFS) ke dalam objek raster Ganos.
Sintaksis
raster ST_ImportFrom(cstring chunkTableName,
cstring url,
cstring storageOption default '{}',
cstring importOption default '{}');Parameter
| Parameter | Deskripsi |
|---|---|
chunkTableName | Nama tabel chunk yang menyimpan data raster. Harus mematuhi konvensi penamaan tabel PolarDB. |
url | URL file sumber. Untuk format URL yang didukung, lihat ST_CreateRast. |
storageOption | String JSON yang mengontrol cara penyimpanan data raster. Default: '{}'. |
importOption | String JSON yang mengontrol proses impor. Default: '{}'. |
Parameter storageOption
Struktur penyimpanan
| Parameter | Tipe | Default | Deskripsi |
|---|---|---|---|
chunking | boolean | true | Menentukan apakah data disimpan dalam bentuk chunk. |
chunkdim | string | Sama seperti sumber | Dimensi chunk dalam format w,h,b. Berlaku hanya jika chunking bernilai true. |
Format encoding
| Parameter | Tipe | Default | Deskripsi |
|---|---|---|---|
compression | string | lz4 | Algoritma kompresi. Nilai yang valid: none, jpeg, zlib, png, lzo, lz4, snappy, zstd, jp2k. |
quality | integer | 75 | Kualitas gambar setelah dikompresi. Hanya berlaku untuk kompresi JPEG dan JPEG 2000. |
interleaving | string | Sama seperti sumber | Metode interleaving band. Nilai yang valid: bip (Band Interleaved by Pixel), bil (Band Interleaved by Line), bsq (Band Sequential). |
blockendian | string | NDR | Urutan byte untuk setiap chunk data. Nilai yang valid: NDR (little endian), XDR (big endian). |
celltype | string | Sama seperti sumber | Tipe piksel. Nilai yang valid: 1bb (1 bit), 2bui (integer tak bertanda 2-bit), 4bui (integer tak bertanda 4-bit), 8bsi (integer bertanda 8-bit), 8bui (integer tak bertanda 8-bit), 16bsi (integer bertanda 16-bit), 16bui (integer tak bertanda 16-bit), 32bsi (integer bertanda 32-bit), 32bui (integer tak bertanda 32-bit), 32bf (float 32-bit), 64bsi (integer bertanda 64-bit), 64bui (integer tak bertanda 64-bit), 64bf (float 64-bit). |
Parameter importOption
| Parameter | Tipe | Default | Deskripsi |
|---|---|---|---|
mapping_oss_file | boolean | false | Menentukan apakah objek OSS dimuat ke dalam file in-memory sebelum dibaca. Beberapa driver tidak mengoptimalkan data yang disimpan di OSS, sehingga menghasilkan banyak permintaan kecil dan menurunkan kinerja. Mengaktifkan opsi ini memetakan objek OSS ke objek memori untuk meningkatkan kinerja. Gunakan parameter Global User Configuration (GUC) ganos.raster.memory_oss_file_max_size untuk mengatur ukuran maksimum file yang memenuhi syarat untuk dimuat ke memori. |
parallel | integer | Nilai parameter GUC ganos.parallel.degree | Tingkat paralelisme. Nilai yang valid: 1 hingga 64. |
Deskripsi
ST_ImportFrom membuat objek raster dan mengimpor data dari OSS, MinIO, atau HDFS ke dalamnya. Fungsi ini menyimpan data yang diimpor dalam tabel chunk yang namanya ditentukan oleh parameter chunkTableName.
Untuk memeriksa format file yang didukung sebelum melakukan impor, panggil ST_RasterDrivers:
SELECT * FROM ST_RasterDrivers();Contoh
Semua contoh menggunakan URL OSS://. Ganti <ak>, <ak_secret>, dan path bucket dengan kredensial serta lokasi file Anda yang sebenarnya.
Impor dengan pengaturan default
-- Argumen minimum yang diperlukan: nama tabel chunk dan URL file
SELECT ST_ImportFrom(
'chunk_table',
'OSS://<ak>:<ak_secret>@oss-cn-beijing-internal.aliyuncs.com/mybucket/data/image.tif'
);Impor file NetCDF dengan subset bernama
-- Tambahkan :<subset_name> ke URL untuk memilih subset dalam file NetCDF
SELECT ST_ImportFrom(
'chunk_table',
'OSS://<ak>:<ak_secret>@oss-cn-beijing-internal.aliyuncs.com/mybucket/data/image.nc:hcc'
);Kontrol ukuran chunk dan kompresi
-- storageOption: atur dimensi chunk menjadi 128x128 piksel dengan 3 band, nonaktifkan kompresi
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"}'
);Impor dengan pemrosesan paralel
-- importOption: gunakan 4 parallel worker untuk mempercepat impor
SELECT ST_ImportFrom(
'chunk_table',
'OSS://<ak>:<ak_secret>@oss-cn-beijing-internal.aliyuncs.com/mybucket/data/image.nc:hcc',
'{}',
'{"parallel": 4}'
);