

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

# Mengatur proyeksi partisi
<a name="partition-projection-setting-up"></a>

Menyiapkan proyeksi partisi di properti tabel adalah proses dua langkah:

1. Tentukan rentang data dan pola yang relevan untuk setiap kolom partisi, atau gunakan templat kustom.

1. Aktifkan proyeksi partisi untuk tabel.

**catatan**  
Sebelum Anda menambahkan properti proyeksi partisi ke tabel yang ada, kolom partisi yang Anda siapkan properti proyeksi partisi harus sudah ada dalam skema tabel. Jika kolom partisi belum ada, Anda harus menambahkan kolom partisi ke tabel yang ada secara manual. AWS Glue tidak melakukan langkah ini untuk Anda secara otomatis. 

Bagian ini menunjukkan cara mengatur properti tabel untuk AWS Glue. Untuk mengaturnya, Anda dapat menggunakan AWS Glue konsol, [CREATE TABLE](create-table.md) kueri Athena, atau operasi. [AWS Glue API](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-api.html) Prosedur berikut menunjukkan cara mengatur properti di AWS Glue konsol.

**Untuk mengkonfigurasi dan mengaktifkan proyeksi partisi menggunakan konsol AWS Glue**

1. Masuk ke Konsol Manajemen AWS dan buka AWS Glue konsol di [https://console.aws.amazon.com/glue/](https://console.aws.amazon.com/glue/).

1. Pilih tab **Tabel**.

   Pada tab **Tabel**, Anda dapat mengedit tabel yang ada, atau memilih **Tambahkan tabel** untuk membuat yang baru. Untuk informasi tentang menambahkan tabel secara manual atau dengan crawler, lihat [Bekerja dengan tabel di AWS Glue konsol di](https://docs.aws.amazon.com/glue/latest/dg/console-tables.html) *Panduan AWS Glue Pengembang*.

1. Dalam daftar tabel, pilih tautan untuk tabel yang ingin Anda edit.  
![Di AWS Glue konsol, pilih tabel untuk diedit.](http://docs.aws.amazon.com/id_id/athena/latest/ug/images/partition-projection-1.png)

1. Pilih **Tindakan**, **Edit tabel**.

1. Pada halaman **Edit tabel**, di bagian **properti Tabel**, untuk setiap kolom yang dipartisi, tambahkan pasangan kunci-nilai berikut:

   1. Untuk **Kunci**, tambahkan`projection.{{columnName}}.type`.

   1. Untuk **Nilai**, tambahkan salah satu tipe yang didukung: `enum`, `integer`, `date`, atau `injected`. Untuk informasi selengkapnya, lihat [Jenis yang didukung untuk proyeksi partisi](partition-projection-supported-types.md).

1. Mengikuti petunjuk di [Jenis yang didukung untuk proyeksi partisi](partition-projection-supported-types.md) , tambahkan pasangan kunci-nilai tambahan sesuai dengan kebutuhan konfigurasi Anda.

   Contoh konfigurasi tabel berikut mengkonfigurasi `year` kolom untuk proyeksi partisi, membatasi nilai-nilai yang dapat dikembalikan ke rentang dari 2010 hingga 2016.  
![Mengonfigurasi proyeksi partisi untuk kolom partisi di poperti tabel konsol AWS Glue .](http://docs.aws.amazon.com/id_id/athena/latest/ug/images/partition-projection-3.png)

1. Tambahkan pasangan nilai kunci untuk mengaktifkan proyeksi partisi. Untuk **Kunci**, masukkan `projection.enabled`, dan untuk **Nilai**, masukkan `true`.
**catatan**  
Anda dapat menonaktifkan proyeksi partisi pada tabel ini kapan saja dengan menetapkan `projection.enabled` ke `false`.

1. Setelah selesai, pilih **Simpan**.

1. Di Editor Kueri Athena, uji kueri kolom yang Anda konfigurasikan untuk tabel.

   Contoh kueri berikut menggunakan`SELECT DISTINCT`untuk mengembalikan nilai-nilai unik dari`year`kolom. Basis data berisi data dari 1987 hingga 2016, tetapi `projection.year.range` properti membatasi nilai yang dikembalikan ke tahun 2010 hingga 2016.  
![Kueri kolom yang menggunakan proyeksi partisi.](http://docs.aws.amazon.com/id_id/athena/latest/ug/images/partition-projection-5.png)
**catatan**  
Jika Anda mengatur`projection.enabled`ke`true`tetapi gagal untuk mengonfigurasi satu atau lebih partisi kolom, Anda menerima pesan kesalahan seperti berikut:  
`HIVE_METASTORE_ERROR: Table {{database_name}}.{{table_name}} is configured for partition projection, but the following partition columns are missing projection configuration: [{{column_name}}] (table {{database_name}}.{{table_name}})`.

## Cara menentukan lokasi penyimpanan S3 kustom
<a name="partition-projection-specifying-custom-s3-storage-locations"></a>

Saat mengedit properti tabel AWS Glue, Anda juga dapat menentukan templat jalur Amazon S3 khusus untuk partisi yang diproyeksikan. Template kustom memungkinkan Athena untuk benar memetakan nilai partisi ke lokasi file Amazon S3 kustom yang tidak mengikuti`.../column=value/...`Pola. 

Menggunakan templat kustom adalah opsional. Namun, jika Anda menggunakan templat kustom, templat harus berisi placeholder untuk setiap kolom partisi. Lokasi template harus diakhiri dengan garis miring ke depan sehingga file data yang dipartisi hidup dalam “folder” per partisi.

**Untuk menentukan templat lokasi partisi kustom**

1. Mengikuti langkah-langkah untuk [mengkonfigurasi dan mengaktifkan proyeksi partisi menggunakan AWS Glue konsol](#partition-projection-setting-up-procedure), tambahkan tambahan pasangan kunci-nilai yang menentukan template kustom sebagai berikut:

   1. Untuk **Kunci**, masukkan `storage.location.template`.

   1. Untuk**Nilai**, tentukan lokasi yang mencakup placeholder untuk setiap kolom partisi. Pastikan bahwa setiap placeholder (dan jalur S3 itu sendiri) diakhiri dengan satu garis miring ke depan.

      Nilai templat contoh berikut mengasumsikan tabel dengan kolom partisi`a`,`b`, dan`c`.

      ```
      s3://amzn-s3-demo-bucket/table_root/a=${a}/${b}/some_static_subdirectory/${c}/      
      ```

      ```
      s3://amzn-s3-demo-bucket/table_root/c=${c}/${b}/some_static_subdirectory/${a}/${b}/${c}/${c}/      
      ```

      Untuk tabel yang sama, nilai templat contoh berikut tidak valid karena mengandung tidak ada tempat untuk kolom`c`.

      ```
      s3://amzn-s3-demo-bucket/table_root/a=${a}/${b}/some_static_subdirectory/         
      ```

1. Pilih **Terapkan**.