

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

# Buat dan kueri tabel untuk log aliran VPC Amazon menggunakan proyeksi partisi
<a name="vpc-flow-logs-partition-projection"></a>

Gunakan `CREATE TABLE` pernyataan seperti berikut ini untuk membuat tabel, partisi tabel, dan mengisi partisi secara otomatis dengan menggunakan proyeksi [partisi](partition-projection.md). Ganti nama tabel `test_table_vpclogs` dalam contoh dengan nama tabel Anda. Edit `LOCATION` klausa untuk menentukan bucket Amazon S3 yang berisi data log VPC Amazon Anda.

`CREATE TABLE`Pernyataan berikut adalah untuk log aliran VPC yang dikirimkan dalam format partisi gaya non-HIVE. Contoh ini memungkinkan agregasi multi-akun. Jika Anda memusatkan log VPC Flow dari beberapa akun ke dalam satu bucket Amazon S3, ID akun harus dimasukkan di jalur Amazon S3.

```
CREATE EXTERNAL TABLE IF NOT EXISTS test_table_vpclogs (
  version int,
  account_id string,
  interface_id string,
  srcaddr string,
  dstaddr string,
  srcport int,
  dstport int,
  protocol bigint,
  packets bigint,
  bytes bigint,
  start bigint,
  `end` bigint,
  action string,
  log_status string,
  vpc_id string,
  subnet_id string,
  instance_id string,
  tcp_flags int,
  type string,
  pkt_srcaddr string,
  pkt_dstaddr string,
  az_id string,
  sublocation_type string,
  sublocation_id string,
  pkt_src_aws_service string,
  pkt_dst_aws_service string,
  flow_direction string,
  traffic_path int
)
PARTITIONED BY (accid string, region string, day string)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ' '
LOCATION '$LOCATION_OF_LOGS'
TBLPROPERTIES
(
"skip.header.line.count"="1",
"projection.enabled" = "true",
"projection.accid.type" = "enum",
"projection.accid.values" = "$ACCID_1,$ACCID_2",
"projection.region.type" = "enum",
"projection.region.values" = "$REGION_1,$REGION_2,$REGION_3",
"projection.day.type" = "date",
"projection.day.range" = "$START_RANGE,NOW",
"projection.day.format" = "yyyy/MM/dd",
"storage.location.template" = "s3://amzn-s3-demo-bucket/AWSLogs/${accid}/vpcflowlogs/${region}/${day}"
)
```

## Contoh kueri untuk test\$1table\$1vpclogs
<a name="query-examples-vpc-logs-pp"></a>

Contoh query berikut `test_table_vpclogs` dibuat oleh pernyataan sebelumnya`CREATE TABLE`. Ganti `test_table_vpclogs` dalam kueri dengan nama tabel Anda sendiri. Ubah nilai kolom dan variabel lain sesuai dengan kebutuhan Anda.

Untuk mengembalikan 100 entri log akses pertama dalam urutan kronologis untuk jangka waktu tertentu, jalankan kueri seperti berikut ini.

```
SELECT *
FROM test_table_vpclogs
WHERE day >= '2021/02/01' AND day < '2021/02/28'
ORDER BY day ASC
LIMIT 100
```

Untuk melihat server mana yang menerima sepuluh besar paket HTTP untuk jangka waktu tertentu, jalankan kueri seperti berikut ini. Kueri menghitung jumlah paket yang diterima pada port HTTPS 443, mengelompokkannya berdasarkan alamat IP tujuan, dan mengembalikan 10 entri teratas dari minggu sebelumnya.

```
SELECT SUM(packets) AS packetcount, 
       dstaddr
FROM test_table_vpclogs
WHERE dstport = 443
  AND day >= '2021/03/01'
  AND day < '2021/03/31'
GROUP BY dstaddr
ORDER BY packetcount DESC
LIMIT 10
```

Untuk mengembalikan log yang dibuat selama periode waktu tertentu, jalankan kueri seperti berikut ini.

```
SELECT interface_id,
       srcaddr,
       action,
       protocol,
       to_iso8601(from_unixtime(start)) AS start_time,
       to_iso8601(from_unixtime("end")) AS end_time
FROM test_table_vpclogs
WHERE DAY >= '2021/04/01'
  AND DAY < '2021/04/30'
```

Untuk mengembalikan log akses untuk alamat IP sumber antara periode waktu tertentu, jalankan kueri seperti berikut ini.

```
SELECT *
FROM test_table_vpclogs
WHERE srcaddr = '10.117.1.22'
  AND day >= '2021/02/01'
  AND day < '2021/02/28'
```

Untuk membuat daftar koneksi TCP yang ditolak, jalankan kueri seperti berikut ini.

```
SELECT day,
       interface_id,
       srcaddr,
       action,
       protocol
FROM test_table_vpclogs
WHERE action = 'REJECT' AND protocol = 6 AND day >= '2021/02/01' AND day < '2021/02/28'
LIMIT 10
```

Untuk mengembalikan log akses untuk rentang alamat IP yang dimulai dengan`10.117`, jalankan kueri seperti berikut ini.

```
SELECT *
FROM test_table_vpclogs
WHERE split_part(srcaddr,'.', 1)='10'
  AND split_part(srcaddr,'.', 2) ='117'
```

Untuk mengembalikan log akses untuk alamat IP tujuan antara rentang waktu tertentu, jalankan kueri seperti berikut ini.

```
SELECT *
FROM test_table_vpclogs
WHERE dstaddr = '10.0.1.14'
  AND day >= '2021/01/01'
  AND day < '2021/01/31'
```