

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

# Buat tabel untuk CloudTrail log di Athena menggunakan partisi manual
<a name="create-cloudtrail-table"></a>

Anda dapat secara manual membuat tabel untuk file CloudTrail log di konsol Athena, dan kemudian menjalankan kueri di Athena.

**Untuk membuat tabel Athena untuk CloudTrail jejak menggunakan konsol Athena**

1. Salin dan tempel pernyataan DDL berikut ke editor kueri konsol Athena, lalu modifikasi sesuai dengan kebutuhan Anda. Perhatikan bahwa karena file CloudTrail log bukan merupakan jejak tumpukan terurut dari panggilan API publik, bidang dalam file log tidak muncul dalam urutan tertentu.

   ```
   CREATE EXTERNAL TABLE cloudtrail_logs (
   eventversion STRING,
   useridentity STRUCT<
                  type:STRING,
                  principalid:STRING,
                  arn:STRING,
                  accountid:STRING,
                  invokedby:STRING,
                  accesskeyid:STRING,
                  username:STRING,
                  onbehalfof: STRUCT<
                       userid: STRING,
                       identitystorearn: STRING>,
     sessioncontext:STRUCT<
       attributes:STRUCT<
                  mfaauthenticated:STRING,
                  creationdate:STRING>,
       sessionissuer:STRUCT<  
                  type:STRING,
                  principalid:STRING,
                  arn:STRING, 
                  accountid:STRING,
                  username:STRING>,
       ec2roledelivery:string,
       webidfederationdata: STRUCT<
                  federatedprovider: STRING,
                  attributes: map<string,string>>
     >
   >,
   eventtime STRING,
   eventsource STRING,
   eventname STRING,
   awsregion STRING,
   sourceipaddress STRING,
   useragent STRING,
   errorcode STRING,
   errormessage STRING,
   requestparameters STRING,
   responseelements STRING,
   additionaleventdata STRING,
   requestid STRING,
   eventid STRING,
   resources ARRAY<STRUCT<
                  arn:STRING,
                  accountid:STRING,
                  type:STRING>>,
   eventtype STRING,
   apiversion STRING,
   readonly STRING,
   recipientaccountid STRING,
   serviceeventdetails STRING,
   sharedeventid STRING,
   vpcendpointid STRING,
   vpcendpointaccountid STRING,
   eventcategory STRING,
   addendum STRUCT<
     reason:STRING,
     updatedfields:STRING,
     originalrequestid:STRING,
     originaleventid:STRING>,
   sessioncredentialfromconsole STRING,
   edgedevicedetails STRING,
   tlsdetails STRUCT<
     tlsversion:STRING,
     ciphersuite:STRING,
     clientprovidedhostheader:STRING>
   )
   PARTITIONED BY (region string, year string, month string, day string)
   ROW FORMAT SERDE 'org.apache.hive.hcatalog.data.JsonSerDe'
   STORED AS INPUTFORMAT 'com.amazon.emr.cloudtrail.CloudTrailInputFormat'
   OUTPUTFORMAT 'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat'
   LOCATION 's3://amzn-s3-demo-bucket/AWSLogs/{{Account_ID}}/';
   ```
**catatan**  
Kami menyarankan menggunakan yang `org.apache.hive.hcatalog.data.JsonSerDe` ditunjukkan dalam contoh. Meskipun `com.amazon.emr.hive.serde.CloudTrailSerde` ada, saat ini tidak menangani beberapa CloudTrail bidang yang lebih baru. 

1. (Opsional) Hapus semua bidang yang tidak diperlukan untuk tabel Anda. Jika Anda hanya perlu membaca satu set kolom tertentu, definisi tabel Anda dapat mengecualikan kolom lainnya.

1. Ubah `s3://amzn-s3-demo-bucket/AWSLogs/{{Account_ID}}/` untuk menunjuk ke bucket Amazon S3 yang berisi data log yang ingin Anda kueri. Contoh menggunakan`LOCATION`nilai log untuk akun tertentu, tetapi Anda dapat menggunakan level kekhususan yang sesuai dengan aplikasi Anda. Contoh:
   + Untuk menganalisis data dari beberapa akun, Anda dapat memutar kembali`LOCATION`specifier untuk menunjukkan semua`AWSLogs`dengan menggunakan`LOCATION 's3://amzn-s3-demo-bucket/AWSLogs/'`.
   + Untuk menganalisis data dari tanggal, akun, dan Wilayah tertentu, gunakan`LOCATION 's3://amzn-s3-demo-bucket/123456789012/CloudTrail/us-east-1/2016/03/14/'.` 
   + Untuk menganalisis data aktivitas jaringan alih-alih peristiwa manajemen, ganti `/CloudTrail/` dalam `LOCATION` klausa dengan`/CloudTrail-NetworkActivity/`. 

   Menggunakan level tertinggi dalam hirarki objek memberikan fleksibilitas terbesar saat Anda kueri menggunakan Athena.

1. Verifikasi bahwa bidang terdaftar dengan benar. Untuk informasi selengkapnya tentang daftar lengkap bidang dalam CloudTrail catatan, lihat [konten CloudTrail rekaman](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-event-reference-record-contents.html).

   `CREATE TABLE`Pernyataan contoh di Langkah 1 menggunakan[Sarang JSON SerDe](hive-json-serde.md). Dalam contoh, bidang, `requestparameters``responseelements`, dan `additionaleventdata` terdaftar sebagai tipe `STRING` dalam kueri, tetapi tipe `STRUCT` data yang digunakan dalam JSON. Oleh karena itu, untuk mendapatkan data dari bidang ini, gunakan`JSON_EXTRACT`fungsi. Untuk informasi selengkapnya, lihat [Ekstrak data JSON dari string](extracting-data-from-JSON.md). Untuk peningkatan kinerja, contoh mempartisi data berdasarkan AWS Region, tahun, bulan, dan hari.

1. Jalankan `CREATE TABLE` pernyataan di konsol Athena.

1. Menggunakan[ALTER TABLE ADD PARTITION](alter-table-add-partition.md)perintah untuk memuat partisi sehingga Anda dapat meminta mereka, seperti dalam contoh berikut.

   ```
   ALTER TABLE {{table_name}} ADD 
      PARTITION (region='us-east-1',
                 year='2019',
                 month='02',
                 day='01')
      LOCATION 's3://amzn-s3-demo-bucket/AWSLogs/{{Account_ID}}/CloudTrail/{{us-east-1/2019/02/01/}}'
   ```