Запустить выполнение запроса Athena в интерфейсе командной строки AWS, но в консоли управления AWS это удалось - PullRequest
0 голосов
/ 29 мая 2019

Я пытался выполнить этот SQL-запрос:

CREATE EXTERNAL TABLE IF NOT EXISTS appReporting.reports (
  `instanceid` string,
  `userid` string,
  `hasheduserid` string
)
ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.OpenCSVSerde'
WITH SERDEPROPERTIES (
  "separatorChar" = ",",
  "escapeChar" = "\\",
  "quoteChar" = '"'
)
LOCATION 's3://bucket-reporting/history/'
TBLPROPERTIES ('has_encrypted_data'='false', 'skip.header.line.count'='1');

Я могу создать его непосредственно в консоли AWS, но по команде CLI AWS я получаю все сортировки или ошибки, такие как:

  • Нет закрывающей кавычки (из-за "quoteChar" = '"')
  • ВНЕШНЕЕ слово не принято
  • идентификаторы в кавычках не поддерживаются
  • несоответствующий ввод 'ROW' ожидающий {,'WITH'}
  • посторонний ввод 'SERDEPROPERTIES' ожидающий '('

Пожалуйста, помогите с этим. Это сводит меня с ума, потому что он отлично работает в консоли.

Это команда, которую я делаю (AWS CLI в Ansible playbook)

- name: Start Query Execution
  sudo: yes
  command: >
    aws athena start-query-execution 
    --query-string "{{ lookup('file', '/tmp/create_table_1.sql') }}"

После удаления всех нежелательных символов у меня было: Only external table creation is supported

Как правильно передать запрос какСтрока в команду? Может кто-нибудь помочь с этим?

...