Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Buat tabel untuk log ALB koneksi di Athena menggunakan proyeksi partisi
Karena log ALB koneksi memiliki struktur yang diketahui yang skema partisi dapat Anda tentukan sebelumnya, Anda dapat mengurangi runtime kueri dan mengotomatiskan manajemen partisi dengan menggunakan fitur proyeksi partisi Athena. Proyeksi partisi secara otomatis menambahkan partisi baru saat data baru ditambahkan. Ini menghapus kebutuhan bagi Anda untuk menambahkan partisi secara manual dengan menggunakanALTER TABLE ADD PARTITION
.
CREATE TABLE
Pernyataan contoh berikut secara otomatis menggunakan proyeksi partisi pada log ALB koneksi dari tanggal tertentu hingga saat ini untuk satu AWS wilayah. Pernyataan ini didasarkan pada contoh di bagian sebelumnya tetapi menambahkan PARTITIONED BY
dan TBLPROPERTIES
klausa untuk mengaktifkan proyeksi partisi. Di storage.location.template
klausa LOCATION
dan, ganti placeholder dengan nilai yang mengidentifikasi lokasi bucket Amazon S3 dari log koneksi Anda. ALB Untuk informasi selengkapnya tentang lokasi file log koneksi, lihat File log koneksi di Panduan Pengguna untuk Penyeimbang Beban Aplikasi. Untukprojection.day.range
, ganti 2023
/01
/01
dengan tanggal mulai yang ingin Anda gunakan. Setelah Anda menjalankan kueri dengan sukses, Anda dapat meminta tabel. Anda tidak perlu menjalankan ALTER TABLE ADD PARTITION
untuk memuat partisi. Untuk informasi tentang setiap bidang file log, lihat Entri log koneksi.
CREATE EXTERNAL TABLE IF NOT EXISTS alb_connection_logs ( time string, client_ip string, client_port int, listener_port int, tls_protocol string, tls_cipher string, tls_handshake_latency double, leaf_client_cert_subject string, leaf_client_cert_validity string, leaf_client_cert_serial_number string, tls_verify_status string, conn_trace_id string ) PARTITIONED BY ( day STRING ) ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.RegexSerDe' WITH SERDEPROPERTIES ( 'serialization.format' = '1', 'input.regex' = '([^ ]*) ([^ ]*) ([0-9]*) ([0-9]*) ([A-Za-z0-9.-]*) ([^ ]*) ([-.0-9]*) \"([^\"]*)\" ([^ ]*) ([^ ]*) ([^ ]*) ?([^ ]*)?( .*)?' ) LOCATION 's3://amzn-s3-demo-bucket/AWSLogs/
<ACCOUNT-NUMBER>
/elasticloadbalancing/<REGION>
/' TBLPROPERTIES ( "projection.enabled" = "true", "projection.day.type" = "date", "projection.day.range" = "2023/01/01,NOW", "projection.day.format" = "yyyy/MM/dd", "projection.day.interval" = "1", "projection.day.interval.unit" = "DAYS", "storage.location.template" = "s3://amzn-s3-demo-bucket/AWSLogs/<ACCOUNT-NUMBER>
/elasticloadbalancing/<REGION>
/${day}" )
Untuk informasi selengkapnya tentang proyek partisi, lihat Gunakan proyeksi partisi dengan Amazon Athena.