Memulai - Amazon Athena

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
  1. Buka konsol Athena di https://console.aws.amazon.com/athena/.

  2. 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.

  3. Pilih Edit Pengaturan untuk mengatur lokasi hasil kueri di Amazon S3.

    Pilih Edit pengaturan.
  4. 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 dengans3://.

    • Pilih Browse S3, pilih bucket Amazon S3 yang Anda buat untuk Wilayah saat ini, lalu pilih Pilih.

    Tentukan lokasi di Amazon S3 untuk menerima hasil kueri dari Athena.
  5. Pilih Simpan.

  6. Pilih Editor untuk beralih ke editor kueri.

    Pilih Editor.
  7. Di sebelah kanan panel navigasi, Anda dapat menggunakan editor kueri Athena untuk memasukkan dan menjalankan kueri dan pernyataan.

    Editor kueri di konsol Athena.
  8. Untuk membuat basis data bernama mydatabase, masukkan pernyataan CREATE DATABASE berikut.

    CREATE DATABASE mydatabase
  9. Pilih Jalankan atau tekanCtrl+ENTER.

  10. Dari daftar Database di sebelah kiri, pilih mydatabase untuk menjadikannya database Anda saat ini.

    Pilih database yang Anda buat.

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-myregion/cloudfront/plaintext/, di mana 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 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 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
  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. Menanyakan log Amazon CloudFront

    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.

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
  1. 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
  2. Pilih Jalankan.

    Hasilnya terlihat seperti berikut:

    Melihat hasil kueri di konsol Athena.
  3. Untuk menyimpan hasil kueri ke .csv file, pilih Unduh hasil.

    Mengunduh hasil kueri dalam format CSV.
  4. Untuk melihat atau menjalankan kueri sebelumnya, pilih tab Kueri terbaru.

    Pilih Kueri terbaru untuk melihat kueri sebelumnya.
  5. Untuk mengunduh hasil kueri sebelumnya dari tab Kueri terbaru, pilih kueri, lalu pilih Unduh hasil. Kueri dipertahankan selama 45 hari.

    Melihat dan mengunduh kueri terbaru di konsol Athena.
  6. Untuk mengunduh satu atau beberapa string kueri SQL terbaru ke file CSV, pilih Unduh CSV.

    Mengunduh string kueri terbaru ke file 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 di AWS Blog Big Data.

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.