

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
<a name="partition-projection-supported-types"></a>

Sebuah tabel dapat memiliki kombinasi`enum`,`integer`,`date,`atau`injected`jenis kolom partisi.

## Jenis enum
<a name="partition-projection-enum-type"></a>

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

Tentukan properti partisi dalam tabel sebagai berikut:


****  

| Nama properti | Contoh nilai | Deskripsi | 
| --- | --- | --- | 
| projection.{{columnName}}.type | `enum` | Wajib. Jenis proyeksi yang digunakan untuk kolom{{columnName}}. 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. Daftar dipisahkan koma dari nilai partisi yang disebutkan untuk kolom. {{columnName}} Setiap ruang putih dianggap sebagai bagian dari nilai enum. | 

**catatan**  
Sebagai praktik terbaik kami sarankan untuk membatasi penggunaan`enum`berdasarkan 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 unik IDs dalam `enum` proyeksi Anda, pertimbangkan pendekatan alternatif seperti memasukkan sejumlah kecil nilai unik di bidang pengganti. Dengan melakukan trading di luar kardinalitas, Anda dapat mengontrol jumlah nilai unik di`enum`Bidang. 

## Jenis bilangan bulat
<a name="partition-projection-integer-type"></a>

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 digunakan untuk kolom{{columnName}}. Nilai harus berupainteger(case sensitive) untuk sinyal penggunaan tipe integer. Memimpin dan mengikuti ruang putih diperbolehkan. | 
| projection.{{columnName}}.range | `0,10`<br />`-1,8675309`<br />`0001,9999` | Wajib. Daftar dipisahkan koma dua elemen yang memberikan nilai rentang minimum dan maksimum yang akan dikembalikan oleh kueri pada kolom. {{columnName}} 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`<br />`5` | Tidak wajib. Sebuah integer positif yang menentukan interval antara nilai-nilai partisi berturut-turut untuk kolom. {{columnName}} 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`<br />`5` | Tidak wajib. Sebuah integer positif yang menentukan jumlah digit untuk dimasukkan dalam representasi akhir nilai partisi untuk kolom. {{columnName}} 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
<a name="partition-projection-date-type"></a>

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 digunakan untuk kolom{{columnName}}. Nilai harus berupadate(case insensitive) untuk memberi sinyal penggunaan tipe tanggal. Memimpin dan mengikuti ruang putih diperbolehkan. | 
| projection.{{columnName}}.range | `201701,201812`<br />`01-01-2010,12-31-2018`<br />`NOW-3YEARS,NOW`<br />`201801,NOW+1MONTH` | Wajib. Daftar dua elemen yang dipisahkan koma yang memberikan `range` nilai minimum dan maksimum untuk kolom. {{columnName}} Nilai-nilai ini inklusif dan dapat menggunakan format yang kompatibel dengan Java`java.time.*`Jenis tanggal. Kedua nilai minimum dan maksimum harus menggunakan format yang sama. Format yang ditentukan dalam`.format`properti harus format yang digunakan untuk nilai-nilai ini.<br />Kolom ini juga dapat berisi string tanggal relatif, diformat dalam pola ekspresi reguler ini:<br />`\s*NOW\s*(([\+\-])\s*([0-9]+)\s*(YEARS?\|MONTHS?\|WEEKS?\|DAYS?\|HOURS?\|MINUTES?\|SECONDS?)\s*)?`<br />Ruang putih diperbolehkan, tetapi dalam literal tanggal dianggap bagian dari string tanggal sendiri. | 
| projection.{{columnName}}.format | `yyyyMM`<br />`dd-MM-yyyy`<br />`dd-MM-yyyy-HH-mm-ss` | Wajib. String format tanggal berdasarkan format tanggal Java [DateTimeFormatter](https://docs.oracle.com/javase/8/docs/api/java/time/format/DateTimeFormatter.html). Dapat didukungJava.time.\*Jenis. | 
| projection.{{columnName}}.interval | `1`<br />`5` | Sebuah integer positif yang menentukan interval antara nilai-nilai partisi berturut-turut untuk kolom. {{columnName}} Contohnya,`range`Nilai`2017-01,2018-12`dengan`interval`Nilai`1`dan sebuah`interval.unit`Nilai`MONTHS`menghasilkan nilai 2017-01, 2017-02, 2017-03, dan seterusnya. Sama`range`Nilai dengan`interval`Nilai`2`dan sebuah`interval.unit`Nilai`MONTHS`menghasilkan nilai 2017-01, 2017-03, 2017-05, dan seterusnya. Spasi di awal dan akhir kalimat tidak diperbolehkan.<br />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`<br />`MONTHS`<br />`WEEKS`<br />`DAYS`<br />`HOURS`<br />`MINUTES`<br />`SECONDS`<br />`MILLIS` | Kata satuan waktu yang mewakili bentuk serial dari a [ChronoUnit](https://docs.oracle.com/javase/8/docs/api/java/time/temporal/ChronoUnit.html). Kemungkinan nilai adalah `YEARS`, `MONTHS`, `WEEKS`, `DAYS`, `HOURS`, `MINUTES`, `SECONDS`, dan `MILLIS`. Nilai-nilai ini tidak peka huruf besar.<br />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. | 

**Example — Partisi berdasarkan bulan**  
Berikut contoh tabel konfigurasi partisi data per bulan dari 2015 hingga saat ini.  

```
'projection.month.type'='date', 
'projection.month.format'='yyyy-MM', 
'projection.month.interval'='1', 
'projection.month.interval.unit'='MONTHS', 
'projection.month.range'='2015-01,NOW', 
...
```

## Jenis yang disuntikkan
<a name="partition-projection-injected-type"></a>

Gunakan jenis disuntikkan untuk partisi kolom dengan nilai-nilai yang mungkin tidak prosedural dihasilkan dalam beberapa kisaran logis tetapi yang disediakan dalam query`WHERE`klausul 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 kolom`string`didukung.
+ Bila Anda menggunakan `WHERE IN` klausa dengan kolom partisi yang disuntikkan, ada batas 1.000 nilai yang dapat Anda tentukan dalam `IN` daftar. Untuk menanyakan kumpulan data dengan lebih dari 1.000 partisi untuk kolom yang disuntikkan, pisahkan kueri menjadi beberapa kueri yang lebih kecil, masing-masing dengan hingga 1.000 nilai dalam `WHERE IN` klausa, lalu agregat hasilnya.


****  

| Nama properti | Nilai | Deskripsi | 
| --- | --- | --- | 
| projection.{{columnName}}.type | `injected` | Wajib. Jenis proyeksi yang digunakan untuk kolom{{columnName}}. Hanyastringdidukung. Nilai yang ditentukan harusinjected(kasus tidak sensitif). Memimpin dan mengikuti ruang putih diperbolehkan. | 

Untuk informasi selengkapnya, lihat [Kapan menggunakan jenis `injected` proyeksi](partition-projection-dynamic-id-partitioning.md#partition-projection-injection).