Pilih preferensi cookie Anda

Kami menggunakan cookie penting serta alat serupa yang diperlukan untuk menyediakan situs dan layanan. Kami menggunakan cookie performa untuk mengumpulkan statistik anonim sehingga kami dapat memahami cara pelanggan menggunakan situs dan melakukan perbaikan. Cookie penting tidak dapat dinonaktifkan, tetapi Anda dapat mengklik “Kustom” atau “Tolak” untuk menolak cookie performa.

Jika Anda setuju, AWS dan pihak ketiga yang disetujui juga akan menggunakan cookie untuk menyediakan fitur situs yang berguna, mengingat preferensi Anda, dan menampilkan konten yang relevan, termasuk iklan yang relevan. Untuk menerima atau menolak semua cookie yang tidak penting, klik “Terima” atau “Tolak”. Untuk membuat pilihan yang lebih detail, klik “Kustomisasi”.

Langkah 2: Buat Tabel

Mode fokus
Langkah 2: Buat Tabel - Amazon Athena

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

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

Setelah kini memiliki basis data, Anda dapat membuat tabel Athena untuk itu. Tabel yang Anda buat akan didasarkan pada sampel data CloudFront log Amazon di lokasis3://athena-examples-myregion/cloudfront/plaintext/, di mana myregion Anda saat ini Wilayah AWS.

Data log sampel dalam format nilai (TSV) yang dipisahkan tab, yang berarti bahwa karakter tab digunakan sebagai pembatas untuk memisahkan bidang. Data akan terlihat seperti berikut contoh berikut. Untuk keterbacaan, tab dalam kutipan telah dikonversi ke spasi dan bidang akhir dipersingkat.

2014-07-05 20:00:09 DFW3 4260 10.0.0.15 GET eabcd12345678.cloudfront.net /test-image-1.jpeg 200 - Mozilla/5.0[...] 2014-07-05 20:00:09 DFW3 4252 10.0.0.15 GET eabcd12345678.cloudfront.net /test-image-2.jpeg 200 - Mozilla/5.0[...] 2014-07-05 20:00:10 AMS1 4261 10.0.0.15 GET eabcd12345678.cloudfront.net /test-image-3.jpeg 200 - Mozilla/5.0[...]

Untuk mengaktifkan Athena membaca data ini, Anda dapat membuat CREATE EXTERNAL TABLE pernyataan langsung seperti berikut ini. Pernyataan yang membuat tabel mendefinisikan kolom yang memetakan ke data, menentukan bagaimana data dibatasi, dan menentukan lokasi Amazon S3 yang berisi data sampel. Perhatikan bahwa karena Athena mengharapkan untuk memindai semua file dalam folder, LOCATION klausa menentukan lokasi folder Amazon S3, bukan file tertentu.

Jangan gunakan contoh ini dulu karena memiliki batasan penting yang akan segera dijelaskan.

CREATE EXTERNAL TABLE IF NOT EXISTS cloudfront_logs ( `Date` DATE, Time STRING, Location STRING, Bytes INT, RequestIP STRING, Method STRING, Host STRING, Uri STRING, Status INT, Referrer STRING, ClientInfo STRING ) ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t' LINES TERMINATED BY '\n' LOCATION 's3://athena-examples-my-region/cloudfront/plaintext/';

Contoh membuat tabel yang disebut cloudfront_logs dan menentukan nama dan tipe data untuk setiap bidang. Bidang ini menjadi kolom dalam tabel. Karena date merupakan kata yang dicadangkan, itu lolos dengan karakter backtick (`). ROW FORMAT DELIMITEDberarti Athena akan menggunakan pustaka default yang dipanggil LazySimpleSerDeuntuk melakukan pekerjaan sebenarnya dari parsing data. Contoh ini juga menetapkan bahwa bidang dipisahkan tab (FIELDS TERMINATED BY '\t') dan bahwa setiap catatan dalam file berakhir dalam karakter baris baru (LINES TERMINATED BY '\n). Terakhir, klausa LOCATION menentukan jalur di Amazon S3, tempat data aktual yang akan dibaca berada.

Jika Anda memiliki tab sendiri atau data yang dipisahkan koma, Anda dapat menggunakan CREATE TABLE pernyataan seperti contoh yang baru saja disajikan—selama bidang Anda tidak berisi informasi bersarang. Namun, jika Anda memiliki kolom seperti ClientInfo itu berisi informasi bersarang yang menggunakan pembatas berbeda, diperlukan pendekatan yang berbeda.

Mengekstrak data dari lapangan ClientInfo

Melihat data sampel, berikut adalah contoh lengkap dari bidang akhirClientInfo:

Mozilla/5.0%20(Android;%20U;%20Windows%20NT%205.1;%20en-US;%20rv:1.9.0.9)%20Gecko/2009040821%20IE/3.0.9

Seperti yang bisa Anda lihat, bidang ini memiliki beberapa nilai. Karena CREATE TABLE pernyataan contoh yang baru saja disajikan menentukan tab sebagai pembatas bidang, itu tidak dapat memecah komponen terpisah di dalam ClientInfo bidang menjadi kolom terpisah. Jadi, diperlukan CREATE TABLE pernyataan baru.

Untuk membuat kolom dari nilai di dalam ClientInfo bidang, Anda dapat menggunakan ekspresi reguler (regex) yang berisi grup regex. grup regex yang Anda tentukan menjadi kolom tabel terpisah. Untuk menggunakan regex di pernyataan CREATE TABLE, gunakan sintaks seperti berikut. Sintaks ini menginstruksikan Athena untuk menggunakan Regex SerDe dan ekspresi reguler yang Anda tentukan.

ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.RegexSerDe' WITH SERDEPROPERTIES ("input.regex" = "regular_expression")

Ekspresi reguler dapat berguna untuk membuat tabel dari kompleks CSV atau TSV data tetapi bisa sulit untuk ditulis dan dipelihara. Untungnya, ada perpustakaan lain yang dapat Anda gunakan untuk format sepertiJSON, Parket, dan. ORC Untuk informasi selengkapnya, lihat Pilih SerDe untuk data Anda.

Sekarang Anda siap untuk membuat tabel di editor kueri Athena. Pernyataan dan regex CREATE TABLE disediakan untuk Anda.

Untuk membuat tabel di Athena
  1. Di panel navigasi, untuk Database, pastikan yang mydatabase dipilih.

  2. Untuk memberi diri Anda lebih banyak ruang di editor kueri, Anda dapat memilih ikon panah untuk menutup panel navigasi.

    Pilih panah untuk menciutkan panel navigasi.
  3. Untuk membuat tab untuk kueri baru, pilih tanda plus (+) di editor kueri. Anda dapat membuka hingga sepuluh tab kueri sekaligus.

    Pilih ikon plus untuk membuat kueri baru.
  4. Untuk menutup satu atau beberapa tab kueri, pilih panah di sebelah tanda plus. Untuk menutup semua tab sekaligus, pilih panah, lalu pilih Tutup semua tab.

    Pilih ikon panah untuk menutup satu atau beberapa tab kueri.
  5. Dalam panel kueri, masukkan persyaratan CREATE EXTERNAL TABLE berikut. Regex memecahkan sistem operasi, browser, dan informasi versi browser dari bidang ClientInfo di data log.

    catatan

    Regex yang digunakan dalam contoh berikut dirancang untuk bekerja dengan data CloudFront log sampel yang tersedia untuk umum di lokasi athena-examples Amazon S3 dan hanya ilustratif. Untuk up-to-date regex lainnya yang menanyakan file CloudFront log standar dan real-time, lihat. Kueri CloudFront log Amazon

    CREATE EXTERNAL TABLE IF NOT EXISTS cloudfront_logs ( `Date` DATE, Time STRING, Location STRING, Bytes INT, RequestIP STRING, Method STRING, Host STRING, Uri STRING, Status INT, Referrer STRING, os STRING, Browser STRING, BrowserVersion STRING ) ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.RegexSerDe' WITH SERDEPROPERTIES ( "input.regex" = "^(?!#)([^ ]+)\\s+([^ ]+)\\s+([^ ]+)\\s+([^ ]+)\\s+([^ ]+)\\s+([^ ]+)\\s+([^ ]+)\\s+([^ ]+)\\s+([^ ]+)\\s+([^ ]+)\\s+[^\(]+[\(]([^\;]+).*\%20([^\/]+)[\/](.*)$" ) LOCATION 's3://athena-examples-myregion/cloudfront/plaintext/';
  6. Dalam LOCATION pernyataan tersebut, ganti myregion dengan Wilayah AWS yang sedang Anda gunakan (misalnya,us-west-1).

  7. Pilih Jalankan.

    Tabel cloudfront_logs dibuat dan muncul di bawah daftar Tabel untuk basis data mydatabase.

PrivasiSyarat situsPreferensi cookie
© 2025, Amazon Web Services, Inc. atau afiliasinya. Semua hak dilindungi undang-undang.