View a markdown version of this page

Terminologi untuk data spasial Amazon Redshift - Amazon Redshift

Amazon Redshift tidak akan lagi mendukung penggunaan Python UDF setelah 30 Juni 2026. Kami akan mulai menegakkannya secara bertahap. Untuk informasi lebih lanjut tentang detail opsi akhir masa pakai dan migrasi Python, lihat posting blog yang diterbitkan pada 30 Juni 2025.

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

Terminologi untuk data spasial Amazon Redshift

Istilah berikut digunakan untuk menggambarkan beberapa fungsi spasial Amazon Redshift.

Kotak pembatas

Kotak pembatas geometri atau geografi didefinisikan sebagai produk silang (lintas dimensi) dari luasan koordinat semua titik dalam geometri atau geografi. Untuk geometri dua dimensi, kotak pembatas adalah persegi panjang yang sepenuhnya mencakup semua titik dalam geometri. Misalnya, kotak pembatas poligon POLYGON((0 0,1 0,0 2,0 0)) adalah persegi panjang yang ditentukan oleh titik-titik (0, 0) dan (1, 2) sebagai sudut kiri bawah dan kanan atas. Amazon Redshift menghitung dan menyimpan kotak pembatas di dalam geometri untuk mempercepat predikat geometris dan gabungan spasial. Misalnya jika kotak pembatas dari dua geometri tidak berpotongan, maka kedua geometri ini tidak dapat berpotongan, dan mereka tidak dapat berada dalam kumpulan hasil gabungan spasial menggunakan predikat ST_intersects.

Anda dapat menggunakan fungsi spasial untuk menambahkan (AddBbox), drop (DropbBox), dan menentukan support (DukunganBBOX) untuk kotak pembatas. Amazon Redshift mendukung pra-perhitungan kotak pembatas untuk semua subtipe geometri.

Contoh berikut menunjukkan cara memperbarui geometri yang ada dalam tabel untuk menyimpannya dengan kotak pembatas. Jika cluster Anda berada di cluster versi 1.0.26809 atau yang lebih baru, maka semua geometri baru dibuat dengan kotak pembatas yang telah dihitung sebelumnya secara default.

UPDATE my_table SET geom = AddBBox(geom) WHERE SupportsBBox(geom) = false;

Setelah Anda memperbarui geometri yang ada, kami sarankan Anda menjalankan perintah VACUUM pada tabel yang diperbarui. Untuk informasi selengkapnya, lihat VAKUM.

Untuk mengatur apakah geometri dikodekan dengan kotak pembatas selama sesi, lihat. default_geometri_encoding

Validitas geometris

Algoritma geometris yang digunakan oleh Amazon Redshift mengasumsikan bahwa geometri input adalah geometri yang valid. Jika input ke algoritma tidak valid, maka hasilnya tidak ditentukan. Bagian berikut menjelaskan definisi validitas geometris yang digunakan oleh Amazon Redshift untuk setiap subtipe geometri.

Poin

Poin dianggap valid jika salah satu dari kondisi berikut benar:

  • Intinya adalah titik kosong.

  • Semua koordinat titik adalah bilangan titik mengambang terbatas.

Sebuah titik bisa menjadi titik kosong.

Linestring

Linestring dianggap valid jika salah satu dari kondisi berikut benar:

  • Linestring kosong; artinya, tidak mengandung poin.

  • Semua titik dalam garis yang tidak kosong memiliki koordinat yang merupakan bilangan titik mengambang terbatas.

  • Garis, jika tidak kosong, harus satu dimensi; artinya, ia tidak dapat merosot ke suatu titik.

Linestring tidak dapat berisi titik kosong.

Linestring dapat memiliki titik berurutan duplikat.

Garis dapat memiliki persimpangan diri.

Polygon

Sebuah poligon dianggap valid jika salah satu dari kondisi berikut benar:

  • Poligon kosong; artinya, tidak mengandung cincin.

  • Jika tidak kosong, poligon valid jika semua kondisi berikut benar:

    • Semua cincin poligon valid. Cincin dianggap valid jika semua kondisi berikut benar:

      • Semua titik cincin memiliki koordinat yang merupakan bilangan titik mengambang terbatas.

      • Cincin ditutup; yaitu, titik pertama dan titik terakhirnya bertepatan.

      • Cincin itu tidak memiliki persimpangan diri.

      • Cincin itu dua dimensi.

    • Cincin poligon harus memiliki orientasi yang konsisten. Artinya, jika Anda melintasi cincin apa pun, bagian dalam poligon berada di kanan atau ke kiri Anda.

    • Semua cincin interior harus berada di dalam cincin eksterior poligon.

    • Semua cincin interior harus memiliki orientasi yang sama, dan itu harus menjadi orientasi yang berlawanan dari cincin eksterior.

    • Cincin interior tidak dapat bersarang; yaitu, cincin interior tidak bisa berada di dalam cincin interior lain.

    • Cincin interior dan eksterior hanya dapat berpotongan pada sejumlah titik yang terbatas.

    • Bagian dalam poligon harus dihubungkan secara sederhana.

Sebuah poligon tidak dapat berisi titik kosong.

Multipoint

Multipoint dianggap valid jika salah satu dari kondisi berikut benar:

  • Multipoint kosong; artinya, tidak mengandung poin.

  • Multipoint tidak kosong, dan semua titik valid sesuai dengan definisi validitas titik.

Multipoint dapat berisi satu atau lebih titik kosong.

Multipoint dapat memiliki poin duplikat.

Multilinestring

Multilinestring dianggap valid jika salah satu dari kondisi berikut benar:

  • Multilinestring kosong; artinya, tidak mengandung linestring.

  • Semua linestring dalam multilinestring yang tidak kosong valid sesuai dengan definisi validitas linestring.

Multilinestring tidak kosong yang hanya terdiri dari linestring kosong dianggap valid.

Garis kosong dalam multilinestring tidak mempengaruhi validitasnya.

Multilinestring dapat memiliki linestring dengan titik berurutan duplikat.

Multilinestring dapat memiliki persimpangan diri.

Multilinestring tidak dapat berisi titik kosong.

Multipoligon

Multipoligon dianggap valid jika salah satu dari kondisi berikut benar:

  • Multipoligon tidak mengandung poligon apapun (kosong).

  • Multipoligon tidak kosong dan semua hal berikut benar:

    • Semua poligon dalam multipoligon valid.

    • Tidak ada dua poligon dalam multipoligon yang dapat berpotongan pada jumlah titik yang tak terbatas. Secara khusus, ini menyiratkan bahwa bagian dalam dua poligon tidak dapat berpotongan dan bahwa mereka hanya dapat menyentuh pada sejumlah titik yang terbatas.

Poligon kosong dalam multipoligon tidak membatalkan multipoligon.

Multipoligon tidak dapat berisi titik kosong.

Koleksi geometri

Kumpulan geometri dianggap valid jika salah satu kondisi berikut benar:

  • Koleksi geometri kosong; artinya, tidak mengandung geometri apa pun.

  • Semua geometri dalam kumpulan geometri yang tidak kosong valid.

Definisi ini masih berlaku, meskipun secara rekursif, untuk koleksi geometri bersarang.

Kumpulan geometri dapat berisi titik kosong dan multipoin dengan titik kosong.

Kesederhanaan geometris

Algoritma geometris yang digunakan oleh Amazon Redshift mengasumsikan bahwa geometri input adalah geometri yang valid. Jika input ke algoritma tidak valid, maka pemeriksaan kesederhanaan tidak ditentukan. Bagian berikut menjelaskan definisi kesederhanaan geometris yang digunakan oleh Amazon Redshift untuk setiap subtipe geometri.

Poin

Poin yang valid dianggap sederhana jika salah satu dari kondisi berikut benar:

  • Poin yang valid selalu dianggap sederhana.

  • Titik kosong dianggap sederhana.

Linestring

Linestring yang valid dianggap sederhana jika salah satu dari kondisi berikut benar:

  • Linestring kosong.

  • Linestring tidak kosong dan semua kondisi berikut benar:

    • Ini tidak memiliki poin berturut-turut duplikat.

    • Ia tidak memiliki persimpangan diri, kecuali mungkin untuk titik pertama dan titik terakhirnya, yang dapat bertepatan. Dengan kata lain, garis tidak dapat memiliki persimpangan sendiri kecuali pada titik batas.

Polygon

Poligon yang valid dianggap sederhana jika tidak mengandung titik berturut-turut duplikat.

Multipoint

Multipoint yang valid dianggap sederhana jika salah satu dari kondisi berikut benar:

  • Multipoint kosong; artinya, tidak mengandung poin.

  • Tidak ada dua titik nonkosong dari multipoint yang bertepatan.

Multilinestring

Multilinestring yang valid dianggap sederhana jika salah satu dari kondisi berikut benar:

  • Multilinestring kosong.

  • Multilinestring tidak kosong dan semua kondisi berikut benar:

    • Semua garis lengkapnya sederhana.

    • Setiap dua garis dari multilinestring tidak berpotongan, kecuali pada titik-titik yang merupakan titik batas dari dua garis.

Multilinestring tidak kosong yang hanya terdiri dari linestring kosong dianggap kosong.

Garis kosong dalam multilinestring tidak mempengaruhi kesederhanaannya.

Garis tertutup dalam multilinestring tidak dapat berpotongan dengan linestring lain di multilinestring.

Multilinestring tidak dapat memiliki linestring dengan titik berurutan duplikat.

Multipoligon

Multipoligon yang valid dianggap sederhana jika tidak mengandung titik berturut-turut duplikat.

Koleksi geometri

Kumpulan geometri yang valid dianggap sederhana jika salah satu dari kondisi berikut benar:

  • Koleksi geometri kosong; artinya, tidak mengandung geometri apa pun.

  • Semua geometri dalam koleksi geometri yang tidak kosong sederhana.

Definisi ini masih berlaku, meskipun secara rekursif, untuk koleksi geometri bersarang.

H3

H3 adalah sistem grid pengindeksan geospasial hierarkis, yang menawarkan cara untuk mengindeks koordinat spasial hingga resolusi meter persegi. Data yang diindeks dapat digabungkan di seluruh kumpulan data yang berbeda dan dikumpulkan pada tingkat presisi yang berbeda. H3 memungkinkan berbagai algoritma dan pengoptimalan berdasarkan grid, termasuk tetangga terdekat, jalur terpendek, penghalusan gradien, dan banyak lagi. Indeks H3 mengacu pada sel yang dapat berupa segi enam atau segi lima. Ruang dibagi lagi secara hierarkis dengan resolusi. H3 mendukung 16 resolusi dari 0-15, inklusif. Dengan 0 menjadi yang paling kasar dan 15 menjadi yang terbaik.

Amazon Redshift menyediakan fungsi spasial H3 berikut: