Создание / обновление таблиц Amazon Athena из файлов корзины Amazon S3 - PullRequest
2 голосов
/ 17 апреля 2019

Я загрузил csv-файл MySQL / zip-файл MYSQL для всех таблиц в корзине Amazon S3. Теперь я хочу связать Amazon Athena с файлом S3 Bucket. Но когда я пишу схему для разных таблиц, отображается один и тот же результат для запроса выбора каждой таблицы. Я много искал, но не смог понять точный / правильный способ сделать это.

Я хочу создать / обновить другую схему таблиц в Афине с помощью одного zs-файла csv / sql из корзины S3.

1 Ответ

2 голосов
/ 17 апреля 2019

Amazon Athena будет искать в определенном каталоге данные. Все файлы данных в этом каталоге будут обрабатываться как содержащие данные для данной таблицы.

Вы используете команду CREATE TABLE для определения схемы и направления Athena в каталог, например:

CREATE EXTERNAL TABLE test1 (
  f1 string,
  s2 string
) 
ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.OpenCSVSerde' 
WITH SERDEPROPERTIES ("separatorChar" = ",", "escapeChar" = "\\") 
LOCATION 's3://my-bucket/data-directory/'

Вам нужно будет выполнить команду CREATE EXTERNAL TABLE для каждой таблицы, и данные для каждой таблицы должны находиться в отдельном каталоге. Файлы CSV могут быть в формате ZIP (что делает запрос быстрее и дешевле).

В качестве альтернативы написанию этих определений таблиц вы можете создать сканер в AWS Glue . Укажите сканером каталог данных, укажите имя, и сканер проверит файлы данных и создаст определение таблицы, соответствующее файлам.

...