Menanyakan data spasial di Amazon Redshift - Amazon Redshift

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Menanyakan data spasial di Amazon Redshift

Data spasial menggambarkan posisi dan bentuk geometri dalam ruang yang ditentukan (sistem referensi spasial). Amazon Redshift mendukung data spasial dengan tipe GEOMETRY dan GEOGRAPHY data, yang berisi data spasial dan opsional pengenal sistem referensi spasial (SRID) data.

Data spasial berisi data geometris yang dapat Anda gunakan untuk mewakili fitur geografis. Contoh jenis data ini termasuk laporan cuaca, arah peta, tweet dengan posisi geografis, lokasi toko, dan rute maskapai penerbangan. Data spasial memainkan peran penting dalam analisis bisnis, pelaporan, dan peramalan.

Anda dapat melakukan kueri data spasial dengan fungsi Amazon Redshift SQL. Data spasial berisi nilai geometris untuk suatu objek.

Operasi tipe GEOMETRY data bekerja pada pesawat Cartesian. Meskipun pengidentifikasi sistem referensi spasial (SRID) disimpan di dalam objek, SRID ini hanyalah pengidentifikasi sistem koordinat dan tidak berperan dalam algoritma yang digunakan untuk memproses objek. GEOMETRY Sebaliknya, operasi pada tipe GEOGRAPHY data memperlakukan koordinat di dalam objek sebagai koordinat bola pada spheroid. Spheroid ini didefinisikan oleh SRID, yang merujuk pada sistem referensi spasial geografis. Secara default, tipe GEOGRAPHY data dibuat dengan referensi spasial (SRID) 4326, merujuk pada Sistem Geodetik Dunia (WGS) 84. Untuk informasi lebih lanjut tentang SRID, lihat Sistem referensi spasial di Wikipedia.

Anda dapat menggunakan fungsi ST_Transform untuk mengubah koordinat dari berbagai sistem referensi spasial. Setelah transformasi koordinat selesai, Anda juga dapat menggunakan pemeran sederhana di antara keduanya, selama input GEOMETRY dikodekan dengan SRID geografis. Pemeran ini hanya menyalin koordinat tanpa transformasi lebih lanjut. Sebagai contoh:

SELECT ST_AsEWKT(ST_GeomFromEWKT('SRID=4326;POINT(10 20)')::geography);
st_asewkt ------------------------ SRID=4326;POINT(10 20)

Untuk lebih memahami perbedaan antara GEOMETRY dan tipe GEOGRAPHY data, pertimbangkan untuk menghitung jarak antara bandara Berlin (BER) dan bandara San Francisco (SFO) menggunakan Sistem Geodetik Dunia (WGS) 84. Menggunakan tipe GEOGRAPHY data, hasilnya dalam meter. Saat menggunakan tipe GEOMETRY data dengan SRID 4326, hasilnya dalam derajat, yang tidak dapat dikonversi menjadi meter karena jarak satu derajat tergantung di mana geometri globe berada.

Perhitungan pada tipe GEOGRAPHY data sebagian besar digunakan untuk perhitungan bumi bulat yang realistis seperti area yang tepat dari suatu negara tanpa distorsi. Tetapi mereka jauh lebih mahal untuk dihitung. Oleh karena itu, ST_Transform dapat mengubah koordinat Anda ke sistem koordinat proyeksi lokal yang sesuai dan melakukan perhitungan pada tipe data lebih cepat. GEOMETRY

Menggunakan data spasial, Anda dapat menjalankan kueri untuk melakukan hal berikut:

  • Temukan jarak antara dua titik.

  • Periksa apakah satu wilayah (poligon) berisi lain.

  • Periksa apakah satu linestring memotong linestring atau poligon lain.

Anda dapat menggunakan tipe GEOMETRY data untuk menyimpan nilai data spasial. GEOMETRYNilai di Amazon Redshift dapat menentukan tipe data primitif geometri dua dimensi (2D), tiga dimensi (3DZ), dua dimensi dengan ukuran (3DM), dan geometri empat dimensi (4D):

  • Geometri dua dimensi (2D) ditentukan oleh dua koordinat Cartesian (x, y) dalam bidang.

  • Geometri tiga dimensi (3DZ) ditentukan oleh tiga koordinat Cartesian (x, y, z) dalam ruang.

  • Geometri dua dimensi dengan ukuran (3DM) ditentukan oleh tiga koordinat (x, y, m), di mana dua yang pertama adalah koordinat Cartesian dalam bidang dan yang ketiga adalah pengukuran.

  • Geometri empat dimensi (4D) ditentukan oleh empat koordinat (x, y, z, m), di mana tiga yang pertama adalah koordinat Cartesian dalam suatu ruang dan yang keempat adalah pengukuran.

Untuk informasi lebih lanjut tentang tipe data primitif geometri, lihat Representasi teks geometri yang terkenal di Wikipedia.

Anda dapat menggunakan tipe GEOGRAPHY data untuk menyimpan nilai data spasial. GEOGRAPHYNilai di Amazon Redshift dapat menentukan tipe data primitif geometri dua dimensi (2D), tiga dimensi (3DZ), dua dimensi dengan ukuran (3DM), dan geometri empat dimensi (4D):

  • Geometri dua dimensi (2D) ditentukan oleh koordinat bujur dan lintang pada spheroid.

  • Geometri tiga dimensi (3DZ) ditentukan oleh koordinat bujur, lintang, dan ketinggian pada spheroid.

  • Geometri dua dimensi dengan ukuran (3DM) ditentukan oleh tiga koordinat (bujur, garis lintang, ukuran), di mana dua yang pertama adalah koordinat sudut pada bola dan yang ketiga adalah pengukuran.

  • Geometri empat dimensi (4D) ditentukan oleh empat koordinat (bujur, lintang, ketinggian, ukuran), di mana tiga yang pertama adalah bujur, lintang dan ketinggian, dan yang keempat adalah pengukuran.

Untuk informasi lebih lanjut tentang sistem koordinat geografis, lihat Sistem koordinat geografis dan sistem koordinat bola di Wikipedia.

Tipe GEOMETRY dan GEOGRAPHY data memiliki subtipe berikut:

  • POINT

  • LINESTRING

  • POLYGON

  • MULTIPOINT

  • MULTILINESTRING

  • MULTIPOLYGON

  • GEOMETRYCOLLECTION

Ada fungsi Amazon Redshift SQL yang mendukung representasi data geometris berikut:

  • GeoJSON

  • Teks terkenal (WKT)

  • Teks terkenal yang diperluas (EWKT)

  • Representasi biner (WKB) terkenal

  • Biner terkenal yang diperluas (EWKB)

Anda dapat mentransmisikan antara GEOMETRY dan tipe GEOGRAPHY data.

SQL berikut melemparkan linestring dari a ke a. GEOMETRY GEOGRAPHY

SELECT ST_AsEWKT(ST_GeomFromText('LINESTRING(110 40, 2 3, -10 80, -7 9)')::geography);
st_asewkt ---------------------------------------------- SRID=4326;LINESTRING(110 40,2 3,-10 80,-7 9)

SQL berikut melemparkan linestring dari a ke a. GEOGRAPHY GEOMETRY

SELECT ST_AsEWKT(ST_GeogFromText('LINESTRING(110 40, 2 3, -10 80, -7 9)')::geometry);
st_asewkt ---------------------------------------------- SRID=4326;LINESTRING(110 40,2 3,-10 80,-7 9)

Amazon Redshift menyediakan banyak fungsi SQL untuk menanyakan data spasial. Kecuali untuk ST_IsValid fungsi, fungsi spasial yang menerima GEOMETRY objek sebagai argumen mengharapkan GEOMETRY objek ini menjadi geometri yang valid. Jika GEOGRAPHY objek GEOMETRY or tidak valid, maka perilaku fungsi spasial tidak terdefinisi. Untuk informasi lebih lanjut tentang validitas, lihatValiditas geometris.

Untuk detail tentang fungsi SQL untuk menanyakan data spasial, lihatFungsi spasial.

Untuk detail tentang memuat data spasial, lihatMemuat kolom tipe data GEOMETRI atau GEOGRAFI.