Mengatur proyeksi partisi - Amazon Athena

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

Mengatur proyeksi partisi

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.

  2. 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 kueri Athena, atau operasi. AWS Glue API Prosedur berikut menunjukkan cara mengatur properti di AWS Glue konsol.

Untuk mengkonfigurasi dan mengaktifkan proyeksi partisi menggunakan konsol AWS Glue
  1. Masuk ke AWS Management Console dan buka AWS Glue konsol di https://console.aws.amazon.com/glue/.

  2. 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 Panduan AWS Glue Pengembang.

  3. Dalam daftar tabel, pilih tautan untuk tabel yang ingin Anda edit.

    Di AWS Glue konsol, pilih tabel untuk diedit.
  4. Pilih Tindakan, Edit tabel.

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

    1. Untuk Kunci, tambahkanprojection.columnName.type.

    2. Untuk Nilai, tambahkan salah satu tipe yang didukung: enum, integer, date, atau injected. Untuk informasi selengkapnya, lihat Jenis yang didukung untuk proyeksi partisi.

  6. Mengikuti petunjuk di Jenis yang didukung untuk proyeksi partisi , 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 .
  7. 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.

  8. Setelah selesai, pilih Simpan.

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

    Contoh kueri berikut menggunakanSELECT DISTINCTuntuk mengembalikan nilai-nilai unik dariyearkolom. 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.
    catatan

    Jika Anda mengaturprojection.enabledketruetetapi 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

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, tambahkan tambahan pasangan kunci-nilai yang menentukan template kustom sebagai berikut:

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

    2. UntukNilai, 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 partisia,b, danc.

      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 kolomc.

      s3://amzn-s3-demo-bucket/table_root/a=${a}/${b}/some_static_subdirectory/
  2. Pilih Terapkan.