Разделы для журналов потока vpc - PullRequest
0 голосов
/ 14 апреля 2019

Этот запрос работает как положено.

CREATE EXTERNAL TABLE IF NOT EXISTS vpc_flow_logs3 (
  version int,
  account string,
  interfaceid string,
  sourceaddress string,
  destinationaddress string,
  sourceport int,
  destinationport int,
  protocol int,
  numpackets int,
  numbytes bigint,
  starttime int,
  endtime int,
  action string,
  logstatus string
)  
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ' '
LOCATION 's3://todel162/AWSLogs/XXXXX/vpcflowlogs/us-east-1/'
TBLPROPERTIES ("skip.header.line.count"="1");

Но если я добавлю предложение о разделении, как предлагается в документации, оно не прочитает ни одной строки.(Хотя таблица создана успешно)

https://docs.aws.amazon.com/athena/latest/ug/vpc-flow-logs.html

Другими словами, я не могу использовать разделы, использующие это предложение в операторе создания таблицы.

PARTITIONEDBY (строка dt)

Как создать таблицу с разделами для журналов потока vpc?

1 Ответ

1 голос
/ 15 апреля 2019

После создания многораздельной таблицы вам также необходимо добавить в нее разделы. Для секционированных таблиц свойство LOCATION не указывает на данные таблицы. Вновь созданная секционированная таблица практически пуста.

Существует много способов добавить разделы в многораздельную таблицу. Журналы потока VPC не следуют схеме разделения Hive, а это означает, что вы не можете использовать MSCK REPAIR TABLE для загрузки всех разделов. Вместо этого вам нужно вручную перечислить все разделы и добавить их либо с помощью API-вызова Glue BatchCreatePartition, либо с помощью Athena, запустив ALTER TABLE vpc_flow_logs3 ADD PARTITION …. Вы можете найти пример того, как это сделать для потоковых журналов в шаге 4 руководства, с которым вы связались.

...