Jenis yang didukung untuk proyeksi partisi - Amazon Athena

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

Jenis yang didukung untuk proyeksi partisi

Sebuah tabel dapat memiliki kombinasienum,integer,date,atauinjectedjenis kolom partisi.

Jenis enum

Gunakan enum tipe untuk kolom partisi yang nilainya adalah anggota dari kumpulan yang disebutkan (misalnya, kode bandara atau). Wilayah AWS

Tentukan properti partisi dalam tabel sebagai berikut:

Nama properti Contoh nilai Deskripsi
projection.columnName.type

enum

Wajib. Jenis proyeksi yang akan digunakan untuk kolomcolumnName. Nilai harusenum(case sensitive) untuk memberi sinyal penggunaan tipe enum. Memimpin dan mengikuti ruang putih diperbolehkan.
projection.columnName.values

A,B,C,D,E,F,G,Unknown

Wajib. Sebuah daftar dipisahkan koma dari nilai partisi enumerasi untuk kolomcolumnName. Setiap ruang putih dianggap sebagai bagian dari nilai enum.
catatan

Sebagai praktik terbaik kami sarankan untuk membatasi penggunaanenumberdasarkan proyeksi partisi untuk beberapa lusin atau kurang. Meskipun tidak ada batasan spesifik untuk enum proyeksi, ukuran total metadata tabel Anda tidak dapat melebihi AWS Glue batas sekitar 1 MB saat gzip dikompresi. Perhatikan bahwa batas ini dibagi di bagian kunci dari tabel Anda seperti nama kolom, lokasi, format penyimpanan, dan lain-lain. Jika Anda menemukan diri Anda menggunakan lebih dari beberapa lusin ID unik dienumproyeksi, mempertimbangkan pendekatan alternatif seperti bucketing ke sejumlah kecil dari nilai-nilai unik di bidang pengganti. Dengan melakukan trading di luar kardinalitas, Anda dapat mengontrol jumlah nilai unik dienumBidang.

Jenis bilangan bulat

Gunakan tipe integer untuk kolom partisi yang nilainya mungkin ditafsirkan sebagai bilangan bulat dalam kisaran yang ditentukan. Kolom bilangan bulat yang diproyeksikan saat ini terbatas pada kisaran Java yang ditandatangani panjang (-263ke 263-1 inklusif).

Nama properti Contoh nilai Deskripsi
projection.columnName.type

integer

Wajib. Jenis proyeksi yang akan digunakan untuk kolomcolumnName. Nilai harus berupainteger(case sensitive) untuk sinyal penggunaan tipe integer. Memimpin dan mengikuti ruang putih diperbolehkan.
projection.columnName.range

0,10

-1,8675309

0001,9999

Wajib. Sebuah daftar dua elemen dipisahkan koma yang menyediakan nilai-nilai rentang minimum dan maksimum yang akan dikembalikan oleh kueri pada kolomcolumnName. Perhatikan bahwa nilai harus dipisahkan dengan koma, bukan tanda hubung. Nilai-nilai ini inklusif, bisa negatif, dan dapat memiliki nol terkemuka. Memimpin dan mengikuti ruang putih diperbolehkan.
projection.columnName.interval

1

5

Tidak wajib. Sebuah bilangan bulat positif yang menentukan interval antara nilai-nilai partisi berturut-turut untuk kolomcolumnName. Contohnya,rangenilai “1,3" denganintervalNilai “1" menghasilkan nilai 1, 2, dan 3. SamarangeNilai denganintervalnilai “2" menghasilkan nilai-nilai 1 dan 3, melewatkan 2. Memimpin dan mengikuti ruang putih diperbolehkan. Default-nya adalah 1.
projection.columnName.digits

1

5

Tidak wajib. Sebuah bilangan bulat positif yang menentukan jumlah digit untuk dimasukkan dalam representasi akhir nilai partisi untuk kolomcolumnName. Contohnya,rangenilai “1,3" yang memilikidigitsNilai “1" menghasilkan nilai 1, 2, dan 3. SamarangeNilai dengandigitsnilai “2" menghasilkan nilai-nilai 01, 02, dan 03. Memimpin dan mengikuti ruang putih diperbolehkan. Default adalah tidak ada jumlah statis digit dan tidak ada nol terkemuka.

Jenis tanggal

Gunakan tipe tanggal untuk kolom partisi yang nilainya dapat diinterpretasikan sebagai tanggal (dengan waktu opsional) dalam rentang yang ditetapkan.

penting

Kolom tanggal yang Diproyeksikan dihasilkan dalam Waktu Universal Terkoordinasi (UTC) pada waktu eksekusi kueri.

Nama properti Contoh nilai Deskripsi
projection.columnName.type

date

Wajib. Jenis proyeksi yang akan digunakan untuk kolomcolumnName. Nilai harus berupadate(case insensitive) untuk memberi sinyal penggunaan tipe tanggal. Memimpin dan mengikuti ruang putih diperbolehkan.
projection.columnName.range

201701,201812

01-01-2010,12-31-2018

NOW-3YEARS,NOW

201801,NOW+1MONTH

Wajib. Sebuah dua elemen, daftar dipisahkan koma yang menyediakan minimum dan maksimumrangenilai untuk kolomcolumnName. Nilai-nilai ini inklusif dan dapat menggunakan format yang kompatibel dengan Javajava.time.*Jenis tanggal. Kedua nilai minimum dan maksimum harus menggunakan format yang sama. Format yang ditentukan dalam.formatproperti harus format yang digunakan untuk nilai-nilai ini.

Kolom ini juga dapat berisi string tanggal relatif, diformat dalam pola ekspresi reguler ini:

\s*NOW\s*(([\+\-])\s*([0-9]+)\s*(YEARS?|MONTHS?|WEEKS?|DAYS?|HOURS?|MINUTES?|SECONDS?)\s*)?

Ruang putih diperbolehkan, tetapi dalam literal tanggal dianggap bagian dari string tanggal sendiri.

projection.columnName.format

yyyyMM

dd-MM-yyyy

dd-MM-yyyy-HH-mm-ss

Wajib. String format tanggal berdasarkan format tanggal Java DateTimeFormatter. Dapat didukungJava.time.*Jenis.
projection.columnName.interval

1

5

Sebuah bilangan bulat positif yang menentukan interval antara nilai-nilai partisi berturut-turut untuk kolomcolumnName. Contohnya,rangeNilai2017-01,2018-12denganintervalNilai1dan sebuahinterval.unitNilaiMONTHSmenghasilkan nilai 2017-01, 2017-02, 2017-03, dan seterusnya. SamarangeNilai denganintervalNilai2dan sebuahinterval.unitNilaiMONTHSmenghasilkan nilai 2017-01, 2017-03, 2017-05, dan seterusnya. Spasi di awal dan akhir kalimat tidak diperbolehkan.

Saat tanggal yang diberikan berada pada presisi satu hari atau satu bulan,interval adalah opsional dan default untuk 1 hari atau 1 bulan, masing-masing. Sebaliknya, interval diperlukan.

projection.columnName.interval.unit

YEARS

MONTHS

WEEKS

DAYS

HOURS

MINUTES

SECONDS

MILLIS

Kata satuan waktu yang mewakili bentuk serial dari a ChronoUnit. Kemungkinan nilai adalah YEARS, MONTHS, WEEKS, DAYS, HOURS, MINUTES, SECONDS, dan MILLIS. Nilai-nilai ini tidak peka huruf besar.

Saat tanggal yang diberikan berada pada presisi satu hari atau satu bulan,interval.unit adalah opsional dan default untuk 1 hari atau 1 bulan, masing-masing. Sebaliknya, interval.unit diperlukan.

Jenis yang disuntikkan

Gunakan jenis disuntikkan untuk partisi kolom dengan nilai-nilai yang mungkin tidak prosedural dihasilkan dalam beberapa kisaran logis tetapi yang disediakan dalam queryWHEREklausul sebagai nilai tunggal.

Penting untuk diingat hal-hal berikut:

  • Kueri pada kolom disuntikkan gagal jika ekspresi filter tidak disediakan untuk setiap kolom disuntikkan.

  • Kueri dengan beberapa nilai untuk ekspresi filter pada kolom yang disuntikkan hanya berhasil jika nilainya terpisah.

  • Hanya kolomstringdidukung.

Nama properti Nilai Deskripsi
projection.columnName.type

injected

Wajib. Jenis proyeksi yang akan digunakan untuk kolomcolumnName. Hanyastringdidukung. Nilai yang ditentukan harusinjected(kasus tidak sensitif). Memimpin dan mengikuti ruang putih diperbolehkan.

Untuk informasi selengkapnya, lihat Menggunakan tipe injected proyeksi.