Perbarui tabel dengan partisi - Amazon Athena

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

Perbarui tabel dengan partisi

Di Athena, tabel dan partisi yang harus menggunakan format data yang sama tetapi skema mereka mungkin berbeda. Saat Anda membuat partisi baru, partisi yang biasanya mewarisi skema tabel. Seiring waktu, skema mungkin mulai berbeda. Alasan meliputi:

  • Jika skema tabel Anda perubahan, skema untuk partisi tidak diperbarui untuk tetap sinkron dengan tabel skema.

  • AWS Glue Crawler memungkinkan Anda menemukan data dalam partisi dengan skema yang berbeda. Ini berarti bahwa jika Anda membuat tabel di Athena dengan AWS Glue, setelah crawler selesai diproses, skema untuk tabel dan partisinya mungkin berbeda.

  • Jika Anda menambahkan partisi secara langsung menggunakan file AWS API.

Athena memproses tabel dengan partisi berhasil jika mereka memenuhi kendala berikut. Jika kendala ini tidak terpenuhi, Athena mengeluarkan kesalahan _ _ _. HIVE PARTITION SCHEMA MISMATCH

  • Setiap skema partisi kompatibel dengan skema tabel.

  • Format data tabel memungkinkan jenis pembaruan yang ingin Anda lakukan: menambah, menghapus, menyusun ulang kolom, atau mengubah jenis data kolom.

    Misalnya, untuk CSV dan TSV format, Anda dapat mengganti nama kolom, menambahkan kolom baru di akhir tabel, dan mengubah tipe data kolom jika jenisnya kompatibel, tetapi Anda tidak dapat menghapus kolom. Untuk format lain, Anda dapat menambahkan atau menghapus kolom, atau mengubah jenis data kolom yang lain jika jenis kompatibel. Untuk informasi selengkapnya, lihat Pembaruan dan Format Data di Athena.

Hindari kesalahan ketidakcocokan skema untuk tabel dengan partisi

Pada awal eksekusi kueri, Athena memverifikasi skema tabel dengan memeriksa bahwa setiap jenis data kolom kompatibel antara tabel dan partisi.

  • Untuk jenis Parket dan penyimpanan ORC data, Athena bergantung pada nama kolom dan menggunakannya untuk verifikasi skema berbasis nama kolomnya. Ini menghilangkan HIVE_PARTITION_SCHEMA_MISMATCH kesalahan untuk tabel dengan partisi di Parket dan. ORC (Ini berlaku untuk ORC jika SerDe properti disetel untuk mengakses indeks dengan nama:orc.column.index.access=FALSE. Parket membaca indeks dengan nama secara default).

  • UntukCSV,JSON, dan Avro, Athena menggunakan verifikasi skema berbasis indeks. Ini berarti bahwa jika Anda mengalami kesalahan ketidakcocokan skema, Anda harus drop partisi yang menyebabkan ketidakcocokan skema dan menciptakan itu, sehingga Athena dapat mengkueri tanpa gagal.

Athena membandingkan skema tabel untuk skema partisi. Jika Anda membuat tabel diCSV,JSON, dan AVRO di Athena dengan AWS Glue Crawler, setelah Crawler selesai diproses, skema untuk tabel dan partisinya mungkin berbeda. Jika ada ketidakcocokan antara skema tabel dan skema partisi, pertanyaan Anda gagal di Athena karena kesalahan verifikasi skema yang mirip dengan ini:'crawler_test.click_avro' dinyatakan sebagai tipe 'string', tetapi partisi 'partition_0=2017-01-17' menyatakan kolom 'col68' sebagai tipe 'double'.”

Solusi khas untuk kesalahan tersebut adalah untuk menjatuhkan partisi yang menyebabkan kesalahan dan menciptakan itu. Untuk informasi selengkapnya, silakan lihat ALTER TABLE DROP PARTITION dan ALTER TABLE ADD PARTITION.