Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Memulai
Tutorial ini akan memandu Anda dalam menggunakan Amazon Athena untuk mengkueri data. Anda akan membuat tabel berdasarkan data sampel yang disimpan di Amazon Simple Storage Service, mengkueri tabel, dan memeriksa hasil kueri.
Tutorial menggunakan sumber daya langsung, sehingga Anda akan dikenai biaya untuk mengkueri yang Anda jalankan. Anda tidak dikenai biaya untuk data sampel di lokasi yang digunakan tutorial ini, tetapi jika Anda mengunggah file data Anda sendiri ke Amazon S3, biaya akan berlaku.
Prasyarat
-
Jika Anda belum melakukannya, daftar untuk Akun AWS.
-
Menggunakan akun yang sama Wilayah AWS (misalnya, US West (Oregon)) dan akun yang Anda gunakan untuk Athena, ikuti langkah-langkah untuk membuat bucket di Amazon S3 untuk menyimpan hasil kueri Athena Anda. Anda akan mengonfigurasi bucket ini menjadi lokasi keluaran kueri Anda.
Langkah 1: Buat database
Anda harus terlebih dahulu membuat basis data di Athena.
Untuk membuat database Athena
Buka konsol Athena di https://console.aws.amazon.com/athena/
. -
Jika ini adalah pertama kalinya Anda mengunjungi konsol Athena saat ini Wilayah AWS, pilih Jelajahi editor kueri untuk membuka editor kueri. Jika tidak, Athena terbuka di editor kueri.
-
Pilih Edit Pengaturan untuk mengatur lokasi hasil kueri di Amazon S3.
-
Untuk Mengelola pengaturan, lakukan salah satu hal berikut:
-
Di kotak Lokasi hasil kueri, masukkan jalur ke bucket yang Anda buat di Amazon S3 untuk hasil kueri. Awalan jalur dengan
s3://
. -
Pilih Browse S3, pilih bucket Amazon S3 yang Anda buat untuk Wilayah saat ini, lalu pilih Pilih.
-
-
Pilih Simpan.
-
Pilih Editor untuk beralih ke editor kueri.
-
Di sebelah kanan panel navigasi, Anda dapat menggunakan editor kueri Athena untuk memasukkan dan menjalankan kueri dan pernyataan.
-
Untuk membuat basis data bernama
mydatabase
, masukkan pernyataan CREATE DATABASE berikut.CREATE DATABASE mydatabase
-
Pilih Jalankan atau tekan
Ctrl+ENTER
. -
Dari daftar Database di sebelah kiri, pilih
mydatabase
untuk menjadikannya database Anda saat ini.
Langkah 2: Buat Tabel
Setelah kini memiliki basis data, Anda dapat membuat tabel Athena untuk itu. Tabel yang Anda buat akan didasarkan pada contoh data CloudFront log Amazon di lokasis3://athena-examples-
, di mana myregion
/cloudfront/plaintext/myregion
adalah milik Anda saat ini Wilayah AWS.
Data log sampel dalam format tab-separated values (TSV), 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 DELIMITED
berarti 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 regulerCREATE 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 data CSV atau TSV kompleks, tetapi bisa sulit untuk penulisan dan pemeliharaan. Untungnya, ada pustaka lain yang dapat Anda gunakan untuk format seperti JSON, Parquet, dan ORC. Untuk informasi selengkapnya, lihat Format yang didukung SerDes dan data.
Sekarang Anda siap untuk membuat tabel di editor kueri Athena. Pernyataan dan regex CREATE
TABLE
disediakan untuk Anda.
Untuk membuat tabel di Athena
-
Di panel navigasi, untuk Database, pastikan yang
mydatabase
dipilih. -
Untuk memberi diri Anda lebih banyak ruang di editor kueri, Anda dapat memilih ikon panah untuk menutup panel navigasi.
-
Untuk membuat tab untuk kueri baru, pilih tanda plus (+) di editor kueri. Anda dapat membuka hingga sepuluh tab kueri sekaligus.
-
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.
-
Dalam panel kueri, masukkan persyaratan
CREATE EXTERNAL TABLE
berikut. Regex memecahkan sistem operasi, browser, dan informasi versi browser dari bidangClientInfo
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. Menanyakan log Amazon CloudFrontCREATE 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/'; -
Dalam
LOCATION
pernyataan tersebut, gantimyregion
dengan Wilayah AWS yang sedang Anda gunakan (misalnya,us-west-1
). -
Pilih Jalankan.
Tabel
cloudfront_logs
dibuat dan muncul di bawah daftar Tabel untuk basis datamydatabase
.
Langkah 3: Kueri data
Sekarang setelah Anda membuat tabel cloudfront_logs
di Athena berdasarkan data di Amazon S3, Anda dapat menjalankan kueri SQL pada tabel dan melihat hasilnya di Athena. Untuk informasi selengkapnya tentang penggunaan SQL di Athena, lihat Referensi SQL untuk Athena.
Untuk menjalankan kueri
-
Pilih tanda plus (+) untuk membuka tab kueri baru dan masukkan pernyataan SQL berikut di panel permintaan.
SELECT os, COUNT(*) count FROM cloudfront_logs WHERE date BETWEEN date '2014-07-05' AND date '2014-08-05' GROUP BY os
-
Pilih Jalankan.
Hasilnya terlihat seperti berikut:
-
Untuk menyimpan hasil kueri ke
.csv
file, pilih Unduh hasil. -
Untuk melihat atau menjalankan kueri sebelumnya, pilih tab Kueri terbaru.
-
Untuk mengunduh hasil kueri sebelumnya dari tab Kueri terbaru, pilih kueri, lalu pilih Unduh hasil. Kueri dipertahankan selama 45 hari.
-
Untuk mengunduh satu atau beberapa string kueri SQL terbaru ke file CSV, pilih Unduh CSV.
Untuk informasi selengkapnya, lihat Bekerja dengan hasil kueri, kueri terbaru, dan file keluaran.
Menyimpan kueri Anda
Anda dapat menyimpan kueri yang Anda buat atau edit di editor kueri dengan nama. Athena menyimpan kueri ini di tab Kueri tersimpan. Anda dapat menggunakan tab Kueri tersimpan untuk mengingat, menjalankan, mengganti nama, atau menghapus kueri yang disimpan. Untuk informasi selengkapnya, lihat Menggunakan kueri yang disimpan.
Pintasan keyboard dan saran typeahead
Editor kueri Athena menyediakan banyak pintasan keyboard untuk tindakan seperti menjalankan kueri, memformat kueri, operasi baris, dan menemukan dan mengganti. Untuk informasi selengkapnya dan daftar pintasan lengkap, lihat Meningkatkan produktivitas dengan menggunakan pintasan keyboard di editor kueri Amazon Athena
Editor kueri Athena mendukung saran kode typeahead untuk pengalaman penulisan kueri yang lebih cepat. Untuk membantu Anda menulis kueri SQL dengan akurasi yang ditingkatkan dan peningkatan efisiensi, ia menawarkan fitur-fitur berikut:
-
Saat Anda mengetik, saran muncul secara real time untuk kata kunci, variabel lokal, cuplikan, dan item katalog.
-
Saat Anda mengetik nama database atau nama tabel diikuti dengan titik, editor dengan mudah menampilkan daftar tabel atau kolom untuk dipilih.
-
Saat Anda mengarahkan kursor ke saran cuplikan, sinopsis menunjukkan gambaran singkat tentang sintaks dan penggunaan cuplikan.
-
Untuk meningkatkan keterbacaan kode, kata kunci dan aturan penyorotan mereka juga telah diperbarui untuk menyelaraskan dengan sintaks terbaru Trino dan Hive.
Fitur ini diaktifkan secara default. Untuk mengaktifkan atau menonaktifkan fitur, gunakan preferensi editor Kode (ikon roda gigi) di kanan bawah jendela editor kueri.
Menghubungkan ke sumber data lain
Tutorial ini menggunakan sumber data di Amazon S3 dalam format CSV. Untuk informasi tentang menggunakan Athena dengan AWS Glue, lihat. Menggunakan AWS Glue untuk terhubung ke sumber data di Amazon S3 Anda juga dapat menghubungkan Athena ke berbagai sumber data dengan menggunakan driver ODBC dan JDBC, metastore Hive eksternal, dan konektor sumber data Athena. Untuk informasi selengkapnya, lihat Menghubungkan ke sumber data.