Memecahkan masalah di Athena - Amazon Athena

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

Memecahkan masalah di Athena

Tim Athena telah mengumpulkan informasi pemecahan masalah berikut dari masalah pelanggan. Meskipun tidak komprehensif, ini mencakup saran mengenai beberapa masalah kinerja umum, batas waktu, dan kehabisan memori.

CREATETABLESEBAGAI SELECT (CTAS)

Data duplikat terjadi dengan pernyataan bersamaan CTAS

Athena tidak mempertahankan validasi bersamaan untuk. CTAS Pastikan bahwa tidak ada CTAS pernyataan duplikat untuk lokasi yang sama pada saat yang sama. Bahkan jika INSERT INTO pernyataan CTAS atau gagal, data yatim piatu dapat ditinggalkan di lokasi data yang ditentukan dalam pernyataan.

HIVE_TOO_MANY_OPEN_PARTITIONS

Saat Anda menggunakan CTAS pernyataan untuk membuat tabel dengan lebih dari 100 partisi, Anda mungkin menerima kesalahan HIVE_ _ _ TOO MANY OPEN _PARTITIONS: Melebihi batas 100 penulis terbuka untuk partisi/ember. Untuk mengatasi batasan ini, Anda dapat menggunakan CTAS pernyataan dan serangkaian INSERT INTO pernyataan yang membuat atau menyisipkan hingga 100 partisi masing-masing. Untuk informasi selengkapnya, lihat Gunakan CTAS dan INSERT INTO untuk bekerja di sekitar batas partisi 100.

Masalah file data

Athena tidak dapat membaca file tersembunyi

Athena memperlakukan file sumber yang dimulai dengan garis bawah (_) atau titik (.) sebagai tersembunyi. Untuk mengatasi batasan ini, ganti nama file.

Athena membaca file yang saya kecualikan dari crawler AWS Glue

Athena tidak mengenali pola pengecualian yang Anda tentukan crawler. AWS Glue Misalnya, jika Anda memiliki bucket Amazon S3 yang berisi keduanya.csvdan.jsonfile dan Anda mengecualikan.jsonfile dari crawler, Athena mengkueri kedua grup file. Untuk menghindari hal ini, menempatkan file yang ingin Anda mengecualikan di lokasi yang berbeda.

HIVE_ BAD _DATA: Kesalahan penguraian nilai bidang

Kesalahan ini dapat terjadi dalam skenario berikut:

HIVE_ CANNOT _ OPEN _SPLIT: Kesalahan saat membuka pemisahan Hive s3://amzn-s3-demo-bucket

Kesalahan ini dapat terjadi saat Anda menanyakan awalan bucket Amazon S3 yang memiliki banyak objek. Untuk informasi lebih lanjut, lihat Bagaimana cara mengatasi kesalahan "HIVE_ _ CANNOT OPEN _SPLIT: Error opening Hive split s3://amzn-s3-demo-bucket/: Slow down” di Athena? di pusat AWS pengetahuan.

HIVE_ CURSOR _ERROR: com.amazonaws.services.s3.model.amazons3Exception: Kunci yang ditentukan tidak ada

Kesalahan ini biasanya terjadi ketika file dihapus ketika kueri sedang berjalan. Jalankan kembali kueri, atau periksa alur kerja Anda untuk melihat apakah pekerjaan atau proses lain memodifikasi file saat kueri sedang berjalan.

HIVE_ CURSOR _ERROR: Akhir aliran input yang tidak terduga

Pesan ini menunjukkan file rusak atau kosong. Periksa integritas file dan jalankan kembali kueri.

HIVE_ FILESYSTEM _ERROR: Salah fileSize 1234567 untuk berkas

Pesan ini dapat terjadi ketika file telah berubah antara perencanaan kueri dan eksekusi kueri. Biasanya terjadi ketika file di Amazon S3 diganti di tempat (misalnya, a PUT dilakukan pada kunci di mana objek sudah ada). Athena tidak mendukung penghapusan atau penggantian isi file saat kueri sedang berjalan. Untuk menghindari kesalahan ini, jadwalkan pekerjaan yang menimpa atau menghapus file pada saat kueri tidak berjalan, atau hanya menulis data ke file atau partisi baru.

HIVE_ UNKNOWN _ERROR: Tidak dapat membuat format masukan

Kesalahan ini dapat disebabkan oleh masalah seperti berikut:

  • AWS Glue Crawler tidak dapat mengklasifikasikan format data

  • Properti definisi AWS Glue tabel tertentu kosong

  • Athena tidak mendukung format data file di Amazon S3

Untuk informasi selengkapnya, lihat Bagaimana cara mengatasi kesalahan “tidak dapat membuat format input” di Athena? di Pusat AWS Pengetahuan atau tonton video Pusat Pengetahuan.

Lokasi S3 yang disediakan untuk menyimpan hasil kueri Anda tidak valid.

Pastikan Anda telah menentukan lokasi S3 yang valid untuk hasil kueri Anda. Untuk informasi selengkapnya, lihat Tentukan lokasi hasil kueri dalam topik Bekerja dengan hasil kueri dan kueri terbaru.

Tabel Delta Lake Yayasan Linux

Skema tabel Delta Lake tidak sinkron

Saat Anda menanyakan tabel Delta Lake yang memiliki skema AWS Glue yang sudah usang, Anda dapat menerima pesan galat berikut:

INVALID_GLUE_SCHEMA: Delta Lake table schema in Glue does not match the most recent schema of the Delta Lake transaction log. Please ensure that you have the correct schema defined in Glue.

Skema dapat menjadi usang jika dimodifikasi AWS Glue setelah ditambahkan ke Athena. Untuk memperbarui skema, lakukan salah satu langkah berikut:

Pertanyaan federasi

Batas waktu saat menelepon ListTableMetadata

Panggilan ke batas waktu ListTableMetadataAPIkaleng jika ada banyak tabel di sumber data, jika sumber data lambat, atau jika jaringan lambat. Untuk memecahkan masalah ini, coba langkah-langkah berikut.

  • Periksa jumlah tabel — Jika Anda memiliki lebih dari 1000 tabel, coba kurangi jumlah tabel. Untuk ListTableMetadata respons tercepat, kami sarankan memiliki kurang dari 1000 tabel per katalog.

  • Periksa konfigurasi Lambda - Memantau perilaku fungsi Lambda sangat penting. Saat Anda menggunakan katalog federasi, pastikan untuk memeriksa log eksekusi fungsi Lambda. Berdasarkan hasil, sesuaikan nilai memori dan batas waktu yang sesuai. Untuk mengidentifikasi potensi masalah dengan batas waktu, kunjungi kembali konfigurasi Lambda Anda. Untuk informasi selengkapnya, lihat Mengonfigurasi batas waktu fungsi (konsol) di Panduan AWS Lambda Pengembang.

  • Periksa log sumber data federasi — Periksa log dan pesan kesalahan dari sumber data federasi untuk melihat apakah ada masalah atau kesalahan. Log dapat memberikan wawasan berharga tentang penyebab batas waktu.

  • Gunakan StartQueryExecution untuk mengambil metadata — Jika Anda memiliki lebih dari 1000 tabel, dibutuhkan waktu lebih lama dari yang diharapkan untuk mengambil metadata menggunakan konektor federasi Anda. Karena sifat asinkron memastikan StartQueryExecutionbahwa Athena menjalankan kueri dengan cara yang paling optimal, pertimbangkan untuk menggunakan StartQueryExecution sebagai alternatif untuk. ListTableMetadata AWS CLI Contoh berikut menunjukkan bagaimana StartQueryExecution bisa digunakan bukan ListTableMetadata untuk mendapatkan semua metadata tabel dalam katalog data Anda.

    Pertama, jalankan query yang mendapatkan semua tabel, seperti pada contoh berikut.

    aws athena start-query-execution --region us-east-1 \ --query-string "SELECT table_name FROM information_schema.tables LIMIT 50" \ --work-group "your-work-group-name"

    Selanjutnya, ambil metadata tabel individual, seperti pada contoh berikut.

    aws athena start-query-execution --region us-east-1 \ --query-string "SELECT * FROM information_schema.columns \ WHERE table_name = 'your-table-name' AND \ table_catalog = 'your-catalog-name'" \ --work-group "your-work-group-name"

    Waktu yang dibutuhkan untuk mendapatkan hasil tergantung pada jumlah tabel dalam katalog Anda.

Untuk informasi selengkapnya tentang pemecahan masalah kueri gabungan, lihat Common_Problems di aws-athena-query-federation bagian awslabs/, GitHub atau lihat dokumentasi untuk masing-masing konektor sumber data Athena.

NULLatau kesalahan data yang salah saat mencoba membaca JSON data

NULLatau kesalahan data yang salah saat Anda mencoba membaca JSON data dapat disebabkan oleh sejumlah penyebab. Untuk mengidentifikasi garis yang menyebabkan kesalahan saat Anda menggunakan OpenX SerDe, atur ignore.malformed.json ke. true Catatan cacat akan kembali sebagaiNULL. Untuk informasi lebih lanjut, lihat Saya mendapatkan kesalahan ketika saya mencoba membaca JSON data di Amazon Athena di Pusat AWS Pengetahuan atau menonton video Pusat Pengetahuan.

HIVE_ BAD _DATA: Kesalahan mengurai nilai bidang untuk bidang 0: java.lang.String tidak dapat dilemparkan ke org.openx.data.jsonserde.json. JSONObject

Ini OpenX JSON SerDe melempar kesalahan ini ketika gagal mengurai kolom dalam kueri Athena. Ini bisa terjadi jika Anda mendefinisikan kolom sebagai map ataustruct, tetapi data yang mendasarinya sebenarnya adalahstring,int, atau tipe primitif lainnya.

HIVE_ CURSOR _ERROR: Baris bukan JSON objek yang valid -JSONException: Kunci duplikat

Kesalahan ini terjadi ketika Anda menggunakan Athena untuk menanyakan AWS Config sumber daya yang memiliki beberapa tag dengan nama yang sama dalam kasus yang berbeda. Solusinya adalah menjalankan CREATE TABLE menggunakan WITH SERDEPROPERTIES 'case.insensitive'='false' dan memetakan nama. Untuk informasi tentang case.insensitive dan pemetaan, lihatJSON SerDe perpustakaan. Untuk informasi lebih lanjut, lihat Bagaimana cara menyelesaikan "HIVE_ CURSOR _ERROR: Baris bukan JSON objek yang valid -JSONException: Kunci duplikat” saat membaca file dari AWS Config Athena? di pusat AWS pengetahuan.

HIVE_ CURSOR _ ERROR pesan dengan cetak cantik JSON

OpenX JSON SerDePustaka Sarang JSON SerDe dan mengharapkan setiap JSON dokumen berada pada satu baris teks tanpa karakter penghentian baris yang memisahkan bidang dalam catatan. Jika JSON teks dalam format cetak yang cantik, Anda mungkin menerima pesan kesalahan seperti HIVE_ CURSOR _ERROR: Baris bukan JSON Objek yang valid atau HIVE_ CURSOR _ERROR: JsonParseException: Tidak terduga end-of-input: penanda tutup yang diharapkan OBJECT saat Anda mencoba menanyakan tabel setelah Anda membuatnya. Untuk informasi selengkapnya, lihat file JSON data dalam SerDe dokumentasi OpenX pada. GitHub

Beberapa JSON catatan SELECT COUNT mengembalikan 1

Jika Anda menggunakanOpenX JSON SerDe, pastikan bahwa catatan dipisahkan oleh karakter baris baru. Untuk informasi selengkapnya, lihat SELECTCOUNTKueri di Amazon Athena hanya menampilkan satu catatan meskipun JSON file input memiliki beberapa catatan di Pusat AWS Pengetahuan.

Tidak dapat menanyakan tabel yang dibuat oleh AWS Glue crawler yang menggunakan pengklasifikasi kustom JSON

Mesin Athena tidak mendukung pengklasifikasi khusus JSON. Untuk mengatasi masalah ini, buat tabel baru tanpa pengklasifikasi khusus. Untuk mengubahJSON, Anda dapat menggunakan CTAS atau membuat tampilan. Misalnya, jika Anda bekerja dengan array, Anda dapat menggunakan UNNEST opsi untuk meratakan. JSON Pilihan lain adalah menggunakan AWS Glue ETL pekerjaan yang mendukung pengklasifikasi khusus, mengonversi data menjadi parket di Amazon S3, dan kemudian menanyakannya di Athena.

MSCK REPAIR TABLE

Untuk informasi tentang masalah MSCK REPAIR TABLE terkait, lihat Pemecahan Masalah bagian Pertimbangan dan batasan dan MSCK REPAIR TABLE halaman.

Masalah keluaran

Tidak dapat memverifikasi/membuat bucket keluaran

Kesalahan ini dapat terjadi jika lokasi hasil kueri yang ditentukan tidak ada atau jika izin yang tepat tidak ada. Untuk informasi selengkapnya, lihat Bagaimana cara mengatasi kesalahan “tidak dapat memverifikasi/membuat bucket keluaran” di Amazon Athena? di pusat AWS pengetahuan.

TIMESTAMPhasilnya kosong

Athena membutuhkan format JavaTIMESTAMP. Untuk informasi selengkapnya, lihat Ketika saya menanyakan tabel di Amazon Athena, TIMESTAMP hasilnya kosong di Pusat AWS Pengetahuan.

Simpan output kueri Athena dalam format selain CSV

Secara default, Athena hanya mengeluarkan file dalam CSV format. Untuk menampilkan hasil SELECT kueri dalam format yang berbeda, Anda dapat menggunakan UNLOAD pernyataan tersebut. Untuk informasi selengkapnya, lihat UNLOAD. Anda juga dapat menggunakan CTAS kueri yang menggunakan properti format tabel untuk mengkonfigurasi format output. Tidak sepertiUNLOAD, CTAS teknik ini membutuhkan pembuatan tabel. Untuk informasi selengkapnya, lihat Bagaimana cara menyimpan output kueri Athena dalam format selainCSV, seperti format terkompresi? di pusat AWS pengetahuan.

Lokasi S3 yang disediakan untuk menyimpan hasil kueri Anda tidak valid

Anda dapat menerima pesan galat ini jika lokasi bucket keluaran tidak berada di Region yang sama dengan Region tempat Anda menjalankan kueri. Untuk menghindari hal ini, tentukan lokasi hasil kueri di Wilayah tempat Anda menjalankan kueri. Untuk langkah, lihat Tentukan lokasi hasil kueri.

Masalah parket

org.apache.parquet.io. GroupColumnIO tidak dapat dilemparkan ke org.apache.parquet.io. PrimitiveColumnIO

Kesalahan ini disebabkan oleh ketidakcocokan skema parket. Kolom yang memiliki tipe non-primitif (misalnya,array) telah dideklarasikan sebagai tipe primitif (misalnya,string) di. AWS Glue Untuk memecahkan masalah ini, periksa skema data dalam file dan bandingkan dengan skema yang dideklarasikan. AWS Glue

Masalah statistik parket

Ketika Anda membaca data Parket, Anda mungkin menerima pesan kesalahan seperti berikut:

HIVE_CANNOT_OPEN_SPLIT: Index x out of bounds for length y HIVE_CURSOR_ERROR: Failed to read x bytes HIVE_CURSOR_ERROR: FailureException at Malformed input: offset=x HIVE_CURSOR_ERROR: FailureException at java.io.IOException: can not read class org.apache.parquet.format.PageHeader: Socket is closed by peer.

Untuk mengatasi masalah ini, gunakan ALTER TABLE SET TBLPROPERTIES pernyataan CREATE TABLE or untuk menyetel SerDe parquet.ignore.statistics properti Parkettrue, seperti pada contoh berikut.

CREATETABLEcontoh

... ROW FORMAT SERDE 'org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDe' WITH SERDEPROPERTIES ('parquet.ignore.statistics'='true') STORED AS PARQUET ...

ALTERTABLEcontoh

ALTER TABLE ... SET TBLPROPERTIES ('parquet.ignore.statistics'='true')

Untuk informasi lebih lanjut tentang Parquet Hive SerDe, lihat. Parket SerDe

Masalah partisi

MSCKREPAIRTABLEtidak menghapus partisi basi

Jika Anda menghapus partisi secara manual di Amazon S3 dan kemudian menjalankannya MSCK REPAIRTABLE, Anda mungkin menerima pesan kesalahan Partisi hilang dari sistem file. Ini terjadi karena MSCK REPAIR TABLE tidak menghapus partisi basi dari metadata tabel. Gunakan ALTER TABLE DROP PARTITION untuk menghapus partisi basi secara manual. Untuk informasi selengkapnya, lihat bagian “Pemecahan Masalah” pada topik. MSCK REPAIR TABLE

MSCKREPAIRTABLEkegagalan

Ketika sejumlah besar partisi (misalnya, lebih dari 100.000) dikaitkan dengan tabel tertentu, MSCK REPAIR TABLE dapat gagal karena keterbatasan memori. Untuk mengatasi batas ini, gunakan ALTER TABLE ADD PARTITION sebagai gantinya.

MSCKREPAIRTABLEmendeteksi partisi tetapi tidak menambahkannya AWS Glue

Masalah ini dapat terjadi jika jalur Amazon S3 dalam kasus unta, bukan huruf kecil atau IAM kebijakan tidak mengizinkan tindakan tersebut. glue:BatchCreatePartition Untuk informasi lebih lanjut, lihat MSCKREPAIRTABLEmendeteksi partisi di Athena tetapi tidak menambahkannya ke AWS Glue Data Catalog dalam Pusat Pengetahuan. AWS

Rentang proyeksi partisi dengan format tanggal DD-MM-YYYY-HH-MM-SS atau YYYY-MM-DD tidak berfungsi

Agar berfungsi dengan benar, format tanggal harus diatur keyyyy-MM-dd HH:00:00. Untuk informasi selengkapnya, lihat Proyeksi partisi Stack Overflow post Athena tidak berfungsi seperti yang diharapkan.

PARTITIONBY tidak mendukung BIGINT tipe

Ubah tipe data ke string dan coba lagi.

Tidak ada partisi yang berarti tersedia

Pesan kesalahan ini biasanya berarti pengaturan partisi telah rusak. Untuk mengatasi masalah ini, jatuhkan tabel dan buat tabel dengan partisi baru.

Proyeksi partisi tidak bekerja bersama dengan partisi rentang

Periksa apakah proyeksi unit rentang waktu.<columnName>.interval.unit cocok dengan pembatas untuk partisi. Misalnya, jika partisi dibatasi oleh hari, maka satuan rentang jam tidak akan berfungsi.

Kesalahan proyeksi partisi ketika rentang ditentukan oleh tanda hubung

Menentukan properti range tabel dengan tanda hubung alih-alih koma menghasilkan kesalahan seperti INVALID _ TABLE _PROPERTY: Untuk string input:”number-number. Pastikan bahwa nilai rentang dipisahkan oleh koma, bukan tanda hubung. Untuk informasi selengkapnya, lihat Jenis bilangan bulat.

HIVE_ UNKNOWN _ERROR: Tidak dapat membuat format masukan

Satu atau lebih partisi lem dinyatakan dalam format yang berbeda karena setiap partisi lem memiliki format input spesifiknya sendiri secara independen. Silakan periksa bagaimana partisi Anda didefinisikan dalam AWS Glue.

HIVE_PARTITION_SCHEMA_MISMATCH

Jika skema partisi berbeda dari skema tabel, kueri dapat gagal dengan pesan kesalahan HIVE_ _ PARTITION _ SCHEMA. MISMATCH

Untuk setiap tabel dalam Katalog AWS Glue Data yang memiliki kolom partisi, skema disimpan pada tingkat tabel dan untuk setiap partisi individu dalam tabel. Skema untuk partisi diisi oleh AWS Glue crawler berdasarkan sampel data yang dibaca dalam partisi.

Saat Athena menjalankan kueri, itu memvalidasi skema tabel dan skema dari setiap partisi yang diperlukan untuk kueri. validasi membandingkan jenis data kolom dalam rangka dan memastikan bahwa mereka cocok untuk kolom yang tumpang tindih. Ini mencegah operasi tak terduga seperti menambahkan atau menghapus kolom dari tengah tabel. Jika Athena mendeteksi bahwa skema partisi berbeda dari skema tabel, Athena mungkin tidak dapat memproses kueri dan gagal denganHIVE_PARTITION_SCHEMA_MISMATCH.

Ada beberapa cara untuk memperbaiki masalah ini. Pertama, jika data tidak sengaja ditambahkan, Anda dapat menghapus file data yang menyebabkan perbedaan dalam skema, menjatuhkan partisi, dan re-crawl data. Kedua, Anda dapat drop partisi individu dan kemudian jalankanMSCK REPAIRdalam Athena untuk menciptakan kembali partisi menggunakan skema tabel ini. Opsi kedua ini bekerja hanya jika Anda yakin bahwa skema diterapkan akan terus membaca data dengan benar.

SemanticException tabel tidak dipartisi tetapi spesifikasi partisi ada

Kesalahan ini dapat terjadi ketika tidak ada partisi yang didefinisikan dalam CREATE TABLE pernyataan. Untuk informasi lebih lanjut, lihat Bagaimana saya bisa memecahkan masalah kesalahan "FAILED: SemanticException tabel tidak dipartisi tetapi spesifikasi partisi ada” di Athena? di pusat AWS pengetahuan.

_$folder$File byte nol

Jika Anda menjalankan ALTER TABLE ADD PARTITION pernyataan dan salah menentukan partisi yang sudah ada dan lokasi Amazon S3 yang salah, file placeholder nol byte dari partition_value_$folder$ format dibuat di Amazon S3. Anda harus menghapus file-file ini secara manual.

Untuk mencegah hal ini terjadi, gunakan ADD IF NOT EXISTS sintaks dalam ALTER TABLE ADD PARTITION pernyataan Anda, seperti ini:

ALTER TABLE table_name ADD IF NOT EXISTS PARTITIION […]

Nol catatan dikembalikan dari data yang dipartisi

Masalah ini dapat terjadi karena berbagai alasan. Untuk kemungkinan penyebab dan resolusi, lihat Saya membuat tabel di Amazon Athena dengan partisi yang ditentukan, tetapi ketika saya menanyakan tabel, nol catatan dikembalikan di AWS Pusat Pengetahuan.

Lihat juga HIVE_TOO_MANY_OPEN_PARTITIONS.

Izin

Kesalahan akses ditolak saat menanyakan Amazon S3

Hal ini dapat terjadi jika Anda tidak memiliki izin untuk membaca data di bucket, izin untuk menulis ke bucket hasil, atau jalur Amazon S3 berisi titik akhir Wilayah seperti. us-east-1.amazonaws.com Untuk informasi selengkapnya, lihat Ketika saya menjalankan kueri Athena, saya mendapatkan kesalahan “akses ditolak” di Pusat AWS Pengetahuan.

Akses ditolak dengan kode status: Kesalahan 403 saat menjalankan DDL kueri pada data terenkripsi di Amazon S3

Ketika Anda mungkin menerima pesan kesalahan Akses Ditolak (Layanan: Amazon S3; Kode Status: 403; Kode Kesalahan:; Permintaan ID: AccessDenied <request_id>) jika kondisi berikut benar:

  1. Anda menjalankan DDL kueri seperti ALTER TABLE ADD PARTITION atauMSCK REPAIR TABLE.

  2. Anda memiliki bucket yang memiliki enkripsi default yang dikonfigurasi untuk digunakanSSE-S3.

  3. Bucket juga memiliki kebijakan bucket seperti berikut ini yang memaksa PutObject permintaan untuk menentukan PUT header "s3:x-amz-server-side-encryption": "true" dan"s3:x-amz-server-side-encryption": "AES256".

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Principal": "*", "Action": "s3:PutObject", "Resource": "arn:aws:s3:::<resource-name>/*", "Condition": { "Null": { "s3:x-amz-server-side-encryption": "true" } } }, { "Effect": "Deny", "Principal": "*", "Action": "s3:PutObject", "Resource": "arn:aws:s3:::<resource-name>/*", "Condition": { "StringNotEquals": { "s3:x-amz-server-side-encryption": "AES256" } } } ] }

Dalam kasus seperti ini, solusi yang disarankan adalah menghapus kebijakan bucket seperti yang di atas mengingat enkripsi default bucket sudah ada.

Akses ditolak dengan kode status: 403 saat menanyakan bucket Amazon S3 di akun lain

Kesalahan ini dapat terjadi ketika Anda mencoba menanyakan log yang ditulis oleh orang lain Layanan AWS dan akun kedua adalah pemilik bucket tetapi tidak memiliki objek di ember. Untuk informasi lebih lanjut, lihat saya mendapatkan pengecualian Amazon S3 “akses ditolak dengan kode status: 403" di Amazon Athena ketika saya menanyakan ember di akun lain di Pusat Pengetahuan atau menonton video Pusat AWS Pengetahuan.

Gunakan kredensi IAM peran untuk terhubung ke driver Athena JDBC

Anda dapat mengambil kredensi sementara peran untuk mengautentikasi koneksi JDBC ke Athena. Kredensi sementara memiliki umur maksimum 12 jam. Untuk informasi selengkapnya, lihat Bagaimana cara menggunakan kredensyal IAM peran saya atau beralih ke IAM peran lain saat menghubungkan ke Athena menggunakan driver? JDBC di pusat AWS pengetahuan.

Masalah sintaks kueri

FAILED: NullPointerException nama adalah null

Jika Anda menggunakan AWS Glue CreateTableAPIoperasi atau AWS CloudFormation AWS::Glue::Tabletemplate untuk membuat tabel untuk digunakan di Athena tanpa menentukan TableType properti dan kemudian menjalankan DDL kueri seperti SHOW CREATE TABLE atauMSCK REPAIR TABLE, Anda dapat menerima pesan galat FAILED: NullPointerException Nama adalah null.

Untuk mengatasi kesalahan, tentukan nilai untuk TableInputTableTypeatribut sebagai bagian dari AWS Glue CreateTable API panggilan atau AWS CloudFormation templat. Nilai yang mungkin untuk TableType include EXTERNAL_TABLE atauVIRTUAL_VIEW.

Persyaratan ini hanya berlaku ketika Anda membuat tabel menggunakan AWS Glue CreateTable API operasi atau AWS::Glue::Table template. Jika Anda membuat tabel untuk Athena menggunakan DDL pernyataan atau AWS Glue crawler, TableType properti ditentukan untuk Anda secara otomatis.

Fungsi tidak terdaftar

Kesalahan ini terjadi ketika Anda mencoba menggunakan fungsi yang tidak didukung Athena. Untuk daftar fungsi yang didukung Athena, lihat Fungsi di Amazon Athena atau jalankan SHOW FUNCTIONS pernyataan di Editor Kueri. Anda juga dapat menulis fungsi yang ditentukan pengguna Anda sendiri (UDF). Untuk informasi selengkapnya, lihat Bagaimana cara mengatasi kesalahan sintaks “fungsi tidak terdaftar” di Athena? di pusat AWS pengetahuan.

GENERIC_ INTERNAL _ ERROR pengecualian

GENERIC_INTERNAL_ERRORpengecualian dapat memiliki berbagai penyebab, termasuk yang berikut:

  • GENERIC_ INTERNAL _ERROR: Null — Anda mungkin melihat pengecualian ini di bawah salah satu dari kondisi berikut:

    • Anda memiliki ketidakcocokan skema antara tipe data kolom dalam definisi tabel dan tipe data aktual dari kumpulan data.

    • Anda menjalankan kueri CREATE TABLE AS SELECT (CTAS) dengan sintaks yang tidak akurat.

  • GENERIC_ INTERNAL _ERROR: Pembuat induk adalah nol - Anda mungkin melihat pengecualian ini saat Anda menanyakan tabel dengan kolom tipe dataarray, dan Anda menggunakan pustaka O penCSVSer De. penCSVSerde Format O tidak mendukung tipe array data.

  • GENERIC_ INTERNAL _ERROR: Nilai melebihi MAX _ INT — Anda mungkin melihat pengecualian ini ketika kolom data sumber ditentukan dengan tipe data INT dan memiliki nilai numerik lebih besar dari 2.147.483.647.

  • GENERIC_ INTERNAL _ERROR: Nilai melebihi MAX _ BYTE — Anda mungkin melihat pengecualian ini ketika kolom data sumber memiliki nilai numerik melebihi ukuran yang diizinkan untuk tipe data. BYTE Tipe data BYTE setara denganTINYINT. TINYINTadalah bilangan bulat bertanda 8-bit dalam format komplemen dua dengan nilai minimum -128 dan nilai maksimum 127.

  • GENERIC_ INTERNAL _ERROR: Jumlah nilai partisi tidak cocok dengan jumlah filter - Anda mungkin melihat pengecualian ini jika Anda memiliki partisi yang tidak konsisten pada data Amazon Simple Storage Service (Amazon S3). Anda mungkin memiliki partisi yang tidak konsisten di bawah salah satu dari kondisi berikut:

    • Partisi di Amazon S3 telah berubah (contoh: partisi baru ditambahkan).

    • Jumlah kolom partisi dalam tabel tidak cocok dengan yang ada di metadata partisi.

Untuk informasi lebih rinci tentang masing-masing kesalahan ini, lihat Bagaimana cara mengatasi kesalahan "GENERIC_ INTERNAL _ERROR" ketika saya menanyakan tabel di Amazon Athena? di pusat AWS pengetahuan.

Jumlah grup yang cocok tidak cocok dengan jumlah kolom

Kesalahan ini terjadi ketika Anda menggunakan Regex SerDe dalam CREATE TABLE pernyataan dan jumlah grup pencocokan regex tidak cocok dengan jumlah kolom yang Anda tentukan untuk tabel. Untuk informasi selengkapnya, lihat Bagaimana cara mengatasi RegexSerDe kesalahan “jumlah grup yang cocok tidak cocok dengan jumlah kolom” di Amazon Athena? di pusat AWS pengetahuan.

queryString gagal memenuhi kendala: Anggota harus memiliki panjang kurang dari atau sama dengan 262144

Panjang string kueri maksimum di Athena (262.144 byte) bukanlah kuota yang dapat disesuaikan. AWS Support tidak dapat menambah kuota untuk Anda, tetapi Anda dapat mengatasi masalah dengan membagi kueri panjang menjadi yang lebih kecil. Untuk informasi selengkapnya, lihatBagaimana cara meningkatkan panjang string kueri maksimum di Athena?di AWS Pusat Pengetahuan.

SYNTAX_ERROR: Kolom tidak dapat diselesaikan

Kesalahan ini dapat terjadi ketika Anda menanyakan tabel yang dibuat oleh AWS Glue crawler dari CSV file UTF -8 yang dikodekan yang memiliki tanda urutan byte (). BOM AWS Glue tidak mengenali BOMs dan mengubahnya menjadi tanda tanya, yang tidak dikenali Amazon Athena. Solusinya adalah menghapus tanda tanya di Athena atau di. AWS Glue

Terlalu banyak argumen untuk panggilan fungsi

Di mesin Athena versi 3, fungsi tidak dapat mengambil lebih dari 127 argumen. Keterbatasan ini berdasarkan desain. Jika Anda menggunakan fungsi dengan lebih dari 127 parameter, pesan kesalahan seperti berikut terjadi:

TOO_ MANY _ARGUMENTS: baris nnn:nn: Terlalu banyak argumen untuk panggilan fungsi function_name().

Untuk mengatasi masalah ini, gunakan lebih sedikit parameter per panggilan fungsi.

Masalah batas waktu kueri

Jika Anda mengalami kesalahan batas waktu dengan kueri Athena Anda, periksa log Anda. CloudTrail Kueri dapat habis karena pembatasan atau Lake AWS Glue Formation. APIs Ketika kesalahan ini terjadi, pesan kesalahan terkait dapat menunjukkan masalah batas waktu kueri daripada masalah pelambatan. Untuk memecahkan masalah ini, Anda dapat memeriksa CloudTrail log Anda sebelum menghubungi. AWS Support Untuk informasi selengkapnya, silakan lihat Kueri AWS CloudTrail log dan Log panggilan Amazon Athena API dengan AWS CloudTrail.

Untuk informasi tentang masalah batas waktu kueri dengan kueri gabungan saat Anda memanggil, lihat. ListTableMetadata API Batas waktu saat menelepon ListTableMetadata

Masalah pelambatan

Jika kueri Anda melebihi batas layanan dependen seperti Amazon S3 AWS KMS,, AWS Glue, AWS Lambda atau, pesan berikut dapat diharapkan. Untuk mengatasi masalah ini, kurangi jumlah panggilan bersamaan yang berasal dari akun yang sama.

Layanan Pesan kesalahan
AWS Glue AWSGlueException: Tarif terlampaui.
AWS KMS Anda telah melampaui tingkat di mana Anda dapat meneleponKMS. Kurangi frekuensi panggilan Anda.
AWS Lambda

Tingkat terlampaui

TooManyRequestsException

Amazon S3 Amazons3Exception: Harap kurangi tingkat permintaan Anda.

Untuk informasi tentang cara mencegah pelambatan Amazon S3 saat Anda menggunakan Athena, lihat. Cegah pelambatan Amazon S3

Tampilan

Tampilan yang dibuat di shell Apache Hive tidak berfungsi di Athena

Karena implementasinya yang berbeda secara fundamental, tampilan yang dibuat di Apache Hive shell tidak kompatibel dengan Athena. Untuk mengatasi masalah ini, buat kembali tampilan di Athena.

Tampilan sudah basi; itu harus dibuat ulang

Anda dapat menerima kesalahan ini jika tabel yang mendasari tampilan telah diubah atau dijatuhkan. Resolusinya adalah untuk menciptakan kembali tampilan. Untuk informasi lebih lanjut, lihat Bagaimana cara mengatasi kesalahan “tampilan sudah basi; itu harus dibuat ulang” di Athena? di pusat AWS pengetahuan.

Kelompok kerja

Untuk informasi tentang pemecahan masalah grup kerja, lihat. Memecahkan masalah kesalahan kelompok kerja

Sumber daya tambahan

Halaman-halaman berikut memberikan informasi tambahan untuk mengatasi masalah dengan Amazon Athena.

AWS Sumber daya berikut juga dapat membantu:

Pemecahan masalah sering membutuhkan permintaan berulang dan penemuan oleh seorang ahli atau dari komunitas pembantu. Jika Anda terus mengalami masalah setelah mencoba saran di halaman ini, hubungi AWS Support (di, klik Support AWS Management Console, Support Center) atau ajukan pertanyaan di AWS re:post menggunakan tag Amazon Athena.