Apa kelebihan dan kekurangan dari tipe data hstore di postgis?

9

PostgreSQL memiliki modul bernama hstore yang mengimplementasikan penggunaan pasangan kunci / nilai (itu seperti model OpenStreetMap, tetapi dalam satu tabel).

Apa Pro dan Kontra hstore terkait kompatibilitas GIS, penambahan dan pengambilan data?

Pablo
sumber
1
Setelah beberapa pengujian: Kontra: Qgis tidak menampilkan kolom hstore. Satu Solusi, simpan kunci / nilai varcharsebagai daftar terbatas koma: 'name=foo,type=bar,' Dan ambil nilai dengan:SELECT * WHERE tags LIKE '%type=bar,%'
Pablo

Jawaban:

2

Kami benar-benar menunjukkan ini dalam buku kami (yang seharusnya akan dicetak dalam minggu depan atau lebih). Dalam bab 3. Anda dapat mengunduh kode dari sini: http://www.postgis.us/chapter_03

(dan tentu saja jika Anda membeli buku kami, Anda mendapatkan penjelasan menyeluruh tentang pro dan kontra)

Ia menggunakan saklar hstore osm2pgsql untuk mengimpor tag osm sebagai kolom hstore.

Apa yang kita lakukan untuk mengimbangi fakta bahwa Quantum dan hal-hal lain tidak mendukung hstore secara langsung adalah membuat tampilan di sekitar tag kunci yang kita butuhkan. Untuk aplikasi di mana Anda memiliki kontrol penuh menggunakan kueri yang alias nilai key-> sebagai kolom berfungsi dengan baik juga bahkan jika Anda driver database tidak mengerti tipe hstore.

LR1234567
sumber
Saya punya buku ini. Saya membeli edisi MEAP. Saya akan memeriksanya tapi saya pikir ini sudah ketinggalan zaman dan saya harus menunggu rilis versi final. Ngomong-ngomong, ini buku yang bagus. Terima kasih.
Pablo
5

Pro:

Ini adalah kinerja tinggi dan kunci fleksibel / nilai yang dapat diindeks dan ditanya.

Saya memiliki GIS web schemaless kompleks yang menggunakan kolom HStore untuk menyimpan properti fitur.

Cons:

Sebagian besar alat WMS / WFS seperti Mapserver, Geoserver dan similars tidak dapat memahami dan bekerja dengan kolom HStore, sehingga Anda akhirnya membuat Tampilan SQL kode keras (setidaknya dalam Geoserver). Anda masih dapat menggunakannya untuk bekerja WMS / WFS tetapi karena Anda harus melakukan hardcode pada tombol Anda kehilangan kemampuan schemaless.

Pankas
sumber
2

Saya tidak punya pengalaman dengan itu sendiri, tetapi jika Anda tertarik untuk menyimpan data spasial dalam database seperti itu, Anda mungkin ingin mencari nosql spasial. Pada posting yang saya temukan adalah misalnya: /programming/2041622/nosql-and-spatial-data

johanvdw
sumber